Modbus_RTU新指令里,如何设置两线制和四线制?

已锁定

昔日如诗

  • 帖子

    826
  • 精华

    3
  • 被关注

    10

论坛等级:侠圣

注册时间:2018-04-17

钻石 钻石 如何晋级?

Modbus_RTU新指令里,如何设置两线制和四线制?

2437

1

2019-09-05 17:13:42

    Modbus_RTU新组态指令是Modbus_Comm_Load和Modbus_Master(老指令是MB_Master)。

    我是第一次用Modbus_RTU通信,此前看了许多视频教程,也查过许多手册和贴子,然后把程序写好。

    我将Mode设为4,以为这样就可以将通信变成两线多从站的。因为手册上是这样讲的,如下图红色方框所示:

    

    由于Modbus_RTU主要是读和写两项功能,我得经常用读和写,今天发现一件大事:Modbus_RTU居然不是用Mode=4或者3来实现读和写。事实上,Mode只能等于0,1,2,11,80,读和写必须配合着地址来用。我就被搞得头晕脑胀了。我看过那么多视频教程,以前也有用Modbus_TCP的经验,都是用3或者4来实现读和写呀,怎么现在居然没有用这两个数字?

    后来渐渐清理了思路:此Mode非彼Mode。

    在新的指令Modbus_Comm_Load和Modbus_Master,我们首先得给Modbus_Comm_Load的Mode赋值为4,才能变成两线多从站的。由于我以前看的视频教程里没有这一步,所以我不知道该这么做。尤其是,Modbus_Comm_Load本身没有Mode引脚(如下图),我哪里会想到要更改它的Mode的数值。

  

    后来试了试,觉得应当将Modbus_Comm_Load背景数据块里的Mode元素赋值为4,这样才能将这个项目的组态变成两线多从站的了。我后来发信问西门子官方,后者很快就回电,说我做的是对的。

    

    因此,正确的编程是下面这样的:

    

    前面多了一条Move指令。这是所有视频教程里所没有的。

    我此前的错误在于:没有看到Modbus_Comm_Load的Mode引脚,就不加理会,按默认配置去做,以为这样总不会错;后来给Modbus_Master的Mode赋值为4,以为这就变成了“半双工RS485双线模式”;但后来又发现Modbus_Master的Mode=4是非法的,只能等于0,1,2,11,80,那么怎么实现对外围设备的数据的读和写呢?这样我陷入混乱。

    老指令MB_Comm_Load和MB_Master的视频教程给我带来了混乱(就是让Mode等于3或者4),新指令Modbus_Comm_Load和Modbus_Master的视频教程我只看到过一次,里面没有通过Move指令把4赋值给Modbus_Comm_Load的背景数据块里的Mode元素的,因为它们都是四线一站的。

    最终解决了这个问题。坛子里的大侠别笑。我于Modbus_RTU通信上还是初学者 

Modbus_RTU新指令里,如何设置两线制和四线制? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15113条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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