Modbus 设备接入实践¶
本文介绍基于 Modbus 协议的终端设备接入边缘计算平台,并与云端交互的方法。本文以一个模拟设备为例,介绍整体实现流程。
接入流程:
graph TD
A(开始) --> B(终端设备连接边缘节点)
B --> C(创建设备模型)
C --> D(创建终端设备)
D --> E(部署设备 Mapper)
E --> F(结束)
classDef plain fill:#ddd,stroke:#fff,stroke-width:1px,color:#000;
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff;
classDef cluster fill:#fff,stroke:#bbb,stroke-width:1px,color:#326ce5;
class A,F plain
class B,C,D,E cluster
click B "https://docs.daocloud.io/kant/best-practice/modbus-device-demo.html#_2"
click C "https://docs.daocloud.io/kant/best-practice/modbus-device-demo.html#_3"
click D "https://docs.daocloud.io/kant/best-practice/modbus-device-demo.html#_4"
click E "https://docs.daocloud.io/kant/best-practice/modbus-device-demo.html#_5"
准备工作¶
-
模拟 Modbus 协议终端设备,本文的终端设备以一个工作负载来模拟
模拟设备镜像:release-ci.daocloud.io/kant/modbusmock:v0.1.0
-
设备 Mapper,基于 KubeEdge DMI 框架开发,实现了 Modbus 协议设备数据采集,此 mapper 仅适用于上文模拟设备
Mapper 镜像:release-ci.daocloud.io/kant/devicedemo:v1.1
-
边缘节点,节点接入要求参见边缘节点接入要求
终端设备连接边缘节点¶
由于本文中 Modbus 设备为模拟设备,故我们先将模拟设备镜像下发到边缘节点运行,模拟设备连接。部署流程参考创建工作负载。
在高级配置中包含以下参数说明:
- 节点调度,选择设备需要连接的节点
- 访问配置,网络类型选择主机网络
创建设备模型¶
设备模型创建流程参见创建设备模型。
以下设备模型参数请跟如下设置保持一致:
- 访问协议名称:modbus-tcp
-
设备模型孪生属性中的 属性名 、属性类型 、访问权限 与下图保持一致
创建终端设备¶
-
填写 基础信息 ,设备模型选择上文创建的设备模型
-
填写 设备配置 ,模型中关联的孪生属性配置如下
temperature 属性访问方式:
humidity 属性访问方式:
-
填写设备 访问配置 ,配置参数如下:
-
设备创建成功后,自动跳转到设备列表,点击列表右侧 绑定节点 操作
部署设备 Mapper¶
设备 Mapper 主要用来采集设备数据,是一个无状态工作负载,Mapper 部署好后,即可获取到设备运行数据,在这个实践场景中,我们可以在设备详情页看到 Mapper 采集到的温湿度值。
在实际应用场景中,可以根据业务需要,修改 Mapper 的实现和行为,完成 DMI 标准的数据推送、数据拉取、数据存数据库、边端本地化处理、设备联动等功能。
Note
创建终端设备和部署设备 Mapper 顺序可以调换。
设备 Mapper 镜像地址:
设备 Mapper 部署流程参见创建工作负载
创建工作负载参数说明:
- 容器配置 -> 数据存储 ,选择主机路径,主机路径 /etc/kubeedge 映射 容器路径 /etc/kubeedge,权限为 读写权限
- 高级配置 -> 访问配置 ,网络类型选择 主机网络
-
高级配置 -> 节点调度 ,选择跟设备绑定的同一节点
验证设备运行效果¶
以上步骤完成后,前往设备详情页,可以在界面看到设备运行数据,此场景中我们可以看到温度和湿度值,本文中 mock 的设备,数据值不会发生改变。