AutomationML 学习心得

news2024/9/23 23:22:55

        

        断断续续地学习AutomationML(下面简称AML),其内容很多。概念,术语与与其它建模语言有类似之处,也有不同。同时涉及了一大堆标准。

  1. CAEXIEC 62424
  2. COLLADA 几何、动力学模型
  3. PLCopen XML

       

   但是,在生搬硬套的同时,也感到疑惑,为什么要建立这样的语言来实现数据交换,没有其它的方法么?既然现在又大量推荐工业4.0 管理壳,OPC UA 等标准。AutomationML还有存在的意义么?

AML的用途

AML 是用于工程数据交换的建模语言。

   在制造领域的工程中,由多个学科的工程师参与其中。不同的学科将会使用大量不同的工程设计软件。

        AML 数据格式由 AutomationML eV 开发,在 IEC 62714 中标准化。它是一种开放、中立、基于 XML 的免费数据交换格式,支持在异构工程工具环境中跨领域和公司跨域和公司传输生产系统的工程数据。AutomationML的目标是互连不同学科的工程工具,例如工厂规划、机械工程、电气工程、过程工程、过程控制工程、HMI开发、PLC编程、机器人编程。

这些工程工具处理的数据文档种类繁多,五花八门。

        不同工具数据之间的数据交换的工作量非常大。当工程公司为多个客户工作时,为了接受每个客户的工程数据时,就需要拥有客户使用的工程工具,工程工具的许可费用就会激增。并且需要熟悉这些工具的专家。在机械加工厂,客户发来的CAD 图纸是各种CAD软件导出的,机械加工厂工程师要将这些图纸转换成为内部CAD工具的格式。然后编写工艺文件和CNC G代码。这些工作增加了制造成本。对于小批量加工而言,是不小的开支。

        工程的特点是历史上成长起来的强大的分工,在过去被分为独立的阶段或行业。在每一个阶段中,工程师都会继续改变工程数据。在这样做的同时,所有不同的工具的数据都会发生分歧,工程数据在工程过程中会不断地、反复地被充实和改变。这不是工作流程或工程方法上的错误,而是工程的本质。为了保持工程工具之间的数据同步和一致,需要做出巨大的努力,这是AML能够发挥作用的地方。

CAEX模型

        AML 基于 IEC 62424 (CAEX),并集成了其他现有的基于 XML 的数据格式。

CAEX 的全称为计算机辅助交换computer aided exchange)。

CAEX的架构

        包含了三种类 SystemUnitClass,InterfaceClass,RoleClass或者Attribute 类型。类的实例称为内部单元(Internal Element)。

系统单元类(System Unit Class)

        在工程中,设备通常是在指定了相关要求后手动选择的。在工程中,设备通常是在指定了相关要求后手动选择的。比如指定一个厂商的储存罐A,而储存罐A是通过SystemUnit类描述的。

角色类(Role Class)

        最费解的是RoleClass ,它的名称直译为“角色类似”,它到底是什么?为什么要设置一个角色类型呢?

        这要从系统构建过程说起,设计一个系统,类似于电影的编剧编写一个电影脚本,编剧首先要设想一些角色(role),比如设想了一个公主的角色,按面向对象的思想,相当于设计了一个公主的类。编剧描述了公主的特点,例如金色的头发,细腰,蓝眼睛。这些是公主类型的属性。

        同样地,在工程设计中,首先通过一系列抽象的角色来描述一个制造过程,它独立于其具体的技术实现。例如输送机、机器人、转台和一个PLC。

        在下一步,工程师们定义需求,并逐步细化。这些要求被用来识别和指定在技术上实现所需功能的具体设备(比如某一个厂商的设备)。这样的设计过程符合实用、迭代、工程和人类的思维方式。

角色概念遵循了成熟的设计过程,将规范和实施阶段脱钩。

角色类的定义

一个角色是一个描述抽象功能却未定义底层技术实现的类。

        可以将角色类理解为某个单元的“技术要求”,例如在生产线中需要一个机器人角色,技术要求为最大负荷<2t”。

        角色类并不指定特定的产品。而是标准化定义抽象模型。例如:motor 是电机的角色模型,并不是具体哪个厂商的电机产品。

角色类库的标准

IEC 62714-2  角色类库(Role Class Libraries)在该标准中制定了:

  1. 离散制造业的AML 角色类库
  2. 连续制造业的AML角色类库
  3. 批制造业的AML角色类库
  4. 控制系统的AML角色库
内部单元(InterElement)

        AML 采用了基于模型设计的工程设计思想,以模型的实例构建工程数据。在AML 中,实例称为内部元素(Internal Element)。Internal Element 是角色类型(RoleClass)和系统单元类(System Unit Class)的实例,也可以引用角色类进行建模。

COLLADA 几何和运动学模型

        COLLADA 是KHRONOS 协会在SONY 的领导下 作为游戏行业数字内容创作领域交换格式开发的。COLLADA 允许3D 场景下3D对象的可视化,包括对象动画的相关视觉,运动和动态属性。

        为什么AML 会选择游戏行业的交换格式呢?工程对象中几何模型是基本的工程数据。在几何模型的可视化中,需要动画展示组件的运动和动态特性。而大多数三维模型格式并不包括动画特性(比如 step 格式)。

行为模型(PLCopen)

   所谓行为是指为了达到系统的目的,模型的状态和输出如何做出改变的规则。

        为了达到某一种目的,需要通过行为模型人为地编排事物的行为。目前,自动化行业的控制设备仍然是以PLC为主的。所以行为模型是以PLC 为基础构建的。PLCopen是目前重要的PLC 程序编排的标准。

 PLCopen由PLCopen协会开发的。使用XML语言描述。PLCopen 在1992年成立,距今已有32年的历史,总部设立在荷兰。在美国,日本和中国有分支机构。PLCopen 主要的贡献:

  •  支持PLC 编程语言的标准-IEC 61131-3
  • 支持标准的运动控制库

网络上已经有大量的文章介绍PLCopen,这里就不再赘婿了。

工程设计过程

  1. 系统采用分层架构组织数据,第一步定义系统中的对象(例如机器人-1)。
  2. 从角色库中分配一个合适的(这里是机器人)角色类型.
  3. SystemUnitClass库中选择合适的候选对象,具体的技术方式实现

一个CAEX对象与两个类有关系:抽象角色和具体对象类型。

工程数据模型的标准化流程

  • a) 每个参与的工程工具或领域的专家小组必须提出他们的 “自己的概念 own concepts”。
  • b) 所有参与者必须就 "共同概念 common concepts "达成一致。
  • c) 必须定义一个中立的语义数据模型 neutral semantic data model,涵盖共同的概念,例如使用 UML 的对象模型。
  • d) 必须就通用数据模型 common data model 的中性语法 neutral syntax 达成一致,例如,使用 XML。
  • e) 必须编写一份文件,描述
    • 商定的共同概念、
    • 语义数据模型
    • 和语法实现,例如,在标准文本或白皮书中。
  • f) 在工业界,必须有足够的了解该标准的专家,以便通过数据输出和输入器将其实施到各自的工程工具中。
  • g) 工业界必须提供足够的支持该标准的输出和输入软件
  • h) 应用的经验反馈到(a)。

AutomationML应用

标准通过软件普及

   和其它信息化标准一样,AML 也只有通过软件工具来普及。尽管AutomationML 也提供了一些基础的工具软件,比如 AMLEditor和AML Hub 。但是它们的用户体验并不完美。也不符合工程师的使用习惯。只有将AML 标准嵌入到工程管理软件和平台中,才能能够普及。

   相关的软件是设计文档管理系统,PLM 系统等软件。

短期受累,长期受益

        构建基于AML 语言的工程,需要使用大量的类库,角色类,工程单元类和接口类。如果缺乏这些类库的支持,平地而起来构造AML 模型的是非常耗费时间的。所以AML更适合成熟的工业设计院和企业首先采纳。这些大企业和大院所已经积累了大量基于行业的数据文档。使用AML 语言为这些文档构建基于AML 的数据模型,能够提升工程设计过程中数据交换的效率,避免差错。这是一项短期效果不明显,甚至麻烦的事情,但是长期受益。

        中小型企业只有利用外部的资源才能够推广使用AML。例如各种类库和软件。

        大企业或者大型设计公司AML 的模型和类库可能沿着供应链扩散到与其合作的中小型企业。

        精通AML的专业软件公司和咨询公司能够为大型设计院和大型企业提供构建AML 架构的咨询服务。

选择恐惧症

ML,ECL@SS,OPCUA和AAS 各种标准相互交叉,在实际应用中如何选择,使人犹豫不决。

        目前,面对数字化制造的潮流,各种标准都起头并进,互相交织在一起。有些职能是重叠的。比如 AML,工业4.0的管理壳AAS,E-CL@SS ,OPCUA 都相互重叠。我们应该如何选择?完全被动的模仿也许是不行的。我国制造业采用数字化模型的时间还刚刚起步。没有历史包袱。我们在采用和推广国际标准时,能否采取更加实用主义思想,甚至“弯道超车“?这是值得思考的,尽管许多人并不喜欢“弯道超车“的说法。

        比如说,AML,ECL@SS和AAS 有重叠的部分。它们都是为制造业建立统一的模型。最终都能够映射成为OPCUA 模型 。能否越过AML ,直接发展管理壳AAS+OPC UA 呢?

(本文的内容参考了AMLBook1: 初学者指南 | 第一章 1 What is AutomationML)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1368154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下Redis5+可视化软件下载、安装和配置教程-2024年1月8日

Windows下Redis5下载、安装和配置教程-2024年1月8日 一、下载二、安装三、配置环境四、配置可视化客户端 一、下载 redis是现在是没有对win系统版进行维护的&#xff0c;这个是大神完成的&#xff0c;目前是到5版本&#xff0c;选择Redis-x64-5.0.14.1.zip点击下载 下载地址&…

Python Flask JinJa2 语法介绍与示例讲解

一、概述 Flask是一个轻量级的Python Web框架&#xff0c;支持Jinja2模板引擎。Jinja2是一个流行的Python模板引擎&#xff0c;它可以使用Flask来创建动态Web应用程序。 web 页面一般需要html、css和js&#xff0c;可能最开始学习python web的时候可能这样写&#xff1a; fr…

SpringBoot+策略模式实现多种文件存储模式

一、策略模式 背景 针对某种业务可能存在多种实现方式&#xff1b;传统方式是通过传统if…else…或者switch代码判断&#xff1b; 弊端&#xff1a; 代码可读性差扩展性差难以维护 策略模式简介 策略模式是一种行为型模式&#xff0c;它将对象和行为分开&#xff0c;将行…

4.6 BOUNDARY CHECKS

我们现在扩展了tile矩阵乘法内核&#xff0c;以处理具有任意宽度的矩阵。扩展必须允许内核正确处理宽度不是tile宽度倍数的矩阵。通过更改图4.14中的示例至33 M、N和P矩阵&#xff0c;图4.18创建了矩阵的宽度为3&#xff0c;不是tile宽度&#xff08;2&#xff09;的倍数。图4.…

服务器宕机怎么办?怎么预防宕机?

相信不少用户会听到或者在文章中提到电脑宕机或者服务器宕机&#xff0c;不少用户对宕机的意思不太理解。那么服务器宕机是什么意思&#xff1f; 宕机属于计算机的术语&#xff0c;指电脑或者服务器不能正常工作。口语中我们简单的把停掉机器叫做down机&#xff0c;转换为汉字是…

九、分布式锁 —— 超详细操作演示!!!

九、分布式锁 —— 超详细操作演示&#xff01; 九、分布式锁9.1 分布式锁的工作原理9.2 问题引入9.2.1 场景9.2.2 实现9.2.3 分析 9.3 setnx 实现方式9.3.1 原理9.3.2 实现9.3.3 问题 9.4 为锁添加过期时间9.4.1 原理9.4.2 实现9.4.3 问题 9.5 为锁添加标识9.5.1 原理9.5.2 实…

揭秘阿里自研搜索引擎 Havenask 在线检索服务

作者&#xff1a;谷深 Havenask 是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎&#xff0c;深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了 Havenask 的在线服务&#xff0c;它具备高可用、高时效、低成本的优势&#xff0c;…

计算机网络学习笔记(四)

文章目录 1.介绍一下HTTPS的流程。2.介绍一下HTTP的失败码。3.说一说你知道的http状态码。4. 301和302有什么区别&#xff1f;5.302和304有什么区别&#xff1f;6. 请描述一次完整的HTTP请求的过程。7.什么是重定向&#xff1f;8. 重定向和请求转发有什么区别&#xff1f;9.介绍…

电子学会C/C++编程等级考试2023年12月(四级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:移动路线 桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。 小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁…

如何让ArcGIS Pro启动显示空白页面

刚接触ArcGIS Pro的你是否会觉得在操作上有那么一些不习惯&#xff0c;从一开始软件启动就发现和ArcGIS差距很大&#xff1a;丰富的欢迎页面&#xff0c;加上默认加载的地图让你眼花缭乱&#xff0c;这里教你如何去掉这些繁杂的内容&#xff0c;还你一个干净的启动页面。 跳过…

2024年远控软件年度盘点:安全、稳定、功能之选

这目录 前言2024年热门远控软件ToDesk向日葵TeamViewerAnyDeskSplashtopAirDroidChrome Remote DesktopMicrosoft远程桌面RayLinkParallels Access 远程控制软件如何选择&#xff1f;1、功能性2、安全性3、易用性4、稳定性 未来展望与建议结语 前言 随着信息技术不断发展&…

setup 语法糖

只有vue3.2以上版本可以使用 优点&#xff1a; 更少的样板内容&#xff0c;更简洁的代码 能够使用纯 Typescript 声明props 和抛出事件 更好的运行时性能 更好的IDE类型推断性能 在sciprt标识上加上setup 顶层绑定都可以使用 不需要return &#xff0c;可以直接使用 使用组件…

java多线程-实现多线程(一)

目录 1.1 进程 1.2 线程 1.3 多线程的实现方式 ​编辑 方式1&#xff08;继承Thread类&#xff09; 1.1 进程 是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源 1.2 线程 线程是进程中的单个顺序控制流&#xff0c;是一条执…

802.1X(HCIP)

目录 一、802.1X协议概述 1、802.1X协议概述 2、802.1X基本概念 认证模式 认证方式 端口控制方式 3、802.1X认证触发机制 客户端主动触发 设备端主动触发&#xff08;用于支持不能主动发送EAPOL-Start报文的客户端&#xff09; 4、EAP体系结构 5、EAP报文封装结构 6…

基于Django框架的旅游推荐系统构建-计算机毕业设计源码82884

摘 要 随着社会的快速发展和人们生活水平的不断提高&#xff0c;旅游已逐渐成为人们生活的重要组成部分&#xff0c;用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时&#xff0c;也淹没了用户真正感兴趣的信息。为了方便用户快…

05、Kafka ------ 各个功能的作用解释(主题和分区 详解,用命令行和图形界面创建主题和查看主题)

目录 CMAK 各个功能的作用解释&#xff08;主题&#xff09;★ 主题★ 分区★ 创建主题&#xff1a;★ 列出和查看主题 CMAK 各个功能的作用解释&#xff08;主题&#xff09; ★ 主题 Kafka 主题虽然也叫 topic&#xff0c;但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t…

通义千问协助分析openHarmony内核编译故障记录

drivers/hdf/khdf/manager/../../../..//framework/utils/src/hdf_sbuf.c:271:6: 错误&#xff1a; ‘-mgeneral-regs-only’ is incompatible with floating-point argument 这个编译错误提示指出&#xff0c;在编译源文件 "hdf_sbuf.c"&#xff08;位于 "driv…

【UE Niagara学习笔记】03 - 火焰喷射效果

目录 效果 步骤 一、创建粒子系统 二、制作火焰动画 三、改为GPU粒子 四、循环播放粒子动画 五、火焰喷射效果雏形 六、火焰颜色 效果 步骤 一、创建粒子系统 1. 新建一个Niagara系统&#xff0c;选择模板 命名为“NS_Flame_Thrower”&#xff08;火焰喷射&#…

海康威视 spon IP网络对讲广播系统任意文件上传漏洞

产品介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统存在任意文件上传漏洞&#xff0c;攻击者可以通过构造特殊请求包上传恶意后门文件&#xff0c;从…

图解JVM (及一些垃圾回收\GC相关面试题 持续更新)

垃圾回收&#xff0c;顾名思义就是释放垃圾占用的空间&#xff0c;从而提升程序性能&#xff0c;防止内存泄露。当一个对象不再被需要时&#xff0c;该对象就需要被回收并释放空间。 Java 内存运行时数据区域包括程序计数器、虚拟机栈、本地方法栈、堆等区域。其中&#xff0c;…