
1.4 PLC的编程语言
1.4.1 PLC的软件组成
PLC的软件由系统程序和用户程序组成。
系统程序是由PLC制造厂商设计编写的,并存入PLC的系统存储器中,用户不能直接读写与更改。系统程序一般包括系统诊断程序、输入处理程序、编译程序、信息传送程序、监控程序等。
PLC的用户程序是用户利用PLC编程语言,按照不同的控制要求编制不同的控制任务用户程序,相当于设计和改变继电-接触器控制的“硬接线”控制线路,只不过这里采用了“软继电器”等逻辑部件“软接线”来实现输入信号与输出被控对象之间的逻辑关系,这就是PLC的“可编程序”。程序既可由编程器方便地送入PLC内部存储器中,也能方便地读出、检查和修改。
在PLC的应用中,最重要的是用PLC的编程语言来编写用户程序,以实现控制目的。由于PLC是专门为工业控制而开发的装置,其主要使用者是广大电气技术人员,为了满足他们的传统习惯和掌握能力,PLC的主要编程语言采用比计算机语言相对简单、易懂、形象的专用语言。
PLC各厂家的编程语言、指令的条数和表达方式有较大区别。为电子技术制定全球性标准的世界性组织IEC(国际电工委员会)于1994年5月公布了PLC标准(IEC 61131),其第3部分是PLC的编程语言标准。目前已有越来越多的PLC厂家提供符合ⅢC 61131-3标准的产品。IEC 61131-3标准中定义了梯形图LAD(Ladder Diagram)、指令表STL(Statement List)、顺序功能图SFC(Sequential Function Chart)、功能块图FBD(Functional Block Diagram)和结构文本ST(Structured Text)5种PLC编程语言。
其中,梯形图和功能块图为图形语言,指令表和结构文本为文字语言,顺序功能图是一种结构块控制程序流程图。
梯形图编程语言形象直观,类似电气控制系统中继电器-接触器控制电路图,逻辑关系明显;指令表编程语言虽然不如梯形图编程语言直观,但键入方便;顺序功能图编程语言是一种较新的编程方法,适合于步进控制。
1.4.2 梯形图(LAD)编程语言
梯形图编程语言习惯上称作“梯形图”,它是在继电器-接触器控制系统中常用的接触器、继电器逻辑控制基础上演变而来的。PLC梯形图与继电器-接触器控制系统电路图相呼应,在基本思想上是一致的,只是在表达方式、器件符号上有一定区别,如图1-9所示。PLC梯形图使用其内部的“软元件”通过软件程序来实现。

图1-9 三相异步电动机的PLC控制
梯形图按“从左到右、自上而下”的顺序排列,最左边的竖线称为“起始母线”或“左母线”,然后按一定的控制要求和规则连接各个“软触点”,最后以继电器“软线圈”结束,称为一个“逻辑行”或一个“梯级”,一般在最右边还加上一条竖线,这一竖线被称为“右母线”。通常一个梯形图中有若干逻辑行或梯级,形似梯子,如图1-9(c)所示,梯形图由此得名。其主要特点是形象直观、实用方便、修改灵活,深受技术人员欢迎,是目前使用最多的一种PLC编程语言,因此又被称为“用户第一语言”。
PLC的梯形图是形象化的编程语言,虽然其基本思想与继电器-接触器控制系统电路图相似,但PLC梯形图左右两侧的母线不接任何电源。梯形图中并没有真实的物理电流流动,而仅仅是概念上的“电流”,或称之为假想电流。把PLC梯形图中左边母线假想为电源线,右母线假想为电源地线,假想电流只能“从左向右”流动,层次只能“先上后下”。这里引入假想电流仅仅用于帮助理解梯形图各个输出点的动作,实际上并不存在这种电流。
1.4.3 指令表(STL)编程语言
指令表编程语言又称为助记符语言,是PLC最基础的编程语言。它类似于计算机中的汇编语言,采用一些容易记忆的助记符来表示PLC的某种操作,也是由操作符和操作数两部分组成,但比汇编语言更直观易懂。
操作符用助记符表示,如“LD”表示“取”、“OR”表示“或”、“AND”表示“与”等,用来执行要实现的功能,告诉CPU该进行什么操作,如逻辑运算的“与”、“或”、“非”,算术运算的“加”、“减”、“乘”、“除”,时间或条件控制中的“定时”、“计数”、“移位”等操作。
操作数表示被操作的对象或目标。
表1-1是与图1-9(c)所示梯形图相应的指令表。
表1-1 与图1-9(c)所示梯形图相应的指令表

不同厂家的PLC指令表使用的助记符并不相同,用户必须先弄清楚PLC的型号及内部元件编号、使用范围和每一条助记符的使用方法。
1.4.4 顺序功能图(SFC)编程语言
顺序功能图编程语言是一种较新的编程方法,目前国际电工委员会(IEC)正在着力发展这种新的编程标准。它是用像控制系统流程图一样的功能图表达一个顺序控制过程。不同厂家的PLC对这种编程语言所用的符号和名称也不一样。