基于技能的工程方法及其在I4.0 中的应用

news2024/11/26 12:16:24

        工业4.0 组件描述了两种架构,一种是面向服务的紧耦合分层系统架构,另一种基于协议的同层架构(peer-to-peer)。传统的工业自动化系统几乎都是分层架构。例如现场设备(PLC)将数据传送到控制中心,SCADA,HMI和MES系统。但是工业4.0 是为了解决提高现代工业自动化系统的可变性和灵活性。需要实现机器与机器之间的相互协作,达到”Plug-and-Produce"的目标。所以在工业4.0 的智能制造系统中,更多的是机器与机器之间的同层通信。例如CNC 设备与机械臂,AGV 构成自动上下料系统。CNC 和机械臂,AGV 直接通信,而不是通过一台中心处理器控制。同层通信的架构是一种去中心化的分布式系统。

 上面是分层架构,下面是同层架构。

        为了实现机器之间的同层通信的规范,工业4.0 组织提出了AAS I4.0 语言。其实就是一种同层协议。 

      分层架构的通信协议基本上是Server/Client 架构,以TCP/IP 为基础,衍生出一系列协议。主要包括:

  • OPC UA
  • HTTP Restful
  • Websocket
  • MQTT

     同层架构的通信协议可以是点对点和点对多点协议,主要包括

UDP

MQTT

OPCUA Pub/Sub

Websocket

何为基于技能的工程方法

   仅有这些协议是不够的,还需要对信息模型和公共接口作更进一步的语义规范,于是就提出了所谓基于技能的工程方法(Skill based Engineering )。比如一台钻床的技能是钻孔(Drill),一台阀门的技能是打开阀门和关闭阀门。一台设备的技能,就是设备的能力。在英文中Skill 和Capability 是类似的含义。但是在I4.0观点下,能力和技能是有所区分,它们认为能力是机器某些功能的描述,它与实现无关。而技能是功能的实现,与资产(asset)相关。个人理解,能力是静态的描述,而技能是可执行的。基于技能的方法是对每台机器的技能作合适的描述和建模,机器之间的通信基于技能的执行和寻找具有某种能力的设备。比如请求具有钻孔能力的设备,请求钻孔。在工业4.0 管理壳中,将能力和技能分别用子模型来描述(submodels)。机器之间的通信双方变成了技能提供者(Skill Provider)和技能请求者(Skill Requester)。

技能的OPCUA建模

    OPC UA 是一种工业通信协议和信息模型的标准,它已经被选择为工业4.0 的基础。它最大的优点是信息安全和语义定义的能力。

  在OPCUA 的标准中,有所谓“程序”的模型。人们用OPCUA 的“程序”作为技能(Skiil )的模型。

OPCUA 程序

      了解OPCUA 的读者知道,OPC UA 客户端可以通过方法(Method)来实现OPCUA 服务器中的程序调用。方法是服务器中的函数,能够被客户端调用。而程序(programs)相对比较复杂一点,用来执行和控制一个批处理,机床的零部件加工,或者一个下载操作。program与Method 的差别在于,它不仅触发执行,而且监督执行的过程。

所以程序包括更多的内容,如下图所示:

         由此可见,程序包含了控制方法,状态机,交互事件,结果数据。其中状态机记录了程序执行的状态。它是程序中重要的概念。

  值得注意的是,OPCUA 的所谓程序并不是一般概念的算法,比如它不是PLC 的61131-3 程序,或者IEC61499 应用。而是对服务器内部程序执行和控制的一个规范化模型。

状态机

OPCUA 程序的状态机包含了四个基本的状态

 状态包括停机,就绪,运行和挂起。

下面是状态变化

程序的控制方法

下面是一组方法,包括 开始,挂起,恢复,停机,复位。

       

 OPC UA 程序模型的意义

 OPC UA 对程序规范建模的意义就在于能够以一组统一的方式来触发,监控OPCUA 程序的执行。Client 执行程序的方式是相同的。

       监督程序的状态,执行方法,监督事件。当介绍时,读取结果数据。

