|
STEP7-MicroWIN SMART中浮点型数据求绝对值的方法及引申
通常的方法是: 1.先判断浮点数据是否小于0.0 2.如果小于0.0,乘以-1.0,获得绝对值 那还有没有其它更好的方法? 在STEP 7-MicroWIN SMART中实数(或浮点数)使用 ANSI/IEEE 754-1985 标准(单精度)表示。 一个浮点数为4字节32位:最高位为浮点数的符号位(sign bit)(第31位)0表示正数1表示负数,8位指数占23-30位,其余为尾数的小数部分(0-22位)。 从浮点数存储的格式看出,只要使最高位符号位为0就可以得到任意浮点数的绝对值。 方法:把32位浮点数和16#7FFFFFFF数进行与运算,使最高位为0其它位不变。 比较上面的两种方法: 先看一下两种方法使用的指令执行时间(数据来自于S7-200 PLC系统手册) 浮点数比较指令的执行时间 浮点数乘法指令的执行时间 双字数据与的执行时间为 可以看出,用第一种方法求一个浮点数的绝对值,最大时间可能需要195us。而第二种方法只需要30 us。
通过求浮点型数据绝对值的例子告诉大家,如果要减小PLC的程序扫描周期以提高整个系统的性能,就要了解各指令的执行时间,善于在编程时找到比较好的算法来实现相同的功能。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |