PLC是专为工业控制而开发的装置,其主要使用者是工厂广大电气技术人员,为适应他们的传统习惯和掌握能力,通常PLC不采用微机的编程语言,而常常采用面向控制过程、面向问题的“自然语言”编程。目前因PLC生产厂家较多,且编程方法多样,针对于此,国际电工委员会(IEC)在标准IEC61131-3《可编程序控制器语言标准》中推荐了5种编程语言。目前已有越来越多的生产厂家提供符合IEC61131-3标准的产品。下面对常用的几种编程语言作简要介绍:梯形图(Ladder Diagram,LD)、功能块图(Function Block Dia-gram,FBD)、顺序功能图(Sequential Function Chart,SFC)。文本化编程语言包括:指令表(Instruction List,IL)和结构化文本(Structured Text,ST)。
1.梯形图
梯形图是使用得最多的图形编程语言,被称为PLC的第一编程语言。梯形图的编程方式与传统的继电器-接触器控制系统电路图非常相似,直观形象,很容易被熟悉继电器控制的电气人员所掌握,特别适用于开关量逻辑控制,不同点是它的特定的元件和构图规则。这种表达方式特别适用于比较简单的控制功能的编程。例如图3-1a所示的继电器控制电路,图3-1b所示的用PLC完成其功能的梯形图。
图3-1 接触-继电系统图和PLC梯形图
a)接触-继电系统图 b)PLC梯形图
梯形图是由触点、线圈和应用指令等组成。触点代表逻辑输入条件,比如按钮、行程开关、接近开关和内部条件等。线圈代表逻辑输出结果,用来控制外部的指示灯、交流接触器和内部的输出标志位等。
梯形图的编程方法的要点:梯形图按自上而下、从左到右的顺序排列。每个继电器线圈为一个逻辑行,即一层阶梯。每一逻辑行起于左母线,然后是触点的各种连接,最后终止于继电器线圈,右母线有无均可。整个图形呈阶梯状。梯形图是形象化的编程手段。梯形图的左右母线是不接任何电源的,因而梯形图中没有真实的物理电流,而只有“概念”电流。“概念”电流只能从左到右流动,层次的改变只能先上后下。
2.功能块图
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言,有数字电路基础的人很容易掌握。功能块图的编程方法与数字电路中的门电路的逻辑运算相似,采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。图3-2所示为西门子S7-300系列PLC的三种编程语言,图3-2a是逻辑功能图、图3-2b梯形图、图3-2c指令表。
图3-2 同一种逻辑关系的表示法(www.daowen.com)
a)逻辑功能图 b)梯形图 c)指令表
3.顺序功能图
是一种根据系统工作的动作过程进行编程的语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步地按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。在顺序功能图中可以用别的语言嵌套编程。步、转换和动作是顺序功能图中的三种主要元件,如图3-3所示。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统规模较大,程序关系较复杂的场合。
图3-3 顺序功能图
SFC编程方法的优点:在程序中可以很直观地看到设备的动作顺序。不同的人员都比较容易理解其他人利用SFC方法编写的程序,因为程序是按照设备的动作顺序进行编写的;在设备故障时,编程人员能够很容易地查找出故障所处在的工序,从而不用检查整个冗长的梯形图程序;不需要复杂的互锁电路,更容易设计和维护系统。
4.指令表
PLC指令表编程语言是与汇编语言类似的一种助记符编程语言,同样是由操作码和操作数组成。因此,由指令组成的程序叫做指令表程序。利用指令表编写的程序较难阅读,程序中的逻辑关系很难一眼看出,所以,在程序设计中较少用,在设计时一般采用梯形图语言编程。当然,在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。如果使用的是梯形图编写的程序,在使用手持编程器时,必须将梯形图语言转换成指令表后写入到PLC中。且指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。
5.结构化文本语言
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
尽管PLC已获得广泛的应用,但是到目前为止,仍没有一种可以让各个厂家生产的PLC相互兼容的编程语言,且指令系统也是各自成体系,有所差异。如美国AB公司的PLC采用梯形图编程方式;西门子公司PLC采用结构化编程方式。本章主要以日本三菱公司生产的Q系列PLC为例,详细介绍PLC的指令系统和梯形图、指令表、顺序功能图编程方法。其他方法不再赘述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。