面向对象设计在楼宇的控制系统中的应用.docVIP

面向对象设计在楼宇的控制系统中的应用.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象设计在楼宇的控制系统中的应用

面向对象设计在楼宇控制系统中的应用 object-oriented design in building automation application在控制系统中事件的产生是没有规律的,某一时刻可能会同时出现多个消息。而哪个消息应首先得到处理、哪个最后处理就需要控制系统对消息进行管理。消息管理通常采用队列方式即按消息产生的时间序列来排队,先来的先处理后来的后处理。若消息产生的时间恰好相同,则按消息的等级即设备、时间、数据通讯的顺序来排列。设备消息对应的是实际现场设备,消息的产生说明现场设备出现了变化,因此控制系统应首先作出响应。  一个对象可能对多个触发消息响应,而每个消息必然需要一个成员函数对它响应,这种成员函数即所谓的”方法”。将系统事件映射到对象时所使用的手段称为”消息表”。面向对象控制语言出于简便的原则将消息映射和对应的方法按照统一的格式来书写。在消息表中预定义了系统事件所映射到的方法,当消息触发该对象后寻找对应这个消息的方法名称,并据此执行相应的方法。  控制语言中一个完整的对象应包括对象名称、消息表、对象变量声明和数据交换表和对象的实体。对象变量声明和数据交换表将系统内的变量声明并与外界设备数据进行交换。当消息触发对象时,表中的系统设备状态和数据均映射到相应的变量上。对象的整体构造为:  对象名称:  消息表:  方法名称1(触发条件1)  …  方法名称k(触发条件k)  对象变量声明和数据交换表:  变量类型 变量1=系统设备1  …  变量类型 变量n=系统设备n  对象的实体:  方法名称1  方法的源代码1  方法名称2:  方法的源代码  …  结束  为了简单地说明对象在楼宇控制系统中的实际应用,以最常用的pid算法为例来构成一个pid对象。图1所示为pid算法调节 调节执行器v使受控对象的温度t达到温度设定值tset。对于这个调节算法,一个简单的对象就可以将其概括。                            图1 pid系统调节系统  离散pid算法是周期性运算,因此它的触发消息为时间周期。pid算法与外界存在3个数据的交换,它们是温度设定值、温度测量值和执行器。完成一个pid对象只需规定时间周期,同时将映射到这3个数据的对象内部变量与实际设备相对应。这是一个非常简单的过程,一个不精通pid算法的人可以熟练地操作pid算法。简单的pid算法只是一个例子,而对象的实际应用在复杂的算法上。通常工程人员需要花很多时间去理解复杂的算法,如自适应算法等等。而算法的对象化省去了这些麻烦,节约了工程人员的时间和精力。  由于对象对不同的消息作出不同的响应,因此可以在pid对象中加上对故障的处理等以丰富pid算法的应用。下面例子中对温度超限的信号进行了处理。当温度超限后,对象直接执行故障处理的程序,不再进行pid运算。用户同时可以增加其它的方法来处理不同的情况,从而大大提高了对象的灵活性。  pid算法:  消息表:  pid计算(间隔时间10s)  故障处理(温度超限报警信号)  对象变量声明和数据交换表:  tset=温度设定值  t=温度测量值  v=执行器  对象的实体  pid计算  pid计算源代码  故障处理:  故障处理源代码  结束3 面向对象的协议  在控制系统中仅有属于管理层的面向对象编程语言是不够的,包括现场层的面向对象通讯协议才构成完整的面向对象控制系统。面向对象设计的初衷是将编程过程大大的简化,而传统的面向点的控制系统只会使编程人员的负担增加。例如一个ai和两个do组成的对阀门的控制,其中ai测量阀开门度、两个do分别是阀门电机的正反转,在控制阀门时若ai测量值小于阀门设定值则正转do输出信号开大阀门,反之关小阀门。这些简单的功能在传统的面向点的控制系统中均需要编程人员来编写,增加了系统的设计费用和调试成本。  面向对象的bacnet协议是用来帮助系统中所有设备相互理解的”共同语言”。出于统一楼宇控制协议的目的,ashrae于1995年公布了bacnet协议[4]。bacnet协议定义了包括空调控制系统、消防等楼宇设备控制系统之间的数据通讯协议。它遵循osi开放性网络协议,将数据组合成对象在网络之间传播。同时由于楼宇控制网络是网络,它只保留了物理层、数据链接层、网络层和应用层。它们的构成见图2。                           图2 bacnet的结构    bacnet协议没有在具体规定物理层和数据链接层的形式,它可以建立在多种不同的协议之上。图2所示的第1,2种选择是建立在ieee 802局域网标准上,它将数据链接层又细分为逻辑链路控制子层(llc)和介质存取控制子层(mac),其中逻辑链路控制子层主要提供寻址、排序、差错控制等功能,介质存取控制子层提

您可能关注的文档

文档评论(0)

ayangjiayu3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档