1
PLC编程实用指南
1.5.4.4 1.4.4  功能、功能块
1.4.4 功能功能块

1.概述

PLC系统提供的功能与功能块也是PLC指令系统的重要组成部分。目前的趋势是指PLC指令在减少,但代替它以至于比它功能更强的功能与功能块越来越多。

传统PLC也有功能、功能块。如西门子S7-300、400的FB41(CONT_C)、FB42(CONT_S)、FB43(PULSEGEN)功能块(FB),可很方便地用以实现模拟量的PID控制。这些功能块将在随后的有关编程介绍中再作说明。

再如欧姆龙新型PLC也新增系统功能块,在安装编程软件后,会自动加载到欧姆龙软件目录下的“Lib\FBL\omronlib”子文件夹中。而该文件夹下还有“PLC”、“Inverter”、“Position Con-troller”、“Temperature Controller”等若干子文件夹。这些子文件夹还含有多个子文件夹。如“PLC”文件夹下,就有“ENT”、“CLK”、“CPU”、“SCx”、“UNIT”、“CARD”等文件夹。在这些文件夹中,就有cxf文件。将这些文件加载到工程中,分别就会生成一个功能块,就可在工程程序中调用。

调用功能块与调用定时器之类指令基本一样,但要指定实例名。同时,还要对功能块的输入赋值,输出指定目标地址。

例如“PLC\CPU”文件夹中的CPU005_TOF_BCD.cxf文件,加载后生成的系统功能块是CPU005_TOF_BCD,其功能是实现输入从ON到OFF时输出OFF的延时。实际是OFF延时定时器。欧姆龙PLC原来只有ON延时定时器,有了此功能块也就有了OFF延时定时器了。图1-77所示为此功能块一个调用实例。

在该图程序中,“p_On”为常ON触点,以功能块使能“EN”ON,表示此功能块一直在调用。“tof1”为此功能块的实例名。功能块输入“IN”由“I:0.00”赋值,“I:0.00”ON,则“IN”ON,“I:0.00”OFF,则“IN”OFF。功能块输入“PT”,即定时设定值,为BCD码,单位为100ms。在此赋值为常数50,即设定延时5s。功能块输出“ENO”指定的目标地址为“10.00”。功能块延时OFF就是由它实现。功能块输出“ET”,即延时现值,指定的目标地址为“D0”,也为BCD码,单位也为100ms。

978-7-111-39745-8-Chapter02-127.jpg

图1-77 OFF延时功能块一个调用实例

由此功能块的功能可知,执行此程序:“I:0.00”ON,“10.00”即时ON;“I:0.00”OFF,“10.00”延时5s后OFF。延时过程值将显示在“D0”中。

其他系统功能块各有各的功能,在此不再赘述。

可知,系统功能块实际上也是PLC指令,而且是功能更强的指令。新增功能块可方便地扩展PLC的指令系统,增加PLC的功能,使系统升级。而且系统功能块是按需加载。不用的不加载,不占PLC内存。

提示:西门子PLC系统功能块多为不可视的。国产PLC,LM及LK机的系统功能块多是可视,又可复制。欧姆龙系统功能块可视,但不能复制。

2.有关PLC定时功能块

新型PLC多不用定时指令而用定时功能块。类型很多。其中TON(其常开触点延时通、即时断),用以进行定时或时间控制,较为常用。图1-78所示为AB等多家PLC定时功能块梯形图符号。

图中,T1为该功能块的实例名,是结构变量。使用前要先定义,要占用PLC数据区。该结构有多个分量,如图所示。IN(或仅有输入线)为输入控制,为布尔量。它ON时,定时功能块工作,OFF,停止工作。PT(或Pre-set、PV)为时间设定值输入端。设定值用时间类型变量或时间类型常数。设定时间的最小分辨率为毫秒(GE PLC可以为秒、十分之一秒、毫秒或其他,由选用功能块决定)。Q(或DN、输出线)为控制输出,布尔量。定时功能块计时的时间达到或超过设定时间,则产生这个输出。它的常开触点(T1.Q)ON、常闭触点OFF。ET(或Accum、CV)为定时功能块计时所经历的时间。数据也是时间类型。IN ON开始经历时间显示。到设定时间值时,显示设定时间值。INOFF或T1.R(复位端)ON,则恢复0,并停止输出。

从上介绍可知,这样的定时功能块,其功能与延时定时器指令完全相同。所差的只是这里操作数为实例名,数据类型为结构,使用的数量几乎不受限制;而定时指令的操作数是定时器这样内部器件,使用的数量受PLC拥有的定时器数量限制。

