热门搜索:
西门子6ES72882DT080AA0
上海朕锌电气电气设备有限公司
SIEMENS西门子不久前做了一个1200的项目,需要扩展I/O,想着用ModbusTCP的方式和多子站的通讯还没试过,决定不用I/O模块,用第三方的子站模块。立马买了几个TCP端口的模块开始试验。很快东西买回来了,硬件配置如下:
l PLC 1214DC/DC/RLY
l HMI MT8102IE
l SubModule:ZKA[E]-8088(8AI/8DI/8DO)
试验的步:找关于Protal Modbus tcp 通讯的资料或文档,网上看了,好多除了广告没啥有用的资料,后来在论坛里搜到一篇资料,提到了怎么去Modbus TCP通讯,但当时还是一知半解,后来想着与其看别人的看不明白还要想很长时间,不如自己去动手测试。首先看到支持中心官网有一篇技术文档《Modbus TCP 通信多请求通讯处理》,开头已经讲的很清楚的方法:
单独的客户机连接需要遵循的规则:
1.每个“MB_CLIENT”连接需要使用一个不同的背景数据块;
2.每个“MB_CLIENT”连接必须*一个服务器IP地址;
3.每个“MB_CLIENT”连接必须*一个的连接ID;
4.是否需要的IP端口号取决于服务器组态;
5.连接ID和背景数据块组合成对,对每个连接来说组合对都是的。
对于多请求处理,有两种方法:
方法一:如果TCP连接充裕,可以建立多个不同的连接发送请求,即每个请求使用一个独立的连接,调用独立的“MB_CLIENT”功能块,具体操作参考“Modbus TCP”部分。通过不同的连接发送多个请求,“MB_CLIENT”功能块多次调用,但是需要使用不同的背景数据块,不同的ID号和不同的端口号。
支持中心官网有一篇技术文档链接://www..cn/productportal/prods/s7-1200_plc_easy_plus/11-Comm/01-Ethernet/04-Modbus_TCP/03-Modbus_TCP_Multi_Request.htm
按照这个方法开始做备工作:
定义PLC 的IP地址:192.168.1.150
定义智能I/O的IP地址 192.168.1.108—110,3个模块,所有的端口号都为10001
l 建立3个 MB_CLENT_DB
l 建立3个 TCON_IP_V4静态变量,注意有记号的地方要改不同值,还有IP地址也不能一样
l 编写通讯程序
l 调用通讯程序(在OB30里调用)
编译无错误后,下载程序,自此程序调试完成,现场图片如下: