回复:Modbus TCP Client 应用中 &VB 值超过65535的情况,如何实现??

已锁定

tingal_cai

  • 帖子

    85
  • 精华

    1
  • 被关注

    2

论坛等级:侠士

注册时间:2021-11-03

普通 普通 如何晋级?

发布于 2022-12-21 21:19:39

14楼

你好,楼主。

PLC通过Modbus与仪表或变频器通讯时,确实存在读到寄存器(Word)的值处于0~65535(数据类型为Uint)或者-32768~32767(Int)的情况。比如说PLC与某国产变频器进行Modbus通讯,读到400023(最大工作频率)的值为5000,此时,我们需要将读到的值除以100后得到实际值50.00Hz;再比如说,读到400007(额定电流)的值为420,我们除以10后得到额定电流为42.0A。具体缩放倍数需要查看相应的说明书。

Modbus通讯,字寄存器的最大值就是0~65535或-32768~32767。如果是前者取值范围(无符号整型),不能用编程软件自带指令I_DI、DI_R去转换计算(自带的均为有符号整型转换,转换后会出现负数的情况),需要用到无符号数据类型进行转换,才不会出现转换异常的情况,详见下面链接;当然如果是后者的取值范围,则不存在转换异常的情况。楼主想要的值超过了这个范围,可能是楼主把缩放倍数搞错了,有的值是缩小10倍,有的是缩小100倍详见说明书

链接:

无符号数据类型的转换、比较及运算解决方案


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9023条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。