S7-1200 MODBUS TCP通信多请求处理

S7-1200MODBUSTCP通信多请求处理
单独的客户机连接需要遵循的规则:
1.每个“MB_CLIENT”连接需要使用一个不同的背景数据块;
2.每个“MB_CLIENT”连接必须指定一个服务器IP地址;
3.每个“MB_CLIENT”连接必须指定一个唯一的连接ID;
4.是否需要唯一的IP端口号取决于服务器组态;
连接ID和背景数据块组合成对 , 对每个连接来说 , 组合对都是唯一的 。
对于多请求处理 , 有两种方法:
方法一:如果TCP连接充裕 , 可以建立多个不同的连接发送请求 , 即每个请求使用一个独立的连接 , 调用独立的“MB_CLIENT”功能块 , 具体操作参考“ModbusTCP”部分 。
通过不同的连接发送多个请求 , “MB_CLIENT”功能块多次调用 , 但是需要使用不同的背景数据块 , 不同的ID号和不同的端口号 。
方法二:通过公共的连接发送多个请求 。
通过公共的连接发送多个请求 , “MB_CLIENT”功能块多次调用 , 但是需要使用相同的背景数据块 , 连接ID号 , IP地址和端口号 。
在任意时间 , 只能有一个MB_CLIENT请求处于激活状态 , 在一个请求完成执行后 , 下一个请求再开始执行 , 轮循处理 。
方法二特例:MODBUSTCP客户端访问网关后的多个MODBUSRTU从站
方法二轮循处理的操作
一.软硬件要求
MB_Client/Server指令的使用要求:软件V11SP1及以上版本 , CPU固件版本V1.02及以上版本 。
二.测试条件
硬件:CPU1214C(DC/DC/DC)V4.4 , 电脑(ModSim32调试软件);
软件:TIAPORTALSTEP7V16
实验:S7-1200作ModbusTCP客户机 , 用FC03功能对调试软件先后进行读取40001开始的2个字以及40003开始的2个字 。
三.组态配置
1.S7-1200的IP地址192.168.1.218 , 将系统存储器字节设置为MB1 , 如图1所示 , 图2所示 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图1IP地址设置
S7-1200 MODBUS TCP通信多请求处理
文章图片
图2系统存储器字节设置
2.ModSim32调试软件设置
服务器采用ModSim32软件测试 , 首先将测试电脑的IP地址设置成192.168.1.216 , 如图3所示 , 打开ModSim32软件 , 在设置功能码FC03、起始地址、长度、设备ID等 , 如图4所示 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图3电脑的IP地址
S7-1200 MODBUS TCP通信多请求处理
文章图片
图4ModSim32调试软件的从站设置
在“Connection”中选择“Modbus/TCPSvr” , 设置本地服务器端口号为502 , 如图5所示 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图5连接设置
四.编程
1.新建数据块
如图6所示 , 新建DB , 添加变量类型为TCON_IP_V4 , 设置InterfaceId , ID , ActiveEstablished , RemoteAddress , RemotePort等参数 , 具体含义参见链接 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图6设置连接变量
如图7所示 , 在DB中建立结构数组 , 用于轮询控制位以及数据 , 其中元素0用于第一次读取 , 元素1用于第二次读取 。 Init用于初始标志位 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图7轮询数据
2.编写轮循功能
1)如图8所示 , 用“FirstScan”在第一次扫描中将初始标志位置位 。
S7-1200 MODBUS TCP通信多请求处理
文章图片
图8初始化标志位