本文介绍将基于IP通信方式的BACnet协议的设备(以下统称设备)接入边缘节点,及其与边缘管理平台交互的过程。
如果有真实的设备,可以跳过此过程,否则可以使用模拟设备。
1.下载源码https://github.com/bacnet-stack/bacnet-stack/tree/bacnet-stack-0.9.1。
2.进入源码包目录后,编译:
Linux,需要提前安装编译环境:
./confiure && make
Windows,需要提前安装MinGW-w64编译环境:
.\build.bat
3.运行模拟设备
运行一个ID为1的设备,模拟设备需与边缘节点运行在不同的主机。
Linux:
./bin/bacserv 1
Windows:
.\bin\bacserv.exe 1
前提条件:已部署边缘节点并连接上边缘管理平台,具体步骤参考边缘节点环境搭建最佳实践。
产品是对具有相同属性的一类终端设备的抽象,它定义了该类设备共同的一组功能属性也叫物模型。
1.在设备管理->边缘终端管理界面,点击右边的添加产品按钮:
2.在弹出界面中输入自定义产品名称,但必须选择协议类型为BACNet。
3.输入完成后,点击添加按钮,回到产品界面。
1.点击该产品的详情按钮,进入产品详情界面。
2.在产品详情选项卡界面中,点击右边的编辑功能定义按钮。
再点击添加自定义功能按钮。
3.在弹出框输入界面中输入功能信息,填写完后点击添加按钮。
参数 | 说明 | |
---|---|---|
功能名称 | 方便浏览阅读的名称,建议为汉字。 | |
标识符 | 方便程序使用的名称,唯一标识同一产品里的该功能,建议用英文。 | |
单位 | 功能属性值的单位,比如温度单元摄像度,长度的单位米。 | |
数据类型 | 平台存储与使用的该功能属性的值类型: String,字符串,需要额外指定字符串长度; Boolean,布尔,值只有true和false,需要添加对应的文字描述; Integer,32bit有符号整型,需要额外指定最小值和最大值; Long,64bit有符号长整型,需要额外指定最小值和最大值; Float,32bit单精度浮点数,需要额外指定最小值和最大值,以及小数部分精度,0.1、0.01分别表示精确到1位、2位小数,以此类推,最多7位小数; Doube,64bit双精度浮点数,需要额外指定最小值和最大值,以及小数部分精度,0.1、0.01分别表示精度1位、2位小数,以此类推,最多15位小数; Date,时间戳类型,实际上是64bit无符号长整型; Enum,枚举,需要额外指定具体的值,但范围必须在0到127之间。 本属性参考UaExpert上的节点数据类型DataType字段填写。 |
|
读写类型 | 指定该功能的读写类型:读,写。 | |
对象类型 | BACnet协议中定义的object type | |
对象ID | 仅支持数字,最多22位。当选择同样对象类型时,对象ID不能重复。 | |
属性ID | 默认为PROP_PRESENT_VALUE |
4.回到产品功能定义列表,点击发布按钮。
5.以相同步骤添加其它属性。
这里的设备对应一个实际终端设备,是抽象模型。
1.回到产品界面,点击设备管理。
2.点击添加设备按钮。
3.在弹出框输入界面,自定义输入设备名称,点击添加按钮完成。
BACnet应用须为边缘管理平台 边缘市场 官方提供的镜像应用,内部集成了BACnet IP通信方式的客户端驱动,本为边缘节点的可选模块,这里需要将它部署到将要接入BACnet设备的边缘节点。
1.在边缘节点管理里找到已部署好的边缘节点,确保显示为在线,记住节点名称,后面部署应用需要用到。
2.进入边缘市场,找到与边缘节点CPU架构一致的BACNet应用,点击部署应用。
3.在进入部署设置界面,如下图修改关联边缘节点为已部署好的边缘节点的产品名称和节点名称,输入首字符时会自动联想选择。其它输入项可默认,也可根据实际需要修改。最后点击创建按钮部署到边缘节点中,如果成功则会跳转到容器应用界面。
确保容器网络指定的是主机网络:
通信通道,也即通信方式。BACnet协议有多种通信方式,这里只支持IP(UDP)通信方式。在边缘节点下添加BACnet通信通道,可以提供给本边缘节点下的BACnet设备使用。
1.回到边缘节点列表,找到边缘节点,点击详情按钮进入节点详情界面。
2.按如下图切换选项卡:边缘节点配置->子设备通信通道->BACNet协议,点击新增通道按钮。
3.在弹出框输入界面中按下图配置,通道协议选BACnet,网卡名称填边缘节点所在主机上的局域网卡名称。点击分配按钮添加通道信息。
4.添加完成后回到BACnet协议通道列表。
即将哪些设备接入到当前边缘节点。
1.按如下图切换选项卡:边缘节点配置->子设备管理->BACnet协议,点击关联按钮。
2.在弹出框输入界面中先勾选要关联的BACnet设备,再点击添加按钮。
3.添加完成后回到BACnet子设备列表。
1.在边缘节点配置->子设备管理->BACnet协议的BACnet子设备列表,点击每个设备行右边的通道配置。
2.在弹出框输入界面上选择之前添加的BACnet设备通道,如下图。填完后点击分配按钮。完成。
配置项 | 说明 |
---|---|
选择通道 | 选择之前添加的通道。 |
设备ID号 | BACnet IP网络中的设备ID编号,是一个整数。 |
上报周期 | 读写设备功能属性值并上报给平台的时间间隔。 |
通信方式 | 定向:需要填写该设备的最大报文长度、IP地址和端口,BACnet驱动直接与之通信。 非定向:BACnet驱动根据网卡IP地址所属的网段内通过UDP广播发现设备,获取设备的最大报文长度、IP地址和端口。 |
最大报文长度 | 一次UDP通信的最大报文长度。 |
地址 | BACnet设备所在的IP地址和端口,用于UDP通信。 |
如果已配置,可跳过。
边缘网关收到设备上传的数据,默认是不上报给边缘云平台的。如果需要上报给边缘云平台,则需要先添加一个对应的消息路由。
1.进入云边消息->路由实例界面,点击添加路由实例按钮。
2.在弹出框输入界面中,如下图配置好后,点击完成按钮。
3.成功后回到云边消息客户端列表界面。
4.回到边缘节点管理-详情页面,如下图切换到边缘节点配置->云边消息列表,点击分配路由实例按钮。
5.在弹出框输入界面中勾选刚才创建的路由实例,点击分配按钮。
6.完成之后回到云边消息列表。
上述所有配置包括子设备、通信通道、云边消息等配置操作完成后,还只是保存在平台侧,需要下发到边缘节点。下发之后,如果一切无误,边缘节点就会采集设备数据并上报到边缘云平台。
1.回到边缘节点详情界面,点击右上角的部署配置按钮部署到边缘节点中。
1.在BACNet设备列表里点击设备行右边的详情,查看设备数据。
2.可以点击每行属性前的箭头按钮展开数据视图。比如点击温度属性。
3.温度属性数据视图如下:
注:如果该属性值是固定不变的,可以点击右边的写入给设备属性下发不同的值,以呈现折线效果。