IL编辑器视图中工作

IL ( 指令表)编辑器是一个表编辑器,不同于CoDeSys V2.3中的文本编辑器。FBD或LD程序的节结构 同样以IL程序体现出来。基本上一个 对IL程序足够了,但是考虑到FBD,LD和IL之间的转换,你必须清楚的使用节来结构化IL程序。

注意选项对话框编辑器基本设置,目录 'FBD/IL/LD'.

工具提示包含变量或块参数的信息

请参见 “工作在FBD 和LD 编辑器视图”

插入并安排元素
  • 编辑器中工作的命令默认在 FBD/LD/IL 菜单中可用,最重要常用的也在菜单中。
  • 编程单元,即元素,被 “插入”在光标位置,默认是在 FBD/LD/IL 菜单中可用的。
  • 剪切, 复制, 粘贴删除 命令,默认在 编辑菜单可用,可以用来安排元素。
  • 注意FBD/LD/IL编辑器中可能的 光标位置
  • • 关于编程语言的一些信息参见: “指令表——IL ”
  • • 注意带有EN/ENO功能的操作符只能在FBD 和 LD编辑器中插入。参见

表编辑器如何构建,如何在编辑器内导航,如何使用复杂操作域,调用和跳转,请参见以下。

IL表编辑器结构

每行都写在表的一行中,按照下表中列的在区域构成结构:

Column

Contains...

Description

1

操作符

这个区域包含IL (LD, ST, CAL, AND, OR等)或函数名。

功能块调用的情况,各自的参数是特定的,这种情况下,前缀区域 :==>必须输入 。

详细信息参见 “IL中修饰符和操作符”

2

操作域

这个区域包含一个具体的操作域或一个跳转标号。如果需要一个以上操作域 (多重/扩展 操作域AND A, B, C或有几个参数的功能块调用),这些必须写在以下行中,操作符区域空着。这种情况下,添加一个参数——分隔逗号。

功能块,程序或动作调用的情况,合适的打开/关闭括号必须添加。

3

地址

这个区域包含声明区定义的操作域的地址。这个区域不能编辑,可以通过 '显示符号地址'打开或关闭。

4

符号注释

这个区域包含声明区对操作域的注释。可以通过 '显示符号注释'打开或关闭。

5

操作域注释

这个区域包含当前行的注释。可以通过 '显示操作域注释'

 插图 427: IL表编辑器
表中导航
  • [ Up ] [ Down ] 方向键:移动到上面或下面区域
  • [ Tab ] :一行内向右移动
  • [ Shift ] + [ Tab ] : 一行内左移
  • [ Space ] : 打开当前选择区域来编辑。或继续点击这个区域。如果可以,输入助手可以通过 按钮使用。 当前打开的编辑区域可以通过 [ Enter ] 关闭,确认当前的条目,或 [ Esc ] 取消。
  • [ Ctrl ] + [ Enter ] : 在当前行下输入新行。
  • [ Del ] : 移除当前行,即你当前选择的任意区域。
  • 剪切, 复制, 粘贴: 复制一行或多行,选择至少一个区域的行,并使用复制命令。要剪切一行,使用剪切命令。粘贴会把先前复制/剪切的行插入到当前选择的区域之前。如果没有区域被选择,那么他们会被插入到节的最后。
  • [ Ctrl ] + [ Home ] 滚动到文档的最前面并标记第一个节。
  • [ Ctrl ] + [ End ] 滚动到文档的最前面并标记第一个节。
  • [ Page Up ] 向上滚动一个屏幕,并标记矩形的最顶端。
  • [ Page Down ] 向上滚动一个屏幕,并标记矩形的最顶端 。
多重操作域(扩展操作符)

如果同一个 操作符 在多行中使用,两种方式的编程是可以的:

1. 操作域在后续的行中输入,用逗号分开,例如:

指令在后续的行中重复输入,例如:

复杂操作域

如果复杂操作域使用了,输入一个左括号,然后以下的行来针对特定的操作域部分,在下面,一个单独的行输入右括号。

例子

字符串每次以一个字母为单位循环

相应ST代码:

stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) - 1)), (LEFT(stRotate, 1)));)

函数调用

在操作符区域输入函数名。(第一个)输入参数是作为一个操作域在后续LD操作中。如果有更多的参数,下一个必须在同一行中作为函数名。更多的可以添加到这行,用逗号隔开,或在后续的行中。

函数返回值被存储在累加器中,但是 ...

注意以下考虑到IEC标准的限制:一个 有多个返回值的函数调用是不可以的,只有 一个返回值可以用在成功的操作中。

例子

函数GeomAverage, 有三个输入变量, 被调用。第一个参数通过 X7在下一操作给出, 第二个,25, 在函数名后给出。第三个由变量tvar给出,在同一行或者后续行。返回值赋给 Ave

ST中相应代码:

Ave := GeomAverage(X7, 25, tvar);)

插图 428: IL中函数调用
功能块调用和程序调用

使用CAL或CALC 操作符。输入功能块实例的名字或程序名,在操作域区域(第二列)在左括号之后。以下行键入输入参数:

操作符区域:参数名

前缀区域::= 输入参数,=> 输出参数

操作域区域:当前参数

后缀区域:  , 如果更多变量在)最后一个参数之后。如果参数-更少调用 ()

例子

调用 POUToCAll有两个输入和两个输出。

(相应的 ST 代码:

POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wResult);)

插图 429: IL中有输入输出参数的程序调用

没有必要使用功能块或函数的所有参数。

提示!

作为IEC标准的限制,复杂表达式不可使用,不能在调用指令之前分配到功能块或程序的输入。

动作调用

像功能块或程序一样完成。动作名要添加到实例名或程序名处。

例子

调用动作 ResetAction.

(相应 ST 代码:

Inst.ResetAction();)

插图 430: IL中动作调用
方法调用

像函数调用一样。添加的方法的实例名输入到第一列(操作符)

例子

调用方法Home.

(相应ST代码:

Z := IHome.Home(TRUE, TRUE, TRUE);)

插图 431: IL中方法调用
跳转

跳转是用JMP 在第一列(操作符),和标号名在第二列(操作域)。标号是在目标节的 区域 区域定义的。注意表述列表后无条件跳转必须以以下命令结束:ST, STN, S, R, CAL, RET或者其他JMP。这对 条件跳转是不合适的,第一列用JMPC而不是JMP。跳转的执行依赖于值的载入。

例子

条件跳转指令,bCallRestAction 是TRUE,程序应跳转到 Cont标号行。

插图 432: IL中条件跳转指令