求指点:Modbus一个浮点数据的高位和低位寄存器地址能不能互换? 点击:3176 | 回复:2



youge_61

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:119
  • 注册:2007年1月16日
发表于:2014-07-13 14:37:08
楼主

请问台达触摸屏,在Modbus通信中,读仪表的一个浮点数据,要把高位寄存器和低位寄存器的地址互换要怎么做?

例如仪表的报文是:地址(0C),命令(03),起始寄存器地址(高位00H),起始寄存器地址(低位00H),寄存器个数(高位00H),寄存器个数(低位06H),CRC16低位(C4H),CRC16高位(D5)

现在触摸屏上的数字跟仪表的数字不一样,在触摸屏上把寄存器地址的二进制读出来,经过IEEE浮点转换发现只有把寄存器地址的高位和低位两个地址互换的二进制再转换IEEE浮点才与仪表的数一样!!!!!!!!!!!台达触摸屏能不能这么做呢?




jsyljb

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1289回
  • 年度积分:0
  • 历史总积分:5847
  • 注册:2011年4月24日
发表于:2014-07-14 09:58:54
1楼

你可以考虑使用"SWAP"指令,它应该符合互换要求:高8位与低8位颠倒排列次序。

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-14 14:30:52
2楼

在设置通讯参数中看一下你用的控制器类型是MODBUS下面的哪种,如果是984 RTU MASTER,看一下“特殊”参数中,将EXTRA 2的低位字优先换成高位字优先再试一下看,不行的话再考虑jsyljb所说的用宏指令来做地址内容互换。


热门招聘
相关主题

官方公众号

智造工程师