IL 指令列表编辑器是一个表格编辑器。FBD 或 LD 程序的网络结构也会出现在 IL 程序中。一般情况下,在 IL 程序中有一个网络便已足够,但是考虑到要在 FBD、LD 和 IL 之间切换,您也可使用网络来构建 IL 程序。
在工具 > 选项对话框的类别 FBD、LD 和 IL 编辑器的选项卡 IL 中,为 EcoStruxure Machine Expert 激活 IL 实现语言。
工具提示包含有关变量或运算块参数的信息。
o在编辑器中使用的命令可在 FBD/LD/IL菜单中找到。常用命令也会在上下文菜单中提供。
o每个属于元素的编程单元通过插入命令在当前光标位置插入,该命令可在 FBD/LD/IL 菜单上找到。
o您可以将网络元素从工具箱拖拽到编辑器左侧的向上箭头或向下箭头上。然后便会在现有元素上方或下方创建新网络。
o您可使用编辑菜单中提供的剪切、复制、粘贴和删除命令来排列元素。
o另请参阅有关编程语言指令列表 - IL 的一些信息。
o具有 EN/ENO 功能的操作符仅可在 FBD 和 LD 编辑器内插入。
本章说明表格编辑器的构造方式、如何在编辑器中导航以及如何使用复杂的操作数、调用和跳转。
IL 表格编辑器
每个程序行写在表格行中,由字段按表格列构成:
列 |
包含... |
描述 |
---|---|---|
1 |
操作符 |
该字段包含 IL 操作符(LD、ST、CAL、AND、OR 等)或功能名称。 对于功能块调用,相应的参数也在此指定。输入前缀字段 := 或 =>。 有关更多信息,请参考 IL 中的修饰符和操作符。 |
2 |
操作数 |
该字段只包含一个操作数或跳转标签。如果需要多个操作数(多个/可扩展操作符 AND A, B, C 或具有数个参数的功能调用),将它们写入下面的行中,并将操作符字段留空。在该情况下,可添加分隔参数的逗号。 对于功能块、程序或操作调用,可添加相应左/右括号。 |
3 |
地址 |
该字段包含在声明部分定义的操作数的地址。您无法编辑此字段。使用选项显示符号地址可将其打开或关闭。 |
4 |
符号注释 |
该字段包含在声明部分为操作数定义的注释。您无法编辑此字段。使用选项显示符号地址可将其打开或关闭。 |
5 |
操作数注释 |
该字段包含当前行的注释。它可编辑,并可通过选项 Show operand comment 来打开或关闭。 |
o向上和向下箭头键:移动至上方或下方字段。
oTAB:在行内移动至右侧的字段。
oSHIFT + TAB:在行内移动至左侧的字段。
o空格键:打开当前选择的字段以进行编辑。也可以在字段上再单击一下鼠标。如果适用,可通过 ... 按钮来使用输入助手。在确认当前输入后,您可通过按下 ENTER 关闭当前打开的编辑字段,或者按下 ESC 取消所做输入。
oCTRL + ENTER:在当前行下方输入新行。
oDEL:移除您在其中选择了任何字段的当前行。
o剪切、复制、粘贴:要复制一行或者多行,选择行的至少 1 个字段并执行复制命令。要剪切行,可使用剪切命令。粘贴会在当前有字段被选中的行之前插入之前复制/剪切的行。如果未选中字段,则会将它们插入网络末尾。
oCTRL + HOME 滚动至文档开头并标记第一个网络。
oCTRL + END 滚动至文档末尾并标记最后一个网络。
oPAGE UP 向上滚动 1 个屏幕并标识最顶部的矩形。
oPAGE DOWN 向下滚动 1 个屏幕并标识最顶部的矩形。
如果将同一操作符用于多个操作数,则有两种编程方式可用:
o在后续行中输入操作数,以逗号分隔,例如:
LD 7
ADD 2,
4,
7
ST iVar
o该指令将在后续行中重复,例如:
LD 7
ADD 2
ADD 4
ADD 7
ST iVar
如果要使用复杂操作数,可在前面输入左括号,然后将下面的行用于特殊操作数组成部分。在它们的下方,以单独行输入右括号。
示例:在每个循环将字符串旋转 1 个字符。
相应 ST 代码:
stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) - 1)), (LEFT(stRotate, 1)));
LD stRotate
RIGHT( stRotate
LEN
SUB 1
)
CONCAT( stRotate
LEFT 1
)
ST stRotate
在操作符字段中输入功能名称。在前面的 LD 操作中,将第一个输入参数作为操作数提供。如果有其他参数,则在同一行提供下个参数作为功能名称。您可在该行添加更多参数,用逗号分隔,或者在后续行中添加。
功能返回值将存储在累加器中。以下关于 IEC 标准的限制适用。
注意: 不可能进行具有多个返回值的功能调用。只有 1 个返回值可用于后续操作。
示例:调用具有 3 个输入参数的功能 GeomAverage。第一个参数由前面的运算中的 X7 提供。第二个参数 25 通过功能名称提供。第三个参数由变量 tvar 提供,位于同一行或后续行。返回值将分配至变量 Ave。
相应 ST 代码:
Ave := GeomAverage(X7, 25, tvar);
IL 中的功能调用:
LD X7
GeomAverage 25
tvar
ST Ave
使用 CAL 或 CALC 操作符。在操作数字段(第二列)输入功能块实例名称或程序名称,后接左括号。在下面的行中每行输入一个输入参数:
操作符字段:参数名称
前缀字段:
o:=,用于输入参数
o=>,用于输出参数
操作数字段:当前参数
后缀字段:
o,,如果后接更多参数
),在最后一个参数后使用
o(),无参数调用时使用
示例:使用 2 个输入和 2 个输出参数调用 POUToCAll。
相应 ST 代码:
POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wResult);
IL 中使用输入和输出参数的程序调用:
并非必须使用功能块或程序的所有参数。
注意: 不能使用复杂表达式。必须在调用指令前,将它们分配给功能块或程序的输入。
执行方式和功能块或程序调用类似,操作名称附加至实例名称或程序名称。
示例:操作 ResetAction 的调用。
相应 ST 代码:
Inst.ResetAction();
IL 中的操作调用:
CAL Inst.ResetAction()
执行方式和功能调用相似,附有方法名称的实例名称将在第一列(操作符)输入。
示例:调用方法 Home。
相应 ST 代码:
Z := IHome.Home(TRUE, TRUE, TRUE);
IL 中的方法调用:
LD TRUE
IHome.Home TRUE
TRUE
ST Z
跳转是通过第一列(操作符)中的 JMP 和第二列(操作数)中的标签名来编程的。该标签将在目标网络的标签字段中进行定义。
无条件跳转前面的语句表必须用以下命令之一结束:ST、STN、S、R、CAL、RET 或其他 JMP。
这对于有条件跳转不适用。跳转的执行取决于加载的值。
示例:有条件跳转指令;如果 bCallRestAction 为 TRUE,程序应跳转至带有 Cont 标签的网络。
IL 中的有条件跳转指令:
LDN bCallResetAction
JMPC Cont