8.3.1 可编程序控制器语言的国际标准
现代的可编程序控制器一般备有多种编程语言,供用户选用。 不同厂家的可编程序控制器的编程语言有较大的区别,用户不得不学习多种编程语言。
IEC(国际电工委员会)于1994年5月公布了可编程序控制器标准(IEC1131),该标准由以下5部分组成:通用信息、设备与测试要求、可编程序控制器的编程语言、用户指南和通讯。其中的第3部分(IEC1131-3)是可编程控制器的编程语言标准。
IEC1131-3标准使用户在使用新的可编程序控制器时,可以减少重新培训的时间。 对于厂家,使用标准将减少产品开发的时间,可以投入更多的精力去满足用户的特殊要求。
IEC1131-3详细地说明了句法、语义和下述5种编程语言(见图8.9)的表达方式:
图8.9 PLC的编程语言
顺序功能图(Sequential function chart);
梯形图(Ladder diagram);
功能块图(Function block diagram);
指令表(Instruction list);
结构文本(Structured text)。
其中梯形图(LD)和功能块图(FBD)是图形语言,指令表(IL)和结构文本(ST)是文字语言,顺序功能图(SFC)被认为是一种结构块控制程序流程图。
1)顺序功能图(SFC)
这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序,编程人员不一定对PLC的指令系统非常熟悉,甚至可以不懂计算机知识,只要对被控过程的工艺流程非常熟悉就可以协助进行SFC的设计,因此,它是各专业技术人员进行交流的桥梁。 大多数通用编程器不能直接对SFC进行编辑,必须将其转换成对应的指令表输入编程器实现程序的编译。 关于SFC的设计在第9章中将作详细介绍。
2)梯形图(LD)
梯形图是使用得最多的可编程序控制器图形编程语言。梯形图与继电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂熟悉继电器控制的电气人员掌握,特别适用于开关量逻辑控制。
IEC1131-3的梯形图中除了线圈、常开触点和常闭触点外,还允许增加功能和功能块。通常我们把梯形图称为电路或程序,把梯形图的设计叫做编程。
图8.10(a)是一个简单的继电器线路。 用梯形图语言编制出完成同一功能的程序如图8.10(b)所示。显然梯形图所表示的逻辑关系与继电器线路是一致的。 图中X0,X1和Y0分别是PLC的输入、输出变量,它们分别对应继电器线路中的SB1,KM1和KM2。不同PLC产品对输入、输出变量编号均有自己的规定,但意义是一样的。
图8.10 继电线路与梯形图的比较
梯形图主要有以下特点:(www.zuozong.com)
①可编程序控制器梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器(即硬件继电器),而是在软件中使用的编程元件。每一编程元件与可编程序控制器存储器中元件映像寄存器的一个存储单元相对应。该存储单元如果为“1”状态,则表示梯形图中对应编程元件的线圈“通电”,其常开触点接通,常闭触点断开,以后我们称这种状态是该编程元件为“1”状态,或称该编程元件ON (接通)。 如果该存储单元为“0”状态,对应的编程元件的线圈和触点的状态与上述的相反,称该编程元件为“0”状态,或称该编程元件OFF(断开)。
②梯形图与继电器控制电路图的形式及符号非常相似,如图8.10示,梯形图按自上而下,从左到右的顺序排列,其左侧的垂直公共线称为左母线,从左母线开始,按一定的控制要求和规则连接两个触点,最后以继电器线圈结束,这样一段电路成为一逻辑行,最右边还可以加一条竖线,称为右母线。在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线之间有一个左正右负的直流电源电压,当图8.11中的触点1,2接通时,有一个假想的“概念电流”或“能流”(Powerflow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。能流只能从左向右流动,图8.11(a)中可能有两个方向的能流流过触点5(经过触点1,5,4或经过触点3,5,2),无法将该图转换为指令表,因此应将它改为图(b)所示的等效电路。
图8.11 梯形图
(a)错误的梯形图;(b)改正后的梯形图
③根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的ON/OFF状态,称为梯形图的逻辑解算。 逻辑解算是按梯形图中从上到下、从左至右的顺序进行的。解算的结果,马上可以被后面的逻辑解算所利用。 逻辑解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。
④梯形图中各编程元件的常开触点和常闭触点均可以无限多次地使用,也可以任意串联和并联连接使用,但各编程元件的线圈之间只能并联不能串联。而且,线圈必须放在最右边。
⑤梯形图中的内部继电器、计数器、定时器、各种寄存器等均不能控制外部负载,其提供的信号只能作为PLC内部解算梯形图的中间结果,而不能直接控制负载。 只有输出继电器才能向负载输出控制信号。
图8.12 功能块图
3)功能块图(FBD)
这是一种类似于数字逻辑电路的编程语言,有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,信号是自左向右流动的。就像电路图那样,它们被“导线”连接在一起(见图8.12),在与控制元件之间的信息、数据流动有关的高级应用场合,FBD是很有用的。
像SFC一样,功能块图FBD也是一种图形语言,在FBD中也允许嵌入别的语言(如梯形图、指令表和结构文本)。
4)指令表(IL)
由若干条指令组成的程序叫做指令表程序,有的厂家将指令称为语句。
可编程序控制器的指令是一种与微机的汇编语言中的指令相似的助记符表达式,但是小型可编程序控制器的指令系统比汇编语言的简单得多,使用20多条可编程序控制器的基本逻辑指令,就可以编制出能替代继电器控制系统的梯形图。指令表程序较难阅读,其中的逻辑关系很难一眼看出,所以在设计时一般使用梯形图语言。 使用图形编程器可以直接将梯形图写入可编程序控制器,并在显示器上显示出来。如果使用简易编程器,则必须将梯形图转换成指令表后再写入可编程序控制器,这种转换的规则是很简单的。在用户程序存储器中,指令按步序号顺序排列。
通常,不同厂家生产的PLC所使用的指令助记符是不同的,所以,对于完成同一功能的梯形图所写出的指令表也是不同的,这是学习中应该注意的。
5)结构文本(ST)
随着可编程序控制器的迅速发展,如果仍然用梯形图来表示高级功能,会很不方便。为了增强可编程序控制器的数学运算、数据处理、图形显示、报表打印等功能,方便用户的使用,许多大中型可编程序控制器都配备了Pascal,Basic,C等高级编程语言。
结构文本(ST)是为IEC1131-3标准创建的一种专用的高级编程语言,实际上,受过计算机编程语言训练的人将会发现用它来编制控制逻辑是很容易的。 与梯形图相比,ST有两个很大的优点,其一是能实现复杂的数学运算,其二是非常简洁和紧凑,用ST编制极其复杂的数学运算程序可能只占一页纸。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。