使用内置modbus驱动采集数据并进行边缘函数计算

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
所有文档
menu
没有找到结果,请重新输入

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
  • 文档中心
  • arrow
  • 智能边缘BIE
  • arrow
  • 典型实践
  • arrow
  • Modbus协议采集温湿度传感器
  • arrow
  • 使用内置modbus驱动采集数据并进行边缘函数计算
本页目录
  • 概述
  • 部署子设备模拟器
  • 云端采集子设备数据
  • 1. 创建产品
  • 2. 创建接入模板、添加采集点、配置映射
  • 3. 创建设备
  • 4. 创建驱动,配置通道
  • 5. 绑定子设备,配置接入模板、通道等参数
  • 6. 部署驱动
  • 7.读取设备测点值和置数
  • 8. 订阅子设备上报数据
  • 边缘函数计算
  • 1. 增加系统应用
  • 2. 编写函数
  • 3. 部署函数应用
  • 4. 配置消息流转
  • 验证

使用内置modbus驱动采集数据并进行边缘函数计算

更新时间:2025-08-21

概述

本教程展示如何使用智能边缘完成一个简单的子设备数采和数据智能demo。

教程中会使用系统内置的modbus驱动,以及内置的modbus模拟器(模拟器仅支持容器模式),实现边缘节点采集子设备数据,并通过函数计算测点值并上报到云端。

demo具体流程为:模拟一个温度计,云端采集温度计数据,同时将函数应用部署至边缘,实时比较温度与高温报警阈值,当温度超过阈值时会触发报警,将消息推送到指定目的地。

image.png

部署子设备模拟器

demo采用系统内置的设modbus备模拟器,modbus-tcp模拟器支持linux-amd64、linux-arm64、linux-armv7平台。

创建节点选择modbus模拟器,如下图所示:

image.png

在边缘节点设备上执行边缘节点安装命令,会自动同步安装modbus模拟器,安装完毕以后在本地执行kubectl get pod -n baetyl-edge-system,可以看到有一个baetyl-modbus-tcp-simulator的应用,如下图所示:

image.png

云端采集子设备数据

1. 创建产品

导航栏选择子设备管理,右侧通过导入产品创建产品。导入产品时上传产品-modbus-simulator.json文件。产品名为modbus-simulator,包含下图中一系列测点。

image.png

2. 创建接入模板、添加采集点、配置映射

导航栏选择子设备管理,右侧选择接入模板菜单,点击创建模板进行模板创建。关联产品选择上一步创建的modbus-simulator产品。名称我们这里填写为modbus-simulator-template,访问协议选择Modbus。

下一步点击查看进入创建的模板modbus-simulator-template,进行采集点添加和映射配置。也可以点击导入设备点表,然后上传 modbus-simulator-pointTableTemplate.csv点表文件,实现一键导入。操作完效果图如下:

image.png

3. 创建设备

导航栏选择子设备管理,右侧选择设备菜单,点击创建设备进行设备创建。产品选择之前创建的modbus-simulator,名称我们这里填写为modbus-test。下一步进入创建的modbus-test设备,可以看到如下效果:

image.png

注意: 此时还未部署驱动,测点值是空的。

4. 创建驱动,配置通道

进入创建的节点,选择子设备管理。右侧点击引入驱动,选择官方驱动modbus即可完成驱动创建。下一步点击modbus驱动的配置按钮,进行通道配置。按下图配置即可: image.png

5. 绑定子设备,配置接入模板、通道等参数

在上一步所在页面,点击绑定子设备按钮,选择之前创建的mosbus-simulator产品,找到modbus-test设备,点击确认引入驱动关联的modbus-test子设备。接下来,点击配置按钮进行参数配置。参考下图进行配置:

image.png

6. 部署驱动

点击部署驱动按钮,bie将为您自动部署驱动。一会儿后,刷新页面,您将刚看下图效果:

image.png

7.读取设备测点值和置数

在看到上一步的设备状态在线后,点击查看即可查看设备的测点值。

image.png

测点值列出现模拟器的测点数值,针对“开关”和“高温阈值“可以进行置数和召测。如开关置数为“false”后,测点值将不在变化。

image.png

8. 订阅子设备上报数据

除了在云端读取子设备数据外,也可通过baetyl-broker读取数据。边缘驱动会将子设备数据实时的推送到baetyl-broker的thing/modbus-simulator/modbus-test/property/post

JSON
1{
2    "kind":"deviceReport",
3    "meta":{
4        "accessTemplate":"modbus-access-template",
5        "device":"modbus-test",
6        "deviceProduct":"modbus-simulator",
7        "node":"modbus-gpu",
8        "nodeProduct":"BIE-Product"
9    },
10    "content":{
11        "blink":{
12            "reqId":"60b60c6e-b12a-4de7-8203-2564c26d79de",
13            "method":"thing.property.post",
14            "version":"1.0",
15            "timestamp":1682393541377,
16            "properties":{
17                "high-temperature-alarm":false,
18                "high-temperature-threshold":324,
19                "humidity":54.944695,
20                "switch":true,
21                "temperature":306.08313
22            }
23        }
24    }
25}

边缘函数计算

本章节实现边缘数据计算,确保当温度高于高温阈值时,触发报警。

1. 增加系统应用

函数计算和消息流转需要用到baetyl-function和baetyl-rule两个系统应用。在节点详情页,进入应用部署页,添加系统应用,添加后应用会自动部署到边缘节点上。

image.png

2. 编写函数

创建一个函数配置项,比较温度与高温报警阈值,当温度高于阈值时,返回true。

image.png

python代码如下,其中event达到broker指定topic的子设备数据:

Python
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4def handler(event, context):
5  properties = event['content']['blink']['properties']
6  temperature = properties['temperature']
7  switch = properties['switch']
8
9  vpoint1 = 1
10  if temperature == 100:
11    vpoint1 = 2
12  elif temperature < 100:
13    vpoint1 = 3
14
15  vpoint2 = 0
16  if switch:
17    vpoint2 = 1
18
19  event['content']['blink']['properties'] = {
20    "high-temperature-threshold": vpoint1,
21    "high-temperature-alarm": vpoint2
22  }
23
24  return event

3. 部署函数应用

创建一个新的函数应用,创建卷时选择第一步的函数配置项并挂载到容器。运行时选择python,函数名称之后在配置规则转发时会用到,函数入口填写<配置项文件名.函数名>,此处为index.handler。

image.png

创建好函数应用后将其部署到节点上。

4. 配置消息流转

通过配置baetyl-rule实现消息流转,该应用可订阅 baetyl-broker 的消息主题,发送到自身的其他消息主题,同时支持函数处理。 点击rule应用,修改rule-conf的配置项,修改conf文件内容如下。其中target可以定义为云端的任意broker,此处设置为端上的baetyl-broker

image.png

YAML
1rules:
2  - name: modbus
3    source:
4      topic: thing/modbus-simulator/modbus-test/property/post
5      qos: 0
6    target:
7      topic: thing/modbus-simulator/modbus-test/property/post/calc
8      qos: 0
9    function:
10      name: modbus-demo
11logger:
12  level: debug
13  encoding: console

验证

订阅baetyl-broker的消息,左侧为子设备上报到云端的数据测点值,右侧为测点值为原始消息及通过本地函数处理后上报的告警信息。

a084f4614ed1b4d86028f99f7aa40ac7.png

上一篇
连接边缘baetyl-broker
下一篇
数据从baetyl-broker上传至IoTCore