摘要:本文主要介绍了温室远程监测系统的硬件结构和具体的软件实现。给出了以客户机/服务器模式为基础,以温室为监控对象的远程监控软件设计,讨论了用MSComm控件实现数据采集和用Winsock控件实现C/S通信的关键技术。
关键词:远程监控;C/S;温室;数据采集
0引言
目前,我国是设施园艺栽培面积最大的国家,温室设施的关键技术是环境控制,其目的是提高控制作业精度。将计算机网络和通信技术应用于温室监测系统,通过分布于不同地理位置的温室监测仪器现场采集数据,并将现场数据实时地传送给计算机,便于技术人员及时对设备的运行进行监控,并且能够实现关键设备的集中管理和分析,将提高温室操作人员的工作效率,开发这样一套具有特色的温室远程监控系统,无论是经济上还是技术上,都有积极的现实意义。
1 系统硬件结构
系统的总体框图如图1.1所示
1.1数据采集硬件结构
温室参数监测仪是以单片微处理器为核心,可实现对各个监测点温室运行参数的测量与记录主要包括温度、湿度、光照、CO2等参数,实现数据采集功能。并通过I/O接口电路,对执行机构发出控制信号,来调节温室的各参数,其框图如图1.1所示。
考虑到温室终端数量多,分布广的因素,数据采集采用RS-485双层总线结构。集中控制器与仪表间采用RS-485总线结构,集中控制器作为主机,监测仪表作为从机。数据库服务器与集中控制器也是采用RS-485总线结构,数据库服务器作为主机,集中控制器作为从机。由于PC机只带有RS-232接口,集中控制器用的是RS-485接口,两者的通信接口标准形式不同,不能直接连接使用,因此加入一个RS232/485转换器。
1.2C/S结构
温室远程监控系统设计中的问题主要集中在通信结构设计上,考虑到温室远程监控系统中监测仪表的数量较多,通信的数据量较大,如果采用传统的单机控制,同一计算机控制众多下位机,这就要求较高性能的计算机,受到存储容量和CPU速度的限制,所以采用客户机/服务器结构(如图1.3所示)。客户机/服务器结构可以方便地增加客户机或服务器,采用开放系统,能够摆脱对于专门系统的依赖,应用程序便于移植。
图1.3客户/服务器结构
服务器端可由多台不同功能的服务器组成,服务器端可以连上一个区域的温室监测仪。服务器端的主要任务是要实时的接收现场温室监测仪传送的数据,并接受客户端发送过来的请求命令,并将温室监测仪传送过来的数据传送到用户端。其次,出于网络安全的考虑,服务器端还要进行用户的身份鉴定和权限设置,来区分管理专家和普通用户。它能提供网络共享资源和负责网络的安全管理。系统中提供给各个工作站的共享数据都存放在服务器中,存储各种联网数据和定时数据。用于个人操作环境的计算机,提供各类操作的人机界面,并可以根据需要设置专门用途。客户端分普通用户和管理专家,通过不同的密码和权限,浏览各项数据、图形、报表。普通用户只能查看一定的数据,而管理专家不但可以访问服务器,查看温室的实时参数和历史参数,更重要的是能通过网络与网络服务端进行远程控制操作。
2系统软件实现
系统软件实施分服务器和客户机两块,主要实现实时数据采集、远程通讯、实时显示数据、数据存储、查询历史数据、报表输出等功能。系统的软件总体框图如图2.1。
2.1数据采集模块
VB或VC提供了通信控件MSCOMM,该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。它提供了一系列标准通信命令的接口,可以用它创建全双工的、事件驱动的、高效实用的通信程序。每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。
MSComm处理数据的方式有事件驱动(Event—driver)、查询法(Inquire)两种,在使用事件驱动法设计程序时,每当有新字符到达、端口状态变化或发生错误时,MSComm控件将激发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。这种方法的优点是程序响应及时,可靠性高;而查询法则是每当应用程序执行完某一串行口操作后,将不断检查MSComm控件的CommEvent属性以检查执行结果或者检查某一事件是否发生。考虑到可靠性和响应的快速性,数据采集程序采用事件驱动。
2.2C/S通信模块
1) 基本原理
国际标准化组织(ISO)创建了ISO(OpenSystemInterconnection,开放式系统互连)模型,OSI模型被分解为层,每层都不需要依赖于操作系统或其他因素。分层方法可以建立在其他层现有协议基础上,将开发工作集中在自己的适用层上。
在计算机与计算机之间交换信息需要遵循某种协议,当今最为通用的应当是TCP/IP协议了。Winsock控件工作在传输层,在这一层上,TCP/IP协议包括TCP(传输控制协议)和UDP(数据报协议)两种:TCP协议适用于那些对于数据的可靠性要求比较高的情况;UDP协议适用于对数据可靠性要求不高而对速度要求比较高的情况。在温室监测系统中,系统要求实时监测的数据必须可靠的从服务器端传送到客户端,所以在这里必须选用TCP传输协议。数据传输协议(TCP)允许创建和维护远程计算机的连接。连接这两台计算机就可彼此进行数据传输。
2) 具体实现
Winsock控件对用户来说是不可见的,它提供了访问TCP和UDP网络服务的方便途径。通过设置控件的属性并调用其方法就可轻易连接到一台远程计算机上去,并且还可以双向交换数据。利用套接字控件(Winsock)可以与远程计算机建立连接,套接字由IP地址,端口和端口号组成。客户端程序主动向处于网络监听状态服务器端程序发起连接,利用套接字
构筑一条TCP链路.通信前首先要知道服务器计算机名或者IP地址(RemoteHost属性),还要知道进行“侦听”的端口(RemotePort属性),然后调用Connect方法。客户断设置一个收听端口(LocalPort属性)并调用Listen方法。当客户计算机需要连接时就会发生ConnectionRequest事件。为了完成连接,可调用ConnectionRequest事件内的Accept方法。建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用SendData方法。当接收数据时会发生DataArrival事件。调用DataArrival事件内的GetData方法就可获取数据。Winsock控件连接流程图如图2.2所示。
2.3数据库模块
数据库设计的基本原则是实用性,冗余度小,独立性强,可兼容性,存取快速方便,安全性好。VisualBasic事实上可以支持各种数据库,只要在系统中安装了该种数据库的驱动,VB就可以直接打开扩展名为MDB的Access数据库。在面向对象对象的数据库设计中,最简单的映射模型就是将逻辑分析中的类映射成数据库中的表。通过分析设计温室监控系统客户端数据库表单包含:监测站点管理表,用户信息表,实时数据表(动态表,由程序每天创建一个以日期为名的表),登陆日志表,查询日志表,越限信息表,通信故障表,日统计数据表,周/月统计数据表。服务器数据库表单包括:实时数据表,客户端管理表(用于查看客户通信连接。)VB中可以用ADO和ADOX访问数据库,结合DataGrid控件和Mschart控件实现数据库实时数据显示和实时图形显示,方便客户端技术人员查看温室实时运行状态。另外还可以进行历史数据和图形的查询。
3实验结果
远程监控系统的工作过程如下:服务器选择监测仪号,设置串口,然后打开串口接收实时数据,按下通信按钮后,设置端口号开始监听,等待客户端连接。远程客户首先运行客户端程序,按照提示输入用户密码,再输入服务器IP地址和端口号,等待连接状态,若成功连接,服务器开始转发数据,客户端接收数据实时数据显示和图形显示。通过系统调试和试验表明,远程温室监控系统能够全天不间断地采集环境指标,用户可以足不出户通过互联网实时监测温室环境的动态变化过程,通过观测数据可监控到温室环境的重要变化特征以及一些重要的调控过程。
4结论
温室的远程监测系统是一个复杂的网络系统,是设施农业技术、计算机网络、通迅技术等诸多方面的技术融合。基于C/S模式的温室远程监测系统能够充分地利用同种设备的故障数据,实现故障诊断的自学习,大幅减少专家人力资源,提高故障诊断能力,能够最大限度地缩短温室故障的修复时间,减少损失。由于时间、经验和多方面条件的限制,系统仍有许多地方有待提高和改善,进一步可考虑B/S(浏览器与客户机)模式来进行温室实时监测。
参考文献
[1]李建军.Internet远程监控软件设计[J].测控自动化,2005(3):48-50
[2]马燕.基于C/S的计算机远程监控技术[J].西南师范大学学报(自然科学版),2002:8.
[3]孙俊,朱孝勇.基于Internet的电网远程监测系统[J].电力自动化设备,2003:501-505.
[4]唐勇红,龚案.运用Winsock控件实现C/S网络通信[J].计算机系统应用,2003:50-54.
[5]潘卉青,田书林,刘科.网络故障测试仪远程监控软件设计[J].测控技术,2006,25(10):65-67.