Word和Int之间的距离

已锁定

tonyhwangtel

  • 帖子

    2
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2005-05-24

普通 普通 如何晋级?

Word和Int之间的距离

1661

8

2013-02-16 11:46:37

Word和Int作为16位数据类型,存放的数据格式肯定不同的(废话...)。但在实际应用中却真是很麻烦。年前一则应用错误,使朕不得不来吐槽一下。

16位数据从通讯获得,数值从Hx0000到HxFFFF,对应4~20mA。通讯数据作为Word储存到DB没有问题,但是在工程量转换中开始烦恼的数据格式转换了。

首先S7里的整数只有有符号型的,也就是说Int必须是最高位作为正负号。原始数据若要转换到Real浮点型,两条道都是黑,Word->DInt和Int->Real,都会把最高为作为负号处理,这样计算出来的浮点型数据肯定是错误的。

如果问题无法解决,不如退回原点。重新来看通讯来的4~20mA对应的Hx0000~HxFFFF,势必把4mA当作数轴上的0点,所得的数是不会出现负数的。如果工程量有负值,那么可以在浮点运算的时候处理。这样解决的办法自然出现了,果断将原始数据右移一位,这样4~20mA对应Int就成了Hx0000~Hx7FFF,满足S7要求。

(到这里真的是汗一把,因为设备运行中,不能停机。-_-b)

这么做有一点风险,就是将原来16位分辨率的模拟量转成了15位分辨率的。精度上会损失最多万分之三。但4~20mA的模拟量谁又会在乎这万分之三呢。

好了回到帖子标题,Word和Int之间的距离也就是右移一位的万分之三。
Word和Int之间的距离 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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