组件自动化支持建模和控制

组件自动化使用面向对象的编程哲学和技术。尽管“面向对象”可能在自动化行业中由于一些软件公司的起步而获得了不应有的负面声誉,但它是未来控制编程的重要工具。

加里·a·明切尔著 二二年九月一日
关键字
  • 嵌入式控制

  • 机控制

  • 软件

  • 对象技术

  • 编程

栏:
下面是一个函数块示例

组件自动化使用面向对象的编程哲学和技术。虽然“面向对象”可能在自动化行业中由于一些软件公司的创业而获得了不应有的负面声誉,但它是未来控制编程的重要工具。

这些技术是通过两个国际电工委员会(IEC)标准和统一建模语言(UML)实现的。IEC 61499功能块可被认为主要用于离散控制,而IEC 61804侧重于过程工业。

在面向对象编程中,每个编程任务都是根据对象及其相互关系来考虑的。对象是一个自包含的可执行代码体。它包含其函数和操作这些数据的算法(称为方法)所需的数据。对象的一个重要特征是“继承”,也就是说,新对象可以从现有对象派生出来。“类”可以被看作是培育新对象的模板,以便更快地将具有相似属性的对象的特定实例带入生活。

例如,参考本文中显示电机的图表。程序员可以创建一个名为“motor”的类。”This code contains the important inputs, outputs, and control code for the motor along with a description of the types of data needed for control or generated by its operation. As specific motors are selected for various automation projects, a programmer uses the motor class object to create a specific motor object. Once created and saved, this object can be used by the programmer or others whenever this motor will be used on a project.

在面向对象的编程中,一个类可以被看作是一个通用对象的模板,这个通用对象被实例化为一个特定的对象,正如这些电机对象所描述的那样。

另一个特性是封装。对象不需要向外界公开其方法或数据。它可能只提供输入接口和作为输出的数据和事件。专有算法可能被分散地隐藏起来。

美国国家仪器公司自动化市场经理Don Holley指出,使用基于组件的自动化系统设计和实现有三个好处:可重用性、可扩展性和可维护性。“程序员可以开发、测试和记录软件组件,然后自信地在其他应用程序中重用它,”他继续说。“组件”能够解耦和分发应用程序的各个部分,这使得扩展制造自动化系统的不同部分变得更加容易。最后,大型单片应用程序可能更难排除故障,支持和维护成本更高。

自动化智能公司(Duluth, GA)的软件开发经理Brian Martinicky补充说,“编写良好的软件对象隐藏了低级细节,使高层次、更有组织的方法能够解决复杂的控制问题。数十年的控制经验可以体现在一个对象系统中,使经验不足的控制工程师可以像经验丰富的专业人士一样创建解决方案。”

如果对象以图形方式表示,那么控制工程师可以可视化地映射项目并将映射链接到代码。这个可视化的地图在整个项目规划以及调试和故障排除方面有很大的帮助。

或者,正如Wonderware (Lake Forest, CA)高级副总裁兼总经理凯文•托克(Kevin Tock)所说,“工厂是数百或数千个组件一起工作的,所以为什么不通过配置代表工厂设备和功能的软件组件来建模一个工厂呢?””

一种建模工具是UML。程序员使用编程工具,以图形方式描绘控制系统,添加功能、数据和其他基本成分,然后程序生成代码,通常使用C语言。

软件组件可以成为嵌入式控制应用程序整个基于模型设计的基础。

Chris Kobryn是Object Management Group (OMG) UML Revision Task Force的联合主席,也是Telelogic (Irvine, CA)的首席技术专家,他是开发标准核心技术基础设施库的领导者。这样的库将支持跨不同公司的软件实现这些工具,也称为模型驱动架构(MDA)。

Kobryn指出,模型驱动开发是一场思维革命,类似于其他行业发生的事情,比如从CAD到CAM的转变。最终结果由模型驱动,您可以从中生成产品质量的代码。基础设施库是可重用类的集合,我们希望将其作为制造和过程控制的最终用户构造的上层结构。”

在模型中添加一些高级的数学运算,就可以完成复杂的建模和控制。The MathWorks的市场总监Mike Dickens说:“建模和仿真工具现在广泛用于汽车、航空航天和工业自动化应用的控制系统设计。这些工具用于模拟整个系统的运行动态,包括工厂和控制器。”

IEC 61804功能块建立在IEC 61499功能块的基础上,如图所示。61804块可以被认为是定义过程控制的编程,而61499块主要用于编程离散控制。

功能块

讨论IEC 61499功能块的源代码是使用IEC 61499建模控制系统:将功能块应用于分布式系统罗伯特·刘易斯著,电气工程师学会出版(英国伦敦)。IEC 61499关于功能模块的新标准尚未在产品中实施。然而,这些想法开始一点点地融入到现有产品中。Lewis先生和罗克韦尔自动化(Mayfield Heights, OH)高级技术架构副总裁Ken Hall证实,罗克韦尔已经在Java中实现了许多用于测试和开发的功能块。

霍尔还说,61499标准还有一些工作要做。例如,内存占用仍然太大,无法嵌入到较小的设备中。当然,随着微控制器添加了更强大的32位引擎,如MIPS和ARM,占用空间与功耗的曲线将很快跨越。我希望61499首先出现在智能输出设备上,如执行器、夹子、幻灯片等。它将从那里逐渐成长。”

根据罗克韦尔自动化Logix业务经理Tim Reckinger的说法,客户对标准化的需求正在推动组件的发展。他说,对于需要重用PLC对象的大型全球原始设备制造商来说尤其如此。现在,我们正在Logix引擎中测试61499个对象。它可能使我们能够满足我们许多客户的‘零橱柜’理念。”

罗伯特·刘易斯(Robert Lewis)的《使用IEC 61499建模控制系统:将功能块应用于分布式系统》解释说,功能块是自动化中定义健壮、可重用软件组件的既定概念。该书由英国电气工程师学会(伦敦)出版。它们允许将算法封装在一种形式中,这种形式可以很容易地被非软件专家理解和应用。IEC 61499扩展了IEC 61131的工作,IEC 61131定义了四种编程工业控制语言(梯形图,功能块图,结构化文本和指令列表),以及称为顺序功能图的程序组织方法。

IEC 61499功能块提供数据和事件输入和输出。例如,数据可能进入一个块,例如,从模拟设备读取的数据。然后,一个事件输入到达函数块。根据调度器定时,块将开始使用其内部方法(算法)处理信息,例如PID计算。当该方法完成后,它将设置一个事件输出并将新数据发送到数据输出。

每个函数块类型都有一个类型名和一个实例名。类型名可以是' PID ',而' PID '的实例可以是' Loop 1 '。

多个功能块连接在一个系统中以完成一个应用程序。本标准下的功能块可以在任何文本语言下实现。书中的示例是在IEC 61131的结构化文本中完成的,但公司可以用Java, C等实现。

同时,一个IEC委员会正在为过程控制行业专门制定一个功能块标准。IEC 61804建立在IEC 61499标准,以及基金会现场总线,ProfibusPA和HART标准之上。

艾默生过程管理(Austin, TX)的首席技术专家和两个标准工作组的成员Terry Blevins指出,“电子设备描述(EDD)由描述现场总线设备的标准定义,是基金会现场总线DD语言ProfibusPA EDDL和HART DD的超集。因此,该标准对过程工业、系统供应商和现场总线设备制造商真正感兴趣。”

IEC 61804功能块用封装算法(方法)和一组参数定义流程输入和输出。它进一步定义了三种类型的块。技术模块表示设备(传感器或执行器)的过程附件。它包含了一个装置的驱动原理的测量。应用功能块包含与应用相关的信号处理,如缩放、告警检测或控制、计算等。设备模块表示设备的资源,包含有关设备本身、设备操作系统和设备硬件的信息和功能。

布莱文斯指出,有两种系统使用IEC 61804规范来构建一致的功能模块,并允许尚未在规范范围内的设备使用代理模块:艾默生过程管理(location)公司的DeltaV系统使用FOUNDATION现场总线功能模块,以及西门子能源与自动化(Alpharetta, GA)公司的PCS7系统使用Profibus进行联网。

西门子E&A还与Profibus国际的其他成员合作,在Profinet的保护伞下开发一个全面的基于组件的系统。

