技术论坛

处理Modbus的帧格式和XMT发送缓冲区格式不一样问题

作者 主题
游民

经验值: 52
发帖数: 5
精华帖: 0
主题:【探讨】处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 楼主 2020-07-23 17:40:52

      CPU是224XP,PLC 的Port 1和驱动器用Modbus通信读,然后用Port 0 把Modbus返回的数据缓冲区的内容通过XMT发送到电脑串口。 

      可是XMT 的帧格式是第一个数据是要发送的字节总数,要如何在Modbus返回的数据帧前加上发送的字节总数呢?

      用M0.0来接收MODBUS_CONTROL的DONE位,是一直都不为1,但是ERROR位却等于0,这是不能用MODBUS_CONTROL的DONE位来作为下一个msg的标志位吗?


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1633907&b_id=3&s_id=0&num=6

版主

经验值: 25991
发帖数: 11808
精华帖: 43
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 1楼 2020-07-24 01:06:49
1、新开辟一个区域,装配XMT数据帧;
2、比如原通讯帧从VB1000开始,那么在VB999填上长度,XMT的发送区从VB999开始。
 
以下网友喜欢您的帖子:

  
游民

经验值: 52
发帖数: 5
精华帖: 0
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 楼主 2楼 2020-07-24 09:43:07

  这个方法我试过出现以下情况:

  1. 读取1个寄存器地址时,发送的是从03功能码到CRC的帧内容

  2. 读取多个寄存器时,发送的只是数据内容,地址、功能码和CRC都没有

    是库程序解包的原因吗?



 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 3楼 2020-07-24 09:59:56

所谓解铃还需系铃人,你在prot1是如何读取数据的?

是否考虑一个办法解读到读取的字节个数?

SMB2有用?


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 5楼 2020-07-24 16:28:25

可以有起始符呀,用这个符作为计数开始的标志。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25991
发帖数: 11808
精华帖: 43
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 6楼 2020-07-26 23:36:54
你把数据区的内容、XMT指令的格式,发上来。
 
以下网友喜欢您的帖子:

  
游民

经验值: 52
发帖数: 5
精华帖: 0
回复:处理Modbus的帧格式和XMT发送缓冲区格式不一样问题


只看楼主 楼主 7楼 2020-07-27 14:45:58

 这是读取1个或2个寄存器时,返回的数据显示,数据会重复

 

 


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
处理Modbus的帧格式和XMT发送缓冲区格式不一样问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。