有关OPCUA 程序的详细内容可见《OPC 10000-10: UA Part 10: Programs》

OPC UA 程序作为技能模型

在工业4.0 组件之间技能执行的过程为技能提供者(skill-provider)和技能请求(skill-requester)之间的交互过程。

下面是技能提供者(skill-provider) 的状态图

         使用规范的状态机作为机器之间的交互过程描述的好处是能够实现组态和代码自动生成。状态机的运行完全可是一个通用的代码实现。

甚至是HMI 都可以基于状态图可视化。下图是PackML 的状态机可视化。它是OPCUA Program的模型。

基于技能的模型与IEC61499

     前面提到,OPCUA 的Program 模型只是程序的结构和接口的规范,没有设计其中方法的实现和状态机跳转的代码。熟悉IEC61499 功能块的读者会发现,OPC UA Programs 模型与IEC61499 功能块模型非常相像。同样带有状态机和输入输出数据。而时间触发内部的方法执行。也有学者提出了使用IEC61499 功能块来实现技能的执行。

 具体可以网络上搜索IEC61499 老爷子Alois Zoitl写的文章《Skill-based Engineering Approach using OPC UA Programs》。

 结束语

实现工业4.0 即插即生产的技术基础是I4.0 语言,I4.0 背后的思想是基于技能的工程方法。而基于技能的模型使用OPCUA 的Programs。本文简单地描述了它们之间的关系,以便于更好地学习I4.0 相关技术和标准。

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

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

相关文章

如何在华为OD机试中获得满分?Java实现【不爱施肥的小布】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

第6章 Constant, Static and Name Space

Const • declares a variable to have a constant value const int x 123; x 27; // illegal! x; // illegal! int y x; // Ok, copy const to non-const y x; // Ok, same thing const int z y; // ok, const is safer 变量variable 常量 constant &#x…

chatgpt赋能python:Python词性标注:一个重要的NLP应用

Python 词性标注:一个重要的 NLP 应用 自然语言处理(Natural Language Processing,NLP)是 AI 领域中的重要分支之一,其可以帮助机器理解和处理人类语言。在 NLP 任务中,词性标注(Part-of-Speec…

k8s+负载均衡+防火墙

目录 实验拓扑 实验要求 实验部署 一、kubeadm部署k8s集群 1、环境准备(所有节点) 2、所有节点安装docker 3、所有节点安装Kubeadm、Kubelet和Kuberctl 4、部署k8s集群 初始化kubeadm 设置kubectl 5、部署网络插件flannel(所有节点…

[CSS案例二]—实现一个响应式网页,兼容PC移动端,ScrollReveal 增加动画

大家好,我是小张 本期案例,用前端三件套实现一个简约的响应式布局网页,当屏幕分辨率自适应改变时网页布局会自动发生切换,网页布局同时兼容PC端和移动端, 在普通PC屏幕下网页布局效果 移动端网页布局: 除…

工作需要,JAVAer自学python

人生苦短,我用Python。 是如何学习/自学 Python 的? 我学习python的方式其实很简单很暴力:网上直接搜视频教程; 我之前一直做java的,学习python其实也是一个机缘巧合:当时入职一个朋友刚好有python岗位&a…

初识Unity——基本模型、场景操作、世界坐标系和局部坐标系

目录 基本模型 创建基本模型 基本模型的复制 复杂模型 场景操作 聚焦 旋转 移动 场景视野 世界坐标系 基本介绍 原点 局部坐标系 基本模型 创建基本模型 基本模型的复制 创建基本模型之后,会在我们视野中心生成这个模型;当我们需要复…

SpringAOP简介及实现(包含切面、切点、连接点和通知)

目录 1.什么是AOP、SpringAOP? 2.AOP的组成 3.SpringAOP的实现 4.切点的表达式 1.什么是AOP、SpringAOP? 在学习SpringAOP之前,我们得先了解一下什么是AOP。AOP是一种面向切面编程的思想。那什么是切面呢?它其实是对某一类事情…

软件外包开发代码管理工具

软件代码规范是为了提高代码质量、可读性和可维护性而制定的一系列编程规则和约定。代码管理工具则是用于协助团队成员共享、跟踪和合并代码的工具。今天和大家分享这方面的知识,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&a…

定制底部footer bug:切换tab时position fixed会抖动

文章目录 bug描述position:fixed是啥?有啥用为什么切换tab的时候会抖动如何解决自定义一个InBody组件,将里面所有的元素放到body里面需要放到的底部的内容都放到这个组件里面 bug描述 在element admin里面定制了footer组件,每个页面也可还有…

离散数学_十章-图 ( 3 ):由旧图构造新图

📷10.3 由旧图构造新图 概念1. 子图2. 真子图3. 导出的子图 旧图构造新图的方法1. 删除或增加图中的边2. 边的收缩3. 删除顶点 有时解决问题只需要图的一部分。 比如我们现在只关心大型计算机网络中涉及济南,广州,深圳的计算机中心&#xff0…

学习c语言中的几道习题(小有难度)!

有兴趣的朋友可以看着题目自己做做,最后在和答案对比!相信能力会有所提升的。我现在只是刚刚开始学习c语言,如果有什么说的不对的地方,网路过的大佬,及时予以指正。多谢! 1、函数判断闰年 实现函数判断yea…

chatgpt赋能python:Python行太长如何处理?

Python行太长如何处理? 介绍 Python 是一门强大的编程语言,易于学习和使用。它也因其可读性和简洁性而受到广泛赞誉。然而,在实际编写时,往往遇到了行太长的情况。 当一行代码在编辑器中撑满了整个屏幕,或者末尾的字…

【Redis入门篇】| Redis的Java客户端

目录 一: Redis的Java客户端 1. Jedis快速入门 2. Jedis连接池 3. SpringDataRedis快速入门 4. RedisSerializer配置 5. StringRedisTemplate 图书推荐 一: Redis的Java客户端 在Redis官网中提供了各种语言的客户端,地址:…

chatgpt赋能python:Python阶乘算法——快速、高效的算法实现!

Python阶乘算法 —— 快速、高效的算法实现! Python作为一门高级编程语言,在众多领域都得到了广泛应用,尤其在算法领域更是拥有着举足轻重的地位。阶乘算法作为计算领域中的一种经典算法,也是Python中不可或缺的一部分。 什么是…

尚硅谷大数据hadoop教程_HDFS

P40 hdfs产生背景和定义 p41 优缺点 p42 组成 p43 文件块大小 p 44 45 shell命令 p46 api环境准备

单链表—C语言实现数据结构

本期带大家一起用C语言实现单链表🌈🌈🌈 文章目录 一、链表的概念🌎二、链表中数据元素的构成🌎 🌍三、链表的结构🌎 🌍 🌏四、 单链表的实现✅✅二、接口的实现✅✅1.单…

SAP-MM-采购申请-价值特性

采购申请审批在维护价值特性时要注意是抬头价值还是行价值,要确定选择哪个,配置时对应配置。 1、创建价值特性CT04 字段名称:CEBAN-GSWRT,和CEBAN-GFWRT 抬头总价值:CEBAN-GFWRT;如果选择的是抬头审批&am…

WPF界面设计

目录 1.设计一个优美的注册界面1.实现效果2.代码展示 2.简易登录按钮设计1.实现效果2.代码展示 3.设计一个优美的注册登录界面(连接数据库)1.实现效果2.代码展示 4.设计一个简单的在线教育系统界面1.实现效果2.代码展示 5. 设计一个Dashboard1.实现效果2…

linux线程创建等待及退出总结

线程操作 线程操作分线程的创建&#xff0c;退出&#xff0c;等待 3 种 1. 线程创建 #include <pthread.h> int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg); // 返回&#xff1…