首页 理论教育 程序控制指令及主控继电器指令的使用方法

程序控制指令及主控继电器指令的使用方法

时间:2023-06-19 理论教育 版权反馈
【摘要】:图4-21 无条件跳转2.程序控制指令程序控制指令包括功能块调用及返回指令和主控继电器指令。图4-22 主控继电器指令的使用使用主控继电器指令应注意:取消激活MCR时,在MCR和MCR之间的程序段中的所有赋值都写入数值0。对这种情况,应释放上述命令,使其与MCR不相关。

程序控制指令及主控继电器指令的使用方法

1.逻辑控制指令

逻辑控制指令可以在所有逻辑块[组织块(OB)、功能块(FB)和功能(FC)]中使用,指令有无条件跳转、有条件跳转和若“否”则跳转3种。

跳转指令的地址用标号表示。标号最多可以包含4个字符。第一个字符必须是字母表中的字母,其他字符可以是字母或数字(例如,SEG3)。跳转标号指示程序将要跳转到的目标。目标标号必须位于程序段的开头。可以从梯形图浏览器中选择LABEL,在程序段的开头输入目标标号。在显示的空框中键入标号的名称,在框中键入标签的名称。

(1)无条件跳转—(JMP)

当—(JMP)指令左侧电源轨道与指令间没有其他梯形图元素时执行的是绝对跳转,跳转发生在块内。每个—(JMP)指令还都必须有与之对应的目标(LABEL)。

如图4-21中,Network1是一条绝对跳转指令。跳转标号是CAS1,假设位于NetworkX,执行跳转后,将跳过Network1和NetworkX间的指令不予执行。

(2)有条件跳转—(JMP)

有条件跳转和无条件跳转的区别是指令左侧电源轨道与指令间存在其他梯形图元素,则当前逻辑运算的RLO为“1”时执行条件跳转,否则不跳转。

(3)若“否”则跳转—(JMPN)

相当于在RLO为“0”时执行跳转操作,与—(JMP)的跳转条件正好相反。

978-7-111-44821-1-Chapter04-47.jpg

图4-21 无条件跳转

2.程序控制指令

程序控制指令包括功能块调用及返回指令(见表4-13)和主控继电器指令。功能块调用可以是有条件的或无条件的。

表4-13 功能块调用及返回指令说明

978-7-111-44821-1-Chapter04-48.jpg

(1)功能块调用指令

功能块调用指令—(CALL)用于调用没有传递参数的功能(FC)或系统功能(SFC)。只有在CALL线圈上RLO为“1”时,才执行调用。

当执行—(CALL)时,存储调用块的返回地址由当前的本地数据区代替以前的本地数据区,然后将MA位(有效MCR位)移位到B堆栈中,为被调用的功能创建一个新的本地数据区。之后,在被调用的FC或SFC中继续进行程序处理。

用DB指令调用功能块可以带参数。是否带参数以及带多少个参数视具体情况而不同。扫描BR位,可以查找ENO。用户必须使用—(SAVE)指令将所要求的状态分配给被调用块中的BR位。当调用一个功能,而被调用块的变量声明表中具有IN、OUT和IN_OUT声明时,这些变量以形式参数列表添加到调用块的程序中。当调用功能时,必须在调用位置处将实际参数分配给形式参数。功能声明中的任何初始值都没有含义。

通过声明一个数据类型为功能块的静态变量,可创建一个多重背景,只有已经声明的多重背景才会包括在程序元素目录中。多重背景的符号改变取决于是否带参数以及带多少个参数。(www.xing528.com)

另外还可使用SIMATIC管理器中可供使用的库来选择下列块:集成在CPU操作系统中的块(对于V3版本STEP 7项目,为“标准库”,对于V2版本STEP 7项目,为“stdlibs(V2)”);用户自行在库中保存的块,便于多次使用。

RET是RETURN(返回指令)的英文缩写,它是程序控制指令之一,用于能够有条件舍弃一个块,对于该输出,需要一个逻辑操作,RET指令将RLO存储在状态字的BR位(二进制结果位)。

(2)主控继电器指令

主控继电器是一种逻辑主控开关,可以控制一段程序的执行。主控继电器指令有以下4种。

1)—(MCRA):主控继电器激活。激活主控继电器功能。在该命令后,可以编程定义MCR区域。

2)—(MCRD):主控继电器取消激活。在该命令后,不能编程MCR区域。

3)—(MCR<):主控继电器打开。

4)—(MCR>):主控继电器关闭。

在MCR堆栈中保存RLO。MCR嵌套堆栈为LIFO(后入先出)堆栈,且只能有8个堆栈条目(嵌套级别)。当堆栈已满时,—(MCR<)功能产生一个MCR堆栈故障(MCRF)。它们是输出和中间输出、置位/复位输出、RS/SR触发器、MOVE指令与MCR有关,并在打开MCR区域时,受保存在MCR堆栈中的RLO状态的影响。

【例】 图4-22所示是主控继电器指令的使用实例。有两个MCR区域。按如下执行该功能。

I0.0=“1”(区域1的MCR打开):将I0.4的逻辑状态分配给Q4.1。

I0.0=“0”(区域1的MCR关闭):无论输入I0.4的逻辑状态如何,Q4.1都为“0”。

I0.1=“1”(区域2的MCR打开):当I0.3为“1”时,将Q4.0设置成“1”。

I0.1=“0”(区域2的MCR关闭):无论I0.3的逻辑状态如何,Q4.0都保持不变。

978-7-111-44821-1-Chapter04-49.jpg

图4-22 主控继电器指令的使用

使用主控继电器指令应注意:

取消激活MCR时,在MCR和MCR之间的程序段中的所有赋值都写入数值0。这对包含赋值的所有框都有效,包括传递到块的参数在内。

当MCR<指令之前的RLO=0时,取消激活MCR。在某些形式参数访问或参数传递时,编译器还对在VAR_TEMP中定义的临时变量之后的局部数据进行写访问,以计算地址。这将把PLC设置成STOP状态,或导致未定义的运行特征。对这种情况,应释放上述命令,使其与MCR不相关。其实用块调用或程序跳转的方法代替主控继电器指令更容易理解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