抖音粉丝群1
『7x24小时有问必答』

STEP7-MicroWIN SMART中浮点型数据求绝对值的方法及引申

通常的方法是:
1.先判断浮点数据是否小于0.0
2.如果小于0.0,乘以-1.0,获得绝对值
1.jpeg
那还有没有其它更好的方法?
在STEP 7-MicroWIN SMART中实数(或浮点数)使用 ANSI/IEEE 754-1985 标准(单精度)表示。
一个浮点数为4字节32位:最高位为浮点数的符号位(sign bit)(第31位)0表示正数1表示负数,8位指数占23-30位,其余为尾数的小数部分(0-22位)。
2.png
从浮点数存储的格式看出,只要使最高位符号位为0就可以得到任意浮点数的绝对值。
方法:把32位浮点数和16#7FFFFFFF数进行与运算,使最高位为0其它位不变。
3.png
比较上面的两种方法:
先看一下两种方法使用的指令执行时间(数据来自于S7-200 PLC系统手册)
浮点数比较指令的执行时间
4.png
浮点数乘法指令的执行时间
5.png
双字数据与的执行时间为
6.png
可以看出,用第一种方法求一个浮点数的绝对值,最大时间可能需要195us。而第二种方法只需要30 us。

通过求浮点型数据绝对值的例子告诉大家,如果要减小PLC的程序扫描周期以提高整个系统的性能,就要了解各指令的执行时间,善于在编程时找到比较好的算法来实现相同的功能。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码