马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?请使用中文注册
×
关于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通讯无需再如同半双工那样,考虑同时触发调用通讯指令的问题。当然,测试可能存在一定的局限性和片面性,只是说明了一个测试的方向的预判结果。
|