在现代工业生产中,经常遇到上位机需要和第三方下位机通讯,比如第三方仪表,变频器,温度模块,压力变送器等等,这下就需要ModbusRTU,ModbusTCP/IP协议了,若您的第三方设备支持modbusTCP/IP协议,这时就可以采用网络通讯了。
我们以博途平台来介绍西门子1200和1500的TCP通讯,通过这个案例过后可以举一反三,应用到实际的项目中。本案例仅供参考。
我们在做这个项目案例时需要满足以下软硬件要求:
1.)一台西门子1200系列PLC(本案例是1215DCDCDC,控制器不一定和本案例的一样,只要支持modbusTCP协议就可以);
2.)一台西门子1500系列PLC(本案例是1513,控制器不一定和本案例的一致,支持modbusTCP协议就可以);
3.)一台安装上博途V16软件电脑;
4.)通讯网线两条即DC24V/10A开关电源一台。
满足以上条件后,我们打开博途开始组态等工作,这里先组态一个服务器(1513PLC),并建立一个服务器通讯数据DB块:
建立方法:
在“程序块”里添加一个名为“TCON_IP_V4”的数据块,这里无需取消“访问优化块”。在静态变量“Static”里添加数据名称为“TCON”,数据类型“TCON_IP_V4”的通讯数据。
把“TCON”数据打开进行设置参数,“lnterfaceld”(通讯硬件端口)设置成“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 Addrese这里需要填写服务器端口号(502);
4.)LocalPort”服务器端口号为“0”。
待通讯参数设置完毕后,添加一个TCP通讯指令“MB——CLAYend”如下图:
从客户机向服务器写数据
我们添加一个读取服务器的程序:
从客户机读取服务器数据(服务器写入数据给客户机)
读取要求:
把服务器端(西门子1513)端MW20-MW28五个数据存到客户机(西门子1215 )里的MW50-MW58里面。也可以反过来说服务器写入到客户机里面了。
控制器在线监控如下:
状态监控:
1200/1500数据相互传递
以上简单的介绍1200和1500PLC通过Modbus TCP通讯协议互传数据,希望给想学习西门子PLC通讯的朋友一个参考和帮助,文章中难免有写的不完善甚至错误的地方,望大神批评指正,小的在这感谢了!