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

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

Info

Publication number
CN114374574A
CN114374574A CN202111677710.4A CN202111677710A CN114374574A CN 114374574 A CN114374574 A CN 114374574A CN 202111677710 A CN202111677710 A CN 202111677710A CN 114374574 A CN114374574 A CN 114374574A
Authority
CN
China
Prior art keywords
bacnet
sensor
read
unit
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111677710.4A
Other languages
English (en)
Other versions
CN114374574B (zh
Inventor
曾珞亚
许锦标
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202111677710.4A priority Critical patent/CN114374574B/zh
Publication of CN114374574A publication Critical patent/CN114374574A/zh
Application granted granted Critical
Publication of CN114374574B publication Critical patent/CN114374574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Abstract

一种支持B‑SS的嵌入式BACnet装置,包括主控模块和通信模块,主控模块包括控制单元以及分别与控制单元连接的传感器接口、存储单元、通信接口、解码单元和编码单元;传感器接口与传感器连接,控制单元通过传感器接口实时获取传感器的检测数据并更新到存储单元所创建的相应的对象的当前值中;通信接口与通信模块连接进行数据传输,控制单元通过解码单元对通信接口接收到的数据包进行解码;当解码单元判断数据包为读属性请求报文且请求读取对象的当前值时,控制单元通过编码单元对对象的当前值进行编码生成BACnet数据包,并将BACnet数据包作为读属性响应报文通过通信接口输出以返回。

Description

支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统
技术领域
本发明涉及楼宇智能化技术领域,特别是涉及一种支持B-SS的嵌入式BACnet装置、BACnet智能传感器及BACnet楼宇自控系统。
背景技术
中国的楼宇智能化的建设起步于19世纪90年代,但是一直发展缓慢。直到21世纪初,随着“绿色、生态、可持续发展”等理念的提出,人们才逐渐开始真正重视楼宇智能化的发展。早期的楼宇智能化的系统集成、信息的互联互通一直是一个非常大的问题,各种厂家的设备信息不能共享,也不能通过一个软件同时管理不同厂家的设备,这就造就了楼宇智能化发展的局限性。
随着科技的发展,BACnet(A Data Communication Protocol for BuildingAutomation and Control Network),一种专门为楼宇自动控制网络制定的数据通信协议被美国提出来。BACnet标准的诞生满足了用户对楼宇自动控制设备互操作性的广泛要求,即将不同厂家的设备组成一个兼容的自控系统,从而实现互联互通。楼宇智能化也随着BACnet的提出迎来了新的发展机会。
目前,构建BACnet系统主要是通过控制器、协议转换网关等设备将采集到的信号转换为现场总线信号,例如LonWork、CAN、Modbus等,然后再将该总线信号转换成标准BACnet协议信号。但上述方式依然是基于传统的DCS(Distributed Control System,集散控制系统)架构,将数据通过控制器或智能仪表后,再通过协议转换网关与操作员工作站通信,其需要依赖昂贵的网关设备来实现协议转换,不够灵活;另外,基于DCS架构的BAS并非纯BACnet系统,其管理层设备和控制层设备之间采用BACnet通信协议,而控制层设备和现场层设备之间采用多种现场总线,现场层设备和底层设备之间采用模拟信号传输方式。此外,现有的纯BACnet系统中其每一个设备都为BACnet设备,这样就需要提供底层设备的制造商针对各自的底层设备开发BACnet通信接口,使各自的底层设备成为标准BACnet设备,造成了资源的极大浪费。
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:
表1-1
Figure BDA0003452699300000021
这些BIBB组成了BACnet的标准设备,例如BACnet智能传感器(B-SS)、BACnet智能执行器(B-SA),BACnet专用控制器等。
BIBB由一个或多个BACnet服务组成,并且每个服务有一对A类和B类设备,对应互操作功能的发起方和响应方。而B-SS是资源极为有限的传感器设备,属于B类设备,其对应支持的BIBB是数据共享(DS-Data Sharing)分组里面的DS-RP-B功能。其中,DS(DataSharing)是指数据共享,RP(ReadProperty)是指读属性请求服务,B是指B设备。所以DS-RP-B是指B设备具有响应ReadProperty服务请求的互操作能力(也可表示允许为其他A设备访问该设备包含的对象属性值)。在纯BACnet系统中,传感器都是属于B-SS设备,比如温度传感器、湿度传感器、液位传感器、流量传感器、压力传感器等,B-SS设备已经成为了楼宇智能化设备当中的主力。
因此,对BACnet的研究,特别是标准BACnet设备的研发,如B-SS等,对于加速中国楼宇智能化的发展具有很大的意义。
发明内容
为了克服上述现有技术的不足,本发明提供了一种支持B-SS的嵌入式BACnet装置、BACnet智能传感器以及BACnet楼宇自控系统,所述嵌入式BACnet装置可与传感器快速连接以构成BACnet智能传感器,以快速实现纯BACnet系统的构建,接入成本低,节约资源。
本发明所采用的技术方案为:
一种支持B-SS的嵌入式BACnet装置,包括主控模块和通信模块,所述主控模块包括控制单元以及分别与所述控制单元连接的传感器接口、存储单元、通信接口、解码单元和编码单元;所述传感器接口用于与传感器连接,所述控制单元通过所述传感器接口实时获取所述传感器的检测数据并更新到所述存储单元所创建的相应的对象的当前值中;所述通信接口用于与所述通信模块连接进行数据传输,所述控制单元通过所述解码单元对所述通信接口接收到的数据包进行解码;当所述解码单元判断所述数据包为读属性请求报文且请求读取所述对象的当前值时,所述控制单元通过所述编码单元对所述对象的当前值进行编码生成BACnet数据包,并将所述BACnet数据包作为读属性响应报文通过所述通信接口输出以返回。
采用本案所述支持B-SS的嵌入式BACnet装置,能够快速与传感器连接以将传感器检测的数据转换为BACnet报文,以便于与其他支持BACnet协议的设备进行数据传输,方便灵活,节约资源。
进一步地,所述解码单元包括:
BACnet报文判断单元,用于判断所述通信接口接收到的数据包是否BACnet/IP报文;
读属性请求报文判断单元,用于当所述通信接口接收到的数据包为BACnet/IP报文时,判断所述BACnet/IP报文是否为读属性请求报文;
请求对象判断单元,用于当所述BACnet/IP报文为读属性请求报文时,判断所述存储单元中是否存在所述读属性请求报文请求读取的对象;
请求对象属性判断单元,用于当所述存储单元中存在所述读属性请求报文请求读取的对象时,判断请求属性是否为读取当前值。
进一步地,所述请求对象判断单元通过所述读属性请求报文请求读取的对象标识符判断所述存储单元中存在所述读属性请求报文请求读取的对象;所述请求对象属性判断单元通过所述读属性请求报文请求读取的对象属性标识符判断请求属性是否为读取当前值。
进一步地,所述解码单元还包括:
invokeID提取单元,用于当所述BACnet/IP报文为读属性请求报文时,提取所述读属性请求报文的invokeID;
实例序号提取单元,用于当所述请求属性为读取当前值时,提取所述读属性请求报文请求读取的对象标识符的实例序号;
其中,提取的所述invokeID和所述对象标识符的实例序号还用于通过所述编码单元进行编码以生成所述BACnet数据包。
进一步地,所述编码单元包括:
读属性响应报文编码单元,用于将请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行BACnet标记和编码;
头部添加单元,用于对完成BACnet标记和编码的数据依次添加应用层PCI、网络层PCI和虚拟链路层的PCI,生成BACnet数据包;其中,所述应用层PCI的invokeID为所述读属性请求报文中的invokeID,所述网络层PCI为所述读属性请求报文中的网络层PCI。
进一步地,所述主控模块还包括与所述控制单元连接的数据转换单元;
当所述传感器接口接收的传感器的检测数据为模拟信号时,所述控制单元通过所述数据转换单元将模拟信号的检测数据转换成数字信号的检测数据后再更新到所述存储单元所创建的相应的对象的当前值中。
进一步地,所述通信模块与所述主控模块的通信接口为一体式连接或可拆卸插接。
进一步地,所述通信模块为以太网模块或WIFI模块。
本发明另一实施例还提供了一种BACnet智能传感器,所述BACnet智能传感器包括传感器以及如上所述的支持B-SS的嵌入式BACnet装置,所述传感器与所述支持B-SS的嵌入式BACnet装置的传感器接口可实现快速连接。
进一步地,所述传感器与所述支持B-SS的嵌入式BACnet装置的传感器接口为可拆卸插接。
本案通过支持B-SS的嵌入式BACnet装置与传感器快速连接即可构建为BACnet智能传感器,便于将传感器直接接入通信网络(例如,BACnet网络)中以Bacnet数据包的方式与其它Bacnet设备进行通信。
本发明另一实施例提供了一种BACnet楼宇自控系统,作为底层设备的传感器采用如上所述的嵌入式BACnet智能传感器,所述嵌入式BACnet智能传感器连接至通信网络中以与其他BACnet设备进行通信,所述通信网络包括有线网络、无线网络、BACnet网络、802.11X网络或以太网络。
与现有技术相比,本发明实施例提供的一种支持B-SS的嵌入式BACnet装置、BACnet智能传感器及BACnet楼宇自控系统具有如下有益的技术效果:
(1)现有技术方案是将一般的传感器采集到的信号通过控制器等设备转换为某种现场总线(例如Modbus等),然后再将该总线信号转换为BACnet标准信号。而本发明提供的技术方案是在信号源端嵌入该标准Bacnet装置(支持B-SS的嵌入式BACnet装置),传感器通过接口模块接入本发明提供的嵌入式BACnet装置以后可直接以Bacnet报文的方式与其它Bacnet设备进行通信。
(2)现有技术方案依然是基于DCS架构,是将数据通过控制器或智能仪表后通过网关模块与操作员工作站通信;本发明提供的技术方案是从底层设备着手解决通信问题,传感器嵌入此标准Bacnet装置以后,则意味着原有的传统集散控制系统DCS已转化为基于现场总线的全分散的控制系统FCS(Fieldbus Control System,现场总线控制系统),从而构建一个纯Bacnet系统。
(3)现有技术方案需要依赖昂贵的网关设备实现协议转换,且不够灵活;本发明技术方案的嵌入式标准Bacnet装置采用通用的嵌入式芯片集成,成本低易接入;从而为国内大量的传感器制造商提供了向上系统集成的可能性,而不需要制造商们各自开发通信接口,避免资源浪费。
附图说明
图1为本发明第一实施例所提供的支持B-SS的嵌入式BACnet装置的结构示意图。
图2为本发明第一实施例所述解码单元的结构示意图。
图3为本发明第一实施例所述编码单元的结构示意图。
图4为BACnet在网络上传输的物理帧生成过程的示意图。
图5为BACnet的标准标记结构图。
图6为本发明第二实施例所提供的支持B-SS的嵌入式BACnet装置的结构示意图。
图7为本发明实施例客户端ADVIEW(集成BACnet协议的组态软件)工程画面示意图。
图8为本发明实施例与DHT11传感器连接的支持B-SS的嵌入式BACnet装置与ADVIEW(集成BACnet协议的组态软件)工程的通讯连接图。
图9为ADVIEW(集成BACnet协议的组态软件)工程的温湿度显示第一示例。
图10为ADVIEW(集成BACnet协议的组态软件)工程的温湿度显示第二示例。
图11为本发明第三实施例所提供的嵌入式BACnet智能传感器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于此,本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见附图1,为本发明第一实施例所提供的支持B-SS的嵌入式BACnet装置的结构示意图。
本实施例所述支持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输出以返回。
具体实施时,所述嵌入式BACnet装置100可通过所述传感器接口11与传感器实现快速连接,例如,可以采用直接插接的方式实现可拆卸插接,或者通过连接件(例如,连接线)等方式实现快速连接。其中,所述传感器为温度传感器、压力传感器、湿度传感器、液位传感器或流量传感器等,但不限于此。
当嵌入式BACnet装置100通过所述传感器接口11与传感器连接后,所述控制单元10通过所述传感器接口11实时获取所述传感器的检测数据并更新到所述存储单元12所创建的相应的对象的当前值中。例如,可以设置,所述控制单元每10秒或每100ms通过所述传感器接口11获取传感器的检测数据,并更新到存储单元12预先创建的相应对象的当前值中。其中,所述存储单元12可为寄存器。
其中,在展开关于对象的创建描述之前,先引入一个概念:对象。在楼宇自控系统中,各种楼宇设备间进行着许多的信息传输和数据交换,这些设备可能来自不同的生产厂家,彼此间互不兼容,为了实现设备之间的互操作功能,BACnet采用了面向对象的技术,将任意的楼宇自控设备的功能用一组带属性的对象来进行表示。所谓对象,就是在网络设备之间传输的一组数据结构,对象的属性就是数据结构中的信息。可以将这种表示方式理解为是楼宇自控设备实现互操作的“共同语言”。在BACnet网络中,设备之间的通信其实就是对设备对象属性的读写等操作,设备可以从数据结构中读取信息,也可以向数据结构中写入信息。目前BACnet定义了28个对象,如下表2-1所示:
表2-1
Figure BDA0003452699300000071
Figure BDA0003452699300000081
在B-SS当中,描述传感器设备至少需要两个对象:Analog Input(或者BinaryInput)和Device。例如温度传感器,它需要一个Analog Input来表示它测量的温度,一个Device来表示温度传感器这个设备。每个对象都有自己的一组属性,属性值用于描述与对象相对应的基础控制功能单元各个方面的特征及控制特性。通过读对象中的相关属性,就可以获取楼宇自控设备的信息;通过写对象中的相关属性,就可以改变对象的状态。在BACnet标准当中,BACnet的对象一共定义了123个属性来描述一个对象。表2-2列出BACnet规范中对象必需配置的几个属性。
表2-2
Figure BDA0003452699300000082
本发明实施例提供的支持B-SS的嵌入式BACnet装置使用到的Aanlog_Input对象只需要包含上面8个属性,就可以满足B-SS的对象功能。
具体到本实施例中,例如,当本发明实施例提供的嵌入式BACnet装置100通过所述传感器接口11与一温湿度传感器连接时,需要用到3个对象实例,一个“Device”对象用来描述温湿度传感器的基本信息,两个模拟量“Analog Input 0”和“Analog Input 1”表示温度和湿度。这样,所述控制单元10每秒或每100ms通过所述传感器接口11获取所述温湿度传感器检测到的温度和湿度,并对应更新至存储单元12预先创建的相应对象(Analog Input 0和Analog Input 1)的当前值(Present_Value)中。
在本实施例中,所述通信模块2为wifi模块,所述wifi模块与所述主控模块1的通信接口13为一体式连接或可拆卸插接。当本发明实施例提供的嵌入式BACnet装置100通过所述传感器接口11与传感器连接后,所述控制单元10通过所述传感器接口11实时/定时控制以获取所述传感器的检测数据以更新至对应对象的当前值的同时,所述控制单元10通过通信模块2不停监听接收BACnet数据包,当接收到新数据包时通过所述解码单元解码判断是否为读属性请求报文(ReadProperty请求报文),从而进一步判断是否有该请求对象的属性,存在则返回读属性响应报文(ReadPropert-ACK报文),否则返回无响应报文。
可见,本发明实施例提供的所述支持B-SS的嵌入式BACnet装置,能够与传感器快速连接构成嵌入式BACnet智能传感器,构成的该嵌入式BACnet智能传感器就相当于一个B设备,能够实时/定时检测数据,然后等待A设备发送一个ReadProperty请求报文给嵌入式BACnet装置,通过嵌入式BACnet装置解码之后,判断存在请求对象的属性时,从而返回一个ReadPropert-ACK报文给A设备。因此,通过本发明实施例提供的所述支持B-SS的嵌入式BACnet装置与传感器快速连接所构成的嵌入式BACnet智能传感器,能够响应ReadProperty请求报文则具备B-SS基本功能(即支持B-SS)。
下面,将结合图2-3详细说明本发明实施例提供的所述支持B-SS的嵌入式BACnet装置如何实现响应ReadProperty请求报文。
在展开这个描述之前,首先我们对ReadProperty请求报文的结构进行分析。BACnet标准的读属性请求服务数据结构为:
ReadProperty::=SEQUENCE{
objectIdentifier[0]BACnetObjectIdentfier,
propertyIdentifier[1]BACnetPropertyIdentifier
propertyArrayIndex[2]Unsigned OPTIONAL
--used only with array datatype
--if omitted with an array the entire array is referenced
}[4]
从这个读属性请求服务的数据结构当中可以看出,所包含的报文必须包含对象标识符(BACnetObjectIdentifier)以及对象的一个属性(BACnetPropertyIdentifier),而propertyArrayIndex是可选的。
另外,因为BACnet在处理数据的时候不是跟字符串打交道,而是用二进制表示的一个个字节打交道。所以还需要分析一下BACnet协议当中ReadProperty属性的底层数据是怎么样的。
利用VTS(Visual Test Shell)这个软件,可以发送一个Analog Input 1的读取Present-Value属性服务请求。接收到的比特串数据为:
“0x C0 A8 2B E0 BA C0 81 0A 00 11 01 04 00 03 93 0C 0C 00 0 00 01 1955”。
收到的数据总共有23个字节。下面先用一张表格简单分析一下数据各个部分的作用,如表2-3所示:
表2-3
Figure BDA0003452699300000101
从表2-3当中可以看出来,与ReadProperty相关的报文只有17个字节,即除去IP头部的6个字节,剩余的17个字节都是描述ReadProperty请求的信息。并且,只有后面的与服务相关的数据部分是可变的,是可以让用户任意修改的。而其他的部分,如APCI、NPCI等等,只能按照BACnet规定的标准去定义。同时,也可以得出BACnet在网络上传输的物理帧生成的过程如图4所示。
Figure BDA0003452699300000111
下面详细剖析BACnet的ReadProperty请求报文信息,其中,对于IP头部、BVLLPCI、NPCI以及APCI在此省略描述,重点剖析与服务相关的数据1:0x0C 00 00 00 01 19 55。VTS解析内容如下:
首先数据开头都是一个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。
然后看下文,这一个BACnet标记(标记(0x19)的Class=1,属于上下文标记,上下文编号为1(Tag Number=1),Length/Value/Type为1,即长度为1个字节,所以后面的一个字节就表示了它的内容,而后面字节的内容是85,这是一个enum类型的数据,表示Present-Vlaue这个属性。
综上所述,ReadProperty请求报文的结构就是:BVLLPCI+NPCI+APCI+与ReadPeoperty服务相关的数据。
深入了解BACnet的ReadProperty请求报文结构之后,那么,现在我们详细描述例如利用本发明实施例提供的解码单元14和编码单元15进行ReadProperty请求报文的识别和响应。
参见附图2-3,分别为本发明实施例所述解码单元14的结构示意图和本发明实施例所述编码单元15的结构示意图。
在本实施例中,所述解码单元14包括:
BACnet报文判断单元141,用于判断所述通信接口接收到的数据包是否BACnet/IP报文;
读属性请求报文判断单元142,用于当所述通信接口接收到的数据包为BACnet/IP报文时,判断所述BACnet/IP报文是否为读属性请求报文;
请求对象判断单元143,用于当所述BACnet/IP报文为读属性请求报文时,判断所述存储单元中是否存在所述读属性请求报文请求读取的对象;
请求对象属性判断单元144,用于当所述存储单元中存在所述读属性请求报文请求读取的对象时,判断请求属性是否为读取当前值。
在本实施例中,所述BACnet报文判断单元141判断所述通信接口13接收到的数据报文的类型是否为BACnet/IP报文具体包括:
判断BVLLPCI部分的前两个字节是否为0x 81 0A,如果是,则判定所述数据报文的类型为BACnet/IP报文。
在本实施例中,所述读属性请求报文判断单元142通过判断APCI描述的服务类型是否为读属性请求(具体地,通过判断数据报文中的第6字节和第9字节是否分别为0x00和0x0C)确定所述BACnet/IP报文是否为读属性请求报文。
其中,所述请求对象判断单元143通过所述读属性请求报文请求读取的对象标识符(Object_Identifier)判断所述存储单元12中存在所述读属性请求报文请求读取的对象。所述请求对象属性判断单元144通过所述读属性请求报文请求读取的对象属性标识符(Property Identifier)判断请求属性是否为读取当前值。
继续参考图2,在本实施例中,所述解码单元14还进一步包括invokeID提取单元145和实例序号提取单元146,其中:
invokeID提取单元145,用于当所述读属性请求报文判断单元142判断所述BACnet/IP报文为读属性请求报文时,提取所述读属性请求报文的invokeID;
实例序号提取单元146,用于当所述请求对象属性判断单元144判断所述请求属性为读取当前值时,提取所述读属性请求报文请求读取的对象标识符的实例序号(instance);
其中,提取的所述invokeID和所述对象标识符的实例序号(instance)还用于通过所述编码单元15进行编码以生成所述BACnet数据包。
可以理解的,在本实施例中提供的所述解码单元14中,也可以定义一个专门来判断接收到的数据是否为读属性请求服务的函数:
bool find_ReadProperty(unsigned char*apdu,unsigned int instance,unsigned char invokeID);
这个函数的功能是判断接收到的数据信息是否是读属性服务请求的数据,如果是读属性服务请求,并且是读取Present-Value(当前值)的请求,那么就把请求对象的实例序号赋值给instance,并保存invokeID,函数返回true。如果不是,函数返回false。
在本实施例中,所述编码单元15包括:
读属性响应报文编码单元151,用于将请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行BACnet标记和编码;
头部添加单元152,用于对完成BACnet标记和编码的数据依次添加应用层PCI、网络层PCI和虚拟链路层的PCI,生成BACnet数据包;其中,所述应用层PCI的invokeID为所述读属性请求报文中的invokeID,所述网络层PCI为所述读属性请求报文中的网络层PCI。
具体地,本实施例所述BACnet数据包包含所述读属性服务请求报文的invokeID、所述读属性服务请求报文请求读取的对象标识符的实例序号以及请求读取的对象的当前值。其中,所述请求读取的对象的当前值即为传感器的检测数值。
可以理解的,当本发明实施例提供的支持B-SS的嵌入式BACnet装置接收到其他设备(A设备)的读属性请求服务时,要做的就是将所连接的传感器检测的对应数值发送给请求的其他设备(A设备)。根据上述的BACnet标准的读属性请求服务数据结构可知,所述支持B-SS的嵌入式BACnet装置要发送3个参数给其他设备(A设备),分别是对象标识符(objectIdentifier)、对象属性标识符(propertyIdentifier)和对应属性的当前值(PropertyValue)。
在本实施例中,所述读属性响应报文编码单元151通过如下步骤对请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行BACnet标记和编码:
(1)对对象标识符进行编码:先生成一个BACnet标记,即分别对Class、Tag Number和Length/Value/Type进行赋值,例如,Class=1,Tag Number=0,Length/Value/Type=4,实例序号(instance)的值为0x00000001;
(2)对对象属性的标识符进行编码:先生成一个BACnet标记,即分别对Class、TagNumber和Length/Value/Type进行赋值,例如,Class=1,Tag Number=1,Length/Value/Type=1,紧跟BACnet标记的字节的值为0x55(表示对象属性标识符的内容);
(3)对对象属性的当前值进行编码:
开始标记,分别对Class、Tag Number和Length/Value/Type进行赋值,例如,Class=1,Tag Number=3,Length/Value/Type=‘B110’,生成的BACnet标记值为0x3E;
构造元素编码,分别对Class、Tag Number和Length/Value/Type进行赋值,例如,Class=0,Tag Number=4,Length/Value/Type=4,生成BACnet标记的值为0x44;
结束标记,分别对Class、Tag Number和Length/Value/Type进行赋值,例如,Class=1,Tag Number=3,Length/Value/Type=‘B111’,生成的BACnet标记为0x3F。
完成到这里,就已经完成了ReadProperty-ACK数据部分的编码了。然后,通过所述头部添加单元152对ReadProperty-ACK数据部分依次添加APCI、NPCI和BVLCI,从而得到一条完整的ReadProperty-ACK BVLL报文。
可以理解的,在本实施例中提供的所述编码单元15中,也可以定义一个ReadProperty-ACK的编码函数:
void ReadPropertyACK_encode(unsigned char*send_data,int instance,unsigned char invokeID)
其中,instance和invokeID都是在解码ReadProperty请求报文中提取出来的值。
可见,本实施例提供的支持B-SS的嵌入式BACnet装置能够快速与传感器连接以将传感器检测的数据转换为BACnet数据,以便于与其他支持BACnet协议的设备进行数据传输,方便灵活,节约资源。
参考图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所创建的相应的对象的当前值中。
可以理解,本实施例的其他单元的结构和功能可以参考第一实施例的对应单元的结构和功能,在此不再赘述。
下面,以DHT11温湿度传感器作为数据采集的传感器,ESP8266WIFI模块作为通信模块,对上述实施例所述支持B-SS的嵌入式BACnet装置的工作流程进行说明:
DHT11温湿度传感器与所述支持B-SS的嵌入式BACnet装置的主控模块1的传感器接口11连结,ESP8266WIFI模块通过无线网络与客户端连结。
所述主控模块1的主控单元10通过所述传感器接口11实时/定时控制并获取所述DHT11温湿度传感器检测到的温湿度,并将获取的温湿度数据(若为模拟信号,则需要经过数据转换单元转换为数字信号)更新至所述存储单元12预先创建的相应对象(AnalogInput 0和Analog Input 1)的当前值(Present_Value)中。
所述ESP8266WIFI模块通过无线网络接收到客户端的数据报文并通过通信接口13传输至所述主控模块1,所述主控模块1的控制单元10通过所述解码单元14对通信接口13接收到的数据报文进行解码以判断所接收的数据报文是否为读属性请求报文;当所述数据报文为读属性请求报文,则提取所述数据报文的invokeID存储到自定义的变量当中,并判断所述存储单元12中是否存在与所述读属性请求报文对应的请求对象;当所述存储单元12中存在与所述读属性请求报文对应的请求对象时,判断所述请求对象的属性是否为读取当前值;当所述请求对象的属性为读取当前值时,则提取所述读属性请求报文的请求对象的对象标识符的实例序号,并基于所述读属性请求报文对请求对象的对象标识符、对象属性标识符和对象属性的当前值进行编码,生成BACnet数据包;当所述存储单元12中存在与所述读属性请求报文对应的请求对象时,则将生成的BACnet数据包作为读属性响应报文返回客户端,否则,向客户端返回无响应报文。其中,所述BACnet数据包包含所述读属性请求报文的invokeID、所述读属性请求报文的请求对象的对象标识符的实例序号以及请求对象的当前值。
下面,以DHT11传感器作为传感器,ESP8266 WIFI模块作为通信模块为例,对上述实施例所述支持B-SS的嵌入式BACnet装置的功能(能够响应读属性请求报文)进行验证:
首先,在客户端ADVIEW(集成了BACnet通信协议的组态软件)创建一个工程,在工程栏目的画面选项中新建一个画面,创建两个文本value来显示温度和湿度,创建的画面如图7所示,当工程接收到DHT11传感器的温度和湿度检测数据时,两个文本value则会替换为对应的温度和湿度值。
参见图8,为本实施例与DHT11传感器连接的支持B-SS的嵌入式BACnet装置与工程的通讯连接图。
如图8所示,DHT11传感器支持B-SS的嵌入式BACnet装置的主控模块连接,客户端通过ESP8266 WIFI模块与支持B-SS的嵌入式BACnet装置的主控模块无线连接;此外,为了监控主控模块的程序运行状态以方便调试开发与试验,将主控模块通过串口调试助手与笔记本电脑连接。
其中,所述DHT11传感器的量程范围为:温度0~50℃,湿度20~90%RH;所述DHT11传感器精度范围是温度±2℃,湿度±5%RH。
在客户端的工程中输入支持B-SS的嵌入式BACnet装置的IP地址以及端口号并进行编译运行,客户端的工程每间隔预设时间就会向支持B-SS的嵌入式BACnet装置发送读属性请求,在客户端工程的画面上显示读取到的温湿度值,如图9所示。当把DHT11传感器转移到笔记本电脑的散热出风口处,工程的画面上显示的温湿度值如图10所示,可见DHT11传感器检测到的温度上升,湿度下降,符合实际预期。可见,本实施例所述支持B-SS的嵌入式BACnet装置可与一般的温湿度传感器连接以实现温湿度的实时监控,符合BACnet系统的要求。
参见图11,为本发明第三实施例提供的一种嵌入式BACnet智能传感器的结构示意图。
在本实施例中,所述嵌入式BACnet智能传感器包括传感器3以及上述任一实施例所述的支持B-SS的嵌入式BACnet装置,所述传感器3与所述支持B-SS的嵌入式BACnet装置的传感器接口11可实现快速连接。优选的,所述传感器3与所述支持B-SS的嵌入式BACnet装置的传感器接口11为可拆卸插接。
本实施例通过支持B-SS的嵌入式BACnet装置与传感器连接快速构建嵌入式BACnet智能传感器,能够接入BACnet网络中直接以Bacnet数据包的方式与其它Bacnet设备进行通信,从而能够构成一个纯BACnet系统,并且避免资源浪费。
本发明另一实施例提供了一种BACnet楼宇自控系统。在所述BACnet楼宇自控系统中,作为底层设备的传感器采用如上任一实施例所述的嵌入式BACnet智能传感器,所述嵌入式BACnet智能传感器连接至通信网络中以与其他BACnet设备进行通信,该通信网络包括有线网络、无线网络、BACnet网络、802.11X网络或以太网络。
可见,本实施例提供的BACnet楼宇自控系统中,由于作为底层设备的传感器通过连接支持B-SS的嵌入式BACnet装置后构成的嵌入式BACnet智能传感器,能够直接连接至BACnet网络中以与其他BACnet设备进行通信。本发明提供的技术方案是从底层设备着手解决通信问题,传感器连接该支持B-SS的嵌入式BACnet装置以后(或者说该支持B-SS的嵌入式BACnet装置嵌入到传感器中),则意味着原有的传统集散控制系统DCS已转化为基于现场总线的全分散的控制系统FCS(Fieldbus Control System,现场总线控制系统),从而能够构建一个纯Bacnet系统。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种支持B-SS的嵌入式BACnet装置,其特征在于,所述嵌入式BACnet装置包括主控模块和通信模块,所述主控模块包括控制单元以及分别与所述控制单元连接的传感器接口、存储单元、通信接口、解码单元和编码单元;
所述传感器接口用于与传感器连接,所述控制单元通过所述传感器接口实时获取所述传感器的检测数据并更新到所述存储单元所创建的相应的对象的当前值中;
所述通信接口用于与所述通信模块连接进行数据传输,所述控制单元通过所述解码单元对所述通信接口接收到的数据包进行解码;
当所述解码单元判断所述数据包为读属性请求报文且请求读取所述对象的当前值时,所述控制单元通过所述编码单元对所述对象的当前值进行编码生成BACnet数据包,并将所述BACnet数据包作为读属性响应报文通过所述通信接口输出以返回。
2.根据权利要求1所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述解码单元包括:
BACnet报文判断单元,用于判断所述通信接口接收到的数据包是否BACnet/IP报文;
读属性请求报文判断单元,用于当所述通信接口接收到的数据包为BACnet/IP报文时,判断所述BACnet/IP报文是否为读属性请求报文;
请求对象判断单元,用于当所述BACnet/IP报文为读属性请求报文时,判断所述存储单元中是否存在所述读属性请求报文请求读取的对象;
请求对象属性判断单元,用于当所述存储单元中存在所述读属性请求报文请求读取的对象时,判断请求属性是否为读取当前值。
3.根据权利要求2所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述请求对象判断单元通过所述读属性请求报文请求读取的对象标识符判断所述存储单元中存在所述读属性请求报文请求读取的对象;所述请求对象属性判断单元通过所述读属性请求报文请求读取的对象属性标识符判断请求属性是否为读取当前值。
4.根据权利要求3所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述解码单元还包括:
invokeID提取单元,用于当所述BACnet/IP报文为读属性请求报文时,提取所述读属性请求报文的invokeID;
实例序号提取单元,用于当所述请求属性为读取当前值时,提取所述读属性请求报文请求读取的对象标识符的实例序号;
其中,提取的所述invokeID和所述对象标识符的实例序号还用于通过所述编码单元进行编码以生成所述BACnet数据包。
5.根据权利要求4所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述编码单元包括:
读属性响应报文编码单元,用于将请求读取的对象标识符、对象属性标识符以及所述对象的当前值进行BACnet标记和编码;
头部添加单元,用于对完成BACnet标记和编码的数据依次添加应用层PCI、网络层PCI和虚拟链路层的PCI,生成BACnet数据包;其中,所述应用层PCI的invokeID为所述读属性请求报文中的invokeID,所述网络层PCI为所述读属性请求报文中的网络层PCI。
6.根据权利要求2所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述主控模块还包括与所述控制单元连接的数据转换单元;
当所述传感器接口接收的传感器的检测数据为模拟信号时,所述控制单元通过所述数据转换单元将模拟信号的检测数据转换成数字信号的检测数据后再更新到所述存储单元所创建的相应的对象的当前值中。
7.根据权利要求1所述的支持B-SS的嵌入式BACnet装置,其特征在于,所述通信模块与所述主控模块的通信接口为一体式连接或可拆卸插接;所述通信模块为以太网模块或WIFI模块。
8.一种嵌入式BACnet智能传感器,其特征在于,所述嵌入式BACnet智能传感器包括传感器以及如权利要求1至7任一项所述的支持B-SS的嵌入式BACnet装置,所述传感器与所述支持B-SS的嵌入式BACnet装置的传感器接口可实现快速连接。
9.根据权利要求8所述的嵌入式BACnet智能传感器,其特征在于,所述传感器与所述支持B-SS的嵌入式BACnet装置的传感器接口为可拆卸插接。
10.一种BACnet楼宇自控系统,其特征在于,作为底层设备的传感器采用如权利要求9所述的嵌入式BACnet智能传感器,所述嵌入式BACnet智能传感器连接至通信网络中以与其他BACnet设备进行通信,所述通信网络包括有线网络、无线网络、BACnet网络、802.11X网络或以太网络。
CN202111677710.4A 2021-12-31 2021-12-31 支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统 Active CN114374574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111677710.4A CN114374574B (zh) 2021-12-31 2021-12-31 支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111677710.4A CN114374574B (zh) 2021-12-31 2021-12-31 支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统

Publications (2)

Publication Number Publication Date
CN114374574A true CN114374574A (zh) 2022-04-19
CN114374574B CN114374574B (zh) 2024-01-23

Family

ID=81142111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111677710.4A Active CN114374574B (zh) 2021-12-31 2021-12-31 支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统

Country Status (1)

Country Link
CN (1) CN114374574B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621854A (zh) * 2009-07-29 2010-01-06 山东建筑大学 基于无线传感器网络的智能居住环境集成系统
CN201589978U (zh) * 2010-01-29 2010-09-22 许勇 基于BACnet现场总线的机房集中监控设备
CN102438017A (zh) * 2011-12-14 2012-05-02 北京联合大学生物化学工程学院 基于路由功能的Modbus和BACnet Ethernet协议转化装置及转化方法
CN104267651A (zh) * 2014-10-27 2015-01-07 上海龙创节能系统股份有限公司 基于总线通讯的数字量输入输出模块
US20150229654A1 (en) * 2014-02-10 2015-08-13 Stmicroelectronics International N.V. Secured transactions in internet of things embedded systems networks
CN206517433U (zh) * 2017-02-10 2017-09-22 广东工业大学 一种BACnet/IP‑DALI网关
CN108092959A (zh) * 2017-12-05 2018-05-29 武汉虹信技术服务有限责任公司 一种基于配置的BACnet协议解析方法
CN109417497A (zh) * 2016-04-12 2019-03-01 江森自控科技公司 用于hvac装置的网络集成的装置和方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621854A (zh) * 2009-07-29 2010-01-06 山东建筑大学 基于无线传感器网络的智能居住环境集成系统
CN201589978U (zh) * 2010-01-29 2010-09-22 许勇 基于BACnet现场总线的机房集中监控设备
CN102438017A (zh) * 2011-12-14 2012-05-02 北京联合大学生物化学工程学院 基于路由功能的Modbus和BACnet Ethernet协议转化装置及转化方法
US20150229654A1 (en) * 2014-02-10 2015-08-13 Stmicroelectronics International N.V. Secured transactions in internet of things embedded systems networks
CN104267651A (zh) * 2014-10-27 2015-01-07 上海龙创节能系统股份有限公司 基于总线通讯的数字量输入输出模块
CN109417497A (zh) * 2016-04-12 2019-03-01 江森自控科技公司 用于hvac装置的网络集成的装置和方法
CN206517433U (zh) * 2017-02-10 2017-09-22 广东工业大学 一种BACnet/IP‑DALI网关
CN108092959A (zh) * 2017-12-05 2018-05-29 武汉虹信技术服务有限责任公司 一种基于配置的BACnet协议解析方法

Also Published As

Publication number Publication date
CN114374574B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US20060067209A1 (en) Universal configurable device gateway
CN104656514A (zh) 一种智能型数据采集系统
CN103957198B (zh) 一种传感数据接收转换方法及系统
CN110891005A (zh) Iot设备的控制方法、云服务器及iot设备控制系统
CN110417734A (zh) 远程设备数据采集方法、装置和系统
CN106027357A (zh) 物联网关及物联平台接纳家居设备的方法和物联网系统
TWI474180B (zh) 偵測遠端序列埠設備之系統及其方法
CN104796240A (zh) 一种有状态网络协议的模糊测试系统
CN112436603B (zh) 一种基于台区智能融合终端的端设备采集配置方法及装置
CN102983885A (zh) 用于增强蓝牙设备名称可读性的系统及方法
EP4080375A1 (en) Pcie-based data transmission method and device
CN114374574B (zh) 支持B-SS的嵌入式BACnet装置、传感器及楼宇自控系统
Nieves et al. A UPnP service to control and manage IEEE 1451 transducers in control networks
CN116032691B (zh) 靶场互联互通方法、电子设备及可读存储介质
US10917263B1 (en) Universal configurable device gateway
CN114363423B (zh) 支持B-SA的嵌入式BACnet装置、执行器及楼宇自控系统
CN101026597A (zh) 一种家庭网关
CN112527453B (zh) 虚拟化信息仿真系统、方法及计算机可读存储介质
CN108391245A (zh) 即插即用型无线传感器网络节点
CN115695090A (zh) 数据传输方法、物联网网关设备及计算机可读存储介质
CN108055319A (zh) 一种远程控制物联网接入设备的系统及方法
CN108076094B (zh) 字典协议终端设备
CN109922096B (zh) 多个传感器通用接口的通信系统
TWM611092U (zh) 控制物聯網終端設備的處理系統與應用於物聯網中的閘道器
CN115834726B (zh) 协议转换方法、数据传输方法、装置、网关及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant