我们今天能为您提供什么帮助?

Citect高级报警中遇到报警值不正确的情况

问题描述:
我在高级报警的表达式里写abs(LT1-LT2)>0.005 当LT1=11.1 LT2=11.105 不报警 ;当LT1=11.1 LT2=11.095 就会报警 请问如何处理这样的情况

所属产品线:
AVEVA™ Plant SCADA

解决方法:

建议将判断放在PLC 触发的结果给到线圈 在传到Citect

Citect中报警不准确的情况,是因为浮点数计算总会引入一些“错误”,原因是二进制表示的本质。

内部Citect使用c ++double”类型,这是双精度浮动点数,用于Citect“真实”类型变量。这意味着,如果你进行浮点计算,那么让我们说一个理想的答案是A_ideal,你得到的答案是A,假设机器ε是E(ε=2.22e-16),那么A将在范围内

A_ideal-E<A <A_ideal + E

在做浮点时基本上无法得到确切的答案计算。这是浮点数在当前计算机中的工作原理硬件和软件环境。这是一个系统限制,不在我们的范围内控制。例如当你告诉计算机变量的值是0.005时,它是什么时候转换成二进制,值将是

0.005000000000000000104083408558608425664715468883514404296875



是否有帮助?

探索更多
范围:
探索更多
范围:

需要帮助?

需要帮助?

产品选型工具

产品选型工具

快速轻松地为您的应用找到合适的产品和附件。

获取报价

获取报价

开启在线采购咨询,我们的专家将与您联系。

我要采购

我要采购

开始在线采购咨询,专家将会与您联系!

帮助中心

帮助中心

一站式查找满足您所有需求的支持资源。

  • 产品文档
  • 软件下载
  • 产品选型工具
  • 产品替代和更换
  • 帮助和联系中心
  • 查找我们的办事处
  • 获取报价
  • 开发者社区
  • 人才招聘与职业发展
  • 公司介绍
  • 新闻中心
  • 投资者
  • EcoStruxure 架构与平台
  • 职位搜索
  • mySchneider一站式数字化业务平台
  • 搜索常见问题解答
  • 科普文章
  • 支持中心热线 4008101315
  • Cookie通告
  • 使用条款
  • 京ICP备05053940号
  • 更改您的 cookies 设置