Skip to content

概述

变量表达式是一种基于 JavaScript 语法的动态计算机制,用于对实时变量(如传感器值、设备状态等)进行数学运算、逻辑判断、函数处理和状态联动。

表达式填写规范

1. 变量表达式格式

举例

基本格式:函数([变量名])

Math.sin([角度变量])

2. 参数传递

  • 变量格式:变量名用方括号 []包裹
  • 参数传递:系统自动将方括号中的变量名替换为变量值
  • 示例:[温度]→ 变量值(如 25.3)

3.返回值概述

  • 函数计算结果自动返回
  • 返回类型取决于具体函数的返回值类型(数字、字符串、布尔值等)
  • 表达式结果可直接用于嵌套计算

示例:找到变量1和变量2中比较大的+5 ,变量1的值为2,变量2的值为3 。

填写: Math.max([变量1],[变量2]) +5 ,预期结果等于 3 + 5 = 8

使用提示

  • 变量格式:所有变量必须用方括号 []包裹
  • 参数类型:确保传入的参数类型与函数要求一致
  • 表达式书写:使用标准的JavaScript语法

基础数学运算

1. 四则运算

运算类型功能说明语法/函数参数返回值示例预期结果
除法计算两个变量的商[被除数] ÷ [除数]被除数和除数两数之商6 ÷ 32
取余计算两个变量相除的余数[被除数] % [除数]被除数和除数相除后的余数5 % 32
加法计算两个变量的和[变量1] + [变量2]两个数值变量两数之和5 + 38
减法计算两个变量的差[被减数] - [减数]被减数和减数两数之差5 - 32
乘法计算两个变量的乘积[变量1] × [变量2]两个数值变量两数之积5 × 315

注:使用除法和取余时需要注意除数为0的情况,否则计算不出来结果

举例

混合运算:先乘除后加减 [变量A] + [变量B] * [变量C] - [变量D] / [变量E]

使用括号改变运算顺序 ([变量A] + [变量B]) * ([变量C] - [变量D])

2. 指数运算

用法:Math.pow([底数变量], [指数变量])

示例:[底数变量]值为2,[指数变量]值为3,Math.pow([底数变量], [指数变量]) 预期返回值 8

三、数学函数表达式

3.1. 三角函数

功能用法示例
正弦值Math.sin([角度变量])[角度变量]设为1.5708,Math.sin([角度变量]) 返回 1
余弦值Math.cos([角度变量])[角度变量]设为0,Math.cos([角度变量]) 返回 1
正切值Math.tan([角度变量])[角度变量]设为0.7854,Math.tan([角度变量]) 返回 1

3.2. 对数/指数函数

功能用法示例
自然对数Math.log([数值变量])[数值变量]设为2.71828,Math.log([数值变量]) 返回 1
10为底的对数Math.log10([数值变量])[数值变量]设为100,Math.log10([数值变量]) 返回 2
e的指数次方Math.exp([指数变量])[指数变量]设为1,Math.exp([指数变量]) 返回 2.71828

3.3. 数值处理函数

功能用法示例
向下取整Math.floor([数值变量])[数值变量]设为5.8,Math.floor([数值变量]) 返回 5
向上取整Math.ceil([数值变量])[数值变量]设为5.2,Math.ceil([数值变量]) 返回 6
四舍五入取整Math.round([数值变量])[数值变量]设为5.4,Math.round([数值变量]) 返回 5
计算绝对值Math.abs([数值变量])[数值变量]值为-5,Math.abs([数值变量]) 预期返回值 5

3.4. 极值处理函数

功能用法示例
从多个数中找出最大值Math.max([变量1], [变量2], [变量3], ...)[变量1]设为5,[变量2]设为8,[变量3]设为3 返回 8
从多个数中找出最小值Math.min([变量1], [变量2], [变量3], ...)[变量1]设为5,[变量2]设为8,[变量3]设为3 返回 3

3.5. 进制转换

功能用法示例
将指定进制转换为数字parseInt([字符串变量], [基数])[字符串变量]设为"1010",[基数]设为2(该字符串是二进制字符串) 返回 10(二进制1010转十进制)
将数字转换为指定进制[数字变量].toString([基数])[数字变量]设为10,[基数]设为2 返回 "1010"(十进制10转二进制字符串)

常用进制对照: 二进制:只有0和1 八进制:0-7 十进制:0-9(默认) 十六进制:0-9,A-F

四.逻辑运算

注意: 根据现有组件动态属性绑定的设计,所有Boolean类型结果最终会转为1或者0,如需显示true或false文本需要使用三元表达式返回字符串。

示例: ([变量1] > [变量2]) ? 'true' : 'false'

4.1 比较运算

功能用法说明
大于[数值1] > [数值2]
大于等于[数值1] >= [数值2]
小于[数值1] < [数值2]
小于[数值1] <= [数值2]
等于[数值1] == [数值2]
严格等于[数值1] === [数值2][数值1]设为5,[数值2]设为字符串"5",返回 false(类型不同)
不等于[数值1] != [数值2]
严格不等于[数值1] !== [数值2][数值1]设为5,[数值2]设为字符串"5",返回 true(类型不同)

4.2 逻辑运算

功能用法
逻辑与[条件1] && [条件2]
逻辑或[条件1] || [条件2]
逻辑非![条件]

4.3 三元表达式

用法: [条件] ? [值1] : [值2]

示例:[条件]设为true,[值1]设为"成功",[值2]设为"失败",返回 "成功"

实际应用举例: 根据温度显示不同文字:[温度值变量] > 70 ? "温度过高":"温度正常"

五.其他功能

5.1位运算

功能用法说明
按位与[数值1] & [数值2][数值1]设为5(二进制101),[数值2]设为3(二进制011)返回 1(二进制001)
按位或[数值1] | [数值2][数值1]设为5,[数值2]设为3 返回 7(二进制111)
按位异或[数值1] ^ [数值2][数值1]设为5,[数值2]设为3 返回 6(二进制110)

5.2 随机数

功能用法说明
生成0-1之间的随机小数Math.random()可能返回 0.123456、0.789012 等
生成1-10的随机整数Math.floor(Math.random() * 10) + 1可能返回 1、5、10 等

SCADA帮助文档