
1.3.2 PLC的软件及编程语言
在建立PLC硬件接口电路的基础上,软件就是实现控制功能的方法和手段。
PLC的软件主要分为系统软件和用户程序两大部分。系统软件由PLC制造商编制,并固化在PLC内部PROM或EPROM中,随产品一起提供给用户,用于控制PLC自身的运行;用户程序是由用户编制、用于控制被控装置运行的程序。
1.系统软件
系统软件又分为系统管理程序、编程软件和标准程序库。
1)系统管理程序是系统软件最重要的部分,是PLC运行的主管,具有运行管理、存储空间管理、时间控制和系统自检等功能。其中,存储空间管理是指生成用户程序运行环境,规定输入/输出、内部参数的存储地址及大小等;时间控制主要是对PLC的输入采样、运算、输出处理、内部处理和通信等工作的时序实现扫描运行的时间管理;系统自检是对PLC的各部分进行状态检测,及时报错和警戒运行时钟等,确保各部分能正常有效地工作。
2)编程软件是一种用于编写应用程序的工具,具有编辑、编译、检查、修改、仿真等功能。FX系列PLC常用的编程软件是GX Developer集成开发软件。
3)标准程序库由许多独立的程序块组成,包括输入、输出、通信等特殊运算和处理程序,如信息读/写程序等,各个程序块能实现不同的功能,PLC的各种具体工作都是由这部分程序完成的。
2.用户程序
用户程序是指用户根据工艺生产过程的控制要求,按照使用的PLC所规定的编程语言或指令系统编写的应用程序。用户程序除了PLC的控制逻辑程序外,对于需要操作界面的系统还包括界面应用程序。
用户程序的编制可以使用编程软件在计算机或者其他专用编程设备上进行,也可使用手持编程器。用户程序常采用梯形图、助记符等方法编写。用户程序必须经编程软件编译成目标程序后,下载到PLC的存储器中进行调试。
3.PLC的编程语言
目前,PLC的硬件、软件还没有统一标准,不同PLC厂商都针对自己的产品开发了不同的编程语言,并且大多数不兼容。但IEC于1994年规定了PLC的标准编程语言为梯形图、指令表、顺序功能图、功能模块图和结构化语句五种。下面分别说明本书使用的梯形图、指令表及顺序功能图编程语言。
(1)梯形图(ladder diagram,LD)编程语言
梯形图编程语言是PLC最常用的一种程序设计语言。
梯形图编程语言来源于对继电器逻辑控制系统的描述。梯形图与继电器控制系统的电路图很相似,具有直观易懂的优点,很容易被熟悉继电器控制的电气人员掌握。将继电器控制电路转换为FX系列PLC梯形图控制程序如图1-11所示。

图1-11 将继电器控制电路转换为FX系列PLC梯形图控制程序
a)继电器控制电路 b)梯形图控制程序
梯形图编程语言具有以下特点:
1)与电气操作原理图相对应,具有直观性和对应性。
2)与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于学习和掌握。
3)与原有继电器逻辑控制技术的不同点是,梯形图中的能流(power flow)不是实际意义的电流,内部继电器也不是实际存在的继电器,在应用时要与原有继电器逻辑控制技术的有关概念相区别。
4)与指令表编程语言有一一对应关系,便于相互转换和程序检查。
(2)指令表(instruction list)编程语言
指令表编程语言用助记符来表示操作功能,如图1-12所示。任何梯形图程序都有一一对应的指令表语句,其实现的功能完全相同。

图1-12 FX系列PLC的梯形图程序及指令表编程
a)梯形图程序 b)指令表编程
指令表编程语言采用助记符来表示操作功能,具有容易记忆、便于掌握的特点。
(3)顺序功能图(sequential function chart,SFC)编程语言
顺序功能图编程语言又称功能表图或状态转移图编程语言,是近年发展起来的一种编程语言。它是将一个完整的控制过程分为若干个状态,每个状态都有不同的任务,状态间的转移有一定条件,只要条件满足就实现状态转移。图1-13为FX2N系列PLC控制组合机床动力头进给运动的顺序功能图。

图1-13 FX2N系列PLC控制组合机床动力头进给运动的顺序功能图
顺序功能图编程语言的特点如下:
1)以功能为主线,条理清楚,便于对程序操作的理解和沟通。
2)对大型程序可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间。
3)常用于系统的规模较大、程序关系较复杂的场合。
4)只有在活动步的命令和操作被执行时,PLC才对活动步后的程序段进行扫描。因此,整个程序的扫描时间较采用其他方法编制的程序要大大缩短。