2.2 指令表操作符 IEC 1131-3指令表包括四类操作符:一般操作符、比较操作符、跳转操作符和调用操作符。
2.2.1一般操作符符指令表一般操作符是指在程序中经常会用到的操作符. l 装入指令:LD N等。 l 逻辑指令:AND N( (与指令)、OR N( (或指令)、XOR N( (异或指令)等。 l 算术指令:ADD ((加指令)、SUB((减指令)、MUL ( (乘指令),DIV((除指令)、MOD ( (取模指令)等。 2.2.2 比较指令:GT ( (大于)、GE ( (大于等于)、EQ( (等于)、 NE( (不等于)、 LE( (小于等于)、 LT( (小于)等。 2.2.3 跳转及调用操作符 JMP C,N (跳转操作符)、 CALL C,N (调用操作符)等。
2.3 在指令表中调用功能及功能块 在IEC 1131-3指令表的程序中,可以直接调用功能块和功能。指令表的功能块调用有种格式,功能调用有两种格式。详细的调用可见IEC 1131-3标准。
2.4 用指令表定义功能及功能块指令表可用于定义功能块和功能。当用指令表定义功能时,功能的返回值是结果寄存内的最新值;当用指令表定义功能块时,指令表引用功能块的输入参数(VAR_INPUT),并且把值写到输出参数(VAR_OUPUT)。
2.5 指令表与其它语言的移植性指令表语言转换为其它语言是非常困难的,除非指令表操作符的使用范围及书写格式受到严格的限制,才有可能实现转换。IEC 1131-3的其它语言较容易转换为指令表。
2.6 IL的编程实例本例是一个用指令表程序定义功能的实例,功能描述的计算平面上两点的移动距离。 两点X,Y的坐标如下图所示。 图二用指令表编功能实例用结构化文本描述的两点间距离的计算公式为:Travel_distance:=SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(YI-Y2)))。TMax是X,Y两点见的最大距离,当计算值小于TMax时,说明计算正确;当计算值大于TMax时,说明X,Y两点间的距离超出了最大距离,在这种情况下,功能是没有输出的。用指令表编写的该功能的函数TRAVEL()如下: FUNCTION TRAVEL : REAL VAR_INPUT X1,X2,Y1,Y2 : REAL (*点X,Y坐标*) TMax : REAL (*最大移动距离*) END_VAR VAR Temp : REAL; (*中间值*) END_VAR LD Y1 SUB Y2 (*计算Y2-Y1*) ST Temp (*将Y2-Y1值存入Temp *) MUL Temp (*计算(Y2-Y1)的平方*) ADD( X1 SUB X2 (*计算(X1-X2)*) ST Temp (*将(X1-X2)值存入Temp *) MUL Temp (*计算(X1-X2)的平方*) ) (*将两平方值相加*) CAL SQRT (*调平方根函数*) ST TRAVEL (*设定计算结果*) GT TMax (*比TMax 大吗?*) JMPC ERR (*是,转到ERR 执行*) S ENO (*设定ENO *) ERR: RET (*错误返回,ENO 不输出*) END_FUNCTION功能块图(FBD)、梯形图(LAD)和顺序功能流程图(SFC)。
一、功能块图(FBD - Function Block Diagram)功能块图用来描述功能、功能块和程序的行为特征,还可以在顺序功能流程图中描述步、动作和转变的行为特征。功能块图与电子线路图中的信号流图非常相似,在程序中,它可看作两个过程元素之间的信息流。功能块图普遍地应用在过程控制领域。功能块用矩形块来表示,每一功能块的左侧有不少于一个的输入端,在右侧有不少于一个的输出端,功能块的类型名称通常写在块内,但功能块实例的名称通常写在块的上部,功能块的输入输出名称写在块内的输入输出点的相应地方。
1.1 功能块图的信号流在功能块网路中,信号通常是从一个功能或功能块的输出传递到另一个功能或功能块的输入。信号经由功能块左端流入,并求值更新,在功能块右端流输出。 l 布尔信号的取反在使用布尔信号时,功能或功能块的取反输入或输出可以在输入端或输出端用一个小圆点来表示,这种表示与在输入端或输出端加一个“取反”功能是一致的。如下图是一功能块图取反的实例。 l 信号反馈功能块图允许功能块的输出反馈回网路左侧的功能块输入,形成反馈路径。下图是一功能块反馈路径的实例,功能块Load1的输出端Level反馈回功能块Loop1的输入端ProcessValue。 1.2 功能块网路设计 功能块图的设计首先应该保证主信号流的线路清晰,避免过多的信号跨接和线路方向改变。
1.3 功能的执行控制功能块图网路中的功能执行控制隐含地从各功能所处的位置中表现出来。每一功能的执行隐含地是由一个输入使能EN控制,该输入EN是一个布尔类型变量,允许功能有选择的求值。当输入EN为TRUE时,该功能就执行,否则,功能不执行。功能的输出ENO也是一个布尔变量,当ENO从FALSE变成TRUE就表明功能已经完成了求值。 1.4 跳转和标注功能块图允许使用“Jump”功能使得功能块图控制从程序的一个部分跳转到另一个由标识符“Lable”标识的部分继续执行。如下图是一个跳转的实例:当GasLevel的值超过0。15时,相应的控制即转移到有表识符GAS_ALARM的程序段继续执行。
1.5 结构化文本与功能块图之间的转换特点 l 功能块图中的大部分程序能够转换为结构化文本。 l 结构化文本程序能够容易地转化为功能、功能块及其相关的参数值。 l 结构化文本直接转化为功能块网路是很困难的,IF…THEN, CASE,FOR, WHILE, REPEAT格式的语句还不能直接转换为功能块网路。
1.6 连续功能流程图(CFC-Continuous Function Chart)连续功能流程图是功能块图的一种特殊形式,它用于描述资源的顶层结构以及程序和功能块对任务的分配。连续功能流程图和功能块图之间的主要区别是资源和任务分配的不同。每一功能用任务的名称来描述,如图所示。程序也是箱是的情况。如果一个程序内的功能块象它的父程序一样在相同的任务下执行,任务关联是隐含的。在这种情况下,任务名称就没有必要显示在功能块中。连续功能流程图如图7所示。
1.7 功能块图应用实例如图是一个功能块应用的实例,该实例描述了用功能块控制空气风门的情况。信号ReqOpen以及ReqClose给出了所要求的风门的位置,该位置被保存在RS双稳态功能块中,来自“POSTTTION” 功能块输出及转换输出用于用于产生DemandOpen和DemandClose信号,这些信号驱动风门转动到合适的位置。 图一 功能块实例图二功能块程序示意图风门上的限位开关OpenLS和CloseLS返回的是风门的实际位置信号。限位开关信号与要求的风门位置进行与比较,如果任何一个校对失败,比如风门已打开到要求的位置,而限位开关OpenLS处于false,延时计时器将起动。如果风门未按要求移动到要求的位置并且在限定的有限时间MoveTimeOut内不能确定限位开关的情况,定时器Timer1将产生Discrepancy信号。二. 梯形图(LD-Ladder Diagram)梯形图IEC 1131-3的三种图形化编程语言种一种,它可被用来描功能,功能块和程序即程序组织单元(POU-Porgramm Orgnization Unit)的行为,以及顺序功能图(SFC - Sequential Function Charts)中的行为和转移。
2.1 LD背景梯形图来源于美国,它基于图形表示的继电器逻辑,是PLC编程中被最广泛使用一种图形化语言。梯形图程序的左、右两侧有两垂直的电力轨线,左侧的电力轨线名义上为功率流从左向右沿着水平梯级通过各个触点、功能、功能块、线圈等提供能量,功率流的终点是右侧的电力轨线。每一个触点代表了一个布尔变量的状态,每一个线圈代表了一个实际设备的状态,功能或功能块与IEC 1131-3中的标准库或用户创建的功能或功能块相对应。一简单的梯形图程序如图(一)所示。
2.2 IEC 1131-3的LD图形符号 IEC 1131-3中的梯形图(LD)语言是对各PLC厂家的梯形图(LD)语言合理地吸收、借鉴,语言中的各图形符号与各PLC厂家的基本一致。IEC 1131-3的主要的图形符号包括:1.触点类:常开触点、常闭触点、正转换读出触点、负转换触点。2. 线圈类:一般线圈、取反线圈、置位(锁存)线圈、复位去锁线圈、保持线圈、置位保持线圈、复位保持线圈、正转换读出线圈、负转换读出线圈。 3. 功能和功能块:包括标准的功能和功能块以及用户自己定义的功能块,图形太多这里未给出。
2.3 IEC 1131-3的LD编程
2.3.1 在梯形图中连接功能块功能块能被连接在梯形图的梯级中,每一功能块有相应的布尔输入和输出量。输入量可以被梯形图梯级直接驱动,输出可以提供驱动线圈的功率流。在每一个块上至少应有一个布尔输入和布尔输出以允许功率流通过这个块。功能块可以是标准库中的也可以是自定义的。如下图二是一个在梯形图中连接功能块以驱动电动马达的实例。
2.3.2 在梯形图中连接功能每一个功能有一个附加的布尔输入EN和布尔输出ENO。EN提供了流入功能的功率流信号;ENO提供了可用来驱动其它功能和线圈的功率流。如下图三是在梯形图中连接功能的实例,第一个功能是在三个数中取最大,第二个功能是从第一功能输出的最大数与1000.0比较,根据比较1000.0的大小来控制线圈COOL。
2.3.3 在梯形图中有反馈回路在梯形图程序中可包含反馈回路,例如,在反馈回路中,一个或多个触点值被用作功能或功能块的输入的情况。如图三是在梯形图中有反馈回路的情况。
2.3.4 梯形图中使用跳转和标注使用梯形图的跳转功能使得梯形图程序可以从程序的一个部分跳转到由一个标识符标识的另一部分。如下图四是在梯形图中使用跳转和标注的实例,当变量OXYGEN或PRESSURE是OFF,控制即转移到由SPARGE标识的控制程序处执行。
2.4 ST、FBD及LD之间的可移植性 l 简单的主要包含“与”和“或”逻辑梯形图程序可以与结构化文本程序转换;在大部分的情况下,梯形图程序可以与功能块图程序进行转换。 l 用结构化文本描述的功能可以直接与梯形图、功能块转换 l 除简单的逻辑描述外,由结构化文本程序到梯形图程序的转换常常是不可能的
2.5 梯形图编程如图五是一个用梯形图编写的火灾报警程序。FD1,FD2和FD3 是三个火灾探测器, 图三 火灾报警系统示意图 图四火灾报警系统的梯形图程序 MAN1是一个手动按钮,用来触发火灾报警。当三个探测器中的任两个或三个全部探测到有火灾情况发生时,于是Alarm_SR功能块驱动报警线圈报警。ClearAlarm按钮清除报警。当有一个探测器处于ON,相应的火灾警告指示灯亮。如果该指示灯在报警清除后继续保持亮,就表明该探测器或者有错,或者在该探测器的附近有火灾。三. 顺序功能流程图(SFC-Sequential Function Chart) 顺序功能流程图是IEC 1131-3三种图形化语言中的一种,是一种强大的描述控制程序的顺序行为特征的图形化语言,可对复杂的过程或操作由顶到底地进行辅助开发。SFC允许一个复杂的问题逐层地分解为步和较小的能够被详细分析的顺序。
本文关键字:暂无联系方式PLC入门,plc技术 - PLC入门
上一篇:PLC的四大外部设备