AMLBook1: 初学者指南 | 第二章 2.1 CAEX和AutomationML的基本概念与顶层架构 [翻译]

2.1 AutomationML架构和建模理念 architecture and modelling philosophy

2.1.1 简介 Introduction

工程数据的性质多种多样,例如,信号、设备、装置、它们的几何形状、运动学、行为和相互联系。这些数据通常是由不同领域的不同工具创建的,由此产生的碎片化是没有为所有这些方面的统一建模建立通用数据格式的原因。但是,对于每一个方面都有既定的数据格式。AML的关键思想是将这些不同的、已经建立的数据格式相互连接起来,并为工厂工程的各个方面的映射和相互连接定义建模规则。我们将这些数据格式命名为子模型。它们在各自的规范中以 "as-is 原样 "为基础使用,并不因AML的需要而进行分流。

2.1.2 AutomationML架构 architecture

图2-1说明了基本的AML架构,其子模型用于对象层次、几何学、运动学和逻辑信息,跨越多种文件格式。
image.png
image.png
对象层次中的每个AML对象可能是子对象的组合,其本身也可能是更大组合的一部分。图2-1中的对象树通过一个对象A和几个子对象显示了这一点,它们共同构成了一个对象树。通过这种方式,可以描述简单的组件以及生产单元或复杂系统。每个对象都可以引用存储在第三方XML文件中的几何学、运动学或行为信息。这使得跨领域建模成为可能。

2.1.3 AutomationML 子模型 submodels

AutomationML采用的第一个子模型是CAEX。CAEX构成了AutomationML的核心,可以定义一个对象的层次结构来模拟一个事物的世界。CAEX是独立于领域的,它是一种面向对象的数据建模的元语言。最后,它被用来与其他子模型互连。表2-1总结了AutomationML的子模型和子模型的强制版本。

[表格]
image.png

在语法上,AML对象和CAEX对象之间没有区别,因为AML是在 "as-is 原样 "的基础上采用CAEX。这意味着,每个AML对象都是一个CAEX对象,但不是每个CAEX对象都是AML对象。CAEX对象和AML对象之间的区别仅在于建模规则。CAEX对象只遵循CAEX标准的准则,而AML对象是一个额外遵循AML标准的建模规则的CAEX对象。
对于几何学和运动学的建模,我们选择了COLLADA[COL08]。行为是通过数据格式PLCopen XML来建模的。在未来,IEC 62714的其他部分可能会定义进一步的格式。在此之前,外部文件可以通过通用参考机制来引用(见2.5.4节)。

总结
AML标准没有定义任何新的文件格式,相反,它定义了各种数据格式如何相互连接。这就是为什么IEC62714-1:2018文件的规范性部分只有32页。

2.1.4 工厂工程中面向对象的建模理念 Object-oriented modelling philosophy in plant engineering

本节讨论了与面向对象的软件编程相比,工厂工程所需的对象建模理念。
AutomationML的一般建模理念追求的是独立于供应商的信息建模和分层对象信息的存储。为了能够用AutomationML进行数据建模,我们必须从事物及其关系的角度来看世界。
面向对象是一种强大的方法,可以更好地控制复杂性,这种方法在软件行业中早已得到了几十年的验证。这适用于软件本身的内部结构,以及提供给软件用户的操作理念和数据表示。但另一方面,在工厂设计中,作为有效规划的工具,面向对象仅在最近几十年才获得实际意义。同时,在工程工具中,如RobCAD、COSIMIR、COMOS、RobotStudio、Engineering Base、DELMIA4和其他许多工具中,以对象为导向的思考方式已经得到证实。
术语 "面向对象 "在这里是从规划者的角度来使用的,涉及到面向对象的工程技术,如数据存储、表示和操作,见[FaDr05]。Microsoft Visio是一个著名的具有面向对象操作理念的绘图工具的例子。有了这样的工具,图纸是由对象组成的,其属性和关系可以被配置。像Comos这样的工程工具(见图2-2)也以分层对象树的形式提供了方便的面向对象的数据表示[SCH02]。
image.png
AutomationML支持面向对象的概念,如实例、类、继承、聚合、组合、属性和关系。这些术语对计算机科学家来说是众所周知的,但它们在自动化行业中相对较新,而且应用的方式略有不同。
在AutomationML中,一个对象作为一个真实或逻辑规划资产的 “代表”,例如,一个机器人、一个泵、一个建筑或一个功能块。它是由CAEX元素InternalElement来映射的。一个对象封装了属性、接口和它的内部结构,它本身可以是一个上层结构的一部分。类是通过类库中的一个代表性对象来描述的。因此,SystemUnitClass的内部结构与InternalElement类型的实例在语法上是相同的。
一个对象实例,随后也被称为AML对象,代表了一个有自己的名字和个别属性的对象的具体例子,例如一个机器人RB200_1。一个对象实例与所有其他对象的不同之处在于至少有一个独特的名称或标识符。对象实例是我们在日常生活中看到和知道的东西:桌子、机器人、PLC、泵、管道。

关于类和实例的区别的例子 between class and instance
如果你购买一辆二手车,你选择的是汽车的一个具体实例。但如果你从汽车经销商那里订购一辆新车,你从产品目录中选择一个汽车类型。之后,你会得到交付的汽车的具体实例。

因此,实例这一术语描述了一个具有个别属性的独特的个别数据对象。一个类可以被多次实例化,例如当一个汽车类型被多次生产时,所有派生的实例都来自同一类型。
实例的对应物是类。它描述了一个预定义的抽象数据对象,作为创建对象实例的模板。类在业界也被称为对象类型、原型、模板或基础对象。类的概念起源于成熟的模块概念[PAR72],并一贯遵循重用的概念。因此,一个类Robot可以被多次实例化,例如,导致对象实例Rob1、Rob2和Rob3。类在类库中被管理。
在工程中,继承的概念是高效工程的一个关键。新的类可以通过继承关系从一个父类中派生出来。实例继承了这个父类的所有属性、所有交叉点和内部结构。因此,一个SpecialRobot类可以派生自RobotClass类,并继承其 “内部部分”。CAEX支持类之间的继承,而每个类只能有一个父类。
与面向对象的软件编程相比,AutomationML中面向对象的数据建模的一个重要区别是,实例的变化或修改是明确允许的。这意味着,在实例化一个类的过程中,该类的所有数据都被复制到实例中,但随后,该实例可以被自由修改。这是一个非常强大的概念,反映了工业现实:类定义了工程的起点。此外,原始类的修改不会自动更新或反映在实例中。这是必要的,因为实例在电子上代表真实的资产,而真实的资产在其各自的类型改变时不会自动改变。

CAEX还实现了聚合和组合的概念。对象实例以及类可以由子对象单独构建。例如,一辆汽车由其他对象组成:四个轮子、一个发动机、一个车体等。
对象之间的关系表示它们之间的关系。CAEX实现了继承关系、父-子关系、实例-实例关系和类-实例关系,见2.2.12.4节。
面向对象的数据建模的一个强大概念是封装。每个对象都封装了其类定义的数据。坦克的直径被建模为坦克对象的参数。在CAEX中删除、移动或复制一个坦克对象时,也会删除、移动或复制所有相关参数。通过这种方式,一个对象的建模、分析、操作和运输与数百万个对象相同。这正是面向对象的价值所在:它可以通过自动化工程步骤、一致性和质量检查、数据分析、数据同步、需求建模或产品目录建模来节约成本。

2.1.5 AutomationML 第一版和第二版的区别 Differences between AutomationML Edition 1 and 2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值