回复:关于S71200/1500 MB_Client 不进行轮询时REQ是不是任何时候都设置为TRUE执行效率最优?

已锁定

威师爷

  • 帖子

    5108
  • 精华

    47
  • 被关注

    255

论坛等级:至圣

注册时间:2013-09-18

白金 白金 如何晋级?

发布于 2022-09-30 09:26:53

5楼

展开查看
以下是引用yming在2022-09-26 18:57:03的发言 >3楼

你的理解有误。这是Modbus_TCP通讯

不同的连接ID代表了占用的不同连接资源。

REQ在这里是启动连接,当状态字为7002时,建立连接完成。


然后它将连续地将你定义的缓冲区数据向服务器 读/写操作。你只需要在Done=1时,完成报文数据移动、修改。即便物理链路断开,(网线插拔),它也会自动再连接。(不用重新REQ)


对一个服务器同时读/写,用两个客户端,分别使用两个连接(固定)ID。分别REQ后,它会一直维持这两个连接;直到DISCONNECT。(当断开DONE之后,释放这个连接ID)


对一个服务器分时读/写,用一个客户端,使用一个连接ID;每次只能读或写。


你可以使用多个客户端,分别连接不同的服务器IP。直到连接资源用光。


若连接资源不够用、或网络负载太大。那么就需要使用DISCONNECT,通讯完成,断开(释放)连接。更换服务器(或暂停)数据。让别的客户端使用这个连接ID。




谢谢y版的细心描述并且一步步引导。非常感谢!


也就是说,两个客户端分别采用两个连接ID 去读取同一个IP的服务器,并且服务器端又分开502与503端口分别对应两个客户端的读写,也就是MB CLIENT 1 连接ID1 读取MB服务器端口502的数据 ,MB CLIENT 2 连接ID2写入到MB服务器端口503的数据  那么在这个过程中两个MB_CLIENT 的REQ直接直接TRUE即可是这样吧。我可以理解为这个REQ只是触发ID连接的作用吗?也就是数据的读写在连接成功以后MB_CLIENT在内部是自动进行工作的与REQ的触发频率无关是这样吗?

工业起重机防摇摆 QQ:404136820 AntiSwayControl
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15108条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。