可编程序控制器技术及应用项目化教程
上QQ阅读APP看书,第一时间看更新

任务1.3 学习PLC的编程语言

任务引入

与个人计算机相比,PLC的硬件、软件的体系结构都是封闭的而不是开放的。各个厂家PLC的编程语言和指令系统的功能和表达方式也不一致,有的甚至有相当大的差异,因此各个厂家的PLC互不兼容。本书以西门子S7-200机型为主,其常用的编程语言有哪几种?

任务分析

完成本节任务,需要详细了解可编程序控制器的编程语言的相关知识。

相关知识

目前,PLC提供的编程语言通常有以下几种:梯形图、语句表、功能图和功能块图。各种类型的PLC基本上都同时具备两种以上的编程语言。其实,同时使用梯形图和语句表的占大多数,而梯形图与语句表在表达方式上,不同厂家、不同型号的PLC还有些差异,使用符号也不尽相同,配置的功能也各有千秋。

1.梯形图(LAD)

梯形图(LADDER)是一种图形编程语言,它是从接触器-继电器控制系统原理图的基础上演变而来的。PLC的梯形图与接触器-继电器控制系统原理图的基本思想是一致的,它沿用继电器的触点、线圈、串并联等术语和图形符号,同时还增加了一些继电器-接触器控制系统中没有的特殊功能符号。对于熟悉接触器-继电器控制系统线路的技术人员来说,很容易被接受,且不需要学习专门的计算机知识。因此,在PLC应用中,梯形图是最基本的、最普通的编程语言。需要说明的是,这种编程方式只能用编程软件通过计算机下载到PLC当中去。如果使用编程器编程还需要将梯形图转变为语句表用助记符将程序输入PLC中。

PLC的梯形图虽然是从接触器-继电器控制系统线路图发展而来的,但与其又有一些本质的区别。

1)PLC的梯形图中的某些元件沿用了“继电器”这一名称,例如:输入继电器、输出继电器和中间继电器等。但是,这些继电器并不是实际存在的物理继电器,而是“软继电器”,也可以说是存储器。它们中的每一个都与PLC的用户程序存储器中的数据存储区的元件映像寄存器中的一个具体存储单元相对应。如果某个存储单元为“1”状态,则表示与这个存储单元相对应的那个继电器的“线圈断电”。反之,如果某个存储单元为“0”状态,则表示与这个存储单元相对应的那个继电器的“线圈得电”。这样,就能根据数据存储区中某个存储单元的状态时“1”还是“0”判断与之对应的那个继电器的线圈是否“得电”。

2)PLC梯形图中仍然保留了动合触点和动断触点的名称,这些触点的接通或断开,取决于其线圈是否得电(这是继电器、接触器的最基本的工作原理)。在梯形图中,在程序扫描到某个继电器的触点时,就去检查器线圈是否“得电”,即去检查与之对应的那个存储单元的状态是“1”还是“0”。如果该触点是动合触点,就取它的原状态,如果该触点是动断触点,就取它的反状态。

3)PLC梯形图中的各种继电器触点的串并联相连,实质上是在程序执行时将这些基本单元的状态一次取出来,进行“逻辑与”“逻辑或”等逻辑运算。而计算机对进行这些逻辑运算的次数是没有限制的,因此可以在编辑程序时无限次使用这些触点。特别需要注意的是,在梯形图程序中同一个继电器的线圈一般只能使用一次,但其触点形式及使用次数是随意的。

4)图1-3是典型的梯形图。左右两条垂直的线称为母线。母线之间是触点的逻辑连线和线圈的输出,不过多数PLC现在只保留左母线了。

梯形图的一个关键概念是“能流”(POWER FLOW),这只是概念上的“能流”。在图1-3中,把左边的母线假想为电源中的“相线”。如果有“能流”从左至右流向线圈,则线圈被激励。“能流”可以通过被激励(ON)的常开触点和未被激励(OFF)的常闭触点自左向右流,如图1-3中,当I0.0、I0.1、I0.2触点都接通后,线圈Q0.0才能接通(被激励),只要其中一个触点不接通,线圈就不会接通;而I0.1、I0.2、I0.3触点中任何一个接通,线圈Q0.1就被激励。

要强调指出的是引入“能流”的概念,仅仅是为了和继电器-接触器控制系统相比较,使用户对梯形图有一个深入的理解,其实“能流”在梯形图中是不存在的。

图1-3 梯形图示例

在梯形图中,触点代表逻辑“输入”条件,如开关、按钮和外部条件等;线圈通常代表逻辑“输出”结果,它可驱动像接触器线圈、电磁阀、灯及警铃等直流或交流负载。

5)在继电器控制电路中,各个并联电路是同时加电压,并行工作的,由于实际元器件动作的机械惯性可能会出现触点竞争现象。在梯形图中,各个编程元件的动作顺序是按扫描顺序依次执行的,或者说是按串行的方式工作的,在执行梯形图程序时,是自上而下,从左到右,串行扫描,不会发生触点竞争现象。

下面举两个例子说明,表面上看起来完全一样的继电器控制电路图与梯形图,它们产生的效果可能不完全相同,甚至某些作用完全相反。图1-4和图1-5给出了两组结构上完全一样的继电器控制电路图与梯形图,但最后的控制结果却不相同。

图1-4 接触器-继电器控制原理图与梯形图

a)接触器-继电器控制原理图 b)梯形图

图1-5 接触器-继电器控制原理图与梯形图

a)接触器-继电器控制原理图 b)梯形图

