西门子PLC实现开放式TCP通信是需要编写PLC程序的,PLC作为TCP服务器,上位机作为TCP客户端,下面对PLC程序编写步骤进行阐述说明:
1、创建一个新的DB块,DB块编号定义为DB100,用于与上位机通信,在DB块中创建变量用于通信测试,读取和写入各创建5个布尔、5个整型和5个浮点数,然后右击DB块,选择【属性】,把【优化的块访问】的勾选去掉,去除优化块访问后,每个变量后面会有一个偏移量,这个对于我们后续解析数据是有用的,如图所示:
2、打开OB1,在右侧通信中,找到指令TSEND_C,然后拖拽至OB1的程序段1中,根据操作提示添加对应的背景数据块,如图所示:
3、选择TSEND_C块,右击属性> 组态 > 连接参数:
(1)伙伴:选择“未指定”(2)连接类型:选择TCP(3)连接数据:新建一个连接数据(4)连接ID:设置为1(5)设置伙伴主动建立连接(6)伙伴端口:设置为2000具体设置参数如图所示:
![图片](http://static.11467.com/img/lazy.gif)
5、回到OB1,填写REQ和DATA,REQ采用1秒钟的脉冲,DATA为Read部分和Write部分,一共是64个字节,如图所示:
![图片](http://static.11467.com/img/lazy.gif)
![图片](http://static.11467.com/img/lazy.gif)
![图片](http://static.11467.com/img/lazy.gif)
10、打开网络调试助手NetAssist,连接上PLC,进行通信测试 ,具体步骤如下:
(1)设置协议类型为TCPClient(2)远程地址填写PLC的IP:192.168.10.100(3)端口号填写设置的2000(4)接收选择Hex显示(5)点击【连接】(6)观察返回数据及长度通信测试Zui终实现效果如图4-32所示: