BACnet协议详解——Object
创始人
2025-06-01 05:28:42
0

文章目录

  • 写在前面
  • 总体陈述
  • Object
      • Object分类
      • Object组成
      • Device Object

写在前面

时间过得真快,三周的时间就这么一下子就过去了,我的blog又拖更了。这段时间经历了很多,公司开始裁员了。当然,这波裁员没有波及到我,但是作为这个行业的人,也要开始对自己的道路有一些思考了。互联网大厂开始开源节流,ChatGPT横空出世,YQ之后经济复苏缓慢,每一个都牵动着打工人的心。车贷房贷的压力让我们不得不在打工的路上越来越卷,还好我所在的公司是一所外企,但是有人在的地方就有江湖,有中国人在的职场必定就有内卷。吐槽一下心中的郁结,明天还是阳光灿烂,毕竟还有那么多人在等着跟我们伸手。就像呼兰脱口秀里说的,早上要干翻这个世界,晚上回来被这个世界干的服服帖帖。但第二天依然得有干翻这个世界的尽头,不然怎么办呢!希望大家都能保持高昂的斗志,去探索技术的宇宙吧!

总体陈述

言归正传,还是要说技术的。在写技术之前,我想了半天这个标题叫什么。我觉得英文单词perspective最为贴切吧,但是用中文想了半天才想到“总体陈述”这个词。这个部分就给大家对前面几章的内容做一个总结。我想如果你认真的看了前面几章内容的话,并且再加上BACnet本身协议的阅读,你会很迷糊这是要干什么。反正我当时读完这几章之后,我是云里雾里还不知道BACnet要干什么。今天所讲的这个Object就是应用的开始,但是当你深入的理解应用之后,你就会理解为什么要把之前的内容放在最开始讲了。这是基石,也就是地基。盖房子可能你永远卡不到地基,但是肯定是从地基开始做起。然而,对于各位看官理解这个协议,从地基去讲确实有点不合适。所以我就在这里将应用之前,先把所有的地基先串一串,让大家了解一下地基到底是怎么跟房子连接起来的,然后再详细的去讲房子以及里面的窗户和装修等等。
在前面几篇文章中,大家应该对BACnet协议从应用层到物理层有了一定的了解。物理层用于数据的实际传输,链路层用于管理物理层使所有的设备都能在一个稳定的通信规则中稳定畅通的通信,网络层用于实现多个链路层的情况下数据的路由和分享。通过之前的文章,我想大家都大概对这三个层级有了一个大概的认识,也基本了解了它在各自位置的功能。但是当你再回顾应用层的协议和讲解时,你会很模糊,这个应用层到底是在干什么呢!其实,在我看BACnet协议的时候,我也有这样的感觉,这个应用层到底是在干什么呢?尤其是在你看了BACnet协议之后,里面还有关于BACnet数据的组包规则什么的,你会更加晕头转向。但是当你看到BACnet协议栈之后,再看到BACnet协议中的Object章节,你就会慢慢的清晰起来。因为之前章节所讲的东西都是再BACnet协议栈内部的东西,这些东西大部分对于你来说,大部分都是黑箱,你通过调用API最终都要用到之前的那些知识点。这些知识点只有在你调试遇到问题或者在你看BACnet协议栈理解BACnet协议的时候,有很大的作用。哦,还忘了一点,你一直BACnet协议栈的时候,之前讲过的基础知识,尤其是物理层和数据链路层,也是很有帮助的。那么就言归正传了,Object是什么呢?或者说怎么理解之前所讲的应用层和Object呢?
在这里插入图片描述
如上图,这里就不得不引入另一个在BACnet中很重要的名词service。Object、service和application layer的关系如上图所示。Object可以理解为储存数据的数据库。Obejct根据不同的需求又定义不同类型的object,但是本质上将,它们都是用于存储数据的数据库。而service就是application layer或者说客户端等等访问Object的方式。Service最终实现的方式就是通过application layer中的confirmed request/response或者unconfirmed request来实现的。这里来举个例子,比如说,read property是BACnet中的一个service,客户端就可以用这个service告诉服务器,我要读取你的Object中的某个数据了,其过程如下图所示:
在这里插入图片描述

Object

