根据PLC编程标准,对功能块的定义是:能对若干输入进行处理,进而产生输出(一般为多个),或能执行某个特定操作。功能块要用实例(Instance)调用。在程序中,可创建多个实例。每个实例应具有一个相关的标识符(实例名称)和包含其输出和内部变量的一个数据结构,以及与实例有关的输入值或输入的引用。
功能块与函数不同,它没有返回值。但它的输出被永久保存在功能块的实例中。所以也称为有记忆(with memory)的一组指令块。也因此,同样的实例,不同的程序扫描周期其输出可能是不同的。在功能块实例的外部,只有输入和输出可存取,而功能块的内部变量对功能块用户是隐藏的。
图1-4所示为和利时PLC系统提供的一个增计数的功能块。这里的实例命名为C1。
图1-4 增计数的功能块(www.xing528.com)
它的功能是实现增计数。与西门子PLC增计数指令的功能相同。该图上方的C1为实例名。图形左边的CU、RESET、PV(使用时的书写为C1.CU、C1.RESET、C1.PV)为功能块的输入端,右边的Q、CV(使用时的书写为C1.Q、C1.CV)为功能块的输出端。当这里的复位端(RESET)OFF,计数输入端(CU)信号每从OFF到ON一次,则计数功能块实例C1的现值加1。计数功能块现值输出(CV)端,输出计数功能块的当前计数值。当计数值大,等于计数设定值(PV)时,计数功能块输出(Q)端ON。当复位端ON时,停止计数,且计数功能块现值复位为0。
一个功能块还可调用另一个功能块。但不能直接、间接地调用自身,即也不允许递归调用。
功能块也分系统功能块与用户功能块,分别集成在相关功能块库中。系统功能块由PLC厂商提供,西门子称SFB。PLC档次越高,厂商提供功能块也越多。用户功能块由用户编写与生成,西门子称自建的功能块为FB。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。