指定状态表达式
在指定状态表达式时,请记住以下几点准则:
有效的运算符:ANDORNOT<><=>==!=()
有效的操作数:数字、标记、truefalse (truefalse 操作数不区分大小写)
用单引号指定字符串 (')
用双引号指定标记和函数 (")
如果表达式为空,则其求值结果为 false
对于生产线,这些表达式可能与生产线的资产相关。例如,如果生产线的两个资产中有任何一个处于“计划的停运”状态,则该生产线即会处于“计划的停运”状态。将每项适用资产的“计划的停运”表达式复制并粘贴到该生产线的“计划的停运”表达式中。
以下函数可用于状态表达式:
HAS_ALERTS - 如果设备上有活动的警报,则此函数的求值结果为 true
ARE_ALL_CHILDREN_RUNNING - 如果此设备的所有子设备都处于“正在运行”状态,则此函数的求值结果为 true
IS_SCHEDULED - 如果 当前时间处于班次内,则此函数的求值结果为 true
IS_DATA_OK - 如果在此设备的“其他属性”页面中定义的所有其他属性以及在状态表达式求值或 KPI 计算中使用的所有属性的数据质量检测结果都为良好,则此函数的求值结果为 true
如果在表达式中使用了上述函数之一,并且该函数适用于当前设备,则无需在表达式中指定设备的事物名称。指定了事物名称的函数有效,并可用于与其他设备相关的表达式函数中。
例如,如果名为 Line1 的生产线上包含了名为 Pump1 和 Pump2 的资产,并且想要在 Line1 的“警告”状态表达式中加入对任意一种资产的警报检查,则输入以下表达式:
"IS_DATA_OK" AND ("HAS_ALERTS" AND "HAS_ALERTS:Asset_Pump1" AND "HAS_ALERTS:Asset_Pump2")
最初创建生产线和资产时,其默认状态表达式如下:
“未配置”- NOT"<equipment_thing_name>:isConfigured"
计划的停运 - NOT "IS_SCHEDULED" OR ("IS_DATA_OK" AND (false))
警告 - "IS_DATA_OK" AND ("HAS_ALERTS")
正在运行 -
资产 - "IS_DATA_OK" AND (false)
生产线 - "IS_DATA_OK" AND ("ARE_ALL_CHILDREN_RUNNING")
非计划的停运 - "IS_DATA_OK" AND (false)
不可用 - true
* 
创建新设备时,该事物上的 isConfigured 属性会设置为 false。这会导致“未配置”状态评估结果为 true。一旦为该设备编辑并保存了至少一个状态表达式或者重新排序了状态,则会自动将 isConfigured 属性设置为 true
在 8.4 版本之前,某些状态评估逻辑发生在设备上定义的状态表达式之外。现在,用于状态评估的所有信息都存在于表达式中。对于在系统升级到 8.4 之前已存在于 ThingWorx Apps 中的设备,现有状态表达式都已更新为包含当前评估逻辑,同时保留任何先前定义的表达式:
如果现有表达式为空,则将其更新为该状态的当前默认表达式。
“警告”“正在运行”“非计划的停运”状态的所有现有表达式都与 IS_DATA_OK 函数串联在一起,如下所示:
"IS_DATA_OK" AND (<现有表达式>)
“计划的停运”状态被移动至“未配置”后面的第一个位置。 “警告”“正在运行”“非计划的停运”状态的现有表达式被合并到 OR 列表中,并和“计划的停运”的现有表达式一起合并到更新后的表达式中,如下所示:
NOT "IS_SCHEDULED" OR ("IS_DATA_OK" AND NOT (<“警告”表达式 > OR <“正在运行”表达式 > OR <“非计划的停运”表达式>) AND (<现有表达式>)