现代工业生产中,经常遇到上位机需要与第三方下位机进行通信,比如第三方仪表、变频器、温度模块、压力变送器等,这就需要ModbusRTU和ModbusTCP/IP协议。如果您的第三方设备支持modbusTCP/IP协议,则可以使用网络通信。
今天我们利用Portal平台来介绍一下西门子1200和1500的TCP通信,经过这个案例,我们可以举一反三,应用到实际项目中。此案例仅供参考。
我们在做这个项目案例时,需要满足以下软硬件要求:
1.)一台西门子1200系列PLC(本例为1215DCDCDC,控制器不一定与本例相同,只要支持modbusTCP协议即可);
2.)西门子1500系列PLC一台(本例为1513,控制器可能与本例不一致,只需支持modbusTCP协议即可);
3.)安装有博图V16软件的电脑一台;
4.) 两根通讯网线为一根DC24V/10A开关电源。
满足上述条件后,我们打开Portal,开始配置等工作。这里我们首先配置一个服务器(1513PLC)并创建一个服务器通信数据DB块:
如何构建:
在“Program Block”中添加一个名为“TCON_IP_V4”的数据块。这里不需要取消“访问优化块”。在静态变量“Static”中添加数据名称为“TCON”、数据类型为“TCON_IP_V4”的通讯数据。
打开“TCON”数据设置参数,设置“InterfaceId”(通讯硬件端口)为“64”,设置ID为“8”,设置“Connection Type”(通讯协议)为16#0B,默认为TCP通讯协议,“ActiveEstblished”(建立连接),“1”为主动连接(客户端),“0”为被动连接(服务器),继续打开“RemoteAddress”,找到“ADDR”数组设置通信IP地址,(一般默认不设置为服务器),最后设置“LocalPort”服务器端口号为“502”。
我们将TCP通信命令块命名为“MB_SERVER”,将其拖至终端进行参数设置:
编写完服务器程序后,我们配置一个客户端PLC(即1215PLC)。配置完成后,我们还需要添加通信数据DB块。这与服务器参数略有不同,如下图所示:
客户端和服务器“TCON_IP_V4”的数据块参数的区别在于以下参数:
1.)ActiveEstblished”(建立连接),“1”表示主动连接(客户端),“0”表示被动连接(服务器),这个是客户端,填“1”即可
2.)打开“RemoteAddress”下的“ADDR”数组,设置通讯IP地址(这里是客户端,需要填写服务器的IP地址,即西门子1513PLC);
3.}Remote Address需要填写服务器端口号(502);
4.)LocalPort”服务器端口号为“0”。
通讯参数设置完毕后,添加一条TCP通讯命令“MB——CLAYend”,如下图:
从客户端向服务器写入数据
我们添加一个读取服务器的程序:
从客户端读取服务器数据(服务器将数据写入客户端)
阅读要求:
将服务器端(西门子1513)MW20-MW28的五个数据保存到客户端机器(西门子1215)上MW50-MW58。也可以说是服务器向客户端写入。
控制器在线监控如下:
状态监控:
1200/1500数据相互传输
以上是1200和1500PLC如何通过Modbus TCP通讯协议相互传输数据的简单介绍。希望能给想学习西门子PLC通讯的朋友们提供参考和帮助。文章难免存在不完善甚至错误的地方。希望大家批评指正。谢谢你!