plc的软件由系统程序和用户程序组成。
系统程序由plc制造厂商设计编写的,并存入plc的系统存储器中,用户不能直接读写与更改。系统程序一般包括系统诊断程序、输入处理程序、编译程序、信息传送程序、监控程序等。
plc的用户程序是用户利用plc的编程语言,根据控制要求编制的程序。在plc的应用中,重要的是用plc的编程语言来编写用户程序,以实现控制目的。由于plc是专门为工业控制而开发的装置,其主要使用者是广大电气技术人员,为了满足他们的传统习惯和掌握能力,plc的主要编程语言采用比计算机语言相对简单、易懂、形象的专用语言。
plc编程语言是多种多样的,对于不同生产厂家、不同系列的plc产品采用的编程语言的表达方式也不相同,但基本上可归纳两种类型:一是采用字符表达方式的编程语言,如语句表等;二是采用图形符号表达方式编程语言,如梯形图等。
以下简要介绍几种常见的plc编程语言。
1.梯形图语言
梯形图语言是在传统电器控制系统中常用的接触器、继电器等图形表达符号的基础上演变而来的。它与电器控制线路图相似,继承了传统电器控制逻辑中使用的框架结构、逻辑运算方式和输入输出形式,具有形象、直观、实用的特点。因此,这种编程语言为广大电气技术人员所熟知,是应用广泛的plc的编程语言,是plc的编程语言。
如图1所示是传统的电器控制线路图和plc梯形图。
图1 电器控制线路图与梯形图
图1 电器控制线路图与梯形图
a) 电器控制线路图 b)plc梯形图
从图中可看出,两种图基本表示思想是一致的,具体表达方式有一定区别。plc的梯形图使用的是内部继电器,定时/计数器等,都是由软件来实现的,使用方便,修改灵活,是原电器控制线路硬接线无法比拟的。
2.语句表语言
这种编程语言是一种与汇编语言类似的助记符编程表达方式。在plc应用中,经常采用简易编程器,而这种编程器中没有crt屏幕显示,或没有较大的液晶屏幕显示。因此,就用一系列plc操作命令组成的语句表将梯形图描述出来,再通过简易编程器输入到plc中。虽然各个plc生产厂家的语句表形式不尽相同,但基本功能相差无几。以下是与图1中梯形图对应的(fx系列plc)语句表程序。
步序号 指令 数据
0 ld x1
1 or y0
2 ani x2
3 out y0
4 ld x3
5 out y1
可以看出,语句是语句表程序的基本单元,每个语句和微机一样也由地址(步序号)、操作码(指令)和操作数(数据)三部分组成。
3.逻辑图语言
逻辑图是一种类似于数字逻辑电路结构的编程语言,由与门、或门、非门、定时器、计数器、触发器等逻辑符号组成。有数字电路基础的电气技术人员较容易掌握,如图2 所示。
图2 逻辑图语言编程
4.功能表图语言
功能表图语言(sfc语言)是一种较新的编程方法,又称状态转移图语言。它将一个完整的控制过程分为若干阶段,各阶段具有不同的动作,阶段间有一定的转换条件,转换条件满足就实现阶段转移,上一阶段动作结束,下一阶段动作开始。是用功能表图的方式来表达一个控制过程,对于顺序控制系统特别适用。
5.高级语言
随着plc技术的发展,为了增强plc的运算、数据处理及通信等功能,以上编程语言无法很好地满足要求。近年来推出的plc,尤其是大型plc,都可用高级语言,如basic语言、c语言、pascal语言等进行编程。采用高级语言后,用户可以像使用普通微型计算机一样操作plc,使plc的各种功能得到更好的发挥。