使用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端触发写入指令。

相关推荐
PcVue China1 小时前
【重要通知】PcVue-重要通知
bacnet·技术·scada·安全公告
北京耐用通信1 小时前
告别“蜘蛛网”接线!耐达讯自动化PROFIBUS 三路集线器让气缸布线“一拖三”的神操作
人工智能·物联网·网络协议·自动化·信息与通信
时光呀时光慢慢走3 小时前
MAUI 开发安卓 MQTT 客户端:实现远程控制 (完整源码 + 避坑指南)
android·物联网·mqtt·c#
LCG米8 小时前
基于4G Cat.1与NB-IoT的双模物联网通信模组开发实战(移远EC200S/广和通L610)
物联网
武汉唯众智创8 小时前
“物联网 Python 开发教程”课程教学解决方案
开发语言·python·物联网·物联网技术·物联网 python 开发·python 开发
TDengine (老段)10 小时前
携手桂冠电力、南网储能、中能拾贝,TDengine 三项案例入选“星河奖”
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
线束线缆组件品替网10 小时前
TE Linx RF 物联网射频模块的 RF 线缆连接设计思路
数码相机·物联网·测试工具·电脑·音视频·pcb工艺
深圳市恒星物联科技有限公司10 小时前
国内排水监测公司有哪些?
大数据·网络·数据库·物联网
eonmeter11 小时前
从人工抄表到智能管控,磁卡水表如何重塑我们的用水生活?
物联网·智能水表·磁卡水表·ic卡水表