示例-对象状态
Z
参数, 常在PC端、APP上作为对象状态使用。
Z
=0 停止/关机Z
=1 运行/开机Z
=2,3,4…… 其他/离线
案例1-终端有上报数据的写法
[
["Z1","","开关机状态","STA","$AprusID-1","L1_3_4877","","",{"expire_time": "1h","default_value": 2}],
["Z", "","设备状态", "STA","$AprusID-1","L1_3_4877","isnull(Z1)?2:(Z1==1?1:(Z1==0?0:2))","",{"expire_time": "1h"}]
]
说明:
按Z
参数配置:
- 当适配器
L1_3_4877
有上报,会触发表达式1"isnull(Z1)?2:(Z1==1?1:(Z1==0?0:2))"
,对Z
值 赋值更新; - 当表达式1中
Z1
值有更新,Z
也会被触发更新; - 如适配器未上报过数据,
Z
是空值,因为没有触发赋值
案例2-终端有无报数据均可的写法
[
["Z1","","开关机状态","STA","$AprusID-1","L1_3_4877","","",{"expire_time": "1h","default_value": 2}],
["Z", "","设备状态", "AGT",{"event":"timer_event","block":"agent","type":"one_minute_event"},"uniqueid","isnull(Z1)?2:(Z1==1?1:(Z1==0?0:2))","",{"expire_time": "1h"}]
]
说明:
按Z
参数配置,每1分钟(one_minute_event
) ,会触发表达式1 "isnull(Z1)?2:(Z1==1?1:(Z1==0?0:2))"
,对Z
值赋值更新; 同样如 表达式1中 Z1
有更新也会触发对Z
值赋值更新;
案例3-设备状态最全判断
Z值如下:
- 0 停机 (适配器在线,按采集数据判断为停机)
- 1 开机 (适配器在线,按采集数据判断为开机)
- 2 数据中断 (适配器在线,但采集不到数据)
- 3 离线 (适配器不在线)
- 4 未知 (未知)
映射表如下:
[
["Z1", "", "开关机状态","STA", "$AprusID-1","L1_3","","",{"expire_time": "1m","default_value": 4}],
["csq","", "CSQ", "STA", "$AprusID-1","csq", "","",{"expire_time": "1m","default_value": 4}],
["Z", "", "设备状态", "AGT",{"event":"timer_event","block":"agent","type":"one_minute_event"},"uniqueid","(isnull(csq)?3 : (isnull(Z1)? 2 : Z1))","",{"expire_time": "1m"}]
]
说明:
- 适配器
csq
30s上报一次。可以认为是适配器在线并有上报状态 - 示例中,适配器
L1_3
就是设备开关机状态(0-停机、1-开机,无其他状态) L1_3
未上报,超过1m
即1分钟,Z1数值被清空(不是空字符串,空值可通过isnull
判断),空字符串可通过Z1==""
判断
附录:Key及LogicExpr1触发说明
[FV/Code, LabelEn, LabelLocal, Category, Channel, Key, LogicExpr1, LogicExpr2,PublicParams]
当适配器 Key
有上报或 LogicExpr1
表达式中有参数更新,则FV才会触发FV更新
文档更新时间: 2024-06-07 09:48 作者:技术支持