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()退出低代码控制器

具体调用方法如下所示:

测点配置:

序号点号名称别名是否离散是否计算点默认值
1540007开始设置tSetTRUEFALSE0
  • reset()

    • AOE网络定义

      AOE ID是否启用名称触发条件触发条件参数变量初始值
      650104TRUE控制器重置Simple_Repeat5000
    • AOE节点定义

      AOE ID节点ID名称节点类型超时时间(ms)表达式
      6501041开始Condition1000tSet==1
      6501042结束Condition1001
    • AOE动作定义

      AOE ID首尾节点动作名称失败模式动作类型动作参数
      6501041;2控制器重置DefaultSet_PointstSet:0;b:reset();
  • restart()

    • AOE网络定义

      AOE ID是否启用名称触发条件触发条件参数变量初始值
      650104TRUE控制器重启Simple_Repeat5000
    • AOE节点定义

      AOE ID节点ID名称节点类型超时时间(ms)表达式
      6501041开始Condition1000tSet==1
      6501042结束Condition1001
    • AOE动作定义

      AOE ID首尾节点动作名称失败模式动作类型动作参数
      6501041;2控制器重启DefaultSet_PointstSet:0;b:restart();
  • quit()

    • AOE网络定义

      AOE ID是否启用名称触发条件触发条件参数变量初始值
      650104TRUE控制器退出Simple_Repeat5000
    • AOE节点定义

      AOE ID节点ID名称节点类型超时时间(ms)表达式
      6501041开始Condition1000tSet==1
      6501042结束Condition1001
    • AOE动作定义

      AOE ID首尾节点动作名称失败模式动作类型动作参数
      6501041;2控制器退出DefaultSet_PointstSet:0;b:quit();

四、数字表示约定

AOE支持的数学常数和数字表示约定如下表。

类别
名称
AOE表示
数学常数
圆周率 pi
自然常数 e
数字表示方法
科学计数法 1e-2    1E-3