首页 > 范文大全 > 正文

智能楼宇远程控制系统中上位机软件的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇智能楼宇远程控制系统中上位机软件的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要 设计了基于C/S网络架构的智能楼宇远程控制系统。软件设计分为两大部分:一是客户端界面设计;二是系统服务器端的设计。其中客户端部分采用select网络模型,服务器端采用的是IOCP网络模型。同时该系统还利用ADO技术将SQL数据库和服务器端进行绑定处理,使得数据得到了有效的处理和转存,减少了代码的重复度,节约了内存空间。

关键词 远程控制;Select模型;完成端口模型;ADO技术

中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2013)19-0017-02

当今社会随着科学技术的不断发展,人们对物质生活水平的要求也越来越高。楼宇设备智能化、网络化逐步被越来越多的人所关注。除此之外,像商场、商务楼以及各大公司,随着配套的设施不断增加,楼宇照明智能化、网络化已迫不及待的需要来到我们的现实生活中。

目前情况下楼宇监控照明系统主要采用有线和无线的方式来进行数据传输。由于楼道内部设施繁多,有较强的阻挡因素,所以无线通信在运行的过程中会经常出现数据丢失,系统中断等不良结果。故本文将采用电力线载波有线通信方式来实现终端楼层设备的数据交换和传输,最终实现对楼宇的总体设施的集中控制。

1 系统总体架构

楼宇控制系统是一个集分布与网络一体的监控系统,其特点灵活,整体化便于操纵。它主要由以下几个部分组成:远程监控端、服务器、主控器以及终端节点,其中上位机的远程监控客户端与服务器采用C/S模式的网络架构体系。其中远程监控客户端通过提供良好的人机界面与服务器之间进行有效的数据传输,服务器端软件的主要作用是充当客户端和远程终端的数据传输中转站,当客户端发起命令请求首先由服务器进行解析,然后再将数据转发至各个终端,同时将终端返回的数据交由客户端来处理,终端控制模块为电力线载波无线通信模块。

总体结构图如图1所示,远程监控客户端与服务器之间通过Internet进行相互间的数据传输,服务器与主控制器之间通过RS485总线进行传输数据。首先客户端发起命令请求至服务器,然后服务器再将数据处理后转发至各个终端节点,终端节点将对应的响应各个命令,并将结果返回至客户端。从而完成整个系统间通信流程。

2 系统中客户端软件的设计

该系统中客户端的主要作用之一是将用户所要执行的指令通过Internet发送给服务器端,服务器接收到客户端的指令后会进行相对应的操作,然后再将该命令传送至楼宇终端设备,已达到用户控制的目的;客户端另外一个作用是当终端需要将相应的信息进行回传时,首先将数据传送至服务器,然后经服务器再回传至客户端界面,以告知用户当前系统终端的工作状态。

2.1 SELECT模型实现

该系统是基于TCP的网络编程通信协议,客户端与服务器之间的接口协议是自定义的,以方便后期的扩展和维护,鉴于以上两种协议最终实现并完成系统的数据传送的要求。客户端同服务器之间采用单一的通信模式,即只是通过单个线程来完成通信和传输数据的要求,而客户端之间是不需要通信,这里就降低了客户端通信的要求,所以在这里我选用了select套接字I/O模型来满足客户端通信的需求。

select模型是一个广泛在Winsock中使用的I/O网络模型。它是通过使用select函数来进行I/O数据的管理。这个模式设计是基于UNIX操作系统,最终目的是能够通过在单一线程下创建多个套接字来进行网络通信,避免阻塞模式下,一个线程只能对应一个Socket的弊端。从而避免了线程在阻塞模式下的膨胀问题。

2.2 客户端界面的设计

系统界面设计部分是基于Microsoft Visual Studio 2008的环境来完成的。系统UI设计部分采用MFC技术,以基于对话框编程为基础,最终实现界面的设计。同VC6.0相比增加了更多的函数库以方便用户的调用。系统界面如图2所示。

该界面分为5块:

1)管理终端显示,用户可以随时查询各个终端的当前的工作状态。

2)管理终端地址,用户可以通过不同楼层或者同一层的不同设备的地址而对系统中各个设备进行相应的控制。

3)管理系统用户,系统用户管理分为管理员和普通用户,二者分别将给与不同的权限,可以实现自由添加、删除、修改用户的功能。

