Skip to main content

IL 中的修饰符和运算符

5. 修饰符

修饰符

结合运营商

描述

C

JMP, CAL, RET

仅当前面表达式的结果为 TRUE.

N

JMPC, CALC, RETC

仅当前面表达式的结果为 FALSE.

N

否则

操作数的否定(不是累加器)



6. 带有可能修饰符的运算符

操作员

N

意义

例子

LD

N

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

LD ivar

ST

N

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

ST iErg

S

设置操作数(类型 BOOL) 到 TRUE 如果累加器的内容是 TRUE

S bVar1

R

设置操作数(类型 BOOL) 到 FALSE 如果累加器的内容是 TRUE

R bVar1

AND

N,(

按位 AND 累加器值和(取反)操作数的

AND bVar2

OR

N,(

累加器值和(取反的)操作数的按位或

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

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

JMPN next

CAL

CN

(有条件)调用程序或功能块(如果累加器值为 TRUE)

CAL prog1

RET

退出框并返回调用框

RET

RET

C

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

RETC

RET

CN

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

RETCN

)

复位操作的评估



9. 例子
_cds_img_il_example.png


用法

描述

例子

1 个运算符的多个操作数

. 选项
  • 您将操作数输入到连续的行中,在第二列中用逗号分隔。

  • 您在连续的行中重复该运算符。

变体 1:

_cds_img_il_add_multiple_operands_1.png

变体 2:

_cds_img_il_add_multiple_operands_2.png

复杂操作数

对于复杂的操作数,您输入左括号 ( 在第一列。您可以在第一列中的单独一行中输入右括号,然后是后续行的操作数条目。

字符串每循环一个字符。

_cds_img_il_complex_oparand.png

功能块调用、程序调用

第 1 列: CAL 操作员或 CALC 操作员

第 2 列:功能块实例或程序的名称和左括号 (

如果后面没有参数,则右括号 ) 在这里输入。

要遵循的行:

第 1 列:参数名称后跟 := 对于输入参数或 => 用于输出参数

第 2 列:参数值后跟逗号 , 如果后面有更多参数

右括号 ) 在最后一个参数之后输入。

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

_cds_img_il_fb_call1.png

函数调用

第 1 行:第 1 列: LD

第 2 列:输入变量

第 2 行:第 1 列:函数名称第 2 列:用逗号分隔的其他输入参数

CODESYS 将返回值写入累加器。

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

_cds_img_il_function_call.png

行动号召

如功能块调用或程序调用。

动作名称附加到 FB 实例或程序的名称之后。

_cds_img_il_action_call.png

第 1 列: JMP 操作员或 JMPC 操作员

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

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

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

_cds_img_il_jmp.png