登录
首页 PLC论坛 台达PLC
回帖 发帖
正文

主题:IEEE-754在PLC中如何处理?

点击:3969 回复:14

引用 305456779 在 2015/11/11 11:35:06 发言【内容省略】

最高位31位那是符号位,0代表正数
然后100 0000 1 (23~30位)为整数部分,他代表的是一个偏移量,转换为10进制就是129,减去127就是2.
110 1100 1100 1100 1101 代表小数位:
从左到右分别是2的-1次方.....2的-23次方,现在就是0.5+0.25+0.0625+....
然后将上面的小数部分+1.0,就得到了1.8125(当然不够准确,因为后面我没有算下去)
然后将1.8125去乘以上面算下来的偏移量,2的2次方就是4.
算法就是:
首先通过与操作,将23~30位的数据取出,然后右移23位,减去127,结果保留备用。
然后通过与操作指令,将0~22位的数据取出。
使用循环指令,计算小数部分的和
将小数部分+1.0构成最终的值,然后乘以2的偏差值次方(偏差就是上面第一步算出的)
最后使用与指令来提取符号位,判断正负,如果是负的,将上面算的乘以-1.0就可以了。
如果使用ST语言编程的话,大概在20行左右的程序。
15-11-11 15:23
看到说“40ECCCCD”,以为是已经合成了呢;
看了一下台达PLC手册,DTM指令可实现两个8位数据合成为一个16位数据。
15-11-14 13:40
最近比较忙,请看下我现在写的,只适用于台达的!
15-11-17 09:09
附件 1.jpg
附件 2.jpg
附件 3.jpg
附件 4.jpg
15-11-17 09:10
还有地方可以优化的,只是时间赶没再优化,写到哪算哪
15-11-17 09:11

上一页 上一页

工控新闻

更多新闻资讯