在图1-4a中,当SB1工作后,线圈KM1得电并自保持,且为线圈KM3得电创造条件。接着SB2动作,使线圈KM2得电。KM2的动断触点先切断KM1线圈,KM1的动合触点随之断开,此时虽然KM2的动合点闭合,但KM1已断开,使KM3总不能得电,更不用说自保持了。再来分析图1-4b,当I0.0动作后输出Q0.0“得电”并自保持,在I0.1动作后,输出Q0.1“得电”,本扫描周期内不会再改变输出Q0.0,当程序扫描到下面的Q0.0、Q0.1动合触点时,因其线圈此时均已“得电”,它们均处于接通状态。这样,输出Q0.2能“得电”且自保持。待到下个扫描周期时,虽然Q0.0因为Q0.1线圈得电而被复位,动合点断开,但因输出Q0.2已自保持,所以输出Q0.2不会受到影响,始终处在闭合状态,达到了控制目的。

下面再来分析图1-5的情况,这是一个电动机单向连续与点动运行的控制电路,继电器控制电路图能实现但梯形图不能实现的例子,在图1-5a中,当按下SB1时,KM线圈得电,它的动合触点随之闭合自锁,实现电动机连续运行;当按下SB2时,线圈KM的自保持线路断开,实现电动机的点动运行。再看图1-5b,当I0.0为“1”时,同样能形成连续运行状态。当I0.1为“1”时,就形成不了点动连续运行状态。具体分析一下,当I0.1为“1”时,它的常开触点为“1”,常闭触点为“0”的自保持电路,当松开SB2时,由于PLC的周期性逐行扫描的特点,就会形成SB2的常开触点是断开了,但常闭触点闭合,而此时此刻的KM常开触点取上一个周期KM线圈的状态,也即闭合状态。这样一来就仍能形成KM“得电”,使KM不能随着SB2的断开而断开,从而也就形成不了点动的功能。

梯形图语言直观形象,易于理解,是编程者首选的一种编程语言。

2.语句表(STL)

语句表(Statements List)就是用助记符号来表达PLC的各种功能,类似于计算机的汇编语言,但比汇编语言通俗易懂,它是PLC最基本的编程语言之一。所谓语句表编程,是用一个或几个容易记忆的字符代表PLC的某种操作功能。这种编程语言可使用简易编程器编程,尤其是在未开发计算机软件时,就只能将已编好的梯形图程序转换成语句表的形式,再通过简易编程器将用户程序逐条输入到PLC的存储器中进行编程。通常每条指令由操作码(指令)、地址和操作数(数据或器件编号)3部分组成。语句编程设备简单,连接范围不受限制,但比较抽象,一般与梯形图语言配合使用,互为补充。目前,由于计算机技术和通信技术的发展,编程器已经淡出,人们基本使用编程软件在计算机上编程,然后下载到PLC,大多数PLC编程软件都有梯形图与语句表编程之间转换的功能。

3.顺序功能图(SFC)

顺序功能图(Sequence Function Chart)编程方式采用画工艺流程图的方法编程,也称为功能图,只要在每一个工艺方框的输入和输出端标上特定的符号即可。对于在工厂中搞工业设计的人来说,这种方法编程不需要很多的电气知识,非常方便。

不少PLC的新产品采用了顺序功能图,提供了用于SFC编程的指令,有的公司已生产出系列的、可供不同PLC使用的SFC编辑器,原来几十页的梯形图程序,SFC只用一页就可以完成。另外,由于这种编程语言最适合从事工艺设计的工程技术人员,因此它是一种效果显著、深受欢迎、前途光明的编程语言。目前国际电工委员会(IEC)也正在实施并发展这种语言的编程标准。

4.功能块图(FBD)

这是一种由逻辑功能符号组成的功能块图(Function Block Diagrams)来表达命令的编程语言。这种编程语言基本上沿用半导体逻辑电路的逻辑框图,对每一种功能都是用一个运算方块,其运算功能由方块内的符号确定,常用“与”“或”“非”等逻辑功能表达控制逻辑。和功能方块有关的输入画在方块的左边,输出画在方块的右边。利用FBD可以查到像普通逻辑门图形的逻辑盒指令,它没有梯形图编辑器中的触点和线圈,但有与之功能等同的逻辑块指令,这些指令是作为块指令出现的,程序逻辑由这些块指令之间的连接方式决定。采用这种编程语言,不仅能简单明确地表达逻辑功能,还能通过对各种功能块的组合,实现加法、乘法、比较等高级功能,所以它也是一种功能较强的图形编辑语言。在大多数编程软件里,可以同梯形图、语句表之间进行转换。对于熟悉逻辑电路和具有逻辑代数基础的人来说,是非常方便的。图1-6为实现电动机起、停、保控制的3种编程语言的表达方式图。

图1-6 起、保、停控制的3种编程语言表达方式图

a)梯形图语言 b)语句表语言 c)功能块图语言

5.高级语言

在一些大型PLC中,为了完成一些较为复杂的控制,采用功能很强的微处理器和大容量存储器,将逻辑控制、模拟控制、数值计算与通信功能结合在一起,配备BASIC、C等计算机语言,从而可像使用通用计算机那样进行结构化编程,使PLC具有更强的功能。

由于不同厂家不同系列、不同型号的PLC的编程语言各不相同,所以不同厂家的PLC是互不兼容的,但基本的逻辑思想与编程原理是一致的。

西门子S7-200机型的PLC为用户提供了语句表、梯形图及功能块图3种编程语言,以适应用户编程的需要。

任务实施

请者自行设计完成该任务的步骤。

任务总结

通过完成可编程序控制器的常用编程语言统计任务,就能够明确PLC的常用编程语言及西门子S7-200 PLC的3种常用编程语言。