modbus tcp事务处理标识符相关问题 点击:5003 | 回复:8



cf2400616

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:72帖 | 24回
  • 年度积分:0
  • 历史总积分:191
  • 注册:2011年4月24日
发表于:2011-07-18 21:47:04
楼主
各位大侠:

假如 组态王为客户机发送读一个寄存器的报文:00 00 00 00 00 06 01 03 00 00 00 01

设配应答:00 00 00 00 00 06 01 03 02 XX XX

组态王中对前面4个字节:事务处理标示符,协议标示符都没有处理。等于说是我应答时这4个字节可以为任意值。
西门子PLC 315的MODBUS TCP也是这样。

所以在此向问问大家 力控、易控、等各种组态软件, 是不是也是这样 事务处理标示符和协议标示符没有分析处理。

非常感谢。



ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-07-19 23:44:08
1楼

嗯,是可以不做任何处理。你也可以通过报文截取工具来查看

cf2400616

  • 精华:0帖
  • 求助:0帖
  • 帖子:72帖 | 24回
  • 年度积分:0
  • 历史总积分:191
  • 注册:2011年4月24日
发表于:2011-07-21 11:54:07
2楼
回复内容:
对:ye_w 关于

嗯,是可以不做任何处理。你也可以通过报文截取工具来查看

内容的回复:

恩 易控也试验了 还是不做处理。那怎样实现同时接受多条请求。因为事务处理标示符就是用来配对请求和响应的。

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-07-22 23:01:11
3楼

多条请求对应的地址和数据都不同啦

cf2400616

  • 精华:0帖
  • 求助:0帖
  • 帖子:72帖 | 24回
  • 年度积分:0
  • 历史总积分:191
  • 注册:2011年4月24日
发表于:2011-07-24 10:41:49
4楼
回复内容:
对:ye_w 关于

多条请求对应的地址和数据都不同啦

 

所以想请问下这位大侠。可以加我QQ 106253170 详细讨论,不胜感激。

内容的回复:
恩 这个我明白 我的意思是想知道假如这些组态软件在同时发送2条请求时一个读命令一个写命令,modbustcp的事务处理标识符是如何处理。是都为00 00 的话 他又怎样去找客户机应答的对应报文呢,应该有标记,如同MODBUSTCP顺序号,第一个00 00 第二个00 01  这个就可以区分开,但是我感觉这些组态软件都是一问一答  所以事务处理标识符一直是00 00   。

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2177回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2011-07-24 10:52:05
5楼
TCP能够识别请求/响应的对应。你用Wireshark抓包分析一下便知。

cf2400616

  • 精华:0帖
  • 求助:0帖
  • 帖子:72帖 | 24回
  • 年度积分:0
  • 历史总积分:191
  • 注册:2011年4月24日
发表于:2011-07-24 21:34:14
6楼
回复内容:
对:abysmal 关于TCP能够识别请求/响应的对应。你用Wireshark抓包分析一下便知。 内容的回复:

你的意思是TCP 传输层就可以识别请求和应答   那事务处理标识符就没用了?    MODBUS TCP的第一个和第二个字符就是事务处理标识符  就是请求报文和应答报文是否对应识别作用的

abysmal

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2177回
  • 年度积分:6
  • 历史总积分:11194
  • 注册:2001年10月26日
发表于:2011-07-24 22:04:30
7楼
我觉得没什么用。
其一传输层可以识别;其二在应用程序的实现中很少用到Transaction id,因为Modbus协议,是针对寄存器的。即使不区分对应关系,也不会造成什么误操作。
另外,有些组态软件是可以在接受到第一个响应之前连续发送请求的,一问一答模式效率太底,如果数据传输量大就力不从心了。

cf2400616

  • 精华:0帖
  • 求助:0帖
  • 帖子:72帖 | 24回
  • 年度积分:0
  • 历史总积分:191
  • 注册:2011年4月24日
发表于:2011-07-25 08:47:35
8楼
回复内容:
对:abysmal 关于我觉得没什么用。
其一传输层可以识别;其二在应用程序的实现中很少用到Transaction id,因为Modbus协议,是针对寄存器的。即使不区分对应关系,也不会造成什么误操作。
另外,有些组态软件是可以在接受到第一个响应之前连续发送请求的,一问一答模式效率太底,如果数据传输量大就力不从心了。
内容的回复:

非常感谢你的答案。可以加我QQ106253170  以后可以请教和讨论MODBUSTCP相关问题

热门招聘
相关主题

官方公众号

智造工程师