浅析PLC编程
2018-11-13陈璐安徽省淮南技工学校232100
陈璐 安徽省淮南技工学校 232100
可编程控制器(PLC)是在继电器控制和计算机控制基础上开发的工业自动控制装置,是计算机技术在工业控制领域的一种应用技术。其主要使用者是工厂广大电气技术人员,为了适应他们的传统习惯,通常PLC 不采用微机的编程语言,而常常采用面向控制过程、面向问题的“自然语言”编程。下面就PLC 编程谈谈笔者的见解。
一、常用编程语言
IEC(国际电工委员会)于1994 年5 月公布的IEC1131-3(可编程控制器标准的第三部分)中定义了5 种PLC 编程语 言:(1) 梯 形 图LAD(Ladder Diagram)(2) 语 句 表STL(Statement List)(3) 功 能 块 图 FBD(Function Block Diagram)(4) 结构文本ST(Structured Text)(5) 顺序功能图SFC(Sequential Function Chart)。目前,梯形图和语句表是PLC 的主要编程语言,其中梯形图是使用得最多的编程语言,被称为PLC 的第一编程语言。
梯形图程序中输入信号和输出信号之间的逻辑关系一目了然,易于理解并与继电器电路的表达方式相似,由于梯形图一定能也较易于转化为语句表,因此,在设计以开关量控制为主的控制程序时建议使用梯形图。有时把梯形图也称为电路或程序。梯形图的设计称为编程。
二、PLC 编程的基本规则
尽管梯形图与继电器电路图在结构形式、元件符号及逻辑控制功能等方面相类似,但它们又有许多不同之处,梯形图具有自己的编程规则。
(1)外部输入、输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用,无需用复杂的程序结构来减少接点使用次数。
(2)梯形图按“自上而下,从左到右”的顺序绘制。每一逻辑行总是起于左母线,然后是触点的连接,最后终止于线圈或右母线(右母线可以不画出)。左母线与线圈之间一定要有触点,而线圈与右母线之间则不能有任何触点。
(3)梯形图中的触点可以任意串联或并联,但继电器线圈只能并联而不能串联。
(4)触点的使用次数不受限制。
(5)同一编号的线圈在同一程序中,使用了两次或多次,称为“双线圈输出”。双线圈输出容易引起错误操作,应尽量避免线圈重复使用。
(6)对于不可编程梯形图必须通过等效变换,变成可编程梯形图。
(7)有几个串联电路相并联时,应将串联触点多的回路放在上方,在有几个并联电路相串联时,应将并联触点多的回路放在左方。
三、PLC 编程的基本技巧
PLC 编程技巧是在实践中不断总结出来的。较好地掌握编程技巧,可提高编程的速度和质量。下面六点是笔者编程是常用的技巧。
1、“上沉下轻”
在每一逻辑行中,串联触点多的支路应放在梯形图上方。如果将串联触点多的支路放在梯形图下方,则语句增多,程序变长。如图1 所示。
图1 为两个逻辑功能相同的梯形图,但它们对应的语句表程序却不相同,扫描时间也不同。如将图1(a)中并联的两条支路上、下对换,则变换后的梯形图即图1(b),原有的逻辑关系保持不变,但程序简化了。
(a)梯形图语句表 (b)梯形图语句表
0 LD 0003 0 LD 0001
1 LD 0001 1 AND 0002
2 AND 0002 2 OR 0003
3 ORB 3 OUT 2001
4 OUT 2001 4 END
5 END
2、“左沉右轻”
在每个逻辑行中,并联触点多的电路应放在梯形图左方。如果将并联触点多的电路放在梯形图右方,则语句增多,程序变长。如图2 所示。
图2 为两个逻辑功能相同的梯形图,但它们对应的语句表程序却不相同,扫描时间也不同。如将图2(a)中串联的两部分电路左、右对调,则变换后的梯形图即图2(b),原有的逻辑关系保持不变,但程序简化了。
(a)梯形图语句表 (b)梯形图语句表
0 LD 0003 0 LD 0001
1 LD 0001 1 OR 0002
2 OR 0002 2 AND 0003
3 ANB 3 OUT 2001
4 OUT 2001 4 END
5 END
3、合并逻辑行
梯形图中,当多个逻辑行都具有相同条件时,常将这些逻辑行合并,能节省语句数。如图3(a)所示,并联触点0001、0002 是各个逻辑行所共有的相同条件,可合并成如图3(b)所示的梯形图,利用主控指令或分支指令来编程。当相同条件复杂时,可节省许多存储空间,这对存储容量小的PLC 很有意义。
4、等效变换
梯形图中,不允许一个触点上有双向“电流”通过,如图4(a)所示,触点0005 上有双向“电流”通过,该梯形图不可编程,这是不允许的。对于这样的梯形图,应跟据其逻辑功能作适当的等效变换,如图4(b)所示。再将其简化成如图4(c)所示的梯形图
四、PLC 编程经验
弄通有关PLC 程序设计理论是重要的。没有经验,仅有理论,既无法深刻理解理论,又无法灵活应用理论。任何理论也都只是经验的总结,归根到底也都有是来自实践。
1、经验积累
经验有别人的,也有自己的,都很重要。前者要靠细心学习,后者要靠用心积累,都要在一定的时间与必要的精力。别人的经验有上了书的或登载在杂志上的。有的是细心学习别人的,但多数是我自己的经验。所有的例子都经我测试过,都经实践证明是可行的。我想,别的书本或杂志上介绍的也会是这样的。所以学习这样杨功的经验是必要的。还有就是你同事的经验,也是值得学习。这种经验离你很“近”,很易借鉴。自己的经验则是最重要的,要在自己的实践中,积累自己的经验,同时,最好在学别人的经验时,也能亲自作些测试,能使自己也有类似的经历,进而把这些经验变成自己的。这也是自己经验的重要积累。
2、经验升华
经验还有待升华。升华有三个层次:最低的层次就是建立一个典型的程序库,供今后再用。若程序复杂,还可建一些功能块,或子程序,以便以后引用。其次,要总结出有效算法。如单按钮起停程序库等。最高层次的升华是把经验上升到理论的高度,为丰富PLC 程序设计理论作贡献。我想,随着PLC使用的普及与提高,是会有越来越多从经验中升华出来的,而又能用以指导实践的PLC 编程理论的。
3、经验应用
经验积累、经验升华都是为了应用。经验应用有三方面:
1)用作工程设计模板。设计新系统时,选用一个或几个与现设计工程类似的,已取得成功的工程,作样板进行设计。这既可减轻设计的工作量,又增加设计的成功率。这也是信息可重用的一大好处。
2)用作程序设计参考。在无成功的工程可作样板时,在新设计的逻辑中,仍有相当一部分控制逻辑,可采用或借用已有典型逻辑,这也可减少设计的工作量,增加设计的成功率。
3)用作算法设计参考。在既无样板可参照,又无典型可采用时,还可运用过去的一些成功的算法。
总之,PLC 编程要理论与实践相结合,时时刻刻做个有心人,坚持不懈,循序渐进,方能提高自己的编程水平。