展开查看
电表是32位IEEE754浮点数,利用SBCM01板,主站程序已经将数据读到了VB400-VB403里面,现在问题是怎么转换成十进制的小数。
VB400-VB403里的数值按照二进制观察是正确的,但是监控VD100(理论上VD100就是VB400-VB403)显示是0.
麻烦具体一下怎么将VB400-VB403数值转换成十进制小数点。有的说西门子本身就是这种浮点数格式,我的理解是将VB400-VB403数据整合到一个VD里面,或者默认的VD100就是,然后再通过什么指令转换成十进制但是现在VB100-VB103有数值,VD100就没数值,更不知道怎么转换了,用那个指令,谢谢各位了先
提问者:lunxian001
你查看VD400,格式:浮点数,读上来应该就是你要的小数
补充问题:只是显示格式问题,可参考相关问答:
https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=174129&cid=1028
仪表读取的浮点数数值在线监控时,显示为有符号数字是一长窜,但我想在有小数点的基础上进行运算。
比如VD400浮点数显示为232.8768,程序监控时VD400数据显示为+1130946480,这两个其实就是同一个数的两种显示,但我运算是肯定是针对232.8768这运算,肯定不是针对+1130946480,可是程序默认就是这个。比如我想VD400+VD410进行运算,VD410内的数值是我手动输入的,我输入100想得到的结果是232.8768+100=332.8768,可程序输入100只会让结果变成+1130946480+100=+1130946580。我的理解是要么将+1130946480变成232.8768,再加100,等于332.8768,要么将100变成一长窜数字跟+1130946480等到另外一个长窜数值,这个数字再变成结果332.8768。我现在就是不会这种运算,大神们讲的都很笼统,说没必要变换,可是不变换我又没法运算,请教一下具体的步骤。