数字工厂深入浅出系列(五):接入第三方网关设备数据
华为云数字工厂平台内置工业IoT数据引擎,基于同一业务对象对业务信息流和自动化设备控制流进行统一建模,能构建“主动感知、主动分析、主动执行”的智能化应用,实现IT业务层与OT控制层的实时融合。
华为云数字工厂平台接入设备数据有两种方法:
- 边缘连接器直连设备采集:在华为云数字工厂平台(前提条件:在开通数字工厂企业账号时,选择开通物联网服务)的“系统模块”下,自带“边缘连接器”功能,可实现在云端远程配置与下发设备点表,通过配套安装本地网关来直联和接入设备数据;
- 设备由第三方数采网关(软件)接入:由第三方数采网关(软件)连接设备后,按要求的设备数据格式,接入到华为云数字工厂平台。
本期重点介绍设备由第三方数采网关(软件)采集数据后,如何接入到华为云数字工厂平台,实现工业自动化产线设备与华为云数字工厂应用的数据集成交互。
(一)总体配置流程
(二)详细步骤说明
- 设备建模,扩展观测点属性
使用华为云数字工厂企业平台的“建模工作台>产品模型”系统功能,基于预置的“设备”模型,扩展所需采集的“观测点”字段。在扩展“设备”信息模型之前,需要先停用模型,然后我们选择在相应的业务领域下(比如“生产”),点击信息模型的“编辑器”图标,进入“信息模型配置器”:
按实际需求,新增信息组,“数据分类”选择“观测Metric”:
在信息组下,新增所需采集的IoT观测点字段:
2.注册第三方网关
我们在华为云数字工厂平台的“系统”模块下,使用“第三方IoT网关接入”功能,或者访问以下链接:https://console.huaweicloud.cn/iotdm/?region=cn-north-4#/dm-portal/device/all-device 。
按实际需求,注册第三方数采网关,用于在第三方数采网关(或数采软件)连接平台上报数据时进行鉴权。
- 注册第三方网关
在“设备列表”页签下,点击“注册设备”按钮,根据页面窗口提示填写参数,其中所属资源空间选择默认资源空间“DefaultApp_XXX”,所属产品为“thirdGateway”,设备标识码填写第三方网关对应有业务含义的编码:
如果在默认资源空间 “DefaultApp_XXX”,找不到产品“thirdGateway”,用户可以手工创建一个产品模型:
产品模型创建完成后,如果需要向第三方网关下发数据,需要进一步定义产品模型:添加一个服务($edge_hub),以及在服务下面新建一个命令(set_properties):
接着介绍上面注册设备的步骤:按设备注册界面要求填写信息后,点击“确定”,完成第三方网关注册,平台自动为第三方网关生成用于网关鉴权的身份信息:“device_id”、“secret”:
- 第三方网关连接配置
第三方网关通过MQTT协议与华为云数字工厂平台的IoT设备接入服务建立连接,建立连接时,网关需要带上注册时生成的身份信息进行鉴权,详细配置方法参考官方文档:https://support.huaweicloud.cn/api-iothub/iot_06_v5_3009.html 。
- 获取第三方网关接入地址
在华为云数字工厂平台的IoT设备接入服务的“总览”菜单下,查看获取到用于第三方网关与平台通信的接入地址信息:
- 获取第三方网关与平台数据通信Topic
在华为云数字工厂平台的IoT设备接入服务的“产品”菜单下,查看产品模型“thirdGateway”的详情,在“Topic管理”页签下,获取到第三方网关与平台的数据通信Topic:
(1)设备消息上报Topic:$oc/devices/{device_id}/sys/messages/up
(2)平台下发设备数据至第三方网关Topic:$oc/devices/{device_id}/sys/commands/request_id={request_id}
其中{device_id}在第三方网关与平台数据通信时,动态替换为前面注册第三方网关后生成的身份信息“device_id”。
3.创建设备实例主数据
在华为云数字工厂企业平台的“数据工作台>制造资源”模块下,我们使用预置的“设备”模型功能实例,来创建设备实例主数据:
设备主数据实例创建完成后,点击“编辑”,进去设备主数据详情页面,点击“感知服务”卡片,可获取到设备实例的全局唯一标识,以及所有IoT观测点字段编码,在第三方网关上报设备消息报文中需要用到这些信息:
(三)第三方网关数据通信
- 网关上报数据
- 网关连接鉴权
首先我们访问华为云IoT设备接入服务提供的参数生成工具:https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/,填写注册第三方网关后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成网关连接鉴权所需的参数(ClientId、Username、Password):
我们使用MQTTX客户端软件,模拟第三方网关连接到华为云数字工厂平台:
在“Host”中填写前面“注册第三方网关”步骤获取的第三方网关与平台通信的接入地址,以及填写上面步骤生成的ClientId、Username、Password,然后点击“connect”按钮,建立连接:
- 网关上报设备消息
第三方网关连接鉴权成功后,即可上报设备消息,通过前面“注册第三方网关”步骤,可以获得设备消息上报Topic:
$oc/devices/{device_id}/sys/messages/up,其中{device_id}需要动态替换为网关注册生成的device_id。
上报的设备消息报文内容:
{ "content": { "devices": [{ "device_id": "{mae_device_id}", "properties": { "{metric_attr_code}": "xxx" }, "event_time": "2023-06-18T15:04:05.000Z" }] } } |
数据格式说明:
字段名 |
必选/可选 |
类型 |
参数描述 |
device_id |
必选 |
String |
MAE设备数据实例标识,即在华为云数字工厂设备主数据实例的“感知服务”下查看到的全局唯一标识。 |
properties |
必选 |
object |
MAE观测点字段编码和字段值,格式如下: "properties": { "taskRequest": "false", "taskCompleted": "true", "actualProductionQty": "200", "taskID": "WJ20230619001" } |
event_time |
可选 |
String |
属性上报的时间。 |
我们使用MQTTX客户端软件,模拟第三方网关上报设备消息到华为云数字工厂平台:
在“Topic”中填写前面“注册第三方网关”步骤获取的设备消息上报Topic,以及按“设备消息上报报文”的数据格式填写需要上报的设备属性数据,然后点击“发送”消息图标,向平台上报设备属性数据:
- 查看验证上报的设备属性数据
在华为云数字工厂企业平台的设备主数据实例详情页面,可查看上报的IoT观测点属性字段的最新上报值:
点击某观测点字段后方的“查看”图标,可以查看观测点的历史数据:
2.平台下发数据到网关
- 设备观测点数据反写
进入某设备主数据实例的详情页面,修改某个支持写入的观测点字段值,然后点击字段后方的“数据下发”图标,触发向网关下发当前设备观测点字段值:
- 网关订阅平台数据
第三方网关需要订阅命令下发topic: $oc/devices/{device_id}/sys/commands/ request_id={request_id},其中:
(1) {device_id}需要动态替换为网关注册生成的device_id;
(2) {request_id}用于唯一标识这次请求。第三方网关收到下行请求的topic带该参数时,上行响应的topic需要将该参数值返回给平台。第三方网关可以使用通配#来订阅平台命令下发的topic,即:$oc/devices/{device_id}/sys/commands/# 。
下发命令数据格式如下:
{ "paras": { "device_id": "DefaultSite-sys_equipments-M10012301", "properties": { "taskID": "WJ20230619001" } }, "service_id": "$edge_hub", "command_name": "set_properties" } |
下发的设备数据信息在参数“paras”中,其数据格式说明:
字段名 |
必选/可选 |
类型 |
参数描述 |
device_id |
必选 |
String |
MAE设备数据实例标识,即在华为云数字工厂设备主数据实例的“感知服务”下查看到的全局唯一标识。 |
properties |
必选 |
object |
MAE观测点字段编码和字段值,格式如下: "properties": { "taskID": "WJ20230619001" } |
第三方网关订阅并处理平台下发的设备属性数据后,需通过命令响应消息 topic: $oc/devices/{device_id}/sys/commands/response/request_id={request_id}
来返回命令执行结果状态,命令响应消息格式如下:
{ "result_code": 0, "paras": { "result_code": "200", "result_desc": "success" } } |
数据格式说明:
字段名 |
必选/可选 |
类型 |
参数描述 |
result_code |
可选 |
Integer |
标识命令的接口调用结果,0表示成功,其他表示失败。不带默认认为成功。 |
paras |
必选 |
object |
命令的响应参数,用于第三方网关侧返回给华为云数字工厂平台来判断设备观测点数据反写的结果状态,格式如下: "paras": { "result_code": "200", "result_desc": "success" } 当反写设备观测点数据出现异常失败情况,第三方网关返回result_code的返回值需要大于400,result_desc返回具体的异常原因。 |
(四)设备数据开放第三方应用
设备数据接入到华为云数字工厂平台存储后,支持数据同时开放给第三方应用实时订阅,具体配置步骤如下:
- 注册第三方应用
使用华为云数字工厂企业平台的“系统工作台>应用集成”功能,来注册第三方应用:
2.创建数据订阅规则
点击注册的第三方应用的“订阅管理”,然后“新建订阅规则”,并选择数据开放范围涉及的产品模型:
华为云数字工厂平台,以AMQP协议开放实时数据,点击并查看创建的“订阅规则”的编辑详情,可以获取到第三方应用订阅数据的AMQP接入信息:
3.第三方应用订阅消费数据
第三方应用携带上面步骤获取的AMQP接入信息:AMQP接入域名、接入队列名、接入名(access_key)和接入凭证(access_code)建立AMQP连接,建链成功后即可实时订阅获取设备实时数据。
第三方应用订阅到的数据格式如下:
{ "notify_data.body.content": { "model_id": "4255a1e27aba4300bbd7fd85e6505d6b", "devices": [ { "device_id": "{mae_device_id}", "properties": { "{metric_attr_code}": "xxx" }, "event_time": "2023-03-30T09:48:12.101+08:00" } ] } } |
华为云数字工厂平台内置工业IoT数据引擎,能够同时处理IT业务数据和OT设备数据,实现业务信息流与设备控制流的实时融合,帮助中小制造企业低成本构建敏捷型的统一制造协同应用平台。
欢迎关注公众号“MES数字化工厂”,持续探讨智能制造话题
- 点赞
- 收藏
- 关注作者
评论(0)