- 三菱FX系列PLC数据通信及测控应用
- 李江全等编著
- 1115字
- 2020-08-27 06:09:53
1.2 PLC的软件组成与编程语言
1.2.1 PLC的软件组成
可编程序控制器(PLC)作为一种具有通信功能与可扩展输入/输出接口的工业计算机,它必须具备相应的控制软件。PLC控制软件(系统程序)根据生产厂家、型号的不同有所区别,但总体上说,可以分为系统程序和应用程序两大部分,两者相对独立。系统程序和应用程序又包括若干不同用途的组成程序,具体见下述。
1.系统程序
PLC的系统程序一般由管理程序、指令译码程序、标准功能块三部分组成,其用途各不相同。
1)管理程序
管理程序是系统程序的主体,主要作用是控制PLC进行正常工作,包括如下三个方面。
(1)系统运行管理,如控制PLC输入采样、输出刷新、逻辑运算、自诊断、数据通信等的时间次序。
(2)系统内存管理,如规定各种数据、程序的存储区域与地址,将用户程序中使用的数据、存储地址转化为系统内部数据格式及实际的物理存储单元地址等。
通过系统内存管理,PLC可以将有限的资源转变为可供用户程序使用的大量编程元件,如将实际PLC中存在的有限的CTC扩展为多个用户定时器、计数器等;并可建立起用户程序所使用的编程元件空间、程序存储空间与实际物理存储器、PIO、CTC之间对应关系。
(3)系统自诊断,PLC自诊断包括:系统错误检测、用户程序的语法检查、指令格式检查、通信超时检查等。当系统发生上述错误时,可进行相应的报警与提示。
2)指令译码程序
由于计算机最终可以执行的语言只能是机器码,为此,在PLC内部必须将用编程语言编制的用户程序转化为机器码。指令译码程序的作用,就是在执行指令过程前将用户程序逐条“翻译”成为计算机能够识别的机器码。
指令译码需要一定的时间,它将降低PLC的处理速度,因此,在编制PLC用户程序时应尽可能简洁、明了,避免重复动作,这样不仅使程序便于检查,而且还可以提高程序的执行速度。
3)标准功能块
在部分PLC中,为了方便用户编程,PLC生产厂家常将一些实现“标准动作”或特殊功能的PLC程序段,以类似子程序的形式存储于系统程序中,这样的子程序称为标准功能块。用户程序中如需完成标准功能块动作或功能,只须通过调用相应的标准功能块,并对其执行条件进行赋值即可。
标准功能块的多少代表了PLC的可编程性能,可以使用(调用)的标准功能块越多,用户程序编制就越容易、方便。
注意:以上所述的PLC系统程序,是指控制PLC系统自身运行的控制程序,它不向用户开放。因此,PLC系统程序不包括用来支持PLC编程与调试的编程软件与仿真软件,后两种属于PLC编程、调试用工具软件的范畴。
2.应用程序
PLC应用程序是指PLC的使用者(用户)根据各种控制要求与控制条件编制的PLC用户控制程序,因此常称为用户程序。
应用程序的编制方法决定于所使用的编程工具(编程器与编程软件),目前最为常用的编程语言是梯形图,其程序通俗易懂,编程直观方便。此外,指令表、逻辑功能图、顺序功能图、流程图以及其他高级语言也可以在不同的场合使用。
1.2.2 PLC的编程语言
IEC(国际电工委员会)的PLC编程语言标准(IEC 61131-3)中有5种编程语言:顺序功能图(Sequential Function Chart,SFC)、梯形图(Ladder Diagram,LD)、功能块图(Function Block Diagram,FBD)、指令表(Instruction List,IL))和结构文本(Structured Text,ST)。
其中的顺序功能图(SFC)、梯形图(LD)和功能块图(FBD)是图形编程语言,指令表(IL)和结构文本(ST)是文字语言。
目前已有越来越多的PLC生产厂家提供符合IEC 61131-3标准的产品,有的厂家推出的在个人计算机上运行的“软PLC”软件包也是按IEC 61131-3标准设计的。
1)顺序功能图
顺序功能图(SFC)是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。顺序功能图提供了一种组织程序的图形方法,在其中可以用其他语言嵌套编程。步、转换和动作是顺序功能图中三种主要的元件(如图1-8所示)。顺序功能图用来描述开关量控制系统的功能,根据它可以很容易地画出顺序控制梯形图程序。
图1-8 顺序功能图
2)梯形图
梯形图(LD)是使用最广泛的PLC图形编程语言。梯形图与继电器控制系统的电路图很相似,直观易懂,很容易被工厂熟悉继电器控制的工作人员掌握,特别适用于开关量逻辑控制。图1-9和图1-10中用西门子S7-200 PLC的3种编程语言来表示同一逻辑关系。西门子的说明书中将指令表称为语句表。
图1-9 梯形图
图1-10 功能模块图与语句表
梯形图由触点、线圈和应用指令等组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑输出结果,用来控制外部的指示灯、交流接触器和内部的输出标志位等。
在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧垂直母线之间有一个左正右负的直流电源电压(有时省略了右侧的垂直母线),当图1-9中I0.1与I0.2的触点接通,或M0.3与I0.2的触点接通时,有一个假想的“能流”(Power Flow)流过Q1.1的线圈。利用能流这一概念,可以帮助我们更好地理解和分析梯形图,能流只能从左向右流动。
3)功能块图
功能块图(FBD)是一种类似于数字逻辑门电路的编程语言,有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号自左向右流动。图1-10中的控制逻辑与图1-9中的相同。
4)指令表
PLC的指令是一种与微机的汇编语言中的指令相似的助记符表达式,由指令组成的程序叫做指令表程序。指令表程序较难阅读,其中的逻辑关系很难一眼看出,所以在设计时一般使用梯形图语言。如果使用手持式编程器,必须将梯形图转换成指令表后再写入PLC。在用户程序存储器中,指令按步序号顺序排列。
5)结构文本
结构文本(ST)是为IEC 61131-3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。
1.2.3 PLC的程序结构
PLC程序块由主程序、子程序、中断程序以及注释组成,如图1-11所示。
图1-11 程序结构
1)主程序(MAIN)
主程序中包括控制应用的指令,PLC在每一个扫描周期中顺序执行这些指令。
2)子程序(SBR)
子程序是应用程序中的可选部分。只有被主程序、中断程序或者其他子程序调用时,子程序才会执行。当希望重复执行某项功能时,子程序是非常有用的。
3)中断程序(INT)
中断服务程序是应用程序中的可选部分。中断方式有输入中断、定时中断、高速计数中断、通信中断等中断事件引发,当CPU响应中断时,可以执行中断程序。