华为云用户手册

  • 产品定义 IoT边缘(IoT Edge),是边缘计算在物联网行业的应用。IoT Edge作为物联网边缘“小脑”,在靠近物或数据源头的边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供计算和智能服务,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。 IoT边缘是一组软件产品,包含云服务、边缘运行时软件、边缘模块应用,将云端能力快速拓展至边缘,提供数据采集、低时延自治、云边协同、边缘计算等能力,在园区、城市、工业等场景,作为数据源切入点,解决客户对设备上云、本地计算、数据预处理等诉求。IoT边缘支持园区/城市/交通/工业等行业设备数采,作为切入点给IoT平台引流;支持边缘智能计算,快速实现生态拓展,丰富行业解决方案;提供SDK、API、点位配置等,满足客户或ISV的二次开发诉求。 设备端 靠近客户现场的设备,可以通过边缘节点的数据采集能力,就近接入边缘节点,从而实现设备的管理、智能控制、 数据治理 。 边缘节点 IoT边缘软件部署在网关或服务器上,纳管为边缘节点,节点可以实现设备数据的采集、预处理、数据流转、路由转发,同时边缘侧提供应用托管、边缘计算等功能,方便业务本地自治、业务扩展。 云端 云端控制台具备对边缘节点的监控管理,通过云边协同通道下发配置,执行应用远程部署升级,数据路由转发上云等能力。
  • 架构功能 图1 架构图 维度 功能 简介 边缘节点管理 节点纳管 网关、服务器、虚拟机,只要满足边缘硬件规格要求,就可以部署IoT边缘运行时软件,实现对硬件的远程纳管、监控。 应用托管 通过IoT边缘控制台,可以将Docker镜像、tar包格式或zip包格式的进程包,远程部署到边缘节点上,实现远程升级、版本管理、监控告警。 本地自治 当网络异常时提供本地自治能力,云端已下发的应用模块正常运行,确保业务连续性,当网络恢复时,数据同步到云端。 管理控制台 IoT边缘节点的云端管理界面,支持节点管理、应用管理、数采配置、路由管理、监控运维等。 就近接入 支持设备集成华为SDK后,通过MQ TTS 协议接入IoT边缘节点,默认支持对接到IoTDA云端服务。 数据管理 支持对设备数据的编解码、Profile校验、数据缓存、边云同步、时钟同步等。 设备控制 支持在云端以下发命令的方式,将命令下发到边缘节点的应用,边缘应用转发到设备,达到设备远程控制的效果。 状态监控 支持监控边缘节点的CPU、内存等状态,监控应用运行状态。 系列化硬件 IoT边缘与硬件解耦,支持部署系列化硬件,部署要求参考硬件规格,已经支持的硬件包括Atlas500等。伙伴可以给自己硬件设备申请华为认证和测试。 边缘集成 第三方应用 支持第三方应用的远程部署与管理,通过集成Module SDK用户可自主开发集成应用,实现私有协议驱动、设备数据处理应用、IT子系统对接应用。 数据采集 同时支持物联网设备数据采集和子系统数据采集;支持园区、城市、交通、工业等行业主流协议,打造协议插件生态,支持私有协议接入;合作工业数采网关实现数据毫秒高并发采集。 说明: 该能力需单独购买数采资源包。 边缘安全 安全通讯 IoT边缘提供多种安全防护措施,确保设备安全、数据有效保护。 设备安全:边缘节点和云端通过证书进行认证。提供一机一密的设备安全认证机制,防止设备非法接入。 信息传输安全:基于TLS加密协议,提供安全的传输通道。 数据保护:满足欧盟GDPR数据隐私保护要求。 应用可信启动 支持边缘应用在启动时判断可信环境。 数据本地加密 支持数据在边缘节点本地进行加密存储。
  • 名词解释 名词 描述 IoT边缘 IoT边缘(IoT Edge),是一组软件产品,需要部署到硬件上,实现边缘硬件与云端的协同管理。 边缘节点 IoT边缘软件部署的硬件载体,在硬件上部署一组软件应用,将硬件的状态信息与云端互通,在云端管理控制台可实现对硬件的远程监控与操作。 节点纳管 通过云端管理控制台,可以远程与边缘节点进行通信,管理边缘节点的状态、应用。 应用托管 通过云端把应用部署下发都边缘节点,在边缘节点上运行应用,云端可监控、管理、升级边缘上的应用。 数据流转 边缘节点上的数据,可以在同一节点下的不同应用之间进行流转互通。 路由管理 边缘节点上的数据,可以路由转发给节点外的第三方接收目标端。 数据采集 边缘节点所在的硬件,与客户现场的设备对接,将设备数据采集到边缘节点上,再进行数据预处理、流转、路由转发上云。也支持从云端下发命令,反向控制数据采集对接的设备。 MQTT协议 全称为Message Queuing Telemetry Transport(消息队列遥测传输)是ISO标准下基于发布/订阅范式的“轻量级”消息协议。互联网的基础网络协议是TCP/IP,其工作在 TCP/IP协议族上,为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的一种发布/订阅型消息协议。 Modbus协议 Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。 OPC-UA协议 全称为OPC Unified Architecture(OPC统一架构),是一项开源的、独立于平台的标准协议;通过此协议,使用不同系统的设备可以通过网络在客户端和服务器之间发送消息进行通信。
  • 产品规格 IoT边缘提供基础服务、数采服务(资源包)两种类型的产品,本文为您介绍产品能力及对软硬件的不同要求。 边缘服务提供物联网设备的就近接入、应用托管、业务联动、数据流转和预处理、本地自治等能力,和云端IoT服务协同提供统一的设备管理和数据分析。 基础版:原轻量版,部署基础版引擎,适用于在Linux 、OpenHarmony等OS上运行,支持无Docker环境的工业轻网关。 专业版:原标准版,部署专业版引擎,适用于在Docker、KubeEdge等容器环境上运行,支持智能网关、单服务器。 企业版:部署企业版引擎,适用于在Kubernetes等容器环境上运行,支持边缘服务器集群。 数采服务提供线下客户现场的数据采集交付服务,包含工业OT设备/系统数据采集服务、工业子系统数采服务、园区与城市子系统数采服务;如需数采服务,需单独购买数采服务资源包,不包含边缘硬件。 工业OT设备/系统数据采集服务:诸如PLC、CNC、上位机等OT设备或OT系统,通过现场数据采集实施对接联网。 工业子系统数采服务:诸如ERP、MES、PLM等IT业务系统,打通线上线下实现数据采集与业务流互通。 园区与城市子系统数采服务:诸如水利、消防、门禁等业务系统的设备数据,通过系统对接采集数据上云。 产品能力 特性功能 基础服务 数采服务(默认包含基础服务) 边缘节点管理 边缘网关/服务器远程部署安装 √ √ 边缘节点远程监控运维 √ √ 边缘设备管理 √ √ 边云时钟同步 √ √ 远程节点登录 √ √ 边缘应用托管 容器应用部署、升级 √ √ 进程应用部署、升级 √ √ 第三方应用托管、应用状态监控 √ √ 边缘应用集成SDK扩展 √ √ 第三方应用订阅管控 × √ 边缘自治 边缘应用本地执行 √ √ 离线数据自动缓存与自动恢复上报 √ √ 主机热备切换 √ √ 数据处理 数据物模型格式转换 √ √ 数据在边缘节点的应用之间流转 √ √ 数据路由转发到边缘节点以外的地址 √ √ 点位清洗 × √ 近场设备接入 MQTTS接入 √ √ 数采配置 × √ 点位映射 × √ 点位计算 × √ 园区子系统数采对接 × √ 城市子系统数采对接 × √ 工业子系统数采对接 × √ 工业OT设备、OT系统数采对接 × √
  • 网络环境 安装部署边缘节点时,需要具备的网络环境。 边缘环境需要具备公网IP,与OBS云服务互通。 确认自身内网是否具备访问公网能力,存在网络隔离,如涉及通信是否在同一个子网内,可参考虚拟私有云 VPC。 服务器下载工具版本是否符合要求以及对应端口是否开放,可参考表3。 部署边缘节点的服务器/网关与应用所在的镜像仓库网络互通。 IP: 下载镜像仓库的IP (可通过ping域名直接获取)。 Port:端口号(下载镜像后报错后会有端口提示)。
  • 收集范围 IoT边缘收集及产生的个人数据如表1所示: 表1 个人数据范围列表 类型 收集方式 是否可修改 是否必须 用户名 在创建用户账号时由系统管理员配置登录名 否 是 登录名是用户的身份标识信息。 密码 在管理员创建用户、重置用户密码时配置密码 在用户登录系统前重置密码、登录系统后修改密码时输入密码 是 是 用户登录控制台时使用。 设备名称 在添加设备时由用户命名 否 是 用户识别自己的设备必须。 设备状态 设备进行数据上报 是 是 指示当前设备的在线/离线状态时必须。 子设备密码可以修改 在IoT平台注册设备时由系统生成 否 是 接入IoT平台所必须的永久鉴权信息,另外,子设备密码为明文存储。 设备ID 在添加设备时由系统生成 否 是 用于标识设备唯一性必须。 设备标识码 在添加设备时由用户输入,若无输入则由系统生成 否 是 表征网关的唯一ID,平台用于设备判重时必须。 设备主机IP 设备进行数据上报 否 是 提供用户监控边缘节点的kpi时必须。
  • 产品优势 IoT边缘具有边云协同、泛接入、低时延的本地业务自治能力。 接口多样化 丰富的近场接入能力,支持通用协议、插件扩展、SDK扩展等多种设备接入方式,支持园区、城市、交通、工业等行业主流接入方式。 硬件系列化 不同场景(大计算、设备接入)支持选用不同边缘硬件,包括泰山2280服务器/Atlas500小站/AR502H。 支持工业网关,包括Linux 32位或Linux64位,支持容器级部署与进程级部署。 软件标准化 统一边缘节点软件框架,抽象屏蔽硬件接口,与硬件松耦合。除了华为推荐的系列化硬件之外,亦可对接通用服务器,支持边缘服务可插拔。 应用生态化 边缘网关云端统一部署、运维、插件管理,高效运维。 开放的架构支持第三方插件的快速集成,提供丰富的插件生态。 支持第三方应用运行,提供强大的边缘处理能力。
  • 安装包部署 添加边缘应用-应用配置 部署方式选择安装包部署 添加边缘应用-软件和运行配置 ”安装包地址”为{桶名/对象名}。 如桶名为edge-monitor,对象名为monitor-app.zip, 则安装包为edge-monitor/monitor-app.zip。 添加边缘应用-端点和部署配置同容器化部署 根据需要进行配置。 输入端点输出端点与demo中的设置对应,如monitor-app中输入与输出端点设置为input和output,则配置为: 输入端点:input。 输出端点:output。 输入输出端点是非必需配置的,当有数据流转时需要配置,如OT应用(数据处理)。 驱动类应用和IT应用一般不需要配置。 建议直接勾选“立即发布”,方便后面直接部署应用的时候,能够获取到最新版本。
  • 智慧交通 面临挑战 在自动驾驶大力发展的时代,智慧交通与车联网的高效协同是实现安全自动驾驶的基石。如何让自动驾驶车辆实时感知复杂的路面情况?如何让自动驾驶车辆根据不同场景,迅速计算出相应对策?如何让自动驾驶车辆针对紧急场景,做到毫秒级的响应? 解决方案 智慧交通边缘节点通过视频和雷达融合分析,智能化算法检测道路交通事件(算法云端训练、边缘执行),有效实时提供碰撞告警,红绿灯相位推送,车流量感知及控制等智能服务。向交通管理者提供交通全息监控能力,向车辆提供高精度定位及地图服务、交通安全预警能力,提升驾驶安全和道路通行效率,促进节能减排和便捷监管,支持向端云协同自动驾驶演进。
  • 智慧园区 面临挑战 园区接入设备多、种类众多,日常管理协调困难并且复杂。如何数字化高效运营? 对于集团化园区,通常管理多个分支园区,用户隐私数据存在数据本地化管理的诉求,如何做到云端高效统一管理的同时又兼顾用户隐私的诉求? 解决方案 IoT边缘提供低时延、接口多样化、本地自闭环管理等能力。 隐私数据本地自闭环管理,所有数据采集、处理及存储在本地节点闭环。 非隐私数据予以清洗汇总后,上传至云端进行机器学习及训练,持续优化及更新本地智能算法。 接口多样化,支持园区各类子系统/设备接入IoT边缘进行智能管理。
  • 协议转换(驱动应用) 驱动提供子设备管理和数据上报功能。 子设备管理功能包括子设备增删和配置子设备数据采集协议。设备的增删有两种形式,一是在云端增删,通过集成驱动SDK,可以接收到北向应用管理子设备的回调,即北向应用通过IoTEdge创建/删除设备时,自定义驱动应用可以接收到事件回调,在边侧进行设备接入及协议解析。二是在本地增删,自定义驱动应用也提供本地页面进行设备管理,驱动应用通过SDK上报设备添加/删除通知到云端IoTEdge,将边侧的设备管理操作同步到云端。 数据上报功能可以将设备状态和设备数据上报到云端。 驱动提供本地Portal对子设备进行管理,包括子设备数据采集协议相关配置;驱动将设备状态和设备数据上报到云端。 本地Portal增删设备时,通过子设备发现事件上报增删的设备,IoT Edge在云侧增删设备,增删的设备信息通过子设备增删事件通知到驱动 北向应用NA提供设备管理界面,调用IoTEdge接口增删设备,通过子设备增删事件通知到驱动。 北向应用在增加设备时指定设备数据采集协议相关配置。 父主题: 架构介绍
  • 安装包部署 软件部署配置 部署方式选择安装包部署,"安装包地址"为{桶名/对象名}。如桶名为:“Demo”,对象名为:“ModuleSDK-Demo.zip”, 则安装包为obs://Demo/ModuleSDK-Demo.zip。 容器规格与高级配置请根据您的需要进行配置。 运行配置 输入端点、输出端点与demo中代码定义的端点一一对应,由于本例演示的是数采模块,因此不对端点进行配置。 部署配置请根据您的需要进行选择。 输入输出端点是非必需配置的,当有数据流转时需要配置,如OT应用(数据处理)。 驱动类应用和IT应用一般不需要配置。 配置确认 建议直接点击“立即发布”,方便后面直接部署应用的时候,能够获取到最新版本。
  • 代码解析 代码解释使用ModuleSDK开发应用集成ModuleSDK进行数据处理。 AppClient类有以下几个关键方法(具体参考JavaDoc)。 createFromEnv(): AppClient创建时由此方法自动获取环境变量。 setBusMessageCallback(): 设置总线消息回调,用于对设备上报的数据进行处理 sendBusMessage(): 向总线发送消息,用于将处理后的设备数据发送到总线 callDeviceCommand(): 调用设备命令 getDevicesInfo(): 查询设备状态 MonitorApp代码解析 片段一 privatestaticfinalString INPUT = "input";public static final String OUTPUT = "output"; 定义输入和输出的端点,关于取值需要需在创建应用版本的inputs参数中定义,创建应用时输入端点与输出端点以及数据流转规则的配置与此是对应的。例如此处定义了输入端点为“input”,输出端点为“output”,则创建应用时的端点和软件配置输入端点需要配置为input,输出端点需要配置为output。 应用部署后还需要设置数据流转规则后,决定数据的流向。 /** * 电机设备的产品ID */ public static final String MOTOR_PRODUCT_ID = "60988d94aa3bcc02c0200667"; 单击设备的产品ID,需要在IoTDA设备接入创建产品时获取。 片段二 private AppClient appClient;publicMonitorApp() throws GeneraException {appClient = AppClient.createFromEnv();} 定义并创建AppClient, AppClient.createFromEnv()创建其配置参数将会自动从边缘节点环境中获取,数据的传输将会依赖AppClient。 片段三 publicvoidstart() throws GeneraException {//设置回调,打开客户端appClient.setBusMessageCallback(INPUT, this);//设置收到设备数据的回调appClient.open();} appClient在接收到数据后的处理动作需要用户定义,具体操作是设置回调。 这里设置回调方法并传入输入端点后,appClient将会开启并启动一个监听器监听输入端点的数据传输,接收到设备经过hub发来的数据后会调用回调进行数据处理。 片段四 public void onMessageReceived(BusMessage busMessage) {try { if (busMessage.getProductId().equals(MOTOR_PRODUCT_ID)) { //马达设备状态错误时对马达进行重启 MotorData motorData = JsonUtil.fromJson( JsonUtil.toJson(busMessage.getServices().get(0).getProperties()), MotorData.class); if (motorData.getStatus().equals("error")) { Command command = new Command(busMessage.getDeviceId(),"power", "power_control", "restart" ); appClient.callDeviceCommand(command, FIVE_SECOND); } } else { //其他设备数据发布到总线 appClient.sendBusMessage(OUTPUT, busMessage);}} catch (Exception e) {System.out.println(e.getMessage());}} onMessageReceived(BusMessage busMessage)是前面设置回调具体的回调函数,它是BusMessageCallback接口的方法,MonitorApp要实现BusMessageCallback接口并实现此方法,AppClient通过设置的输入端口input监听到设备发送数据时调用此方法进行数据处理,用户关于设备发送的数据的处理逻辑在此方法内实现,处理后的数据通过设置的输出端口output发送经过hub发送到云端。 appClient.callDeviceCommand(command, FIVE_SECOND)是示例演示应用在接受到设备传来的error信号后,向设备发送秒后重启命令。 父主题: 集成ModuleSDK进行数据处理
  • 场景说明 开发应用驱动集成ModuleSDK进行OT数采。(此示例以采集OPCUA为示例) 在节点部署集成了ModuleSDK应用驱动。 配置好数据源模板(可自定义)。 在平台进行数据源配置,以及点位配置下发。 集成ModuleSDK应用驱动对平台下发的配置进行处理。 通过下发信息获取数据源连接,以及点位信息进行数据周期采集。 最后运用ModuleSDK的客户端进行点位数据周期上报。 父主题: 集成ModuleSDK进行数据采集
  • 内部架构 表1 通用接口 接口 说明 IModuleShadowCallback 模块影子回调,实现对影子通知的处理 IPointsCallback 点位处理回调,实现点位的读写操作 IConnectionStatusChangeCallback 连接状态变化回调接口,用于MQTT连接状态改变时的处理 表2 提供的类 类 说明 DcClient 数采客户端,用于开发数采驱动接入点位数据,驱动需实现相关回调函数 父主题: 集成ModuleSDK(C#)
  • 如何使用 OT应用使用步骤: 1. 将创建好的应用部署到节点。部署请参照应用部署。 2. 添加设备进行测试(添加设备请参考设备接入边缘节点)。 可以利用MQTT.fx软件模拟设备接入调试。 驱动应用使用步骤: 1. 将创建好的应用部署到节点。部署请参照应用部署。 2. 添加网关。 3. 添加设备进行测试(添加设备请参考设备接入边缘节点)。 可以利用Modbus Slave软件模拟设备接入调试。 IT应用使用步骤: 1.注册节点,绑定工业资源包。 2.创建API网关。 3.将apigw系统组件和创建的应用部署到节点。 4.使用postman进行调试验证。 父主题: 操作步骤
  • 内部架构 表1 提供的接口 接口 说明 BusMessageCallback 消息总线回调接口,对来自消息总线的设备上报数据进行处理 ConnectionStatusChangeCallback 连接状态变化回调接口 GatewayCallback 网关回调,实现对子设备下行请求、网关下行事件的处理 CustomizedMessageCallback 自定义消息回调接口,对来自消息总线的自定义数据进行处理 表2 提供的类 类 说明 AppClient 应用客户端,用于开发设备数据处理应用 BaseClient 基础客户端,封装鉴权接入 ClientConfig 客户端配置(包括MQTT Server地址、EdgeHub http服务器地址、MQTT配置等) DriverClient 驱动客户端,用于开发驱动接入设备,驱动需实现网关回调接口 ItClient IT客户端,用于开发IT集成应用 父主题: 集成ModuleSDK(Java)
  • 健康检查 添加应用时,平台支持健康检查。 健康检查是指容器运行过程中根据用户需要定时检查容器健康状况或是容器中负载的健康状况。 健康检查分2种类型,每种类型有4种方式,默认不配置。 应用存活探针:应用存活探针用于探测容器是否正常工作,不正常则重启实例。当前支持发送HTTP请求和执行命令检查,通过检测容器响应是否正常。 应用业务探针:应用业务探针用于探测业务是否就绪,如果业务还未就绪,就不会将流量转发到当前实例。 图1 类型 表1 检查方式 参数名称 说明 HTTP请求检查 向容器发送HTTP GET请求,如果探针收到2xx或3xx,说明容器是健康的。 例如图2的配置,会在容器启动10秒(延迟时间)后,发送HTTP GET请求到“http://{实例IP}/health:8080”,如果在2秒(超时时间)内没有响应则视为检查失败;如果请求响应的状态码为2xx或3xx,则说明容器是健康的。 说明: 这里无需填写主机地址,默认直接使用实例的IP(即往容器发送请求),除非您有特殊需求。 执行命令检查 探针执行容器中的命令并检查命令退出的状态码,如果状态码为0则说明健康。 例如图3的配置,会在容器启动10秒(延迟时间)后,在容器中执行“cat /tmp/healthy”命令,如果在2秒(超时时间)内没有响应,则视为检查失败;如果命令成功执行并返回0,则说明容器是健康的。 TCP检查 例如图4的配置 ,检查TCP端口是否正常可以访问。如果可以,说明容器是正常的。 图2 HTTP请求检查 图3 执行命令检查 图4 TCP检查
  • 内部架构 模块SDK用于开发运行在边缘节点中的应用,包括数据处理应用(简称应用,例如数据清洗)和协议驱动(简称驱动,例如EdgeAccess)。 图1 边缘设备接入和应用开发能力架构图 部署在边缘节点中的第三方应用和第三方驱动使用模块SDK进行开发。 图2 模块SDK调用流程图 基本调用流程如图2所示。 基于ModuleSDK-C开发应用实现数据的云边同步,主要分为开发和使用两个部分。 开发操作 开发说明 SDK应用的开发 按照SDK提供的Demo进行自定义应用开发。 SDK应用的使用 将应用打包上传至华为云,部署到节点。连接子设备查看应用工作情况。 ModuleSDK-C提供了以下头文件,用户可根据需求引用相应的头文件: 头文件 说明 edge.h 实现基本的回调函数和接口函数 edge_daemon.h 实现所有证书、鉴权相关接口 edge_driver.h 驱动模块,用于开发驱动接入设备,驱动需实现网关回调函数 edge_error.h 错误码定义 edge_struct.h 所有可能使用到的头文件定义 edge_dc_driver.h 数采驱动模块,用于开发数采驱动接入点位数据,驱动需实现相关回调函数 父主题: 集成ModuleSDK(C)
  • 生成可执行文件 需要Linux开发环境,可利用CLion远程调试或者将工程打包到Linux服务器上编译生成可执行文件 编译生成可执行文件(MyCApp),可以通过CLion之间编译生成,也可以通过在Linux服务器上通过命令行生成。 下面提供在Linux服务器使用命令行生成的方法。 cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" ./-- The C compiler identification is GNU 4.8.5-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: /usr/bin/cc - skipped-- Detecting C compile features-- Detecting C compile features - done-- Configuring done-- Generating done-- Build files have been written to: /home/MyCApp makeConsolidate compiler generated dependencies of target MyCApp[100%] Built target MyCApp 可以在目录下找到生成的可执行文件,即MyCApp。 父主题: 操作步骤
  • 安装包部署-SDK应用日志 通过”安装包”部署的SDK应用可以下述方式查看日志。 进入/var/IoTEdge/downloaded-job/run目录. cd /var/IoTEdge/downloaded-job/run 找到相应的安装包目录,找到myapp_running.log查看日志。 可以看到SDK应用启动的日志如下 通过用MQTT设备模拟器发送数据,可以看到SDK处理相应的消息日志。
  • 使用场景 场景挑战 设备采集的数据信息量庞大但只需部分有效数据。部署在节点下的设备需要在本地判断情况以及时进行控制。 设备使用的协议不能接入边缘计算。 节点下的IT子系统众多,接入时不便于管理,配置繁琐。子系统采集的数据需要传输到用户的北向应用。 解决方案 通过开发集成ModuleSDK的应用,您可以: 使用ModuleSDK提供的AppClient开发OT应用对需要上传到云端的信息进行过滤上传。OT应用可以在本地对设备进行命令的下发。 使用ModuleSDK提供的DriverClient开发驱动应用进行协议转换。 使用ModuleSDK提供的ItClient开发IT应用实现子系统与云端配置的自动同步,也可以实现云端对子系统的配置管理。云端可以通过IT应用实现对子系统数据的采集。
  • 简介 为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。IoT边缘平台应用功能有自定义处理设备数据(即数据处理),自定义协议设备快速接入(即协议解析),IT子系统接入(即IT应用),并且支持容器化部署和安装包部署的方式。 集成ModuleSDK开发的应用被称为插件应用,其最终将被通过云部署到边缘节点。 集成ModuleSDK的应用分为: OT应用:数据处理类型的应用,实现了总线回调接口,IoT边缘云服务为OT应用提供总线对接能力、设备反向控制(命令)能力。 驱动应用:协议转换类型的应用,可将使用自定义协议的设备接入边缘计算。 IT应用:实现工业子系统接入的应用,实现了对子系统配置同步、反向调用接口、以及数据采集能力。 我们将集成了SDK的应用称为插件,华为云市场提供了插件上架功能。您可以将你开发的集成了SDK的应用上传到华为云市场来获取收益,也可以在华为云市场下载使用第三方插件。
  • 如何使用 OT应用使用步骤: 将创建好的应用部署到节点。部署请参照应用部署。 添加设备进行测试(添加设备请参考设备接入边缘节点)。 可以利用MQTT.fx软件模拟设备接入调试。 驱动应用使用步骤: 将创建好的应用部署到节点。部署请参照应用部署。 添加网关。 添加设备进行测试(添加设备请参考设备接入边缘节点)。 可以利用Modbus Slave软件模拟设备接入调试。 IT应用使用步骤: 注册节点,绑定工业资源包。 创建API网关。 将apigw系统组件和创建的应用部署到节点。 使用postman进行调试验证。 父主题: 操作步骤
  • 下载Demo 首先参考创建工程的步骤创建新的工程。 拷贝Demo,解压并覆盖新建项目中的 main.c 文件。 最终的文件树应如下图所示。 MyCApp │ ├─main.c // 主程序 │ ├─lib // sdk库文件 │ │ ├─libmodule.so │ │ └─*** │ ├─include // 头文件 │ │ ├─edge_error.h │ │ ├─edge_daemon.h │ │ └─edge.h └───conf // 配置文件 │ │ ├─sdk_log.conf //sdk日志配置 │ │ ├─module.dat //sdk需要的秘钥 │ │ └─rootcert.pem //证书 └───start.sh // 启动脚本(编写启动脚本可参考制作镜像包或插件包) 详细目录树如下图 更多Demo参见ModuleSDK-C Demo展示。 父主题: 开发教程
  • 操作场景 开发应用驱动集成ModuleSDK进行OT数采。(此示例以采集OPCUA为示例) 在节点部署集成了ModuleSDK应用驱动。 配置好数据源模板(可自定义)。 在平台进行数据源配置,以及点位配置,下发。 集成ModuleSDK应用驱动对平台下发的配置进行处理。 通过下发信息获取数据源连接,以及点位信息进行数据周期采集。 最后运用ModuleSDK的客户端进行点位数据进行周期上报。 父主题: 集成ModuleSDK进行OT数采
  • 证书文件 在设备和对接边缘节点场景中,需要在设备侧集成相应证书。 资源包名 描述 下载路径 ModuleSDK(java) 利用ModuleSDK开发插件在边侧进行协议转换、设备上传的数据处理、接入IT子系统。 ModuleSDK(Java版) ModuleSDK(C) Module SDK是开发边缘运行应用(插件)所必须的工具包,提供数据处理、协议转换、IT子系统接入等功能,开发完成后,通过选择打包方式来决定是容器化部署还是进程化部署。 ModuleSDK_C_latest(包括x86_64, arm32, arm64版本,下载后解压选择对应版本) ModuleSDK(C#) 利用ModuleSDK开发插件在边侧进行数据采集等功能。 ModuleSDK_ CS harp MQTT.fx MQTT.fx是MQTT设备模拟软件。 MQTT.fx下载地址 plt-device-ca 设备通过mqtts协议与边缘节点建立连接时,该证书用于校验边缘节点的身份。 证书文件 Modbus Slave Modbus Slave是Modbus Slave设备模拟软件。 Modbus Slave下载地址
  • 创建ArtemisMQ连接 登录新版ROMA Connect控制台。 在左侧导航栏选择“连接器”,在连接器页面单击“新建连接”。 选择“ArtemisMQ”连接器。 在弹窗中配置连接器信息,完成后单击“确定”。 参数 说明 描述 填写连接器的描述信息,用于识别不同的连接器。 主机IP地址 填写ArtemisMQ的连接IP地址。 端口 链接ArtemisMQ的端口号。 用户名 连接ArtemisMQ的用户名。 密码 连接ArtemisMQ的用户密码。 是否开启SSL认证 连接ArtemisMQ时是否使用SSL认证。
  • 准备依赖资源 ROMA Connect实例所需资源的具体要求和创建指导如下所示。 表1 实例依赖资源 资源 要求 创建指导 VPC和子网 不同的ROMA Connect实例可以复用相同的VPC和子网,也可以使用不同的VPC和子网,请根据实际需要进行配置。在创建VPC和子网时应注意如下要求: 创建的VPC与使用的ROMA Connect服务应在相同的区域。 创建VPC和子网时,如无特殊需求,配置参数使用默认配置即可。 创建VPC和子网的操作指导请参考创建虚拟私有云和子网,若需要在已有VPC上创建和使用新的子网,请参考为虚拟私有云创建新的子网。
  • 操作步骤 在实例控制台的“实例信息”页面中,选择“基本信息”页签,可查看和编辑实例的基本信息。 表1 ROMA Connect基本信息 内容 内容说明 ROMA Connect实例信息 实例的基本信息,包括实例名称、实例ID、描述、可用区、创建时间。 您可以根据实际需要修改“实例名称”、“描述”等。 您可以单击“实例ID”右侧的“”复制实例ID信息。 虚拟私有云 实例所关联的VPC,您可以单击VPC名称跳转查看VPC的具体配置信息。 子网 实例所关联的子网,你可以单击子网名称跳转查看子网的具体配置信息。 安全组 实例所关联的安全组,你可以单击安全组名称跳转查看安全组的具体配置信息,也可以单击“更改”按钮,绑定新的安全组。 路由 配置私有网段。ROMA Connect实例创建完成后,默认能够与创建时指定的VPC子网网段进行互通,若有额外的私有网段需要与实例互通,可通过该配置项进行路由配置。 付费信息 实例的计费模式。 RCU分布配置 分布给不同集成能力的RCU值。 消息存储空间 实例的MQS消息存储空间信息,包括存储类型和存储空间使用率(百分比)。 MQS基本信息 实例的MQS的基本配置信息。 对应Kafka引擎类型,您可以根据实际需要修改“容量阈值策略”。 连接地址 实例的相关对接地址,包括: ROMA Connect连接地址 设备集成LINK连接地址 服务集成APIC连接地址 服务集成 APIC内网连接地址(自定义后端组件和网关组件) 消息集成 MQS内网连接地址 消息集成 MQS公网连接地址(仅开启开启公网访问时展示) 您可以单击连接地址右侧的“”复制连接地址信息。 公网访问入口 若实例未开启公网入口,您可以单击地址右侧“ ”开启公网入口。 若实例已开启公网入口,您可以单击地址右侧的“ ”复制地址信息。 若实例已开启公网入口,您可以单击公网带宽右侧的“ ”修改公网入口带宽大小。 若实例已开启公网入口,您可以单击地址右侧的“ 关闭”关闭公网入口。 须知: 弹性IP地址为随机分配,开启后关闭再开启不保证IP地址分配的前后一致性。 公网IP访问控制(白名单) 仅当“公网访问入口”开启时可配置。 公网IP访问控制采用白名单模式,在开启的情况下仅白名单内的IP地址可以访问,未开启则默认全放通。 单击右侧更改进入编辑模式,您可以添加或删除允许放通的IP地址。 私网IP访问控制(白名单) 私网IP访问控制采用白名单模式,在开启的情况下仅白名单内的IP地址可以访问,未开启则默认全放通。 单击右侧更改进入编辑模式,您可以添加或删除允许放通的IP地址。
共100000条