请问modbus-tcp中不定长数据怎么传输? 点击:2930 | 回复:5



celerylxq

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2012年11月30日
发表于:2012-12-14 11:34:05
楼主
modbus传输数据控制权都在主站端,即主站端想招多少数据,从设备便传送多少数据,如果从站端有不定长数据时要怎么传输呢?比如事件记录。



江湖混混-余 辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3350帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2012-12-14 12:59:08
1楼

可以在请求和响应中携带不定长数据的功能代码  数据部分前加上一个字节的数据统计

celerylxq

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2012年11月30日
发表于:2012-12-14 13:59:57
2楼
回复内容:
对:江湖混混-余 辉关于 可以在请求和响应中携带不定长数据的功能代码  数据部分前加上一个字节的数据统计 内容的回复:

先谢谢您的回复,可能是我描述不太清晰,我想说是,事件记录是从站设备随机产生的事件,当有soe产生时要怎么告诉主控端当前有soe了,有几条?因为modbus传输什么数据,传输多少数据都是主控端来决定的,如果不告诉主控端当前产生了多少条soe,那么主控端怎么知道要招多少字节数据呢?

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2178回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2012-12-14 14:30:29
3楼

方法1:主站不停轮询,读取有可能的最多的数据,由主站来判断数据的有效性

方法2:对于Modbus-TCP而言,可以多个主站并存,因此,如果技术上可行,可以将你的从站配置成主动发送,而主站来接收Modbus报文。这个可行不可行,取决于你的主从站到底是什么设备。

celerylxq

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2012年11月30日
发表于:2012-12-17 09:57:12
4楼
回复内容:
对:abysmal关于 方法1:主站不停轮询,读取有可能的最多的数据,由主站来判断数据的有效性方法2:对于Modbus-TCP而言,可以多个主站并存,因此,如果技术上可行,可以将你的从站配置成主动发送,而主站来接收Modbus报文。这个可行不可行,取决于你的主从站到底是什么设备。 内容的回复:

据我所知,modbus线路一般都是一个主站对多个从站(或者多个主对多个从),因此方法2所说的主动上报应该是行不通;方法一可行,但是这个灵活性不太好,比如从站最多有几百个soe,这时候轮询召就不适。

曾经用串行modbus时采用了扩展协议+07帧,07帧中一个位代表soe有更新,当主站检测到有soe更新时,先召唤soe条数,接着召唤定量的soe,但是modbus-ctp中似乎不支持07帧?

ranger _75

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 81回
  • 年度积分:146
  • 历史总积分:618
  • 注册:2001年3月22日
发表于:2012-12-20 09:05:50
5楼

同意abysmal关于 方法1:主站不停轮询,读取有可能的最多的数据,由主站来判断数据的有效性

方法2:对于Modbus-TCP而言,可以多个主站并存,因此,如果技术上可行,可以将你的从站配置成主动发送,而主站来接收Modbus报文。这个可行不可行,取决于你的主从站到底是什么设备。

对于Modbus-TCP而言,是可以支持多主站拓扑的。Modbus-TCP使用‘SERVER‘和‘CLIENT’的概念,允许多个CLIENT向1个’SERVER‘请求数据。

 


热门招聘
相关主题

官方公众号

智造工程师