跳到主要内容

基本指令库

WasomeCodeX_AI支持所有 IEC 61131-3 运算符。 WasomeCodeX_AI提供系统功能块与函数, 包括符合IEC61131-3标准的功能块与函数、WasomeCodeX_AI特有的功能块与函数、同时也支持用户 开发自定义功能块与函数。

本文中使用到的泛型用于描述函数或运算符可以接受的一组数据类型。调用时使用该组中的具体数据类型。泛型之间有层级关系:

  • ANY:泛型根类型,包含派生数据类型和基本数据类型。
    • ANY_DERIVED:派生数据类型。
    • ANY_ELEMENTARY:基本数据类型,包括以下类型组:
      • ANY_MAGNITUDE:数值和时长类型。
        • ANY_NUM:数值类型。
          • ANY_REAL:REAL、LREAL。
          • ANY_INT:整数类型。
            • ANY_UNSIGNED:USINT、UINT、UDINT、ULINT。
            • ANY_SIGNED:SINT、INT、DINT、LINT。
        • ANY_DURATION:TIME、LTIME。
      • ANY_BIT:BOOL、BYTE、WORD、DWORD、LWORD。
      • ANY_CHARS:字符和字符串类型。
        • ANY_STRING:STRING、WSTRING。
        • ANY_CHAR:CHAR、WCHAR。
      • ANY_DATE:DATE_AND_TIME、LDT、DATE、TIME_OF_DAY、LTOD。

例如,SEL 的 IN0、IN1 和 RET 声明为 ANY_ELEMENTARY,因此可使用上述基本数据类型组中的具体类型。ANY_ELEMENTARY 不只是数值类型,还包括位、字符/字符串和日期时间类型。

数学函数​

SEL(二选一函数)\

ABS(绝对值函数)
ACOS(反余弦函数)
ADD(加法函数)
ASIN(反正弦函数)
ATAN(反正切函数)
ATAN2(双参数反正切函数)
COS(余弦函数)
DERIVATIVE(求导函数)
DIV(除法函数)
EXP(指数函数)
EXPT(幂函数)
HYSTERESIS(滞回函数)
LIMIT(限幅函数)
LN(自然对数函数)
LOG(常用对数函数)
MAX(最大值函数)
MIN(最小值函数)
MOD(取模函数)
MOVE(赋值函数)
MUL(乘法函数)
MUX(多路选择函数)
SEMA(信号量函数)
SIN(正弦函数)
SQRT(平方根函数)
SUB(减法函数)
TAN(正切函数)\

字符串运算​

CONCAT(字符串连接函数)
DELETE(字符串删除函数)
FIND(字符串查找函数)
INSERT(字符串插入函数)
LEFT(取左字符串函数)
LEN(字符串长度函数)
MID(取中间字符串函数)
REPLACE(字符串替换函数)
RIGHT(取右字符串函数)
STR_CMP(字符串比较函数)\

信号发生器​

TP(脉冲定时器)
TP_TIME(脉冲定时器(TIME))
TP_LTIME(脉冲定时器(LTIME))\

定时器​

TOF(断开延时定时器)
TOF_TIME(延时断开定时器(TIME))
TOF_LTIME(延时断开定时器(LTIME))
TON(接通延时定时器)
TON_TIME(延时接通定时器(TIME))
TON_LTIME(延时接通定时器(LTIME))\

触发器​

F_TRIG(下降沿触发器)
R_TRIG(上升沿触发器)
RS(复位优先触发器)
SR(置位优先触发器)\

计数器​

CTD(递减计数器)
CTU(递增计数器)
CTU_INT(加计数器(INT))
CTU_DINT(加计数器(DINT))
CTU_LINT(加计数器(LINT))
CTU_UDINT(加计数器(UDINT))
CTU_ULINT(加计数器(ULINT))
CTU_UINT(加计数器(UINT))
CTD_INT(减计数器(INT))
CTD_DINT(减计数器(DINT))
CTD_LINT(减计数器(LINT))
CTD_UDINT(减计数器(UDINT))
CTD_ULINT(减计数器(ULINT))
CTD_UINT(减计数器(UINT))
CTUD(加减计数器)
CTUD_INT(加减计数器(INT))
CTUD_DINT(加减计数器(DINT))
CTUD_LINT(加减计数器(LINT))
CTUD_UDINT(加减计数器(UDINT))
CTUD_ULINT(加减计数器(ULINT))
CTUD_UINT(加减计数器(UINT))\

时间函数​

CONCAT_LDATE(连接长日期函数)
CONCAT_LDATE_TOD(连接长日期与时刻函数)
CONCAT_LDATE_LTOD(连接长日期与长时刻函数)
SPLIT_LDATE(拆分长日期函数)
DIV_TIME_LREAL(时长精确相除函数)
DIV_LTIME_LREAL(长时长精确相除函数)\

__iec_get_tick(获取毫秒计时函数)
__iec_get_tick_ns(获取纳秒计时函数)
CONCAT_DATE(日期拼接函数)
CONCAT_DATE_LTOD(长时间拼接函数)
CONCAT_DATE_TOD(日期时间拼接函数)
CONCAT_DT(日期时间拼接函数)
CONCAT_LDT(长日期时间拼接函数)
CONCAT_LTOD(长时间拼接函数)
CONCAT_TOD(时间拼接函数)
DAY_OF_WEEK(星期计算函数)
SPLIT_DATE(日期拆分函数)
SPLIT_DT(日期时间拆分函数)
SPLIT_LDT(长日期时间拆分函数)
SPLIT_LTOD(长时间拆分函数)
SPLIT_TOD(时间拆分函数)\

程序诊断​

IS_VALID(实数有效性函数)\

ASSERT(断言函数)
ASSERT_MSG(断言消息函数)\

移位运算​

ROL(循环左移函数)
ROR(循环右移函数)\

SHL(左移函数)
SHR(右移函数)\

位逻辑运算​

AND(与运算函数)
NOT(非运算函数)
OR(或运算函数)
XOR(异或运算函数)\

比较运算​

EQ(等于比较函数)
GE(大于等于比较函数)
GT(大于比较函数)
LE(小于等于比较函数)
LT(小于比较函数)
NE(不等于比较函数)\

动作控制​

IEC_ACTION_CTRL(动作控制功能块)\

类型转换运算符​

BOOL-convert(转换为布尔)
DATA-AND-TIME-convert(日期和时间转换)
INT-convert(转换为整数)
REAL-convert(转换为浮点数)
STRING-convert(字符串转换)
TIME-convert(时间转换)\

字节序转换​

TO_BIG_ENDIAN(转为大端函数)
TO_LITTLE_ENDIAN(转为小端函数)
FROM_BIG_ENDIAN(从大端转换函数)
FROM_LITTLE_ENDIAN(从小端转换函数)\

数组运算​

LOWER_BOUND(数组下界函数)
UPPER_BOUND(数组上界函数)\