Object分类

  • Device Object : 一个设备中只能有一个Device Object,这个device object相当于就是设备的名片,通过device object的一些属性,我们可以在BACnet的网络中找到我们想要的设备,因此它的名字或者ID等一些属性必须是全网唯一的。举个例子,这个应该就像你的电脑的IP地址(当然这里说的是固定IP地址,虽然一般情况下,我们的电脑不具有这个东西,但我们现在就假设你的电脑是固定IP地址,关于什么是固定IP地址,或者为什么个人电脑网络为什么没有固定IP地址,请不知道的小伙伴自己去查),我们在网络中输入这个IP地址就能找到你的电脑,如果有另外一台电脑也跟你用同样的IP,那么输入这个IP地址,就不知道找到的电脑中哪个是你的电脑了。
  • Analog Input Object : 模拟量输入Object
  • Analog Output Object: 模拟量输出Object
  • Analog Value Object : 模拟量Object
  • Binary Input/Output/Value Object : 二进制输入/输出/值Object
  • File Object : 文件Object,用于文件的传输
  • Multi-state Input/Output/Value Object : 这里的Multi-state有点像程序里面的枚举变量,也就是他肯定是整数,但是不一定连续,但是每个值都有实际的意义说明
  • 我就不一一列举了,有很多Object,在下面或者以后的篇章中我会对一些常用的或者在一些Service中用到的Object进行一些讲解

Object组成

所有的Object都是由各种各样的property组成的,所谓的property就是各种各样的用于说明Object或者完善Object功能的的数据。所有的Object里面都有的property是Object id, Object name, Object type, Description等。

Device Object

因为每个BACnet设备必须至少有一个Object就是Device Object,所以我们就先讲这个最重要的Object。如果你仔细看了前面的章节,你会发现在前面章节中有一些关于网络层和数据链路层的参数都是由device Object来确定的。这也是Device Object重要的原因,因为它不仅定义了自己在全网中的名片,还规定了自己在全网中通信的一些参数,所以它是BACnet通信能够正常运转起来的基石。正因为如此,在BACnet协议栈中,你会发现它肯定是首先被初始化的。
本来想着发布文章看看效果的,结果撤回不了,只能一点一点的编辑更新了,而且更坑人的是即使你写完一部分想保存等写完再发布,它也不是保存,而是直接发布,愁死我了。。。。。
未完待续~~~

相关内容

热门资讯

2026国补乡村第一单落地京东... 1月1日10点刚过,四川省唐昌镇大云村的黄先生顺利签收了自己在京东下单的国补产品。此时,距离四川省国...
巴菲特正式退休,伯克希尔进入阿... 2026.01.01本文字数:2603,阅读时长大约4分钟作者 |第一财经 樊志菁2026年的第一天...
英伟达、AMD的GPU,被曝即... 财联社1月1日讯(编辑 史正丞)2026年伊始,算力产品的价格标签就成为资本市场关注的焦点。根据最新...
价格狂飙190%,“钴奶奶”发... 本文来源:时代财经 作者:周立 图片来源:视觉中国近期,刚果(金)暂停所有手工开采的钴矿物的加工和...
深夜!茅台放大招:1499买飞... 【导读】1499买飞天茅台,每人每天限购12瓶中国基金报记者 泰勒大家好,茅台放大招了!2026年的...
印度航空发表坠机声明 6月12日消息,印度航空发表声明称,该公司一架计划从艾哈迈达巴德机场起飞前往伦敦的客机,当地时间12...
罗永浩的科技春晚,除了「翻车」... 「核心提示」产品乏善可陈、现场状况频出,罗永浩的回归之路,为何越走越艰难?作者 |高宇哲刘杨“这么多...
凌晨,全线跳水!美联储降息,大... 2025年收官日,美股全线下挫。北京时间2026年1月1日凌晨,美股三大指数尾盘集体跳水,纳指、标普...
伯克希尔进入阿贝尔时代,巴菲特... 2026年的第一天,金融界迎来了一件诸多投资者曾希望永远不会发生的大事:“股神”巴菲特即将功成身退。...
遭23亿索赔,欣旺达要“真心话... 既是对这家锂电制造商过去发展的一次全面检验,也是对未来发展方向的一次深刻反思。文/每日资本论2026...