PLC是一种由软件驱动的控制设备,PLC软件由系统程序和用户程序组成。 系统程序由PLC制造厂商设计编制,并写入PLC内部的ROM中,用户无法修改。用户程序是由用户根据控制需要编制的程序,再写入PLC存储器中。
PLC常用的编程语言有梯形图语言和指令表编程语言,其中梯形图语言最为常用。
1.梯形图语言
梯形图语言采用类似传统继电器控制电路的符号,用梯形图语言编制的梯形图程序具有形象、直观、实用的特点, 因此这种编程语言成为电气工程人员应用最广泛的PLC的编程语言。
下面对相同功能的继电器控制电路与梯形图程序进行比较,具体如图3-1所示。
图3-1继电器控制电路与梯形图程序比较
图3-1a为继电器控制电路,当SB1闭合时,继电器KA0线圈得电,KA0自锁触点闭合,锁定KA0线圈得电;当SB2断开时,KA0线圈失电,KA0自锁触点断开,解除锁定;当SB3闭合时,继电器KA1线圈得电。
图3-1b为梯形图程序,当常开触点X1闭合(其闭合受输入继电器线圈控制,图中未画出)时,输出继电器Y0线圈得电,Y0自锁触点闭合,锁定Y0线圈得电;当常闭触点X2断开时,Y0线圈失电,Y0自锁触点断开,解除锁定;当常开触点X3闭合时,继电器Y1线圈得电。
不难看出,两种图的表达方式很相似,不过梯形图使用的继电器是由软件来实现的,使用和修改灵活方便,而继电器控制电路硬接线修改比较麻烦。
2.语句表语言
语句表语言与微型计算机采用的汇编语言类似,也采用助记符形式编程。 在使用简易编程器对PLC进行编程时,一般采用语句表语言,这主要是因为简易编程器显示屏很小,难于采用梯形图语言编程。下面是采用语句表语言编写的程序(针对三菱FX系列PLC),其功能与图3-1b梯形图程序完全相同。
从上面的程序可以看出,语句表程序就像是描述绘制梯形图的文字。 语句表程序由步号、指令、操作数和说明四部分组成, 其中说明部分不是必需的,而是为了便于程序的阅读而增加的注释文字,程序运行时不执行说明部分。
1.梯形图编程的规则
梯形图编程规则如下:
1)梯形图每一行都应从左母线开始,从右母线结束。
2)输出线圈右端要接右母线,左端不能直接与左母线连接。
3)在同一程序中,一般应避免同一编号的线圈使用两次(即重复使用),若出现这种情况,则后面的输出线圈状态有输出,而前面的输出线圈状态无效。
4)梯形图中的输入/输出继电器、内部继电器、定时器、计数器等元件触点可多次重复使用。
5)梯形图中串联或并联的触点个数没有限制,可以是无数个。
6)多个输出线圈可以并联输出,但不可以串联输出。
7)在运行梯形图程序时,其执行顺序是从左到右,从上到下,编写程序时也应按照这个顺序。
2.梯形图编程技巧
在编写梯形图程序时,除了要遵循基本规则外,还要掌握一些技巧,以减少指令条数,节省内存和提高运行速度。 梯形图编程技巧主要有:
1)串联触点多的电路应编在上方。 图3-2a所示是不合适的编制方式,应将它改为图3-2b所示方式。
图3-2串联触点多的电路应编在上方
2)并联触点多的电路放在左边, 如图3-3所示。
图3-3并联触点多的电路放在左边
3)对于多重输出电路,应将串有触点或串联触点多的电路放在下边, 如图3-4所示。
图3-4对于多重输出电路应将串有触点或串联触点多的电路放在下边
4)如果电路复杂,可以重复使用一些触点改成等效电路,再进行编程, 如图3-5所示。
图3-5对于复杂电路可重复使用一些触点改成等效电路再进行编程