图形类编程语言采用“网络”概念。网络是内部连接的图形元素的最大集合。每个网络有一个网络标号。网络标号用冒号“:”定界。网络标号可以是一个标识符或无符号十进制整数。例如,“Network_Label1:,001:”等都可表示为网络标号。使用网络标号,使系统能够方便地从一个网络通过跳转进入另一个网络。
通常,编程系统对网络进行自动连续标号。当编程过程中,插入或删除一个网络时,所有网络的自动标号被自动更新。
IEC 61131-3标准没有规定网络标号和网络图之间可插入注释。但为说明网络范围,可插入注释,注释表示方法与文本类编程语言相同,例如,/*网络1*/,见表1-6。IEC 61131-3第三版规定注释允许嵌套。
1.网络的求值
网络和它的元素被求值的次序不必相同,因为次序是它们被标号或显示的顺序。在给出网络重复求值前没有必要对所有网络进行求值。
一个POU的本体由一个或多个网络组成时,在所述本体内网络求值的结果将遵守下列规则:
1)网络中的所有输入的状态已经被求值以后,才可进行一个网络的元素求值。
2)直到对网络的所有输出状态完成求值后,才算完成对网络元素的求值。
3)直到网络所有元素的输出求值完成后,才算完成对网络的求值,即使该网络包含执行控制元素。
4)网络中求值的次序应符合梯形图编程语言和功能块图编程语言的规定。
2.反馈路径
当函数或功能块的输出被用于作为该网络内前面的函数或功能块的输入时,称网络存在反馈路径。相关的变量称为反馈变量。当反馈路径不明显画出时,称为隐式回路,反之则是显式反馈路径。
在图形编程语言中使用反馈路径时,应服从下列规则:
1)功能块图编程语言中,使用显式表示反馈路径,如图3-1a粗线所示。
2)用户可根据显式反馈路径,使用与执行有关的方法来确定该显式回路中网络求值的次序。例如,如图3-1b所示用反馈变量RUN来组成一个隐式回路。
3)第一次网络求值时使用反馈变量的初始值,例如,它可采用该数据类型的约定初始值,其后,反馈变量的值根据反馈信号确定。在网络元素的下一次求值前,反馈变量的新值能够被作为该网络的输入使用。图3-1c是用梯形图(LD)编程语言表示的反馈路径。
图3-1 反馈路径示例
a)显式回路 b) 隐式回路 c) LD编程语言等价的梯形图
4)一旦带有反馈变量的元素作为输出已经被求值,则反馈变量的新值应保持到在该反馈变量下一次求值前。
5)显式回路仅在功能块图编程语言中描述,如图3-1a所示。
3.执行控制元素
在梯形图编程语言和功能块图编程语言中,可采用表3-5所示的方法表示执行控制元素。(www.xing528.com)
表3-5 图形类编程语言的执行控制元素
(1)跳转执行控制元素
跳转(Jump)执行控制元素用终止于双箭头的布尔信号线表示。跳转信号线开始于一个布尔变量、一个函数或功能块的布尔输出或梯形图的能流线。
跳转分无条件跳转和条件跳转两类。
程序控制到目标网络的标号的转换在信号线的布尔值为1(TRUE)时发生。
当跳转信号线开始于一个布尔变量、函数或功能块输出时,该跳转是条件跳转。只有程序控制执行到特定网络标号的跳转信号线,而其布尔值为1(True)时才发生跳转。
跳转信号线始于梯形图的左电源轨线时,该跳转是无条件的。功能块图编程语言中,如果跳转信号线始于布尔常数1,则该跳转是无条件的。无条件跳转是条件跳转的特例,即跳转条件恒为1的条件跳转。
(2)跳转目标
跳转目标(Target)是发生跳转的该程序组织单元内的一个网络标号。它表示跳转发生后,程序将从该目标开始执行。例如,表3-5中的NEXT是一个跳转目标。
如果在一个ACTION…END_ACTION结构内发生跳转,则跳转的目标应在同一结构内。
(3)跳转返回
跳转返回(Return)分条件跳转返回和无条件跳转返回两类。
条件跳转返回适用于从函数、功能块的条件返回,当条件跳转返回的布尔输入为真(1)时,程序执行将跳转返回到调用的实体。当布尔输入为假(0)时,程序执行将继续在正常方式进行。
在梯形图编程语言中,将RETURN语句直接连接到左轨线表示无条件返回。无条件跳转返回由函数或功能块的物理结束来提供,即END_FUNCTION或END_FUNCTION_BLOCK。
当RETURN结构的布尔输入为1(TRUE)时,程序执行转回到调用的实体,并以布尔输入为0(FALSE)时的正常方式继续。
【例3-2】跳转语句的示例。
电动机控制中,输出电动机起动信号为A,如果,发送输出起动信号A后2s内,电动机没有起动,即电动机起动的反馈信号B为0,应跳转报警程序(跳转目标为C)。变量声明如下。
图3-2显示该报警跳转示例的FBD程序。示例中,采用定时器功能块、与运算函数及非运算函数。如果2s计时到,电动机起动的反馈信号B为0,则经非运算和与运算,使跳转条件满足,因此,程序跳转到标号C的报警程序。这里,C是标号,不是输出变量。因此,在变量声明段中不需要声明。
图3-2 报警跳转示例的FBD程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。