从umati 看德国人如何玩OPCUA的

news2024/12/26 23:36:16

       到目前为止,机器的联网标准缺乏统一的协议和语义标准。比较知名的要数每个的MTConnect。fanuc机床的focas协议。未来的发展方向是OPCUA协议。但是实现这个目标并非一日之功。德国的umati 社区也许给我们一些启发。

     为了推进机床行业的数字化进程,VDW(德国机床制造商协会)和VDMA(德国机械与设备工程协会)开发了umati 社区,它包括了一部分开源代码和一个社区,吸引机械设备厂商,软件厂商的加入,umati的愿景是实现机械设备基于OPCUA 的连接性。他们认为连接性是 21 世纪所有机械设备的关键。umati使机器和软件之间的连接变得简单、安全和无缝,帮助客户利用数据的附加值。uamti 称为“通用机器技术接口”。它是建立在OPC UA 配套规范的基础上实现的一个OPC UA 技术接口,包括了机床,木工设备,通用测量,激光系统,金属成型,挤出设备,注塑,平板玻璃,称重等等。

uamti 又被称为一个社区,它定义为:

mati(通用机器技术接口)是机械制造行业及其客户的社区,旨在推广和采用基于OPC UA的开放式标准化接口。umati 促进机器、组件和装置之间的数据交换,并轻松、无缝、安全地将它们集成到客户和用户特定的 IT 生态系统中。一项在全球范围内开发未来生产新潜力的倡议。有许多的机床制造商,软件开发商和自动控制生产商加入了这个社区。事实上,他们也来到了中国,德国机床制造商协会(VDW)与中国机床工具工业协会(CMTBA)合作,探讨中国的机床联网协议NC-LInk 与umati 相互融合的可能。

  umati 的应用架构

         由此可建,umati 软件就像是在机械外面添加了一个壳,瞬间转变成为一个OPC UA 的服务器。与外部世界连接了。

umati 相关技术

  umati github 上公开了某些源码:

  1. Sample-Server

   使用C++ 实现的OPCUA 服务器,并且支持多种OPCUA 配套规范。从源代码看,它是基于open62541开源项目开发的。

  1. Sample-Server-node-opcua

   基于node-opcua 开发的opcua 服务器。并且支持多种OPCUA 配套规范。

  1. Dashboard-OPCUA-Client
  2. TransformationEngineAPI 的规范

      umati 的服务器与上位机连接的协议为OPCUA (北向协议),而与设备的连接是一些专用的协议(南向协议)。它们通过TransformationEngineAPI  来实现与服务器软件的连接。在umati 目前开源的内容中只有一个API规范,没有具体的代码

        为了了解umati,我在Ubuntu 上编译了Sample=Server ,并且运行。也将Sample-Server装入了docker 的容器中。使用uaExpert 能够访问它们。

        Sample-Server 通过TransformationEngine与物理设备连接。与物理设备连接的协议是需要定制的协议,十分可惜的是,在Sample-Server 中好像没有提供与机器连接开源例子,只是提供了一个仿真(simulation)大概需要额外的开发。

从umati 学到什么?

        我们从umati 社区可以隐约地看出,德国人是如何将OPC UA 协议深化应用的方法。他们集中地开发了OPC UA 的服务器,并且加快了OPCUA 配套规范的制定和应用,通过umati 定义了统一的语义规范。通过社区联盟的方式,各家机械设备厂商开发了机器接口(南向接口) 。降低了机器联网的开发门槛。umati 服务器可以在任何一个边缘设备上运行。例如倍福的7015 紧凑型工业PC 7015

 当然也可以在Arm 的控制器上运行。

        由此可见,德国人在采纳新技术的时是比较务实的,采取了逐步演进的方式。在现有的设备外部添加一个LinuxBox 并不增加多少成本。却解决了工业4.0 80% 的工作量。而且,新技术只有在使用中才能更加深刻地理解它们的价值和应用。促进我们更加理解技术的未来发展方向。

目前umati 提供的技术文档有限。在此基础上二次开发有难度。

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

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

相关文章

从2022看2023年发展趋势

前言 时光荏苒,回望即将过去的2022年,前端领域在这一年中整体还是保持平稳向前,但对整个IT产业链路及互联网行业来说,变化还是很大的,下面我将简单分享一下个人对整个行业领域的一些观点与思考。鄙人才疏学浅&#xf…

Linux | 从头开始理解Linux以及工作日常常用命令

Linux的版本 分很多种,家庭用途版本有:Linux Mint、Ubuntu、OpenSUSE、Fedora、PC-BSD;商业用途版本有:Debian、RHEL、CentOS;还有其他版本:FreeBSD、OpenBSD、Solaris、OpenSolaris等。 目录 1.操作系统…

QT学习 控件(三)输入文本类与快捷键:QPlainText;QKeySequenceEdit

文章目录QPlainTextQKeySequenceEdit前情回顾: QLineEit QTextEdit文本输入类 QPlainTextEdit是一个简略版本的类,它的性能优于QTextEdit, 主要是因为在文本文档中使用QPlainTextDocumentLayout简化文本布局 QPlainText QPlainText和QTextEdit大致功能…

