可编程控制器plc与一般的计算机相类似,在软件方面有系统软件和应用软件之分,只是可编程控制器的系统软件由可编程控制器生产厂家固化在 ROM 中,一般的用户只能在应用软件上进行操作,即通过编程软件来编制用户程序。编程软件是由可编程控制器生产厂家提供的编程语言,至今为止还没有一种能适合各种可编程控制器的通用的编程语言,但是各个可编程控制器发展过程有类似之处,可编程控制器的编程语言即编程工具都大体差不多,一般有如下五种表达方式。
一、梯形图( Ladder Diagram )
梯形图是一种以图形符号及图形符号在图中的相互关系表示控制关系的编程语言,它是从继电器控制电路图演变过来的。梯形图将继电器控制电路图进行简化,同时加进了许多功能强大、使用灵活的指令,将微机的特点结合进去,使编程更加容易,而实现的功能却大大超过传统继电器控制电路图,是目前最普通的一种可编程控制器编程语言。
梯形图及符号的画法应按一定规则,各厂家的符号和规则虽不尽相同,但基本上大同小异,如图 1 所示。
图 1 三种不同的梯形图
a) 欧姆龙 b) 松下 c) 三菱
对于梯形图的规则,总结有以下具有共性的几点,如表 1 所示,以便读者加深对可编程控制器变成的认识和学习。
表 1 可编程控制器部分符号意义
输入动合触点 | 输入动断触点 | 输出继电器 | 输出继电器动合触点 | |
欧姆龙 | ||||
松下 | ||||
三菱 | ||||
注释 | 欧姆龙: 00 □□表示输入触点 松下: X□表示输入触点 三菱: X□表示输入触点 | 欧姆龙: 05 □□表示输出触点(或线圈) 松下: Y□表示输出触点(或线圈) 三菱: Y□表示输出触点(或线圈) |
1 .梯形图中只有动合和动断两种触点。各种机型中动合触点和动断触点的图形符号基本相同,但它们的元件编号不相同,随不同机种、不同位置(输入或输出)而不同。统一标记的触点可以反复使用,次数不限,这点与继电器控制电路中同一触点只能使用一次不同。因为在可编程控制器中每一触点的状态均存入可编程控制器内部的存储单元中,可以反复读写,故可以反复使用。
2 .梯形图中输出继电器(输出变量)表示方法也不同,有圆圈、括弧和椭圆表示,而且它们的编程元件编号也不同,不论哪种产品,输出继电器在程序中只能使用一次。
3 .梯形图最左边是起始母线,每一逻辑行必须从起始母线开始画。梯形图最左边还有结束母线,一般可以将其省略。
4 .梯形图必须按照从左到右、从上到下顺序书写,可编程控制器是按照这个顺序执行程序。
5 .梯形图中触点可以任意的串联或并联,而输出继电器线圈可以并联但不可以串联。
6 .程序结束后应有结束符。
二、指令表( Instruction List )
梯形图编程语言优点是直观、简便,但要求用带 CRT 屏幕显示的图形编程器才能输入图形符号。小型的编程器一般无法满足,而是采用经济便携的编程器(指令编程器)将程序输入到可编程控制器中,这种编程方法使用指令语句(助记符语言),它类似于微机中的汇编语言。
语句是指令语句表编程语言的基本单元,每个控制功能有一个或多个语句组成的程序来执行。每条语句规定可编程控制器中 CPU 如何动作的指令,它是由操作码和操作数组成的。
操作码用助记符表示要执行的功能,操作数(参数)表明操作的地址或一个预先设定的值。欧姆龙、松下、三菱可编程控制器指令语句程序见表 2 。
表 2 几种不同的可编程控制器指令语句表
机型 | 步序 | 操作码 (助记符) | 操作数参数 | 说明 |
欧姆龙 | 1 2 3 4 5 | LD OR ANDNOT OUT END | 0000 0500 0001 0500 ─ | 逻辑行开始,动合触点 0000 从母线开始并联输出继电器的动合触点 0500 串联输入动断触点 0001 输出继电器 0500 输出,逻辑行结束 程序结束 |
松下 | 1 2 3 4 5 | ST OR ANI OT ED | X0 Y1 X1 Y0 ─ | 逻辑行开始,动合触点 X0 从母线开始并联输出继电器的动合触点 Y1 串联输入动断触点 X1 输出继电器 Y0 输出,逻辑行结束 程序结束 |
三菱 | 1 2 3 4 5 | LD OR ANI OUT END | X0 Y1 X1 Y0 ─ | 逻辑行开始,动合触点 X0 从母线开始并联输出继电器的动合触点 Y1 串联输入动断触点 X1 输出继电器 Y0 输出,逻辑行结束 程序结束 |
三、顺序功能图( Sequential Chart )
顺序功能图常用来编制顺序控制类程序。它包含步、动作、转换三个要素。顺序功能编程法可将一个复杂的控制过程分解为一些小的顺序控制要求连接组合成整体的控制程序。顺序功能图法体现了一种编程思想,在程序的编制中具有很重要的意义。在介绍步进梯形指令时将详细介绍顺序功能图编程法。图 2 所示为顺序功能图。
图 2 顺序功能图
四、功能块图( Function Block Diagram )
功能图编程语言实际上是用逻辑功能符号组成的功能块来表达命令的图形语言,与数字电路中逻辑图一样,它极易表现条件与结果之间的逻辑功能。图 3 所示为先“或”后“与”再输出操作的功能块图。
由图可见,这种编程方法是根据信息流将各种功能块加以组合,是一种逐步发展起来的新式的编程语言,正在受到各种可编程控制器厂家的重视。
图 3 功能块图编程语言图
五、结构文本( Structure Text )
随着可编程控制器的飞速发展,如果许多高级功能还是用梯形图来表示,会很不方便。为了增强可编程控制器的数字运算、数据处理、图表显示、报表打印等功能,方便用户的使用,许多大中型可编程控制器都配备了 PASCAL 、 BASIC 、 C 等高级编程语言。这种编程方式叫做结构文本。与梯形图相比,结构文本有两个很大优点,其一,是能实现复杂的数学运算,其二,是非常简洁和紧凑。用结构文本编制极其复杂的数学运算程序只占一页纸。结构文本用来编制逻辑运算程序也很容易。
以上编程语言的五种表达式是由国际电工委员会( IEC ) 1994 年 5 月在可编程控制器标准中推荐的。对于一款具体的可编程控制器,生产厂家可在这五种表达方式提供其中的几种编程语言供用户选择。也就是说,并不是所有的可编程控制器都支持全部的五种编程语言。
可编程控制器的编程语言是可编程控制器应用软件的工具。它以可编程控制器输入口、输出口、机内元件之间的逻辑及数量关系表达系统的控制要求,并存储在机内的存储器中,即所谓的“存储逻辑”。