功能框图

一图胜千言万语是一句耳熟能详的谚语,它断言复杂的故事可以用一张静止的图片来讲述,或者一张图片可能比大量的文字更有影响力。它还恰当地描述了工业控制中基于可视化软件的目标。功能框图(FBD)可以取代文本程序中的数千行代码。

通过阿伦·维拉马尼和托德·沃尔特,国家仪器公司 二七年七月一日

一图胜千言万语是一句耳熟能详的谚语,它断言复杂的故事可以用一张静止的图片来讲述,或者一张图片可能比大量的文字更有影响力。它还恰当地描述了工业控制中基于可视化软件的目标。

一个功能框图(FBD)可以替换文本程序中的数千行。图形化编程是一种通过组装和连接功能块来指定系统功能的直观方式。本系列的前两部分评估了阶梯图和文本编程作为计算模型的选择。在这里,将讨论和比较fbd的优点和缺点。

FBD网络中功能块的执行控制隐含于FBD中的功能块位置。

fbd由IEC 61131-3引入克服与文本编程和梯形图相关的弱点。FBD网络主要由相互连接的功能和功能块组成,用于表达系统行为。引入功能块是为了解决在应用程序的不同部分或不同项目中重用常见任务的需求,例如比例-积分-导数(PID)控制、计数器和计时器。功能块是软件的打包元素,它描述了数据的行为、数据结构和定义为一组输入和输出参数的外部接口。

在许多方面,功能块理论上可以与电子设备中使用的集成电路相比较。函数块被描述为一个矩形块,输入从左边进入,输出从右边出来。典型功能块图,带输入输出。

函数块的主要特性是执行之间的数据保存、封装和信息隐藏。数据保存是通过每次调用函数块时在内存中创建函数块的单独副本来实现的。封装将软件元素的集合作为一个实体处理,而信息隐藏限制了封装元素中的外部数据访问和过程。由于封装和信息隐藏,系统设计人员在从以前的控制解决方案复制代码时不会冒意外修改代码或覆盖内部数据的风险。

功能,功能框图

函数是一种软件元素,当使用一组特定的输入值执行时,它产生一个主要结果,并且没有任何内部存储。函数经常与函数块混淆,函数块有内部存储,可能有多个输出。函数的一些例子是sin()和cos()这样的三角函数,加法和乘法这样的算术函数,以及字符串处理函数。功能块包括PID、计数器和定时器。

FBD是通过连接多个函数和功能块而构建的程序,结果一个块成为下一个块的输入。与文本编程不同,将数据从一个子例程传递到另一个子例程时不需要变量,因为连接不同块的连接会自动封装和传输数据。

FBD可以用来表达功能块和程序的行为。它还可以用于描述顺序功能图(sfc)中的步骤、操作和转换。

除非来自其他元素的所有输入都可用,否则不计算函数块。当一个函数块执行时,它计算它的所有变量,包括输入变量和内部变量以及输出变量。在执行过程中,算法为输出和内部变量创建新值。如前所述,功能和功能块是fbd的构建块。在fbd中,信号被认为是从函数或功能块的输出流向其他函数或功能块的输入。

函数块的输出被更新为函数块计算的结果。因此,信号状态和值的变化自然地从左向右传播整个FBD网络。信号也可以从函数块的输出反馈到前面的函数块的输入。反馈路径意味着在FBD网络评估后,路径中的值被保留,并用作下一次网络评估的起始值。见FBD组网图。

FBD网络中功能块的执行控制是从功能块在FBD中的位置隐式的。例如,在“FBD network…”图中,“Plant Simulator”功能被评估在“Control”功能块之后。可以通过启用功能块来控制执行顺序,并在执行完成后使输出终端改变状态。只有当所有功能和功能块的所有输出都更新时,FBD网络的执行才被认为是完成的。

功能块的输出信号可以成为其他功能的输入。

FBD的优势

