2.2 AOE基本表达式
低代码控制器采用基于AOE事件驱动的控制方式,在利用AOE网络进行控制策略设计时,所涉及的基本语法介绍如下。
一、赋值
AOE可以直接将某一数值或表达式赋给某个变量。赋值号为冒号:
或等号=
,推荐使用冒号:
,赋值顺序为将赋值号右边的值赋给左边。
相关示例如下:
#示例1:直接将值1赋给变量State_POINT
State_POINT: 1;
#示例2:将由变量Cartset_POINT与Cart_POINT组成的表达式的值赋给变量ECar
Ecar: Cartset_POINT - Cart_POINT;
二、基本数值运算
AOE可完成的基本数值运算及涉及的运算符如下表所示。
名称 | 运算符 |
---|---|
四则运算 | + - * / |
关系运算 | < <= > >= == != |
逻辑运算 | && || ~~ |
取余运算 | % |
幂运算 | ^ |
阶乘运算 | ! |
位运算 | & | ^^ ~ << >> @ |
相关示例如下:
#示例3:简单四则运算
Iout: Iout + Igain * Ecarn1 * Ts;
#示例4:多种运算混合
Ilimout: (Iout <= Iuplim && Iout >= Idownlim) * Iout + (Iout > Iuplim) * Iuplim + (Iout < Idownlim) * Idownlim;
三、内置函数
AOE内置多种常用数学函数及实用时间获取函数,可通过向括号内传入参数进行直接调用,支持的函数及其具体功能如下表所示。
函数 | 功能 |
---|---|
abs() | 求绝对值 |
sqrt() | 求平方根 |
exp() | 求以e为底的指数 |
ln()、log10() | 求自然对数(以e为底)、求常用对数(以10为底) |
sin()、cos()、tan() | 正弦函数、余弦函数、正切函数,单位为弧度 |
asin()、acos()、atan() | 反正弦函数、反余弦函数、反正切函数 |
sinh()、cosh()、tanh() | 双曲正弦函数、双曲余弦函数、双曲正切函数 |
asinh()、acosh()、atanh() | 反双曲正弦函数、反双曲余弦函数、反双曲正切函数 |
floor() | 向下取整,即取不大于传入参数的最大整数 |
ceil() | 向上取整,即取不小于传入参数的最小整数 |
round() | 将传入参数进行四舍五入 |
signum() | 符号函数,指出参数正负号,若为正则返回1;零返回0;负返回-1 |
atan2() | 计算方位角,弧度表示 |
max()、min() | 求多个参数的最大值/最小值,参数用“,”分隔 |
rand() | 输出[0,1)之间的随机数 |
rand2(a,b) | 输出[a,b)之间的随机数 |
indexOfYear()、Year() | 返回日期的年 |
indexOfMonth()、Month() | 返回日期的月 |
indexOfWeekday()、Weekday() | 返回日期的星期几,星期一至星期日分别为1-7 |
indexOfDay()、Day() | 返回日期的日 |
indexOfHour()、Hour() | 返回时间的小时,从当天0点算起 |
indexOfMinute()、Minute() | 返回时间的分钟,从当天0点算起 |
indexOfSecond()、Second() | 返回时间的秒,从当天0点算起 |
now() | 返回当前13位时间戳 |
TotalMemory() | 返回总内存大小 |
UsedMemory() | 返回已使用内存大小 |
UsedMemorySelf() | 返回程序本身已使用内存大小 |
MemUsage() | 返回内存使用率 |
MemUsageSelf() | 返回程序本身内存使用率 |
TotalSwap() | 返回总Swap大小 |
UsedSwap() | 返回已使用Swap大小 |
CpuUsage() | 返回Cpu使用率 |
CpuUsageSelf() | 返回程序本身Cpu使用率 |
TotalSpace() | 返回总空间大小 |
UsedSpace() | 返回已使用空间大小 |
DiskUsage() | 返回已使用磁盘率 |
TotalReceived() | 返回总接收数据量 |
TotalTransmitted() | 返回总发送数据量 |
注:indexOfYear()等时间相关函数中,index不区分大小写。
特别的,在AOE中可通过以下函数对低代码控制器进行重置,重启,退出操作。
函数 | 功能 |
---|---|
reset() | 重置低代码控制器 |
restart() | 重启低代码控制器 |
quit() | 退出低代码控制器 |
具体调用方法如下所示:
测点配置:
序号 | 点号 | 名称 | 别名 | 是否离散 | 是否计算点 | 默认值 |
---|---|---|---|---|---|---|
1 | 540007 | 开始设置 | tSet | TRUE | FALSE | 0 |
-
reset()
-
AOE网络定义
AOE ID 是否启用 名称 触发条件 触发条件参数 变量初始值 650104 TRUE 控制器重置 Simple_Repeat 5000 -
AOE节点定义
AOE ID 节点ID 名称 节点类型 超时时间(ms) 表达式 650104 1 开始 Condition 1000 tSet==1 650104 2 结束 Condition 100 1 -
AOE动作定义
AOE ID 首尾节点 动作名称 失败模式 动作类型 动作参数 650104 1;2 控制器重置 Default Set_Points tSet:0;b:reset();
-
-
restart()
-
AOE网络定义
AOE ID 是否启用 名称 触发条件 触发条件参数 变量初始值 650104 TRUE 控制器重启 Simple_Repeat 5000 -
AOE节点定义
AOE ID 节点ID 名称 节点类型 超时时间(ms) 表达式 650104 1 开始 Condition 1000 tSet==1 650104 2 结束 Condition 100 1 -
AOE动作定义
AOE ID 首尾节点 动作名称 失败模式 动作类型 动作参数 650104 1;2 控制器重启 Default Set_Points tSet:0;b:restart();
-
-
quit()
-
AOE网络定义
AOE ID 是否启用 名称 触发条件 触发条件参数 变量初始值 650104 TRUE 控制器退出 Simple_Repeat 5000 -
AOE节点定义
AOE ID 节点ID 名称 节点类型 超时时间(ms) 表达式 650104 1 开始 Condition 1000 tSet==1 650104 2 结束 Condition 100 1 -
AOE动作定义
AOE ID 首尾节点 动作名称 失败模式 动作类型 动作参数 650104 1;2 控制器退出 Default Set_Points tSet:0;b:quit();
-
四、数字表示约定
AOE支持的数学常数和数字表示约定如下表。
圆周率 | pi | |
自然常数 | e | |
科学计数法 | 1e-2 1E-3 |