支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统

文档序号:29743802发布日期:2022-04-21 20:28阅读:174来源:国知局
支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统
支持b-ss的嵌入式bacnet装置、传感器及楼宇自控系统
技术领域
1.本发明涉及楼宇智能化技术领域,特别是涉及一种支持b-ss的嵌入式bacnet装置、bacnet智能传感器及bacnet楼宇自控系统。


背景技术:

2.中国的楼宇智能化的建设起步于19世纪90年代,但是一直发展缓慢。直到21世纪初,随着“绿色、生态、可持续发展”等理念的提出,人们才逐渐开始真正重视楼宇智能化的发展。早期的楼宇智能化的系统集成、信息的互联互通一直是一个非常大的问题,各种厂家的设备信息不能共享,也不能通过一个软件同时管理不同厂家的设备,这就造就了楼宇智能化发展的局限性。
3.随着科技的发展,bacnet(a data communication protocol for building automation and control network),一种专门为楼宇自动控制网络制定的数据通信协议被美国提出来。bacnet标准的诞生满足了用户对楼宇自动控制设备互操作性的广泛要求,即将不同厂家的设备组成一个兼容的自控系统,从而实现互联互通。楼宇智能化也随着bacnet的提出迎来了新的发展机会。
4.目前,构建bacnet系统主要是通过控制器、协议转换网关等设备将采集到的信号转换为现场总线信号,例如lonwork、can、modbus等,然后再将该总线信号转换成标准bacnet协议信号。但上述方式依然是基于传统的dcs(distributed control system,集散控制系统)架构,将数据通过控制器或智能仪表后,再通过协议转换网关与操作员工作站通信,其需要依赖昂贵的网关设备来实现协议转换,不够灵活;另外,基于dcs架构的bas并非纯bacnet系统,其管理层设备和控制层设备之间采用bacnet通信协议,而控制层设备和现场层设备之间采用多种现场总线,现场层设备和底层设备之间采用模拟信号传输方式。此外,现有的纯bacnet系统中其每一个设备都为bacnet设备,这样就需要提供底层设备的制造商针对各自的底层设备开发bacnet通信接口,使各自的底层设备成为标准bacnet设备,造成了资源的极大浪费。
5.bacnet smart sensor(简称为b-ss,bacnet智能传感器)是标准bacnet设备中的一种,是资源极为有限的传感器设备。在介绍b-ss的标准服务之前,要先引入一个概念:bibb。bibb的英文全称是bacnet interoperability building blocks,即bacnet互操作基本模块。根据字面上的意思就可以知道,一个bibb就是bacnet标准设备的一个最小单元功能,而bacnet设备可以由一个或者多bibb组成。为了方便技术人员去开发bacnet设备,bacnet对bibb进行了一个分组,如下表1-1:
6.表1-1
[0007][0008]
这些bibb组成了bacnet的标准设备,例如bacnet智能传感器(b-ss)、bacnet智能执行器(b-sa),bacnet专用控制器等。
[0009]
bibb由一个或多个bacnet服务组成,并且每个服务有一对a类和b类设备,对应互操作功能的发起方和响应方。而b-ss是资源极为有限的传感器设备,属于b类设备,其对应支持的bibb是数据共享(ds-data sharing)分组里面的ds-rp-b功能。其中,ds(data sharing)是指数据共享,rp(readproperty)是指读属性请求服务,b是指b设备。所以ds-rp-b是指b设备具有响应readproperty服务请求的互操作能力(也可表示允许为其他a设备访问该设备包含的对象属性值)。在纯bacnet系统中,传感器都是属于b-ss设备,比如温度传感器、湿度传感器、液位传感器、流量传感器、压力传感器等,b-ss设备已经成为了楼宇智能化设备当中的主力。
[0010]
因此,对bacnet的研究,特别是标准bacnet设备的研发,如b-ss等,对于加速中国楼宇智能化的发展具有很大的意义。


技术实现要素:

