找回密码
 请使用中文注册
查看: 44|回复: 0

关于Modbus TCP通讯调试过程的那些事2

[复制链接]
阅读字号:

88

主题

247

回帖

804

积分

入门维修师

积分
804
发表于 1 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?请使用中文注册

×
关于Modbus TCP通讯调试过程的那些事2
关于Modbus TCP客户机多任务工作
  在Modbus TCP通讯过程中,很难回避一个现实问题就是多任务工作时的工作环境,是否需要还轮询?因为,该通讯原理硬件虽然基于以太网架构下,但是通讯机制还是在Modbus类型通讯下。如果按RS485半双工通讯方式,一条通讯硬件链路上,只能有一个唯一的通讯任务,或发送或接收,不允许在同一个时刻出现多条工作任务的出现,原因也很容易理解,接收和发送无法区分、拆分各条通讯数据的信号电平。
通讯轮询的测试:
1)  创建一个测试项目,用2个s7-1200的cpu,S7-1214C DC/DC/DC版本V4.2和S7-1214C AC/DC/Relay版本V2.2,其中,V4.2作为客户机,V2.2作为服务器侧进行多任务工作测试,图示1:
创建客户机:
创建服务器:
2)  测试任务:客户机侧同时调用并触发Client指令,读取服务器40001区域数据,图示2:
用系统时钟标志位M0.5同时触发MB_Client指令的REQ管脚。
通讯任务1:
通讯任务2:
3)  创建通讯数据交互数据块,用于测试数据的交互,图示3:
客户机:
服务器:将数字1 ~ 20  分别写入DB3数据块的各变量中。
4)  分别将项目编译保存后,下载。在客户机看读取服务器DB3的数据情况,结果图示4:
2个MB_Client指令同时用系统时钟标志位M0.5触发,数据仍然能够正常交互。
5)  多个MB_Client指令调用又将如何?图示,再新建2个MB_Client指令,这样4个MB_Client指令同时被M0.5系统时钟调用的情况:
通讯数据交互仍然能够正常。
小结:
  测试环境用Protal版本V15组态的CPU版本V4.2作为客户机,CPU版本V2.2作为服务器,用于Modbus TCP测试客户机多个任务同时触发时,测试项目的4个MB_Client指令同时触发,数据交互仍然能够正常。由此说明,基于以太网硬件网络的modbus通讯无需再如同半双工那样,考虑同时触发调用通讯指令的问题。当然,测试可能存在一定的局限性和片面性,只是说明了一个测试的方向的预判结果。

您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|手机版|家电维修论坛 ( 蜀ICP备19011473号 川公网安备51102502000164号 )|网站地图|网站地图

GMT+8, 2026-8-31 13:29 , Processed in 0.100782 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表