.
IL中的修饰符和运算符
.
.
.

.修饰符

修饰符

带修饰符的运算符

描述

C

JMP, CAL, RET

仅当前面的表达式的结果为TRUE时,才执行命令。

N

JMPC, CALC, RETC

仅当前面的表达式的结果为FALSE时,才执行命令。

N

否则

取反操作数(而不是累加器)。

.

.具有可能修饰符的运算符

运算符

N

含义

例如

LD

N

将(取反)操作数的值加载到累加器中。

LD ivar

ST

N

将累加器的(取反)内容存储在操作数中。

ST iErg

S

 

如果累加器的内容为TRUE,则将操作数(BOOL类型)设置为TRUE

S bVar1

R

 

如果累加器的内容为TRUE,则将操作数(BOOL类型)设置为FALSE

R bVar1

AND

N,(

累加器值与(负)操作数的按位AND

AND bVar2

OR

N,(

累加器值与(负)操作数的按位OR

OR xVar

XOR

N,(

累加器值与(负)操作数的按位异或

XOR N,(bVar1,bVar2)

NOT

 

累加器值的按位求反

ADD

(

累加器值和操作数相加;结果写入累加器。

ADD ivar1

SUB

(

从累加器值中减去操作数;结果写入累加器中。

SUB iVar2

MUL

(

累加器值与操作数的乘积;结果写入累加器。

MUL ivar2

DIV

(

累加器值除以操作数;结果写入累加器。

DIV 44

GT

(

检查累加器值是否大于操作数值;结果(BOOL)被写入累加器;>

GT 23

GE

(

检查累加器的值是否大于或等于操作数;将结果(BOOL)写入累加器。

GE iVar2

EQ

(

检查累加器值是否等于操作数值;结果(BOOL)被写入累加器。

EQ iVar2

NE

(

检查累加器值是否不等于操作数值;结果(BOOL)被写入累加器;

NE iVar1

LE

(

检查累加器的值是否小于或等于操作数;结果(BOOL)被写入累加器。

LE 5

LT

(

检查累加器值是否小于操作数值;结果(BOOL)被写入累加器。

LT cVar1

JMP

CN

无条件(有条件)跳转到指定的跳转标签

JMPN next

CAL

CN

(视情况而定)调用程序或功能块(如果累加器值为TRUE)

CAL prog1

RET

 

退出方框并返回到调用方框。

RET

RET

C

如果累加器值为TRUE:退出该框并返回到调用框。

RETC

RET

CN

如果累加器值为FALSE:退出该框并返回到调用框。

RETCN

)

 

评估复位操作

 
.

.例如

.

应用程序:

描述

例如

1个运算符的几个操作数

.选项

  • 您将操作数输入到连续的行中,并在第二列中用逗号分隔。
  • 您在连续的行中重复该运算符。

变体1:

变体2:

复杂操作数

对于复杂操作数,请在第一列中输入左括号在下一列中紧随其后的单独行中,在第一列中输入闭括号。

每个周期将字符串旋转一个字符:

功能块调用,程序调用

栏1:操作员CALCALC

栏2:功能块实例或程序的名称,并在左括号中输入。如果未输入任何参数,则在右括号中输入

接下来的行:

第1列:参数名称,后跟:=表示输入参数或=>表示输出参数

第2列:如果后面有其他参数,则参数值后跟一个逗号。在最后一个参数之后输入右括号

作为根据IEC标准的限制,此处不能使用复杂的表达式。在调用之前,必须将此类构造分配给功能块或程序。

函数调用

第1行:第1列:LD

第2列:输入变量

第2行:第1列:功能名称第2列:其他输入参数,以逗号分隔。

CODESYS将返回值写入累加器。

第3行:第1列:ST第2列:将返回值写入其中的变量

动作调用

类似于功能块调用或程序调用。

操作名称附加在FB实例或程序的名称之后。

跳转

第一列:运算符JMPJMPC

第2列:目标网络的跳转标签的名称。

在无条件跳转的情况下,前面的指令序列必须以以下命令之一结尾:ST, STN, S, R, CAL, RET, JMP

在条件跳转的情况下,跳转的执行取决于加载的值。