1. 理清概念
在Modbus TCP通讯中,有服务端和客户端两个角色
受Modbus RTU通讯和其它现场总线通讯在对象叫法上的影响,很多人和资料把Modbus TCP通讯中的服务端叫做Modbus TCP从站(Slave),把客户端叫做Modbus TCP主站(Master),很显然,服务端对从,客户端对主,理想起来有点别扭。
作者为了和现场总线中的通讯角色主从关系加以区别,一般都是按照服务端和客户端来定义Modbus TCP通讯的角色,这比较符合TCP/IP协议通讯中服务器和客户端的角色关系对应。
Modbus TCP服务端(Modbus TCP从站)是数据的提供方,Modbus TCP客户端(Modbus TCP主站)是数据的请求方。
2. EVO810作为Modbus TCP通讯中的服务端
LAN1或LAN2端口上插入Modbus TCP Slave设备对象,使得PLC CPU通过该端口对外提供Modbus TCP数据服务
在变量表中创建保持寄存器数据变量,并在监视表中设置其值
启动仿真,下载和运行程序,打开网络调试助手查看服务端保持寄存器数据
注意:EVO810中的Modbus地址从0开始编址,不像西门子PLC那样要偏移1位
3. EVO810作为Modbus TCP通讯中的客户端
LAN1或LAN2端口上插入Modbus TCP Master设备对象,使得PLC CPU通过该端口对外发送Modbus TCP数据请求
客户端对服务端的读写请求,都是在上述通讯配置里添加,可以添加多条通讯请求,无需额外的编程
设置端口映射,对上述各通讯配置里的通道进行IO映射,把通讯的交互数据从IO硬件地址和变量进行关联
系统变量:系统会为该客户端和服务端之间自动创建一个系统变量,通过控制该系统变量,可以控制客户端对服务端通讯的通讯容许和禁止
bDisableEnable: 1:通讯禁止 0:通讯容许
4. 小结
总体来讲iFA平台实现Modbus TCP通讯简单快捷,无需编写任何代码即可实现,关键是需要理清通讯中各角色在软件中的对应关系。汇溪成海,川流不息!