基于面向对象技术的楼宇自控网络协议的实现_第1页
基于面向对象技术的楼宇自控网络协议的实现_第2页
基于面向对象技术的楼宇自控网络协议的实现_第3页
基于面向对象技术的楼宇自控网络协议的实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于面向对象技术的楼宇自控网络协议的实现【摘要】本文通过介绍bacnet标准协议中使用的通信语言三大要素对彖、属性和服务.说明 而向对象技术在bacnet标准屮的具体实现,并采用而向对象的设计思想对bacnet协议的 类库进行开发、设计和类结构的定义。控制系统中的面向对象设计主要分为两部分面向对彖编程和面向对象的协议。协议是 控制系统相互z间通信的棊础在控制系统中仅冇属于管理层的面向对彖编程语言是不够的。 面向对象设计必须由面向对象的协议來完善.只有包括现场层的面向对象通信协议才能构成 完整的而向对象控制系统。bacnet协议是针对楼了ii动化系统设计的,采用了血向对象酌 技术.用“对象

2、9;.“属性”和”服务“等要素定义信息格式,定义了一种具冇属性的对象来 表示任意的楼宇系统设备的功能.从而提供了一种标准的表示楼宇门控设备的方式。一. 可行性研究11面向对象技术面向对象技术屮最重要的就是“对象”的概念,“对象”具有一定的属性和方法。一个 具体的对象可以有许多的丿肉性和方法,面向对象技术的重要特点就是对象的封装性。对丁外 界而言.并不需要知道对彖冇哪些属性,也不需要知道对彖木身的方法是如何实现的,而只 需要调用对象所提供的方法來完成特定的功能。一个而向对象的控制程序山若干相互关联的一组对象组成,并通过对象之闻的相互联 系完成所冇的功能。对象z间的联系方式即是消息、激励机制,消息

3、是用来请求对象执行某 个处理或冋答某些信息的要求。在面向对象系统中,对象z间的联系是通过消息的传递完成 的,对象只有接收到消息之后才能做出响应,而对扌肖息进行响应的是対象中的成员函数,即 所谓的“方法”,方法是实现消息具体功能的手段。1. 2 bacnet 协议通信协议是楼宇自动化系统(bas)的重要组成部分。由于功能不同,不同的设备具冇 不同存储信息的数据结构。为了实现设备间的信息交换,必须定义一种标准的、“网络可见” 的信息描述方式。楼宇自动控制网络数据通信协议(a data communication protocol for building automation and contro

4、l network, bacnet)采用了而向对彖的技术,定义了一组具有 属性的对象(object)来表示任意的楼宇|'|控设备的功能,从而提供了一种标准的表示楼宇自 控设备的方式。bacnet是一个iso国际协议,定义了包括空调控制系统、消防等楼宇设备 控制系统z间的数据通信方式。本协议遵循osi开放性网络协议,将数据组合成对象在网 络之间传播。bacnet协议是一个面向对象的协议。在bacnet应用层,通过定义标准的对象和服务, 对丿应用提供了完整的实现手段,同时又可以使得开发商按照不同的应用进行具体的开发,实 现了异构bacnet设备的互操作性以及良好的可重用性和扩展性。1. 3

5、 bacnet中的面向对象的要素工业界长期使用“点(points)”來表示传感器输入、控制输出或控制值。bacnet采用 了面向对象技术。在bacnet协议中定义了一组标准的对象类型,给出了一种抽象的数据结 构,作为建立bacnet协议中应用层服务的一利框架。大部分应用层服务设计成对这些标准 对象类型的属性进行访问与操作,网络中的每个设备用对象进行描述。因此,对象(object)> 属性(property)和服务(service)构成了 bacnet要素。在bacnet中,対象是在网络设备之间传输的一组数据结构,対象的属性就是数据结 构中的信息。设备可以从数据结构中读取信息,可以向数据结

6、构写入信息,这些就是对对彖 属性的操作。bacnet网络屮的设备z间的通信,就是设备的应用程序将相应的对象数据结 构装入设备的应用层i办议数据单元(apdu)中,按照一定的规范传输给相应的设备。対象数 据结构中携带的信息就是对彖的属性值,接收设备中的应用程序对这些属性进行操作,从而 完成信息通信的目的。bacnet定义了一个“对象”的标准集,任何一个实际控制设备均可由不同的标准对 彖实衡集合来表示。其屮每个对象都有一个“加性”标准集,对彖的属性用于向bacnet互 联网上的其它设备描述该对彖及其当前状态。止是通过这些属性,该对彖才能被其它bacnet 设备操作和控制。不过值得注意的是,bacn

