Giter Club home page Giter Club logo

ua-cloudtwin's Introduction

UA云双胞胎

用于 OPC UA 数据的基于云的数字孪生定义语言 (DTDL) 适配器。它连接到 MQTT 或 Kafka 代理,订阅包含 OPC UA PubSub 遥测消息的主题,解析这些消息并自动从遥测流中提取支持 OPC UA 的资产名称,然后为 Azure 数字孪生服务中识别的每个资产创建数字孪生采用 DTDL 格式,利用 ISA95 本体。然后,它会继续更新使用相关 OPC UA PubSub 数据集创建的每个数字孪生的遥测“标签”,所有操作都是全自动的。

UA Cloud Twin 为从代理读取的 OPC UA PubSub 遥测流中发现的每个 OPC UA 服务器中的每个命名空间创建一个数字孪生,因此为了获得最佳结果,为连接到 OPC UA 服务器的每个资产提供自己的命名空间。

UA Cloud Twin 默认使用用户名和密码身份验证,但可以添加其他身份验证提供程序,请告诉我们您想要什么,并在 GitHub 上以问题形式提出功能请求。

UA Cloud Twin 如何将 OPC UA 元数据映射到数字孪生

UA Cloud Twin 通过查看格式为 的 OPC UA PubSub 元数据消息的名称属性,为工业资产创建数字孪生OPCUAApplicationURI;OPCUANamespaceURI;NodeID。请在元数据消息中适当设置您的名称属性,以获得最佳结果。

由于 OPC UA 服务器的 OPC UA 应用程序 URI 应该是全局唯一的,因此将其设置为有意义的值也是有意义的,例如 ISA95 层次结构企业->站点->区域->线路->工作单元。例如,OPC UA 服务器应用程序 URI 可能是 urn: assembly.line1.building1.munich.contoso。

当 PROCESS_TELEMETRY_MESSAGES 设置为 1 时,UA Cloud Twin 还会根据 OPC UA PubSub DataSet 消息中的字段名称创建比工业资产数字孪生低一级的数字孪生,并以 格式构造名称OPCUAApplicationURI;OPCUANamespaceURI;FieldName;NodeID

如果未收到 OPC UA PubSub 元数据消息并且定义了 IGNORE_MISSING_METADATA 环境变量,则 UA Cloud Twin 会为以下格式OPCUAPubSubPublisherIDOPCUAPubSubPublisherID;DatasetWriterID;DatasetFieldIndex下一级的资产创建数字孪生。

对于 Azure 数字孪生服务实施,OPC UA 遥测字段使用以下模式分配:

  • OPCUA 显示名称 =FieldName
  • OPCUANodeId =OPCUANamespaceURI;NodeID
  • OPCUA节点值 =[the Dataset Field value received, while "flattening" any OPC UA complex types received]

安装

必须定义以下环境变量:

  • ADMIN_USERNAME - UA Cloud Twin 管理员的名称
  • ADMIN_PASSWORD - UA Cloud Twin 的管理员密码
  • AZURE_TENANT_ID - AAD 实例的 Azure 租户 ID。可以从 Azure 门户的 Azure Active Directory -> 概述下检索此信息
  • AZURE_CLIENT_ID - UA 云孪生的 Azure 客户端 ID。可以通过 Azure 门户中的 Azure Active Directory -> 概述 -> 添加 -> 应用程序注册下的 AAD 应用程序注册来创建客户端 ID
  • AZURE_CLIENT_SECRET - UA Cloud Twin 的 Azure 客户端密钥。可以在 AAD 应用程序注册后在添加证书或密钥 -> 新客户端密钥下添加客户端密钥

要成功连接到 Azure 数字孪生服务实例,必须将上述 AAD 应用注册分配给 Azure 数字孪生数据所有者角色。

可以选择定义以下环境变量:

  • BROKER_NAME - 要使用的经纪人的名称
  • BROKER_PORT - 代理的端口号
  • CLIENT_NAME - 与代理一起使用的客户端名称
  • BROKER_USERNAME - 经纪商使用的用户名
  • BROKER_PASSWORD - 代理使用的密码
  • TOPIC - 从中​​读取消息的代理主题
  • METADATA_TOPIC - 要从中读取消息的代理元数据主题
  • USE_MQTT - 从 MQTT borker 而不是 Kafka 代理读取 OPC UA PubSub 远程通讯消息
  • USE_TLS - 设置为 1 以使用传输层安全性
  • IGNORE_MISSING_METADATA - 设置为 1 以解析消息,即使没有为消息发送元数据
  • PROCESS_TELEMETRY_MESSAGES - 设置为 1 除了处理 OPC UA 元数据消息之外还处理 OPC UA 遥测消息
  • ADT_HOSTNAME - UA Cloud Twin 应连接到的 Azure 数字孪生实例的主机名
  • USE_ISA95_EQUIPMENT_MODELS - 使用 ISA95 设备模型(设备和设备属性)进行从 OPC UA 元数据到 ISA95 的映射
  • USE_ADX - 使用 Azure 数据资源管理器来存储数字孪生图,而不是 Azure 数字孪生服务
  • ADX_INSTANCE_URL - DTDL 模型的 ADX 集群的 URL
  • ADX_DB_NAME - DTDL 模型的 ADX 数据库名称
  • ADX_TABLE_NAME - DTDL 模型的 ADX 表名称

或者,如果将 Azure IoT 中心或 Azure 事件中心用于代理,则可以在 UI 中指定 Azure 事件中心连接字符串,以避免指定上述环境变量。 Azure 事件中心连接字符串可以在 Azure 门户中的 IoT 中心的内置终结点 -> 事件中心兼容终结点下读取,对于 Azure 事件中心,可以在共享访问策略 -> RootManageSharedAccessKey -> 连接字符串主键下读取。

用法

通过以下方式在支持 Docker 的计算机上运行它:

docker run -e anEnvironmentVariableFromAbove="yourSetting" -p 80:80 ghcr.io/digitaltwinconsortium/ua-cloudtwin:main

或者,您可以在云中支持 Docker 的 Web 应用程序中运行它。

然后将您的网络浏览器指向http://yourIPAddress

您可以选择在 Url 中提供以下查询参数:

  • ?endpoint=your-broker-connection-string- 要使用的代理的连接字符串
  • ?instanceurl=your-adt-instance-url- 要使用的 Azure 数字孪生实例的 URL

例如https://localhost:5001/Setup?endpoint=[your-connection-string]&instanceUrl=[your-adt-instance-url]

构建状态

码头工人

ua-cloudtwin's People

Contributors

barnstee avatar waywardhayward avatar yuanzhongqiao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.