Dijkstra求最短路(堆优化)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出 1 号点到 n 号点的最短距离,如果无法从1 号点走到 n 号点,则输出 −1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整…

力扣刷题记录——205.同构字符串、217. 存在重复元素、283. 移动零

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《205.同构字符串、217. 存在重复元素、283. 移动零》。 目…

(十四)大白话磁盘文件中, 40个bit位的数据头以及真实数据是如何存储的?

文章目录 1、前情回顾2、详解40个bit位数据头1、前情回顾 之前我们已经给大家讲到了在磁盘上存储数据的时候, 每一行数据都会有变长字段长度列表,逆序存放这行数据里的变长字段的长度,然后会有NULL值列表,对于允许为NULL的字段都会有一个bit位标识那个字段是否为NULL,也是…

shell第五天作业——函数与数组

题目 一、编写函数,实现打印绿色OK和红色FAILED 二、编写函数,实现判断是否有位置参数,如无参数,提示错误 三、编写函数实现两个数字做为参数,返回最大值 四、编写函数,实现两个整数为参数,…

状态压缩DP——最短Hamilton路径

状态压缩DP——最短Hamilton路径一、题目描述二、思路分析1、状态转移方程(1)状态表示——状态压缩(2)状态转移2、循环和初始化(1)循环设计(2)初始化三、代码实现一、题目描述 二、思…

(day1)自学java基础

非原创,记录学习过程,为方便自己后期复习 目录 1.Java基础概念 2.运算符 3.判断 4.循环 5.循环高级 6.数组 7.数组的内存图 8.方法 ctrlaltL 自动格式化代码 为什么要配置环境变量? 我们想在任意目录都可以打开指定软件,就…

DDR3 数据传输(四)

目录 引言 AXI从侧接口参数 AXI从侧接口信号 参考说明 引言 前文链接&#x

巧用网络指数

哈喽,好久不见!今天我们来一起聊聊网络指数。网络指数平台是以网民在线使用行为数据为基础,借助关键词表达的重要信息检索渠道,一定程度上可以反映某一话题的关注度,也可以帮助我们抓住所谓的“热点”。这里&#xff0…

源码编译mindspore,利用云服务器与wsl

文章目录tmux的使用利用WSL2设置交换空间通过编译产生的output安装tmux的使用 参考:https://blog.csdn.net/weixin_43922901/article/details/89230499 参考:http://www.ruanyifeng.com/blog/2019/10/tmux.html tmux用于远程编译,开启一个会…

2023第一天,给你们展示一下用Python实现自动答题

前言 python实现自动答题? 别管,我这就给你们展示一下 (效果图看不了 不知道为什么说我违gui)😥 话不多说,咱就直接看代码吧 代码 准备模块 import requests import parsel from selenium import webd…

create-vite 源码解析它来喽

create-vite的源码很简单,只有一个文件,代码总行数400左右,但是实际需要阅读的代码大约只有200行左右,废话不多说,直接开始吧。 代码结构 create-vite的代码结构非常简单,直接将index.ts拉到最底下&#…

项目学习--谷粒商城

1. 微服务搭建 本地安装虚拟机,静态IP划分和docker的使用微服务功能模块介绍以及业务模块划分与抽取 2. 前端搭建 3. 后端业务代码完善 云储存OSS的整合与使用JSR303校验以及自定义分组校验 4. Elasticsearch学习 Elasticsearch的基础使用Elasticsearch字段ma…

volatile 详解

1. 前言 在并发编程的过程中,volatile属性非常重要。首先我们要了解并发编程的三大特性:可见性, 有序性, 原子性而我们今天的了解的volatile 就牵扯到可见性, 有序性。同时我也会从个人了解的角度给大家分析下,如果有什么不对的地方也希望大家…

物联网与射频识别技术,课程实验(一)

目录 (1)communication.py (2)Reader.py (3)Tag.py 实验1—— EPC C1G2标准下的标签状态转换仿真 实验说明: 利用Python或Matlab模拟C1G2标签的状态转换模型; 程序应能显示标签…

深度学习:01 神经网络与激活函数

目前,最广泛使用的定义是Kohonen于1988年的描述: 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。 目录 对神经网络的概述 神经网络的表示 激活函数 为什么激…

2022年总结:从初二学生到算法作者的蜕变之路

目录 一年的创作历程 我和 CSDN 在编程竞赛的合作 About CBC 技术社区的发展 夜跑奇遇 About 博客之星 新年致谢 元旦祝福 一年的创作历程 2022年,这一年对于我来说是十分重要的一年。在这一年里,我作为一名初二在校学生,在CSDN上发布…

【Linux 环境变量】环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数

1.问题:为什么自己写的程序需要加上./才能执行,但是指令可以直接使用,例:ls -al? 因为:不加"./"执行程序的时候会按环境变量PATH里面的各个路径找到就正常执行,找不到就报错&#xff…