7、et标准对象只是一些与控制信息和寻址信息有关的“属性 (property)n集合,没冇定义对这些属性操作的方法(method)o因此bacnet定义的对象与面 向对彖程序设计语言中定义的对彖是不同的概念,前者相当丁结构化程序设计语言中的数据 结构。在bacnet屮,如果说对象和属性提供了通信的共同语言,那么服务则提供了信息、 传递的手段或方法。通过这些方法,一个bacnet设备可从另一个设备中获取信息,可命令 另一设备执行某动作或向一个或多个设备发布某种事件已发生的通知。每个发出的服务请求 和返回的服务应答都是一个报文分组,该报文分组通过网络从发送端传输到接收端。bacnet 定义了 32种服

8、务,划分为5类:报警和事件、文件访问、对彖访问、远程设备管理和虚拟 终端服务。二、方案设计下面以实现对模拟输入对象当前值属性的查询为例,来实现楼宇自控网络协议。图1 表示一个bacnet读属性服务:bacnet设备图1 bacnet读属性服务示意图在面向対象方法中,功能是通过与对象的通信获得的。对象被定义为一个封装了数据 结构(或属性)和操作的实体。属性是为执行操作而存在于刘彖zm的数据、信息。消息是对 象通信的方式,因而也是获得功能的方式。对象受到发给他的消息示,或者执行一个内部操 作(有时成为方法或过程),或者再去调用其他对象的操作,从而完成一定的功能。同样,一 个客户端的bacnet用户

9、需耍知道bacnet网络中指定ddc中的温度计的当前输入值,并 不需要知道温度值的存储方式,只需发出一份读属性服务请求(read property service),即面 向对象技术中对对象的操作。该服务报文通过网络发送给指定的bacnet设备,该设备通过 解析所接收到的报文,得知该报文为读取其所属的模拟输入对象的当前值属性。此吋温度计 在bacnet网络中不再是传统控制模式下的一个控制点了,而是bacnet设备所属的一个模 拟输入对象。bacnet设备通过访问模拟输入对象的当前值属性,获得此时的室内空气温度 为25.0°c最后,通过封装的报文做出服务应答。当脱离服务为(me时,当前

10、值属性是可写的,从而丰富了控制的内容。所以采用了而 向对象的bacnet协议很容易实现节点闯的对等通信,使系统设计大大简化,可靠性大人提 高。2. 1对象结构的实现模拟输入对象是bacnet标准对象之一,其属性表示一个模拟输入的外部可见一致性 代码,代表-种模拟传感器输入。bacnet协议中对于模拟输入对象类型结构形式描述,见 图2。其中,uobjectidentifierobjectname> objecttype> presentvalueoutof service”分别表示模拟对彖的对彖标识符、对彖名称、对彖类型、当前值、脱离服务等属性, “75”为该属性编号,“bacnet

11、 object identifier"是属性数据类型。根据协议屮有关模拟输入对象的描述,可以生成一个模拟输入对象的实例:空调控制 器小的混合空气温度模拟输入对象。以下是该对象的参数:property: object_identifier=(analog input, instance 1)property: object_name= *hermometer,property: object_type=analoginputproperty: present_value=25property: out一of-scrvicc=false2. 2服务的实现为了从bacnet网络中获取另外设

12、备的信息,需要实现相关服务。在本例中,需要获 取温度计的输入值,因此必须定义读属性服务(readpropertyservice):bool readproperty (unsignedint deviceobjid , bacnetobjectlden 一 tifierobjld , int property id, bacnetreal property value, bacnetu nsigned property array lndex=0);对象标识符与具有全局唯一性质的bacnet设备对彖标识符结合使用,从而就能够提 供一种在整个控制网络中引用每个对彖的机制。因此在读对彖的服务中,需

13、要提供所选择对 象所在设备的bacnet设备对象标识符、对象标识符以及属性标识符,通过这三个参数就能 够在bacnet网络中唯一确定一个属性。deviceobjid> objid、propertyld分别表示bacnet 设备对象标识符、对象标识符以及属性标识符,property value为该服务的返回值。property array index表示属性数组索引,如果属性是一个数据类型的数组,并且存请求屮规定了一 个“属性数组索引”参数,则可以使用这个无符号整型参数;指明被本服务引用的属性的元 素的数组索引。否则,省略这个参数。readpropertyo的返回值类型为bool型,当读取

14、成功 返回true,当读取失败返冋falseo2. 3通信的实现bacnet建立在包含四个层次的简化分层体系结构上,这四层相当干osi模型中的物 理层、数据链路层、网络层和应用层。bacnet标准定义了自己的应用层和简单的网络层, 对于其数据链路层和物理层,捉供了五种选择方案。bacnet协议栈报文的封装实现如下:apdu<>npdu<>数据链路层v>,物理层对于数据链路层和物理层的数据格式可以根据具体的网络类型来分别构造。任何一种 支持用bacnet协议进行数字通信的真实或虚拟的设备都是bacnet设备,每个bacnet设 备必须且只能包含一个“设备对象” (device object),由bacnet网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论