BACnet协议详解——序

想了很长时间,终于在2022年的最后一个工作日下定决心来开一个专栏写一下关于BACnet的东西。在自动楼宇行业,BACnet协议应该是大部分工程师绕不过去的一座山。BACnet,Building Automation and Control networks的简称,即楼宇自动化与控制网络。也就是说,BACnet就是为楼宇自动化控制设计的,所以如果在做楼宇自动化控制行业的话,那么你必须得了解这个协议,或者说你必须得掌握这个协议。BACnet协议是美国标准的协议,但是绝大多数的主流产品都是以这个协议为基石的,像西门子,江森,霍尼等等公司。到目前为止,我参与的所有项目都应用到了BACnet协议,而且我都深入参与到了BACnet协议栈的移植和使用。与此同时,在做这些项目的时候,由于我们买的是商业的协议栈,在使用中遇到问题,也有幸跟BACnet协议的制定者有了一些交流,而且这些人在讲解的时候,他不是简简单单的把这个问题的解决方式告诉你,而是把这个问题的前世今生以及其它人遇到的同类问题都可能给你说一下,所以跟他们交流真的是受益匪浅。在这一个个的项目中,从初识到理解再到深入,逐渐对BACnet有了一定的理解。在慢慢应用的过程中,越来越体会到BACnet的强大,也对BACnet的理解越来越深入。因此,我对看这个专栏的对BACnet有兴趣的工程师的建议是,无论是看这个专栏还是看协议,你都是纸上谈兵,对BACnet的理解还只是停留在字面的意思。只有你将所有的object、service用到你的项目,你才能慢慢对整个object或service的设计有更深入的理解。就像我在第一次做trend log object的时候,看了trend log object以及相关的service的协议,最后发现由于理解不到位,实现方式不能过BTL的测试。因此,我像把我的一些理解和过去趟过的坑分享出来,一个是作为将来翻阅的记录,另一个就是更大家交流一下,这样大家都能共同进步!
写在后面,预计2023年每两周更新一篇关于BACnet的blog,这样既能保证blog的质量,也能给大家一个沟通和学习的时间。前几篇的blog应该更多的是把英文原版的协议以自己的话写出来。因为前几章涉及到一些架构,应用层,网络层还有就是MAC协议相关的东西,基本都是一些比较固定的东西,当然在其中肯定会有个人的一些理解在里面,尤其是我在项目中遇到的一些问题的对应说明。但是最多的理解性的说明还是在object、service这一块,因为这一块object的property会与service有一些联动,所以我会打破原有协议的排版,将object与一些相关的service结合起来讲,这样对于我们理解BACnet协议会更容易。

你可能感兴趣的:(BACnet,物联网,楼宇自动化,通信协议)