[0011]
为了克服上述现有技术的不足,本发明提供了一种支持b-ss的嵌入式bacnet装置、bacnet智能传感器以及bacnet楼宇自控系统,所述嵌入式bacnet装置可与传感器快速连接以构成bacnet智能传感器,以快速实现纯bacnet系统的构建,接入成本低,节约资源。
[0012]
本发明所采用的技术方案为:
[0013]
一种支持b-ss的嵌入式bacnet装置,包括主控模块和通信模块,所述主控模块包括控制单元以及分别与所述控制单元连接的传感器接口、存储单元、通信接口、解码单元和编码单元;所述传感器接口用于与传感器连接,所述控制单元通过所述传感器接口实时获取所述传感器的检测数据并更新到所述存储单元所创建的相应的对象的当前值中;所述通信接口用于与所述通信模块连接进行数据传输,所述控制单元通过所述解码单元对所述通信接口接收到的数据包进行解码;当所述解码单元判断所述数据包为读属性请求报文且请求读取所述对象的当前值时,所述控制单元通过所述编码单元对所述对象的当前值进行编码生成bacnet数据包,并将所述bacnet数据包作为读属性响应报文通过所述通信接口输出以返回。
[0014]
采用本案所述支持b-ss的嵌入式bacnet装置,能够快速与传感器连接以将传感器检测的数据转换为bacnet报文,以便于与其他支持bacnet协议的设备进行数据传输,方便灵活,节约资源。
[0015]
进一步地,所述解码单元包括:
[0016]
bacnet报文判断单元,用于判断所述通信接口接收到的数据包是否bacnet/ip报文;
[0017]
读属性请求报文判断单元,用于当所述通信接口接收到的数据包为bacnet/ip报文时,判断所述bacnet/ip报文是否为读属性请求报文;
[0018]
请求对象判断单元,用于当所述bacnet/ip报文为读属性请求报文时,判断所述存储单元中是否存在所述读属性请求报文请求读取的对象;
[0019]
请求对象属性判断单元,用于当所述存储单元中存在所述读属性请求报文请求读取的对象时,判断请求属性是否为读取当前值。
[0020]
进一步地,所述请求对象判断单元通过所述读属性请求报文请求读取的对象标识符判断所述存储单元中存在所述读属性请求报文请求读取的对象;所述请求对象属性判断单元通过所述读属性请求报文请求读取的对象属性标识符判断请求属性是否为读取当前值。
[0021]
进一步地,所述解码单元还包括:
[0022]
invokeid提取单元,用于当所述bacnet/ip报文为读属性请求报文时,提取所述读属性请求报文的invokeid;
[0023]
实例序号提取单元,用于当所述请求属性为读取当前值时,提取所述读属性请求报文请求读取的对象标识符的实例序号;
[0024]
其中,提取的所述invokeid和所述对象标识符的实例序号还用于通过所述编码单元进行编码以生成所述bacnet数据包。
[0025]
进一步地,所述编码单元包括:
[0026]
读属性响应报文编码单元,用于将请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行bacnet标记和编码;
[0027]
头部添加单元,用于对完成bacnet标记和编码的数据依次添加应用层pci、网络层pci和虚拟链路层的pci,生成bacnet数据包;其中,所述应用层pci的invokeid为所述读属性请求报文中的invokeid,所述网络层pci为所述读属性请求报文中的网络层pci。
[0028]
进一步地,所述主控模块还包括与所述控制单元连接的数据转换单元;
[0029]
当所述传感器接口接收的传感器的检测数据为模拟信号时,所述控制单元通过所述数据转换单元将模拟信号的检测数据转换成数字信号的检测数据后再更新到所述存储单元所创建的相应的对象的当前值中。
[0030]
进一步地,所述通信模块与所述主控模块的通信接口为一体式连接或可拆卸插接。
[0031]
进一步地,所述通信模块为以太网模块或wifi模块。
[0032]
本发明另一实施例还提供了一种bacnet智能传感器,所述bacnet智能传感器包括传感器以及如上所述的支持b-ss的嵌入式bacnet装置,所述传感器与所述支持b-ss的嵌入式bacnet装置的传感器接口可实现快速连接。
[0033]
进一步地,所述传感器与所述支持b-ss的嵌入式bacnet装置的传感器接口为可拆卸插接。
[0034]
本案通过支持b-ss的嵌入式bacnet装置与传感器快速连接即可构建为bacnet智能传感器,便于将传感器直接接入通信网络(例如,bacnet网络)中以bacnet数据包的方式与其它bacnet设备进行通信。
[0035]
本发明另一实施例提供了一种bacnet楼宇自控系统,作为底层设备的传感器采用如上所述的嵌入式bacnet智能传感器,所述嵌入式bacnet智能传感器连接至通信网络中以与其他bacnet设备进行通信,所述通信网络包括有线网络、无线网络、bacnet网络、802.11x网络或以太网络。
[0036]
与现有技术相比,本发明实施例提供的一种支持b-ss的嵌入式bacnet装置、bacnet智能传感器及bacnet楼宇自控系统具有如下有益的技术效果:
[0037]
(1)现有技术方案是将一般的传感器采集到的信号通过控制器等设备转换为某种现场总线(例如modbus等),然后再将该总线信号转换为bacnet标准信号。而本发明提供的技术方案是在信号源端嵌入该标准bacnet装置(支持b-ss的嵌入式bacnet装置),传感器通过接口模块接入本发明提供的嵌入式bacnet装置以后可直接以bacnet报文的方式与其它bacnet设备进行通信。
[0038]
(2)现有技术方案依然是基于dcs架构,是将数据通过控制器或智能仪表后通过网关模块与操作员工作站通信;本发明提供的技术方案是从底层设备着手解决通信问题,传感器嵌入此标准bacnet装置以后,则意味着原有的传统集散控制系统dcs已转化为基于现场总线的全分散的控制系统fcs(fieldbus control system,现场总线控制系统),从而构建一个纯bacnet系统。
[0039]
(3)现有技术方案需要依赖昂贵的网关设备实现协议转换,且不够灵活;本发明技术方案的嵌入式标准bacnet装置采用通用的嵌入式芯片集成,成本低易接入;从而为国内大量的传感器制造商提供了向上系统集成的可能性,而不需要制造商们各自开发通信接口,避免资源浪费。
附图说明
[0040]
图1为本发明第一实施例所提供的支持b-ss的嵌入式bacnet装置的结构示意图。
[0041]
图2为本发明第一实施例所述解码单元的结构示意图。
[0042]
图3为本发明第一实施例所述编码单元的结构示意图。
[0043]
图4为bacnet在网络上传输的物理帧生成过程的示意图。
[0044]
图5为bacnet的标准标记结构图。
[0045]
图6为本发明第二实施例所提供的支持b-ss的嵌入式bacnet装置的结构示意图。
[0046]
图7为本发明实施例客户端adview(集成bacnet协议的组态软件)工程画面示意图。
[0047]
图8为本发明实施例与dht11传感器连接的支持b-ss的嵌入式bacnet装置与adview(集成bacnet协议的组态软件)工程的通讯连接图。
[0048]
图9为adview(集成bacnet协议的组态软件)工程的温湿度显示第一示例。
[0049]
图10为adview(集成bacnet协议的组态软件)工程的温湿度显示第二示例。
[0050]
图11为本发明第三实施例所提供的嵌入式bacnet智能传感器的结构示意图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于此,本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
参见附图1,为本发明第一实施例所提供的支持b-ss的嵌入式bacnet装置的结构示意图。
[0053]
本实施例所述支持b-ss的嵌入式bacnet装置100包括主控模块1和通信模块2,所述主控模块1包括控制单元10以及分别与所述控制单元10连接的传感器接口11、存储单元12、通信接口13、解码单元14和编码单元15。所述传感器接口11用于与传感器连接,所述控制单元10通过所述传感器接口11实时获取所述传感器的检测数据并更新到所述存储单元12所创建的相应的对象的当前值中。所述通信接口13用于与所述通信模块2连接进行数据传输,所述控制单元10通过所述解码单元14对所述通信接口13接收到的数据包进行解码。当所述解码单元14判断所述数据包为读属性请求报文且请求读取所述对象的当前值时,所述控制单元10通过所述编码单元15对所述对象的当前值进行编码生成bacnet数据包,并将所述bacnet数据包作为读属性响应报文通过所述传感器接口13输出以返回。
[0054]
具体实施时,所述嵌入式bacnet装置100可通过所述传感器接口11与传感器实现快速连接,例如,可以采用直接插接的方式实现可拆卸插接,或者通过连接件(例如,连接线)等方式实现快速连接。其中,所述传感器为温度传感器、压力传感器、湿度传感器、液位传感器或流量传感器等,但不限于此。
[0055]
当嵌入式bacnet装置100通过所述传感器接口11与传感器连接后,所述控制单元10通过所述传感器接口11实时获取所述传感器的检测数据并更新到所述存储单元12所创建的相应的对象的当前值中。例如,可以设置,所述控制单元每10秒或每100ms通过所述传感器接口11获取传感器的检测数据,并更新到存储单元12预先创建的相应对象的当前值中。其中,所述存储单元12可为寄存器。
[0056]
其中,在展开关于对象的创建描述之前,先引入一个概念:对象。在楼宇自控系统中,各种楼宇设备间进行着许多的信息传输和数据交换,这些设备可能来自不同的生产厂家,彼此间互不兼容,为了实现设备之间的互操作功能,bacnet采用了面向对象的技术,将任意的楼宇自控设备的功能用一组带属性的对象来进行表示。所谓对象,就是在网络设备之间传输的一组数据结构,对象的属性就是数据结构中的信息。可以将这种表示方式理解为是楼宇自控设备实现互操作的“共同语言”。在bacnet网络中,设备之间的通信其实就是对设备对象属性的读写等操作,设备可以从数据结构中读取信息,也可以向数据结构中写入信息。目前bacnet定义了28个对象,如下表2-1所示:
[0057]
表2-1
[0058][0059][0060]
在b-ss当中,描述传感器设备至少需要两个对象:analog input(或者binary input)和device。例如温度传感器,它需要一个analog input来表示它测量的温度,一个device来表示温度传感器这个设备。每个对象都有自己的一组属性,属性值用于描述与对象相对应的基础控制功能单元各个方面的特征及控制特性。通过读对象中的相关属性,就可以获取楼宇自控设备的信息;通过写对象中的相关属性,就可以改变对象的状态。在bacnet标准当中,bacnet的对象一共定义了123个属性来描述一个对象。表2-2列出bacnet规范中对象必需配置的几个属性。
[0061]
表2-2
[0062][0063]
本发明实施例提供的支持b-ss的嵌入式bacnet装置使用到的aanlog_input对象只需要包含上面8个属性,就可以满足b-ss的对象功能。
[0064]
具体到本实施例中,例如,当本发明实施例提供的嵌入式bacnet装置100通过所述
55”。
[0080]
收到的数据总共有23个字节。下面先用一张表格简单分析一下数据各个部分的作用,如表2-3所示:
[0081]
表2-3
[0082][0083]
从表2-3当中可以看出来,与readproperty相关的报文只有17个字节,即除去ip头部的6个字节,剩余的17个字节都是描述readproperty请求的信息。并且,只有后面的与服务相关的数据部分是可变的,是可以让用户任意修改的。而其他的部分,如apci、npci等等,只能按照bacnet规定的标准去定义。同时,也可以得出bacnet在网络上传输的物理帧生成的过程如图4所示。
[0084][0085]
下面详细剖析bacnet的readproperty请求报文信息,其中,对于ip头部、bvllpci、npci以及apci在此省略描述,重点剖析与服务相关的数据1:0x0c 00 00 00 01 19 55。vts解析内容如下:
[0086]
首先数据开头都是一个bacnet标记(参考图5,为bacnet的标准标记结构图),在0x0c中,class=1,属于上下文标记,上下文标记下文记号为0(tag number=0),length/value/type为4,即长度为4个字节,所以这个bacnet标记后面的4个字节(0x00000001)都是表示对象的标识符,而对象的标识符就用instance表示,是一个4个字节的int类型的数据,实例序号(instance)为1,表示为analog input 1。
[0087]
然后看下文,这一个bacnet标记(标记(0x19)的class=1,属于上下文标记,上下文编号为1(tag number=1),length/value/type为1,即长度为1个字节,所以后面的一个字节就表示了它的内容,而后面字节的内容是85,这是一个enum类型的数据,表示present-vlaue这个属性。
[0088]
综上所述,readproperty请求报文的结构就是:bvllpci+npci+apci+与
readpeoperty服务相关的数据。
[0089]
深入了解bacnet的readproperty请求报文结构之后,那么,现在我们详细描述例如利用本发明实施例提供的解码单元14和编码单元15进行readproperty请求报文的识别和响应。
[0090]
参见附图2-3,分别为本发明实施例所述解码单元14的结构示意图和本发明实施例所述编码单元15的结构示意图。
[0091]
在本实施例中,所述解码单元14包括:
[0092]
bacnet报文判断单元141,用于判断所述通信接口接收到的数据包是否bacnet/ip报文;
[0093]
读属性请求报文判断单元142,用于当所述通信接口接收到的数据包为bacnet/ip报文时,判断所述bacnet/ip报文是否为读属性请求报文;
[0094]
请求对象判断单元143,用于当所述bacnet/ip报文为读属性请求报文时,判断所述存储单元中是否存在所述读属性请求报文请求读取的对象;
[0095]
请求对象属性判断单元144,用于当所述存储单元中存在所述读属性请求报文请求读取的对象时,判断请求属性是否为读取当前值。
[0096]
在本实施例中,所述bacnet报文判断单元141判断所述通信接口13接收到的数据报文的类型是否为bacnet/ip报文具体包括:
[0097]
判断bvllpci部分的前两个字节是否为0x 81 0a,如果是,则判定所述数据报文的类型为bacnet/ip报文。
[0098]
在本实施例中,所述读属性请求报文判断单元142通过判断apci描述的服务类型是否为读属性请求(具体地,通过判断数据报文中的第6字节和第9字节是否分别为0x00和0x0c)确定所述bacnet/ip报文是否为读属性请求报文。
[0099]
其中,所述请求对象判断单元143通过所述读属性请求报文请求读取的对象标识符(object_identifier)判断所述存储单元12中存在所述读属性请求报文请求读取的对象。所述请求对象属性判断单元144通过所述读属性请求报文请求读取的对象属性标识符(property identifier)判断请求属性是否为读取当前值。
[0100]
继续参考图2,在本实施例中,所述解码单元14还进一步包括invokeid提取单元145和实例序号提取单元146,其中:
[0101]
invokeid提取单元145,用于当所述读属性请求报文判断单元142判断所述bacnet/ip报文为读属性请求报文时,提取所述读属性请求报文的invokeid;
[0102]
实例序号提取单元146,用于当所述请求对象属性判断单元144判断所述请求属性为读取当前值时,提取所述读属性请求报文请求读取的对象标识符的实例序号(instance);
[0103]
其中,提取的所述invokeid和所述对象标识符的实例序号(instance)还用于通过所述编码单元15进行编码以生成所述bacnet数据包。
[0104]
可以理解的,在本实施例中提供的所述解码单元14中,也可以定义一个专门来判断接收到的数据是否为读属性请求服务的函数:
[0105]
bool find_readproperty(unsigned char*apdu,unsigned int instance,unsigned char invokeid);
[0106]
这个函数的功能是判断接收到的数据信息是否是读属性服务请求的数据,如果是读属性服务请求,并且是读取present-value(当前值)的请求,那么就把请求对象的实例序号赋值给instance,并保存invokeid,函数返回true。如果不是,函数返回false。
[0107]
在本实施例中,所述编码单元15包括:
[0108]
读属性响应报文编码单元151,用于将请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行bacnet标记和编码;
[0109]
头部添加单元152,用于对完成bacnet标记和编码的数据依次添加应用层pci、网络层pci和虚拟链路层的pci,生成bacnet数据包;其中,所述应用层pci的invokeid为所述读属性请求报文中的invokeid,所述网络层pci为所述读属性请求报文中的网络层pci。
[0110]
具体地,本实施例所述bacnet数据包包含所述读属性服务请求报文的invokeid、所述读属性服务请求报文请求读取的对象标识符的实例序号以及请求读取的对象的当前值。其中,所述请求读取的对象的当前值即为传感器的检测数值。
[0111]
可以理解的,当本发明实施例提供的支持b-ss的嵌入式bacnet装置接收到其他设备(a设备)的读属性请求服务时,要做的就是将所连接的传感器检测的对应数值发送给请求的其他设备(a设备)。根据上述的bacnet标准的读属性请求服务数据结构可知,所述支持b-ss的嵌入式bacnet装置要发送3个参数给其他设备(a设备),分别是对象标识符(objectidentifier)、对象属性标识符(propertyidentifier)和对应属性的当前值(propertyvalue)。
[0112]
在本实施例中,所述读属性响应报文编码单元151通过如下步骤对请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行bacnet标记和编码:
[0113]
(1)对对象标识符进行编码:先生成一个bacnet标记,即分别对class、tag number和length/value/type进行赋值,例如,class=1,tag number=0,length/value/type=4,实例序号(instance)的值为0x00000001;
[0114]
(2)对对象属性的标识符进行编码:先生成一个bacnet标记,即分别对class、tag number和length/value/type进行赋值,例如,class=1,tag number=1,length/value/type=1,紧跟bacnet标记的字节的值为0x55(表示对象属性标识符的内容);
[0115]
(3)对对象属性的当前值进行编码:
[0116]
开始标记,分别对class、tag number和length/value/type进行赋值,例如,class=1,tag number=3,length/value/type=

b110’,生成的bacnet标记值为0x3e;
[0117]
构造元素编码,分别对class、tag number和length/value/type进行赋值,例如,class=0,tag number=4,length/value/type=4,生成bacnet标记的值为0x44;
[0118]
结束标记,分别对class、tag number和length/value/type进行赋值,例如,class=1,tag number=3,length/value/type=

b111’,生成的bacnet标记为0x3f。
[0119]
完成到这里,就已经完成了readproperty-ack数据部分的编码了。然后,通过所述头部添加单元152对readproperty-ack数据部分依次添加apci、npci和bvlci,从而得到一条完整的readproperty-ack bvll报文。
[0120]
可以理解的,在本实施例中提供的所述编码单元15中,也可以定义一个readproperty-ack的编码函数:
[0121]
void readpropertyack_encode(unsigned char*send_data,int instance,
unsigned char invokeid)
[0122]
其中,instance和invokeid都是在解码readproperty请求报文中提取出来的值。
[0123]
可见,本实施例提供的支持b-ss的嵌入式bacnet装置能够快速与传感器连接以将传感器检测的数据转换为bacnet数据,以便于与其他支持bacnet协议的设备进行数据传输,方便灵活,节约资源。
[0124]
参考图6,为本发明第二实施例所述的支持b-ss的嵌入式bacnet装置的结构示意图。与第一实施例提供的支持b-ss的嵌入式bacnet装置100一样,本实施例提供的嵌入式bacnet装置200包括主控模块1和通信模块2,所述主控模块1包括控制单元10以及分别与所述控制单元10连接的传感器接口11、存储单元12、通信接口13、解码单元14和编码单元15。与第一实施例提供的支持b-ss的嵌入式bacnet装置100不同的是,本实施例提供的嵌入式bacnet装置200的主控模块1还包括与所述控制单元10连接的数据转换单元16。当所述传感器接口11接收的传感器的检测数据为模拟信号时,所述控制单元10通过所述数据转换单元16将模拟信号的检测数据转换成数字信号的检测数据后再更新到所述存储单元12所创建的相应的对象的当前值中。
[0125]
可以理解,本实施例的其他单元的结构和功能可以参考第一实施例的对应单元的结构和功能,在此不再赘述。
[0126]
下面,以dht11温湿度传感器作为数据采集的传感器,esp8266wifi模块作为通信模块,对上述实施例所述支持b-ss的嵌入式bacnet装置的工作流程进行说明:
[0127]
dht11温湿度传感器与所述支持b-ss的嵌入式bacnet装置的主控模块1的传感器接口11连结,esp8266wifi模块通过无线网络与客户端连结。
[0128]
所述主控模块1的主控单元10通过所述传感器接口11实时/定时控制并获取所述dht11温湿度传感器检测到的温湿度,并将获取的温湿度数据(若为模拟信号,则需要经过数据转换单元转换为数字信号)更新至所述存储单元12预先创建的相应对象(analog input 0和analog input 1)的当前值(present_value)中。
[0129]
所述esp8266wifi模块通过无线网络接收到客户端的数据报文并通过通信接口13传输至所述主控模块1,所述主控模块1的控制单元10通过所述解码单元14对通信接口13接收到的数据报文进行解码以判断所接收的数据报文是否为读属性请求报文;当所述数据报文为读属性请求报文,则提取所述数据报文的invokeid存储到自定义的变量当中,并判断所述存储单元12中是否存在与所述读属性请求报文对应的请求对象;当所述存储单元12中存在与所述读属性请求报文对应的请求对象时,判断所述请求对象的属性是否为读取当前值;当所述请求对象的属性为读取当前值时,则提取所述读属性请求报文的请求对象的对象标识符的实例序号,并基于所述读属性请求报文对请求对象的对象标识符、对象属性标识符和对象属性的当前值进行编码,生成bacnet数据包;当所述存储单元12中存在与所述读属性请求报文对应的请求对象时,则将生成的bacnet数据包作为读属性响应报文返回客户端,否则,向客户端返回无响应报文。其中,所述bacnet数据包包含所述读属性请求报文的invokeid、所述读属性请求报文的请求对象的对象标识符的实例序号以及请求对象的当前值。
[0130]
下面,以dht11传感器作为传感器,esp8266 wifi模块作为通信模块为例,对上述实施例所述支持b-ss的嵌入式bacnet装置的功能(能够响应读属性请求报文)进行验证:
[0131]
首先,在客户端adview(集成了bacnet通信协议的组态软件)创建一个工程,在工程栏目的画面选项中新建一个画面,创建两个文本value来显示温度和湿度,创建的画面如图7所示,当工程接收到dht11传感器的温度和湿度检测数据时,两个文本value则会替换为对应的温度和湿度值。
[0132]
参见图8,为本实施例与dht11传感器连接的支持b-ss的嵌入式bacnet装置与工程的通讯连接图。
[0133]
如图8所示,dht11传感器支持b-ss的嵌入式bacnet装置的主控模块连接,客户端通过esp8266 wifi模块与支持b-ss的嵌入式bacnet装置的主控模块无线连接;此外,为了监控主控模块的程序运行状态以方便调试开发与试验,将主控模块通过串口调试助手与笔记本电脑连接。
[0134]
其中,所述dht11传感器的量程范围为:温度0~50℃,湿度20~90%rh;所述dht11传感器精度范围是温度
±
2℃,湿度
±
5%rh。
[0135]
在客户端的工程中输入支持b-ss的嵌入式bacnet装置的ip地址以及端口号并进行编译运行,客户端的工程每间隔预设时间就会向支持b-ss的嵌入式bacnet装置发送读属性请求,在客户端工程的画面上显示读取到的温湿度值,如图9所示。当把dht11传感器转移到笔记本电脑的散热出风口处,工程的画面上显示的温湿度值如图10所示,可见dht11传感器检测到的温度上升,湿度下降,符合实际预期。可见,本实施例所述支持b-ss的嵌入式bacnet装置可与一般的温湿度传感器连接以实现温湿度的实时监控,符合bacnet系统的要求。
[0136]
参见图11,为本发明第三实施例提供的一种嵌入式bacnet智能传感器的结构示意图。
[0137]
在本实施例中,所述嵌入式bacnet智能传感器包括传感器3以及上述任一实施例所述的支持b-ss的嵌入式bacnet装置,所述传感器3与所述支持b-ss的嵌入式bacnet装置的传感器接口11可实现快速连接。优选的,所述传感器3与所述支持b-ss的嵌入式bacnet装置的传感器接口11为可拆卸插接。
[0138]
本实施例通过支持b-ss的嵌入式bacnet装置与传感器连接快速构建嵌入式bacnet智能传感器,能够接入bacnet网络中直接以bacnet数据包的方式与其它bacnet设备进行通信,从而能够构成一个纯bacnet系统,并且避免资源浪费。
[0139]
本发明另一实施例提供了一种bacnet楼宇自控系统。在所述bacnet楼宇自控系统中,作为底层设备的传感器采用如上任一实施例所述的嵌入式bacnet智能传感器,所述嵌入式bacnet智能传感器连接至通信网络中以与其他bacnet设备进行通信,该通信网络包括有线网络、无线网络、bacnet网络、802.11x网络或以太网络。
[0140]
可见,本实施例提供的bacnet楼宇自控系统中,由于作为底层设备的传感器通过连接支持b-ss的嵌入式bacnet装置后构成的嵌入式bacnet智能传感器,能够直接连接至bacnet网络中以与其他bacnet设备进行通信。本发明提供的技术方案是从底层设备着手解决通信问题,传感器连接该支持b-ss的嵌入式bacnet装置以后(或者说该支持b-ss的嵌入式bacnet装置嵌入到传感器中),则意味着原有的传统集散控制系统dcs已转化为基于现场总线的全分散的控制系统fcs(fieldbus control system,现场总线控制系统),从而能够构建一个纯bacnet系统。
[0141]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1