您可使用指令列表中的以下修饰符。
C |
使用 JMP, CAL, RET: |
仅当前面的表达式的结果为 TRUE 时才会执行指令。 |
N |
使用 JMPC, CALC, RETC: |
仅当前面的表达式的结果为 FALSE 时才会执行指令。 |
N |
使用根据下面操作符表格(修饰符列中的 N)的操作符 |
将对操作数(并非累加器的操作数)取反。 |
( |
使用根据下面操作符表格(修饰符列中的 ((左括号))的操作符 |
用于复杂操作数。有关详细信息,请参阅复杂操作数用例列表。 |
表格显示哪些操作符可结合指定的修饰符使用。
累加器存储得自前面的操作的当前值。
操作符 |
修饰符 |
含义 |
示例 |
---|---|---|---|
LD |
N |
将操作数的(取反)值载入累加器。 |
|
ST |
N |
将累加器的(取反)内容存储到操作数变量中。 |
|
S |
– |
当累加器的内容为 TRUE 时,将操作数(BOOL 类型)设置为 TRUE。 |
|
R |
– |
当累加器的内容为 TRUE 时,将操作数(BOOL 类型)设置为 FALSE。 |
|
AND |
N,( |
累加器和(取反)操作数的按位 AND。 |
|
OR |
N,( |
累加器和(取反)操作数的按位 OR。 |
|
XOR |
N,( |
累加器和(取反)操作数的按位互斥 OR。 |
|
NOT |
– |
累加器内容的按位取反。 |
– |
ADD |
( |
添加累加器和操作数,将结果复制到累加器。 |
|
SUB |
( |
减去累加器和操作数,将结果复制到累加器。 |
|
MUL |
( |
倍增累加器和操作数,将结果复制到累加器。 |
|
DIV |
( |
等分累加器和操作数,将结果复制到累加器。 |
|
GT |
( |
检查累加器是否大于操作数,将结果 (BOOL) 复制到累加器;> |
|
GE |
( |
检查累加器是否大于或等于操作数,将结果 (BOOL) 复制到累加器;>= |
|
EQ |
( |
检查累加器是否等于操作数,将结果 (BOOL) 复制到累加器;= |
|
NE |
( |
检查累加器是否不等于操作数,将结果 (BOOL) 复制到累加器;<> |
|
LE |
( |
检查累加器是否小于或等于操作数,将结果 (BOOL) 复制到累加器;<= |
|
LT |
( |
检查累加器是否小于操作数,将结果 (BOOL) 复制到累加器;< |
|
JMP |
C, CN |
无条件(有条件)跳转至标签
|
|
CAL |
C, CN |
无条件(有条件)调用 PROGRAM 或 FUNCTION_BLOCK
|
|
RET |
C, CN |
无条件(有条件)返回 POU 并跳转回调用 POU
|
|
) |
– |
计算延迟操作 |
– |
另请参阅 IEC 操作符和在 IL 编辑器中操作,了解如何使用和处理多个操作数、复杂操作数、功能/方法/功能块/程序/操作调用和跳转。
使用某些修饰符的示例 IL 程序:
LD TRUE load TRUE to accumulator
ANDN bVar1 execute AND with negative value of bVar1
JMPC m1 if accum. is TRUE, jump to label "m1"
LDN bVar2 store negated value of bVar2...
ST bRes ... in bRes
___________________________________________________________
m1:
LD bVar2 store value of bVar2...
ST bRes ... in bRes
表中列出了操作数的用例:
用例 |
描述 |
示例 |
---|---|---|
为一个操作符使用多个操作数 |
选项
|
|
复杂操作数 |
对于复杂操作数,在第一列中输入左括号 在第一列中另起一行输入右括号,然后在后面的行中输入操作数条目。 |
每次循环将字符串旋转一个字符:
|
功能块调用、程序调用 |
第 1 行:
后面的行:
根据 IEC 标准,这里不允许使用复杂表达式。将此类构造分配给功能块或程序,然后再调用此功能块或程序。 |
|
功能调用 |
第 1 行:
第 2 行:
返回值写入到累加器中。 第 3 行:
|
|
操作调用 |
类似于功能块调用或程序调用。 操作的名称附加到功能块实例或程序的名称中。 |
|
跳转 |
|
|