恭喜,你发布的帖子
发布于 2022-09-30 11:08:55
6楼
大家好,S71200/1500 作为MODBUS TCP的客户端对MB 服务器端进行读写数据,目前我的客户端采用了读写分开的方式,MB服务器端也采用了读写分离的方式(服务端准备了502端口与503端口客户端读取502端口的数据,客户端写入数据到503端口)
本次问题的疑问是,采用S7-1200/1500CPU 调用两次MB_CLIENT 客户端 分别分配不同的连接ID与连接远程端口,这样是不是意味着我的MB_CLIENT就不需要进行轮询操作了?
那么这个时候MB_CLIENT的REQ接口是不是CPU进入RUN状态时直接TRUE即可?
还是有什么更好的方法?
希望大家探讨一下,谢谢!
如下图片时REQ的说明
对的,因为你只有两条Modbus命令,并且你是建立了两条连接资源分别去对应的,没毛病,REQ可以一致为TRUE,程序块会连续的自己一次次去读或者写的。
但是如果对同一个服务器进行读写(或者多条modbus命令),我通常用轮询去做,即使用轮询,REQ也可以一直为TRUE的,通过done或者error标志,然后去改变接口连接的mode和其他输入参数就可以了。
通过轮询把数据读到指定的Array的BufferStartAddress指定的起始区域,或者从指定的区域写。可以设置错误重复读写的次数。或者可以设置命令只执行一次(通常用于写)。
请填写推广理由:
分享
只看
楼主