虽然浮点数在状态上相等,但为什么在“比较实数是否相等”运算中却检测到存在差异?

描述:
对于“比较实数是否相等”的比较运算,由过程运算提供的实数类型的数值非常不精确。由于实数存在修正的误差,故不推荐使用此数据格式进行“相等”比较。
浮点数 (或实数) 由一个 32 位的单精度数表示,而访问时使用双字格式。在 S7-200 中,实数精确到 6 个小数位。
当使用包括较大数和很小数的一系列数值来计算实数时,可能会出现不精确的结果。当在状态表中查看实数时,相同的实数可能有不同的二进制表示。
因此我们推荐要使用“LDR=”函数,而是使用“LDR<=”和“LDR>=”这两个函数来进行比较运算。这为你提供一个数值比较的比较框架。

以归档文件形式提供的 STEP 7 Micro/WIN 库:
将“real_compare”文件复制到单独的目录内,然后双击启动该文件。将 STEP 7 Micro/WIN 库解包。然后便可以集成该库,在版本 V3.2.4.27 及更高的 STEP 7 Micro/WIN 中,可以将该库用于 S7-200 项目。

注意:

  • 关于在 STEP 7 Micro/WIN 中插入库的信息,可以在条目号 16689345 中找到。

虽然浮点数在状态上相等,但为什么在“比较实数是否相等”运算中却检测到存在差异? real_compare ( 64 KB )

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc330337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论