我们保持了BACnet对象模型中描述系统状态的对象类型,同时在两个方面扩展了BACnet对象模型:增加对象结构和赋予对象行为。对象结构是智能家居内受控设备连接和控制关系在java对象模型中的体现,比如一个直接数字控制器(DDC)有多个数据点,每一个数据点对象代表着一个实际的家庭设备,这种结构表现为对象的继承和连接关系。对象行为维护对象自身的状态等功能,比如在对和行“灯”象中添加打开”“关闭”“为。用户对这些对象的操作通过向对象发消息来完成。另一方面,为了在web页面上向用户展示家庭内部的状况,必须要以一种更贴近用户的视角描述智能家居系统。我们在java对象模型添加了一些在BAC-net协议中没有定义的对象,比如描述家庭内部位置信息的房间对象(Room)。由于要在数据库中保存智能家居BACnet对象的状态,就需要实现对象的持久化存储。在控制模块中,从数据库中取出BACnet对象属性值形成模型(java对象)和根据模型的改变更新数据库需要大量的数据库操作,如果通过JDBC完成,则编程工作十分复杂,容易出错,不易维护。基于以上考虑,我们在控制模块中使用Hibernate构架实现ORM。ORM是为了解决在面向对象的应用程序中使用关系数据库存储持久化对象而提出的技术。许多应用系统采用面向对象的技术进行开发,而作为数据源的数据库多是关系数据库,这就出现了面向对象系统从关系数据库中存取数据的困难。ORM提供了一种较理想的解决办法:区分持久和非持久对象,支持持久对象的存取,提供一套面向对象的
查询语言。Hibernate正是基于java的ORM的实现,具有轻便、活、效的特灵高点,是一个非常优秀的开源的javaORM架构。
3远程控制系统架构实现
3.1控制模块的MVC实现控制接口模块采用struts框架实现MVC设计。MVC的主要思想是将应用
程序分为三个部分:模型视(Model)、图(View)和控制器(Controller),以提高应用程序的可扩展性。Struts为
JavaWeb应用提供了现成的通用框架,可以大大提高Web应用的开发速度。图2显示了Struts的一个概览。
技术创新
3.3接口模块的实现接口模块采用c语言编写,部署在智能家居网络
中的嵌入式设备上。接口模块的主要完成两个功能:操作数据库和与控制模块
通信。接口模块通过网络访问安装在服务器上的数据库,由于要完成大量的数据库操作,接口模块使用了连接池技术。为了减少控制模块和接口模块之间的通信,我们定义了简单的通告/回复报文,通告报文由控制模块发起,接口模块收到报文并解析后,根据报文完成相应任务并向控制模块
图2
Struts框架结构
发出回复报文。
控制软件提供不同功能,
每种功能通过一个Action
的子类完成。将配置信息写入配置文件struts-config.
xml中,控制器会将用户命令和相关参数转发给不同的Action子类去完成。模型由javabean承担,一个javabean对应一种BACnet对象。视图由jsp完成,向
《PLC技术应用200例》
4总结
本文作者的创新点在于提出了一种基于数据库的多模块控制软件架构设计,很好的解决了智能家居系统的控制
问题,为类似的系统控制软件设计提供一
邮局订阅号:82-946360元/年
-101-
您的论文得到两院院士关注
嵌入式功能模块应用
种有益的参考。在设计下,各个不同的模块可以分离的部署,有效地减轻了对硬件的压力,这一点在BAC-
Liu,Song
通讯地址:(430074武汉市华中科技大学主校区东10舍414室)马培粤
(收稿日期:2005.12.14)(修稿日期:2006.1.14)
net智能家居系统这类嵌入式开发中显的