请教一个奇怪的MODBUS RTU的通讯失败的问题

已锁定

woaiyy

  • 帖子

    39
  • 精华

    1
  • 被关注

    1

论坛等级:游士

注册时间:2015-03-15

黄金 黄金 如何晋级?

请教一个奇怪的MODBUS RTU的通讯失败的问题

3002

10

2025-04-03 17:01:07

用1200与欧姆龙的E5CC温控仪通讯,读取3组,每组1个数据,写入1组5个数据。

新建一个项目,只编写了MODBUS RTU通讯相关程序,轮询通讯一切正常。

在原有的一个项目里面(无MODBUS通讯),新建了一个FC块,然后在这个FC块里面进行modbus RTU通讯(通讯内容同上),通讯失败,无法读取写入任何数据。

检查发现,轮询通讯的每一次Modbus_Master通讯, done都显示完成,但实际无通讯。实时监控该FC块,发现每个读取的Modbus_Master指令,mode设置为0,但监控到的mode为1。此时同时用串口工具监控通讯,发现PLC确实只发出了写入的指令。

将FC块中轮询通讯的唯一一个写入数据的Modbus_Master指令,改成读取 (mode从1改成0),其他3个读取的Modbus_Master指令不变,此时再运行PLC,通讯正常。

将该Modbus_Master指令改回写入(mode改回0),但实际不参与轮询,即 3个读取的Modbus_Master指令自轮询,这段写入的Modbus_Master指令的REQ始终为false,此时运行PLC,通讯依然失败,监控FC块,发现每个读取的Modbus_Master指令的mode在监控下确实又变成1了。

按照官方教程的轮询,每个参与轮询的Modbus_Master指令需要使用相同的背景块,为什么会出现这种参数互相干涉,甚至不起作用的指令依然干涉了其他指令的情况?同时在一个新建的项目中又完全不会有这个问题?

而且我为了排除原有的项目的其他干扰,在OB1中删除了所有引用的其他块,只引用了该通讯的FC块,依然出现了这个问题。

请问谁是否有碰到过这种情况,是怎么解决的?

谢谢。

请教一个奇怪的MODBUS RTU的通讯失败的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15705条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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