978-7-111-39745-8-Chapter02-128.jpg

图1-78 有关PLC定时功能块

3.有关PLC计数功能块

有增计数、减计数及可逆计数等功能块。以下仅对最为常用增计数功能块做简要介绍。其格式如图1-79所示。

这里C1为该功能块的实例名,是结构变量。使用前要先定义,要占用PLC数据区。该结构

978-7-111-39745-8-Chapter02-129.jpg

图1-79 多种PLC增计数功能块

有多个分量,如该图所示。CU(图1-79a为Count up)为增计数输入端。R或RESET为复位端(AB计数器复位要用复位(R)指令)。PV或Preset设定(预置)值输入端。Q输出端。CV计数功能块计数现值。

如图,每当CU(或Count up)端从OFF到ON一次,C1作增1计数。当计到设定值,如图为10,或大于设定值,则输出端Q(或DN)ON。且继续计数,直到最大值(此值可选,单字、双字还可考虑符号位)。而当RESET ON,计数功能块复位(现值变为0),停止计数,输出OFF。

图中EN、ENO及图1-79a的CU为附加的。但只有EN处于ON状态,才可计数。而且只要计数正常ENO则ON。

从上介绍可知,这样的计数功能块,其功能与增计数器指令完全相同。所差的只是这里操作数为实例名,数据类型为结构,使用的数量几乎不受限制;而增计数指令的操作数是计数器这样内部器件,使用的数量受PLC拥有的计数器数量限制。

4.其他功能及功能块

除了上述定时、计数功能块,还有其他功能更强的功能块。这些功能块都封装在有关库中。如施耐德PLC就有:标准库、控制库、通信库、I/O管理库、运动库、系统库、诊断库、先期库、TCP Open库及运动功能块等。至于库中都有哪些功能块则与具体选用的PLC有关。

AB PLC的库也封装在它的编程软件中。以系统预定义的数据类型形式调用。

和利时LEC G3机的功能或功能块也称扩展指令。也是封装在相应指令库中。如果使用封装在Standard.lib(标准库)和SYSLIBCALLBACK.lib(系统库)中的扩展指令,直接调用就可以了。因为在创建工程时,这两个库中所有指令会自动加载到编程系统中。对封装在其他库中的扩展指令,在调用前,需用PowerPro编程软件的库管理器先行加载。然后才可使用。

和利时LEC G3机的指令库很多,而且是开放的,可以不断添加和生成新的指令(即函数、功能块)。因而,从某种意义上讲,它的指令数量及种类是无限多的,并可根据需要增减。

具体讲它的指令库可分为三类。

第一类:PowerPro内部开放指令库。指令执行代码存在于库文件之中,可以使用PowerPro软件打开库文件,可对指令的执行代码进行修改。用户也可以自己开发新的指令,存放在内部开放指令库中。当程序下装到PLC之中,占用用户程序空间较大。

第二类:PowerPro内部不开放指令库。指令执行代码存在于“库名 .hex”文件之中,用户无法使用PowerPro软件打开库文件,不能对指令的执行代码进行修改。使用时应保证hex文件的文件名与lib文件的文件名一致,且存在于同一目录下。当程序下装到PLC之中,占用用户程序空间较大。

第三类:PowerPro外部指令库。指令执行代码已经存在于PLC底层系统之中,用户无法修改此类库所包含的执行代码。当程序下装到PLC之中,占用用户程序空间较少。

分清这三类指令库,将有助于读者对LEC G3 PLC指令系统的理解,进而更好地使用LEC G3PLC机指令资源。

LEC G3 PLC指令库一经添加,即使不调用其中的指令,也会占用用户程序空间,因此在实际编程过程中,建议只添加需要的库。

已加载的库文件也可用库管理器予以去除。

“库管理器”是它的编程软件的一部分。其窗口如图1-80所示。在PowerPro的主菜单“窗口”下的“库管理器”项,或在“对象组织器”选定“资源”,再单击其上的“库管理器”,即可弹出。这时,再单击插入主菜单项,将弹出“打开”对话框。

从图1-80可选择扩展名为“Lib”的库文件,加载到所用编程软件的平台中。如图1-80所示,若单击“打开”,则把Iecsfc库文件加载。卸载,可在窗口的左上方选定要卸载的文件,再按键盘的“delete”键,待弹出对话框,再单击“是”即可。

978-7-111-39745-8-Chapter02-130.jpg

图1-80 库管理器窗口