恭喜,你发布的帖子
发布于 2025-06-27 09:47:35
9楼
测试硬件配置已经明确,是2个s7-1200之间的通讯数据交换,且数据交互都是各自的DB3数据块中进行。
“MB_CLIENT”功能块多次调用是同一个背景数据块,本次测试是同时读取40001开始的同一个寄存器,只是区域不同。
为测试同时触发“MB_CLIENT”指令,我已经加多到6个“MB_CLIENT”通讯指令,同时用M0.5系统时钟触发,各指令的错误status值,均在7004/7006和8200之间跳变,这些信息是正常通讯状态下的提示信息。
至于你说的“MB_CLIENT”通讯指令管脚,MB_MODE是否为读和写,这仅仅只是具体通讯指令的工作任务而已,不会对测试的方向产生偏差。
6个“MB_CLIENT”指令同时被M0.5系统时钟触发的情况,图示:
1. 看了你下面回复,你V2.0版本固件和指令做服务器端,不需要设置连接CONNECT,我不知道V4.0这一版本做服务器,有这个CONNECT连接会不会有影响。我没有1200 PLC无法验证。你可以用两个V4.0这一版本的 PLC去做验证,或是你这个做客户端的改成做服务器端,再去验证。
2. 你把服务器端数据实时改动,你再去做同时读取,看数据会不会实时变化。你既然做了多个自己,你分一半出来,一半是读取数据,一半是写入数据,这个数据都是实时改变,不要一直不更新数据。
3. 你可以做轮训方式,第一次同时激活4个指令后再去轮训激活另外4个指令,你多几个轮训,每次都激活4个指令,看轮训后的数据会不会有问题。就当是通讯数据很大,一次无法实现读写,需要分开多次轮训方式去做轮训,只是这个轮训一次激活指令比较多。不管是那种通讯都有一次交换数据的上限。我的第三点就当是每次通讯数据都到了上限,需要分开多次轮训。
既然你测试后得出结论是modbus tcp 不需要轮训也是可以正常使用。那几拜托你帮忙给我解开这几点疑惑。
请填写推广理由:
分享
只看
楼主