使用IOT-Tree接入各种数据转BACnet模拟设备输出

IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了各种设备接入、数据组织管理、数据分享使用、消息流控制逻辑和人机交互多个方面的功能。当然,你也可以仅仅使用这个软件作为数据采集终端或边缘计算的软件。

这是IOT-Tree Server相关的系列文章,你可以参考其他文章更多了解IOT-Tree能给你带来的好处:

使用IOT-Tree Server通过PPI协议连接西门子PLC S7-200 Smart

使用IOT-Tree Server连接西门子PLC S7-300/1200/1500

使用IOT-Tree Server通过MC协议连接三菱Q系列PLC

使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC

系列文章还包含IOT-Tree完成一个具体项目的过程,非常详细,如下:

机房自动化监控手把手分享给你 - 10 项目完成总结

本文介绍的是使用IOT-Tree Server内部BACnet Device服务,支持项目数据通过BACnet模拟设备方式对外提供数据输出。这个功能和OPC UA Server类似------在工业现场运行IOT-Tree的嵌入式设备也可以作为BACnet网关使用。

1 BACnet介绍

BACnet基本概念

BACnet(Building Automation and Control Networks)是一种专为楼宇自动化和控制系统设计的通信协议标准,由ASHRAE(美国采暖、制冷与空调工程师协会)制定。其核心目标是实现不同厂商设备间的互操作性,支持暖通空调(HVAC)、照明、安防等系统的集成。

BACnet协议特点

开放性:协议标准公开,无需授权费用,鼓励多厂商兼容。

灵活性:支持多种物理层(如以太网、RS-485)和通信方式(IP或串行)。

对象模型:通过标准化对象(如Analog Input、Device)描述设备功能,便于数据交换。

服务功能:提供读/写属性、设备发现等标准化服务,简化系统集成。

BACnet网络架构

BACnet/IP:基于IP网络,适合现代楼宇的高带宽需求。

MS/TP(Master-Slave/Token Passing):基于RS-485的低成本解决方案,适用于小型系统。

其他层:如LonTalk、Zigbee可选,但IP和MS/TP为主流。

典型应用场景

HVAC系统:实时监控温湿度、设备状态。

能源管理:集成电表、照明数据,优化能耗。

安防联动:与门禁、消防系统协同工作。

2 IOT-Tree对BACnet输出支持

IOT-Tree Server直接提供对外BACnet设备模拟支持,通过内置BACnet Service方式提供。在IOT-Tree Server管理主界面中,点击"服务程序"的"设置"按钮,就可以在弹出对话框列中看到"BACnet Device"这个服务程序。你可以设置这个服务程序的参数或控制启动停止。如图:

此服务可以对IOT-Tree Server中的一个或多个项目中的组织和数据进行BACnet设备方式的输出。可以为智能楼宇中使用其他工业通信标准的设备数据进行转换,直接通过提供BACnet接入上位系统支持。

3 设置BACnet Device

点击编辑按钮,弹出详细的参数设置界面:

缺省情况下,BACnet Device没有被使能,并且使用端口47808。你可以修改端口,选择BACnet Device使用的本地网络地址,起用BACnet Device。

BACnet设备id和数据节点内部id都是一个整数,你可以设置设备id和修改设备名称。

在对话框下方是本地IOT-Tree运行实例中的项目列表,你可以勾选需要对外提供BACnet访问的项目。

3.1 选择项目并且确定项目内部IID范围

我们勾选一个或多个项目之后,可以看到需要设置每个项目内部IID范围,并且每个项目IID不能重复。

这是因为BACnet的设备要求内部每个数据节点都有整数唯一id,而我们一个IOT-Tree实例中有多个项目,并且输出到一个BACnet模拟设备中。因此,为了保证内部节点id唯一,IOT-Tree把每个项目使用的iid使用1000000为基数进行划分,只需要IID Base是个0-1000的整数且互不相同,那就可以保证输出的节点ID唯一。

IOT-Tree内部每个标签也有一个项目内唯一整数id,只需要把项目内唯一id与这个IID Base相加,就是BACnet输出对应的节点id。

以上参数设置成功之后,在Service列表中,点击启动服务按钮,本IOT-Tree Server运行实例就支持BACnet Device了

4 使用Yabe访问

你可以在你的电脑上安装一个"Yabe (Yet Another Bacnet Explorer)"软件,本文使用此软件用来查看我们的IOT-Tree是否正确模拟出了BACnet设备。

打开软件,点击"Add Channel"图标,在弹出对话框中,选择Local endpoint为本地ip地址,这个地址与上面IOT-Tree设置本地地址相同。如下图:

点击"Start"按钮,可以看到在Devices下方树形组织中找到了我们这个设备,点击这个设备节点,可以在下方的Objects列表中看到发布项目标签数据:

你可以仔细观察每个数据项,可以发现里面的唯一id,就是我们在IOT-Tree设置从配置的范围内。

4.1 数据项说明

点击某个Objects列表中的数据项,在右边的Properties框中,可以看到这个数据项对应的详细属性内容:

其中,Object Name属性使用的是IOT-Tree标签节点的唯一路径,格式为:

项目名称.通道.标签组*.标签名称

而每个IOT-Tree的标签状态(有效性、是否报警),在Status Flags中展示:

Present Value属性代表了当前值。

4.2 数据读取

把读取的数据拖入订阅区,就可以看到当前运行数据。

4.3 数据写入

对于AO 和BO类型的对象------对应于IOT-Tree的可写标签,可以支持写入数据操作:

如对于数据点"watertank.ch1.dio.pstart",这是IOT-Tree内部自带Demo项目中的手工启动水泵标签,选中之后,在Properties区的Present Value属性项,写入1并回车。就会在IOT-Tree端触发写入指令。

相关推荐
调试优选官1 天前
IoT物联网系统定制落地实践:从设备接入、协议网关、平台分层到业务应用,如何做技术选型、交付验收、责任边界与长期运维成本评估及迁移安排
物联网·iot·成本分析
华允物联-HUAIOT1 天前
工业路由器和DTU在联网方式上的区别
物联网
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
码流子1 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
绿蕉1 天前
配电房的“AI听诊师”:可视化声纹局放智能巡检系统与通讯保障
物联网
chshang19921 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
做萤石二次开发的哈哈1 天前
海康商用音频主机接入萤石蓝海 AIoT:多路拾音、矩阵路由、分区广播、应急广播四类技能,IP 网络广播系统多端开发实战
物联网·音频矩阵·萤石开放平台·ip网络广播·蓝海aiot一站式工作台·aiot开发·公共广播
wuyk5551 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
CServer_011 天前
开源!混合存储底座+湖仓一体的AI数据中台
物联网·制造
数字新视界2 天前
数据中心基础设施管理系统的智能监测与运维整合剖析
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统