两个不同网段的S7-1200 PLC如何进行TCPIP通信

作者: 许泽博 发布: 2024/8/19 分类: 通讯 阅读: 次 查看评论

     在实际工作场景中,PLC之间的通信常被用于数据交换。一般而言,通信过程要求设备位于同一网段。然而,当设备不在同一网段时,我们如何实现通信呢?本文将探讨两个S7-1200 PLC不在同一网段时,如何通过TCP/IP通信进行数据交换。

01
    在博途软件中启动项目,我们首先需要创建名为“PLC_1”的设备。随后,在设备配置中添加CPU1215作为核心处理器。紧接着,我们需要对CPU1215进行网络设置,包括为其分配一个特定的IP地址以及设置相应的子网掩码。此外,为确保PLC的时间准确性,我们还需要配置系统时钟。具体的设置步骤和界面展示可以参考图1和图2的示例。
图1
图2
02
    为了构建一个完整的通信系统,我们接着在博途项目中创建名为“PLC_2”的设备。在这个设备中,我们同样选择添加CPU1215作为其核心处理器。随后,我们需要为“PLC_2”的CPU1215配置网络参数,包括设定一个合适的IP地址和子网掩码。此外,为确保时间同步和准确性,我们还需要为“PLC_2”设置系统时钟。具体的配置步骤和界面布局可以参考图3和图4的示例。
图3
图4
03
    在“PLC_1”项目中,我们需要添加两个数据块:DB3和DB4。这两个数据块分别用于存储和发送数据。发送和接收的数据都应为100字节的长度,确保数据交换的完整性。重要的是,这些数据应当是数组形式,并且选择非优化的访问块。非优化的访问块通常用于对性能要求不高的场合,便于数据的读写和管理。
具体操作步骤如下:
1、在“PLC_1”的项目中,找到数据块(Data Blocks)部分。
2、创建一个新的数据块,命名为DB3。在DB3中,定义一个数组类型的变量,用于存储数据,确保该数组的长度为100字节。
3、接着,再创建一个新的数据块,命名为DB4。在DB4中,同样定义一个数组类型的变量,用于发送数据,长度也为100字节。
4、在创建这两个数据块时,注意选择非优化的访问方式。这样可以确保数据在访问时不会进行额外的优化处理,提高了数据交换的效率和稳定性。
通过以上步骤,我们就成功在“PLC_1”中添加了DB3和DB4数据块,并设置了合适的数据类型和长度,为后续的数据交换做好了准备。具体的界面布局和操作可以参考图5和图6的示例。
图5
图6
04
    在“PLC_1”的OB1主程序块中,我们需要进行编程以实现TCP/IP通信。以下是具体的步骤:
首先,打开OB1主程序块,并准备开始编程。
接着,我们添加“TCON”指令。TCON指令用于建立TCP连接。在指令列表中找到TCON指令,并将其添加到程序中。
随后,我们需要点击TCON指令旁边的组态图标。这个组态图标通常是一个带有齿轮或类似标志的小按钮,用于配置TCON指令的具体参数。
点击组态图标后,会弹出一个组态界面。在这个界面中,我们需要设置TCP连接的相关参数,如目标IP地址(即“PLC_2”的IP地址)、端口号、连接模式等。确保这些参数设置正确,以便与“PLC_2”建立有效的TCP连接。
完成参数设置后,保存并关闭组态界面。此时,TCON指令已经配置好,并准备在程序运行时执行。
通过以上步骤,我们在“PLC_1”的OB1主程序块中添加了TCON指令,并进行了必要的组态配置。具体的界面布局和操作可以参考图7和图8的示例。
图7
图8
    在“PLC_1”的OB1主程序块中,继添加了“TCON”指令并进行了组态配置之后,我们需要进一步添加发送和接收数据的指令。以下是具体的步骤:
首先,找到合适的位置在程序中添加发送数据的指令。这通常是在TCON指令成功建立连接之后。我们可以使用“TSEND”指令来发送数据。将“TSEND”指令添加到程序中,并配置其参数。确保指定正确的发送缓冲区(例如DB4,之前创建的用于发送的数据块)以及发送数据的长度(在本例中为100字节)。
接着,添加接收数据的指令。我们可以使用“TRECV”指令来接收数据。同样,在程序中找到合适的位置添加“TRECV”指令,并配置其参数。指定接收缓冲区(例如DB3,之前创建的用于存储的数据块)以及期望接收的数据长度。
在添加这些指令时,还需要注意它们之间的逻辑关系和执行顺序。通常,发送指令会在连接建立成功之后执行,而接收指令可能会在一个循环中持续执行,以便随时接收来自对方PLC的数据。
图9
05
    在“PLC_2”项目中,我们需要按照与“PLC_1”相似的步骤来添加DB3和DB4数据块。这两个数据块将分别用于存储和发送数据,确保数据交换的顺利进行。
首先,在“PLC_2”的数据块部分,创建一个新的数据块并命名为DB3。在DB3中,定义一个数组类型的变量,用于存储从“PLC_1”接收的数据。确保该数组的长度为100字节,以匹配发送数据的长度。
接下来,再创建一个新的数据块并命名为DB4。在DB4中,同样定义一个数组类型的变量,用于发送数据到“PLC_1”。同样地,该数组的长度也应为100字节。
在创建这两个数据块时,需要注意选择非优化的访问方式。非优化的访问块适用于对性能要求不高的场合,能够确保数据的稳定访问和交换。
完成数据块的创建和配置后,我们就成功地在“PLC_2”中添加了DB3和DB4,它们将用于存储和发送数据。这些步骤确保了数据交换的一致性和准确性,具体的界面布局和操作可以参考图10和图11的示例。
图10
图11
06
 在“PLC_2”的OB1主程序块中,我们需要编程以实现与“PLC_1”之间的TCP/IP通信。添加“TCON”指令,并且点击组态图标。具体的界面布局和操作可以参考图12和图13的示例。
图12

图13
添加发送和接收数据指令,如图14所示。
图14
07
仿真测试,如图15所示。
图15 
申明:内容来源于网络,仅供参考学习

« 上一篇下一篇 » 原创文章,转载请注明出处!标签:

评论列表:

说两句吧:

必填

选填

选填

必填,不填不让过哦,嘻嘻。

记住我,下次回复时不用重新输入个人信息

站内公告
欢迎进入我的博客,文章主要来源于网络,若有涉及版权问题,请您及时联系我,也希望我的博客能对您有所帮助!
控制面板
您好,欢迎到访网站!
  [查看权限]
用户注册
纪念日倒计时



网站分类
友情链接
Tags列表