4)管理系统策略,根据不同楼层的用户实际情况进行制定出不同的策略,让用户最大程度的感受到系统的智能和便捷性。

5)系统安全,楼道内将设置防火、防盗等报警功能。

3 系统中服务器端软件的设计

该部分软件设计的难点在于服务器端要能够实现与多个客户端进行网络通信,同时还要和多个终端进行网络通信,这样就加大了该部分软件的设计难度。在这里我选用了IOCP模型作为通信的基础。

IOCP是伸缩性最好的一种I/O模型,它非常适合于处理上百甚至上千个套接字。当多个套接字被应用程序一次性管理时,IOCP将为其提供最好的传输性能。IOCP常被应用于代码的线程池中,以便用来处理异步I/O请求机制。当处理多个基于并发机制的异步I/O请求时,使用I/O完成端口创建线程更快更有效。系统服务器整体架构如图3所示,大体上可分为以下的几个设计步骤。

1)服务器与客户端之间通信以及服务器与控制终端电力线载波模块之间的网络通信可以通过完成端口技术实现。

2)数据传输是基于TCP协议的,并且附加上自定义的接口协议。

3)系统内部信息交互是通过先进先出的队列技术来实现的。

4)SQL数据库的读写操作是通过ADO技术来实现的。

IOCP模型的实现:

通信主体采用多线程机制,分管各个不同的客户端,首先创建IOCP,然后创建其监听线程,在监听阶段实现IOCP与Sockets关联。并通过服务线程来最终完成端口的操作结果。IOCP网络模块通信的主体流程如图4。

服务器中为不同客户端提供不同的服务线程,服务线程始终处于死循环中,可以由传输的字节个数来判断要不要将关闭后的客户端删除,进而实现数据的发送和接收。

4 总结

智能楼宇远程控制系统中上位机软件的设计用到了windows下的网络编程、SQL数据库编程以及多线程同步处理等要求。同时根据应用系统通信的具体需求,对客户端和服务器端分别采用了不同的网络通信端口模型,客户端采用的是Select模型而服务器端则采用的是IOCP模型。界面设计主要采用基于MFC的对话框编程技术,数据库访问方面通过ADO技术来实现对SQL Server 2008数据库数据的自动读写能力。代码编程中重点在于如何实现系统的稳定性、多负载性,以及可扩充性。后期通过对该系统的不断完善和改进现已经能够实现各个模块之间的通信目标。

参考文献

[1]潘龙.智能照明系统节能分析及设计[J].建筑节能,2011(06).

[2]张鹏,钱泽文.住宅小区智能照明系统的设计[A].2011年亚太智能电网与信息工程学术会议论文集[C].2011.

[3]王艳平,张越.Windows网络与通信程序设计[M].上海:人民邮电出版社,2006:67-99.

[4]邹平吉.基于Web的远程控制系统设计[M].北京工业大学:软件工程,2009.

[5]Jeffrey Richter(美),Christophe Nasarre(法)著.Windows核心编程[M].葛子昂,周靖,廖敏,译.北京:清华大学出版社,2008.

[6]侯其锋,李晓华,李莎编著.Visual C++数据库通用模块开发与系统移植[M].北京:清华大学出版社,2007.

[7]杜翔雷,跃明.基于IOCP的服务器端应用程序[J].计算机系统应用,2009(02):151-154.

[8]吴永明,何迪.基于完成端口的服务器底层通信模块设计[J].信息技术,2007(03):115-118.

[9]程松涛,刘欣欣.基于IOCP服务器模型设计与实现[J].电脑编程技巧与维护,2012(08).

[10]严蔚敏,无味民.数据结构(c语言版)[M].北京:清华大学出版社,2009.

[11]启明工作室.Visual C++ +SQL Server数据库应用系统开发与实例[M].北京:人民邮电出版社,2004:109-137.

[12]徐枫,马国之,刘良旭.基于ADO技术的数据库访问研究与实现[J].计算机工程与设计,2004,25(1):107-110.

作者简介

柏成祥(1987-)男,安徽宿州人,研究方向:新型电子器件与应用。

楼平(1973-),女,浙江义乌人,副教授,硕士,研究方向:信号检测技术,电源驱动技术。