跳转至

9.计算点与表达式

计算点

在采集通道中可以用计算点来做简单的运算,含:赋值运算、加、减、乘、除等,表达式计算的运算周期是其所属通道的交互频率属性值。

其中,如果计算点的类型是字符串,则只支持加法运算,会将多个测点的字符串值(字符串值中不允许出现运算符&符,@符)进行拼接;

非字符串测点,最多支持4个测点参与运算,在计算点的地址上填写表达式即可,其中对系统测点的引用,直接使用系统测点测点名称。对其它测点的引用有两种情况:

  1. 以测点名来引用,则测点名前增加“&”前缀。

  2. 以测点描述(物模型)来引用,则测点描述(物模型)前增加“@”前缀。

注意

用测点描述(物模型)来引用时,被引用的测点必须与目标测点在同一个设备下,且同一设备下测点描述(物模型)不可以重复。

使用范例见下一小节表达式

表达式

表达式功能必须在功能码为"计算点"的测点上才能使用,若功能码无法选择为"计算点"则表示该协议不支持表达式功能;

网关软件版本<1.3.44时,使用表达式功能要求测点名称不能出现中文,例如"&支路1电流+&支路2电流"这样是错误的,可以更正为"&Ipv1+&Ipv2";

网关软件版本≥1.3.44时,表达式里支持中文。

网关软件版本>1.3.56时,最多支持8个测点参与运算,且表达式长度必须少于87个字节。

系统测点

例:

参考上一章节系统测点引用中对系统测点的操作,使用了赋值运算。

字符串测点

例:

有2个测点,YC1的值为“test1”,YC2的值为“test2”;

欲拼接YC1和YC2的值,那么新建一个YC3,功能码选择计算点,数据类型选择字符串,地址中填“&YC1+&YC2”,则YC3的值为“test1test2”,

配置如下图:

非字符串测点

例:

有2个测点,输入功率P1为100,输出功率P2为90,欲计算工作效率;

那么新建一个测点P3,功能码选择计算点,然后在地址处填写“&P2/&P1”,其余参数默认即可,则P3的值为“0.9”,

配置如下图:

表达式例子

取反

提示

该功能在下位机版本≥1.3.44生效。

例:

有一个开关量点YX5(数据类型为),值为0或者1,欲对其取反,则新建一个计算点,地址填写not(&YX5),则该计算点和YX5的结果相反;

提示

若该测点的数据类型不是,那么地址填写not(&YX5>0)

进制转换

例:

有一个模拟量点YC4,值为16进制的0x15(显示出来是15,和预期的21不符),欲将其转换为10进制,则新建一个计算点,地址填写tonumber(&YC4,16),则该计算点会将YC4的值转换为十进制的21。