接下来是FBD的一些优势。

直观,易于编程。由于fbd是图形化的,因此没有经过广泛编程培训的系统设计人员很容易理解和编程控制逻辑。这有利于领域专家,他们不一定是用文本语言编写特定控制算法的专家,但他们理解控制算法的逻辑。他们可以使用现有的功能块轻松地构造程序进行数据采集、处理和离散控制。

广泛的代码重用.函数块的主要好处之一是代码重用。如前所述,系统设计人员可以使用现有的功能块,如pid和过滤器,或封装自定义逻辑,并在整个程序中轻松重用此代码。由于每次调用这些函数块时都会生成单独的副本,因此系统设计人员不会冒意外覆盖数据的风险。此外,功能块还可以从梯形图甚至文本语言(如结构化文本)中调用,这使得它们在不同的计算模型之间具有高度的可移植性。

并行执行。随着多处理器系统的引入,可编程自动化控制器和pc现在可以同时执行多种功能。图形化编程语言,如fbd,可以有效地表示并行逻辑。虽然文本程序员使用特定的线程和计时库来利用多线程,但图形化、FBD和数据流语言(如National Instruments LabView)可以在不同的线程中自动执行并行函数块。这有助于需要高级控制的应用程序,包括并行多个pid。

执行可追溯性和易于调试。fbd的图形化数据流使调试变得容易,因为系统设计人员可以遵循功能和功能块之间的连线。许多FBD程序编辑器(如Siemens Step 7)还提供显示数据流的动画,以使调试更容易。

FBD的弱点

FBD的一些弱点随之而来。

算法开发

低级函数和数学算法传统上用文本函数表示;即使是功能块的算法传统上也是使用文本编程编写的。此外,函数块抽象了算法的复杂性,使得领域专家很难学习高级控制和信号处理技术的细节。

有限的执行控制

FBD网络的执行从左到右,适用于连续行为。虽然系统设计人员可以通过“跳转”构造和使用两个功能块之间的数据依赖关系来控制网络的执行,但fbd并不适合解决排序问题。例如,从“油箱装满”状态到“油箱搅拌”状态需要评估所有当前状态。根据输出,必须在转移到下一个状态之前执行转换操作。虽然这可以通过使用功能块的数据依赖性来实现,但这样的排序可能需要大量的时间和精力。

它集成

随着企业越来越多地寻求将现代工厂车间与企业连接起来的方法,与Web和数据库的连接变得极其重要。虽然文本程序具有数据库日志记录功能和源代码控制功能,但fbd通常无法与IT系统本机集成。此外,IT经理通常只接受文本编程方面的培训。

需要培训

虽然直观,但数据流通常不作为计算模型来教授。在美国,工程师接受的是使用c++、Fortran和Visual Basic等文本语言的培训,技术人员接受的是梯形逻辑或电路的培训。fbd需要额外的培训,因为它们代表了编写控制程序的范式转变。

fbd是一种表示控制程序的图形化方法,也是一种数据流编程模型。fbd的直观性、易用性和代码可重用性使其非常受工程师的欢迎。fbd是并行执行和连续处理的复杂应用程序的理想选择。它们还有效地填补了阶梯逻辑中的空白,例如封装和代码重用。为了克服它们的一些弱点,工程师们必须采用混合计算模型。fbd与文本编程结合使用,用于算法和IT集成。通过添加sfc,批处理和离散操作得到了改进。SFC计算模型解决了fbd面临的一些挑战,将在这个五部分系列的第四部分中讨论。

作者信息
Arun Veeramani是国家仪器公司的产品经理,Todd Walter是集团经理,

编程方法系列

功能块图是国家仪器公司作者探索不同软件编程方法的系列文章中的第三篇。第一篇文章介绍了阶梯逻辑(2007年3月),第二篇文章介绍了文本计算模型(2007年6月)。以后的文章将介绍状态图和仿真/建模方法。

文章可在