西门子全球控制器营销经理Egon Hillermann表示:“技术模块标准的可用性,包括机械和电气设备以及相关控制程序的完整功能,将使oem能够将更多的资源集中在增加机器的价值上,而不必过多担心最终的集成问题。”Profinet使用现代软件组件技术来规范组件之间的通信。

在西门子的Step 7编程编辑器中有一个“生成Profinet组件”功能。它生成描述组件和相关数据存储的XML(可扩展标记语言)。高级工程工具Simatic iMap支持通信关系的图形化创建。Profinet使用以太网通过代理访问其他网络,如Profibus。目前它是基于COM和DCOM的。

对象的好处

Opto 22(加利福尼亚州Temecula)的技术营销总监Benson Hougland报告说,工程服务公司和Opto 22解决方案合作伙伴Turbocraft(华盛顿州Tukwila)最近发布了一个软件对象,这是一个很好的例子,可以从面向对象的软件哲学中获益。Turbocraft开发了PID_Control安装程序,用于安装完整的PID控制工厂车间项目。它包括一个提供趋势的显示界面。

有时,公司可以为项目开发提供完整的软件平台。RTI(实时创新公司,森尼维尔,CA)发布了星座,一个专门用于无人系统设计的商用现货平台。它允许使用UML构建控制系统,从MathWorks移植到SimuLink进行模拟测试模型,然后生成工作代码。

虽然主要讨论的是控制编程,但对象在HMI开发中广泛使用已经有一段时间了。

Intellution公司(艾默生过程管理公司,马萨诸塞州Foxborough) HMI/SCADA产品营销总监Roy Kok指出,“Intellution公司的FIX和iFix产品多年来一直将工厂车间作为程序开发的对象。其思想是创建对象的进程数据库。我们允许动态地创建这些对象。例如,如果需要更改RTU,则有一个驱动程序监视系统,感知更改并构建新对象。

Wonderware的托克说,该公司新的ArchestrA框架回答了如何表示和模拟植物的问题。“物品背后的概念是你把所有相关信息放在一起。在屏幕上,有描述、安全级别等标签。然后,您可以移动它、创建实例或复制它。它甚至可以实现更好的版本控制。”

Wonderware的ArchestrA营销副总裁马克•戴维森补充道:“客户正在寻找能够将所有不同事物放入上下文的工厂级应用程序建模功能。他们希望能够做到这一点,而不改变整个工厂的控制结构。ArchestrA将启用此功能。

GE发那科自动化(Charlottesville, VA)的CPM业务负责人Rich Carpenter透露,GE发那科在两个层面上追求基于组件的实施。首先,我们使用对象模型来存储通过组件模型公开的捕获的用户配置和运行时数据。这允许系统内的其他应用程序发现和操作任何组件的信息。其次,简单性允许用户定义的组件被创建、分类和实例化。在监管层面,与一种设备相关的所有组件都可以组合成描述其整体属性的更高级别组件。

已经存在的组件可以让控制工程师的工作变得更轻松。然而,寻找不断增长的发展,使自动化系统的建模和控制更容易和更好。

评论:电子邮件gmintchell@reedbusiness.com

下面是一个函数块示例

这种PID_Simple功能块类型被定义为基本功能块,并根据执行控制图(ECC)和用IEC 61131-3编写的高级语言结构化文本编写的算法来指定,改编自Robert Lewis使用IEC 61499建模控制系统,由电气工程师学会(伦敦,英国)出版。

ECC显示了两个状态' INIT '和' PID_RUN ',当这个块分别接收' INIT '和' RUN '事件时存在。初始化算法“ALG_INIT”在“RUN_PID”状态激活时运行;同样,当“RUN_PID”状态处于活动状态时,PID算法“ALG_PID”将运行。当任一算法完成后,ECC总是返回到初始的“START”状态。

FUNCTION_BLOCK PID_SIMPLE
EVENT_INPUT

END_EVENT

EVENT_OUTPUT

END_EVENT

VAR_INPUT

END_VAR

VAR_OUTPUT

END_VAR

st中的alg_init算法:
(*初始化PID变量*)
END_ALGORITHM
st中算法alg_pid:
(* PID_Simple算法的代码*)
END_ALGORITHM
END_FUNCTION_BLOCK