BACnet 协议栈浅析(Java 版)之 BACnet 协议简介

本文介绍了楼宇自动化中的BACnet协议及其Java版协议栈的应用。BACnet作为一种通用楼宇设备通信协议,旨在解决不同系统间通信难题。文章概述了BACnet的基本原理、属性及方法,并提供Java版BACnet协议栈的学习路径。

BACnet 协议是楼宇自动化中的一种常用协议,本节会首先对 BACnet 技术做一个简介,然后将介绍 Java 版的 BACnet 协议栈的学习思路。

1 BACnet 协议简介

首先,BACnet 协议栈的出现是为了解决楼宇自动化中不同设备间的通讯障碍。如果每个系统都使用自己的通讯协议,那么对于综合监控系统来说,接入这些子系统的信号将变得非常困难。当然,为了解决这一问题,也可以通过第三方工具来消除通讯上的障碍,例如数据库、WebService 等等,我们应该辩证的看待这个问题,由于 BACnet 被提出的时间(最初的想法)可以追溯到 1987 年,那个年代互联网技术还没有这么发达,软硬件成本也没有今天这么低廉,所以一种通用的楼宇设备通信协议显然是最优的解决方案。但即便是今天,存在多种替代技术的情况下,利用通用协议进行通信也不是一个坏的选择,因为这样做实际也可以节约软硬件的成本。并且,实际上很多国家已经将 BACnet 协议作为行业标准。

那么什么是 BACnet 呢?BACnet 是 A Data Communication Protocol for Building Automation and Controls NETwork 的缩写,从中可以看出,BACnet 的服务对象是楼宇自动控制系统,这个领域涉及的业务很广泛,包含 HVAC 控制、火灾监测报警、灯光控制、安防、电梯等诸多方面。从这个角度来说,对于智能楼宇、智慧城市、智能办公的从业者来说,就不得不对 BACnet 协议有一个了解,因为这些技术发展的基本前提就是数据的采集、分析与控制,而这一切都绕不开与建筑中已有的系统进行通信。

或许你很好奇,对于不同种类的设备(例如电梯和火灾报警主机),BACnet 是如何将其统一起来的?BACnet 协议定义了一系列的抽象的属性(例如模拟输出、数字输入等)和方法(例如读取属性等),每一套设备都被视为一个 BACnet 设备,可以从一个大的集合中选取其所支持的属性和方法,来构建属于自己的应用。(这类似于程序设计中的面向对象模型)

而这些应用都是基于底层的硬件网络来实现的,例如串口、以太网等等,对于不同的网络结构,其通讯又需要进行路由,BACnet 协议中的网络层解决了这些问题。

在其补充协议中,BACnet 又增加了新的对于 IP 网络的支持,这使得你的智能手机也可以通过网络轻松连接到楼宇设备。

可能你还是觉得一头雾水,你需要的只是一个快速的入门,来教会你如何使用协议栈来构建自己的应用。如果你是一个纯粹的新手,请阅读第2部分关于 BACnet协议栈的学习思路。如果你已经有一定的基础,可以在后续章节中选择性的阅读。

2 Java 版 BACnet 协议栈

本节将介绍 Java 版的 BACnet 协议栈的学习思路。

  1. 首先你需要对 BACnet 协议栈有一个基本的了解,它是干什么的,都包含哪些要素。你可以浏览其官方网站 http://www.bacnet.org/index.html,或者看一下 http://www.bacnet.org/Tutorial/HMN-Overview/sld001.htm 官方的入门教程,这可能是需要花费你半个小时到一个小时的时间
  2. 然后你可以搜寻一些 BACnet 相关介绍的帖子,或者干脆购买一本 BACnet 教程。虽然这些内容大多只是对英文版协议的翻译,但这绝对会让你对 BACnet 协议栈的认识有一个大的提升。
  • 我看的教材名字是:《BACnet 标准与楼宇自控系统技术》,机械工业出版社,这本书对于 BACnet 的介绍部分是对 BACnet 协议的翻译
  • BACnet 协议中文版:https://pan.baidu.com/s/1hrViIVy 密码: fvfx,这个协议翻译的不全
  • 一个比较好的中文入门简介: https://pan.baidu.com/s/1slERBRZ 密码: ii2g,这个教程对于协议本身的讲解比较细致
    虽然这些内容你会发现大多是雷同的,但绝对值得去看,这大概需要一到两天的时间。
  1. 这时如果你手头有现成的 BACnet 设备,你可以下载一个叫做 VTS 的工具(Visual Test Shell for BACnet)来尝试着与其通信,这个工具可以从 https://sourceforge.net/projects/vts/ 或 https://pan.baidu.com/s/1mijTEmW (密码: t9gy)下载。相信在看过之前那么多文档之后,你已经可以简单操作这个软件了。
  2. 如果你没有 BACnet 设备也不要紧,VTS绝对可以帮助你调试你自己的 BACnet 程序
  3. 选择一种语言的 BACnet 协议栈,开始你的编码工作吧。

由于我使用的是 Java 协议栈,所以从下一节开始,我将尽可能明了的阐述如何使用 BACnet for Java 协议栈构建自己的 BACnet 程序。

由于已经不再从事相关工作,也没有后续了。。。

评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郎碎碎念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值