恭喜,你发布的帖子
发布于 2022-07-07 18:12:25
3楼
这种思路本来就有问题!
1:一个MODBUS TCP 连接 只用一个背景实例 ,至于多次调了,那是受到了,西门子给做的DEMO的影响!
2:推荐做法是在西门子标准MB_CLIENT基础上再封装一层,一个MODBUS TCP连接只调一次,多个命令,轮询执行,而不是一个命令,单独调用一次。
就像第三方网关一样,配置个命令表,PLC程序内部扫描有多少MB命令需要执行,上一个执行完毕,或者超时,再执行下一个命令;
程序内部 根据命令表动态改变
MB_MODE
MB_DATA_ADDR
MB_DATA_LEN
三个参数类容
我也没那么用过。
看了一下,逻辑上确实可行。西门子提供的功能块,能够确保同一扫描周期中,同一背景数据块下,同一FB多次调用的正确输出。
除了通讯这类程序,没遇到啥程序需要这样做?也可能复杂多变的工艺有吧。
请填写推广理由:
分享
只看
楼主