急 台达plc,RTU模式溢出问题 点击:286 | 回复:2



A403087486

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 2回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2011年10月22日
发表于:2011-10-29 17:17:57
楼主
从变频器读出来的值超过255就溢出,溢出后它会分别寄存在两个寄存器上,比如:d10高位 d11低位。现在有两个值要怎么把它们合成一个我要的值呢?比如:256(d10=H1 d11=H1) 哪位高手帮帮忙



yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-10-29 18:36:58
1楼

从变频器读出的数据是ASCII,通常是8位模式传输,应该是4个寄存器(2个的还没见过)。

假定4个寄存器的地址是D20、D21、D22、D23,

D20=31(ASCII,下同)、D21=33、D22=38、D23=38。

4个寄存器数值合并可以用:“HEX   D20   D50   K4”指令

经转换后,D50内部的数值为:1388(16#),也就是5000(10#)

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-10-29 18:56:22
2楼
更正一下:以上的说法(4个寄存器)是ASCII模式,RTU模式还是2个寄存器,对于2个寄存器合并,可将第一个寄存器D10内的数值左移8位,然后再和D11进行逻辑或,其结果就是合并的数据。

热门招聘
相关主题

官方公众号

智造工程师