近年来,随着公共Internet网络的普及和远程控制策略的完善,基于Internet的通信手段在远程监控技术上的应用发展迅猛。基于Internet的远程监控系统通过廉价的TCP/IP和Ethernet连接克服了工业网络的弊端,大大降低了网络的建设与维护成本,并广泛地延伸人类的工作空间,为温室控制技术向着信息化、网络化方向发展提供了可能[1]。
1 系统硬件设计
本文设计的温室远程监控系统硬件电路以AT89S52单片机为核心,通过RS232/485与串口联网服务器ZNE-200T相连,并通过该模块实现RS232协议与TCP/IP协议的相互转换,从而实现串口设备的网络化;信息的数据采集由LT/W/S温湿度传感器、LT/G光照度传感器、VC1008二氧化碳浓度传感器以及传感器信号处理转换(A/D)电路构成;输出控制由光隔、继电器、执行器件构成;人机对话功能主要采用8位LED、20位按键来实现[2]。
2 系统软件设计
2.1 上位机软件设计
2.1.1 Web应用程序服务器设计
Web应用程序服务器采用MS-IIS(Microsoft Internet Information Server)技术,网络发布模块采用ASP.NET技术实现B/S(Brower/Server)体系结构。用户操作则通过客户端浏览器(Brower)实现,主要事务在服务器端(Server)实现,数据存储、提取则在数据库服务器端实现,形成三层结构。在这种结构中,该系统的一次完整运行应为:用户登录,即通过浏览器向网络上的Web应用程序服务器发出请求,Web应用程序服务器对浏览器的请求进行处理,将用户操作主页面返回到浏览器;用户进行数据查询参数的输入、采集系统的参数修改等操作,完成后向Web应用程序服务器发出提交请求;服务器对浏览器的数据提交请求进行处理,即进行数据分析计算、数据库存取、动态页面生成等工作;最后Web应用程序服务器将模型运行结果返回到客户端浏览器。
2.1.2 数据库服务器程序设计
在数据库服务器的设计中,考虑到数据的安全及Web应用程序服务器的升级与维护,本系统采取系统数据库服务器与Web应用程序服务器相分离的措施。数据库采用MS SQLServer2000,为系统提供易于维护的、稳定的支持[1]。温室数据库(Greenhouse)主要包含数据表T_info和指令表T_C。其中T_info数据表包括各种传感器的数据、采集时间以及执行机构的开关状态,指令表T_C包括设定当前温度、湿度、光照、二氧化碳的上下限、各传感器的数据采样间隔等。智能终端(单片机)数据采集模块和Web应用程序服务器上的网络发布模块都以温室数据库为中心,为Internet用户提供数据查询及相关服务。
2.1.3 通信模块的设计
基于VB.Net的Socket对象是客户端和服务器端进行后台通信的根本,Socket是为计算机提供的一个通信端口,可以通过这个端口与任何一个具有Socket的计算机进行通信。应用程序在网络上传输、接收的信息都通过这个端口来实现。VB.Net对原有的Socket类和相关的方法进行了一系列封装,使程序变得更加简单。
Socket对象的属性和方法。Bind方法:使Socket与一个lP地址绑定;Listen方法:将Socket置于侦听状态;Accept方法:创建的Socket以处理传人的连接请求;Connect方法:建立远程连接;Send方法:将数据发送到连接的Socket;Receive方法:接收来自Socket的数据;Close方法:强制Socket关闭;Available属性:获取已经从网络接收且可供读取的数据;Blocking属性:获取或设置一个值,该值表示Socket是否处于阻塞;Local endpoint属性:获取本地终结点;Protocol type属性:获取Socket的协议类型;Remote endpoint属性:获取远程结点;Socket type属性:获取Socket的类型。
使用Socket对象按4个步骤进行:(1)程序建立一个Socket;(2)程序必须按要求配置Socket;(3)程序必须按Socket要求通过此协议发送和接收数据;(4)程序关闭此Socket。
2.1.4 用户界面设计
本系统界面设计采用中文Windows环境下的图形界面,界面友好,并根据系统分析确定目标和功能,采用模块化设计方法,主要包括登录页面、网络连接模块、数据查看模块、终端控制模块、终端参数设置模块、本地参数模块和使用帮助模块等,每一个模块完成一项独立功能,但模块与模块之间通过系统数据相互关联。
2.2 下位机软件设计
2.2.1 智能采集终端系统主程序设计
智能采集终端主程序是整个下位机系统的主程序,它是系统程序的框架,控制着单片机系统按预定操作方式运转。其主要作用是能及时响应来自系统内部的各种服务请求,有效地管理系统自身软硬件及人机对话设备与系统中其他设备交换信息,并在系统一旦出现故障时,及时作出相应处理。
系统主程序的组成主要取决于测控系统的组成模块以及系统的硬件配备与功能,其主要的工作流程为:系统上电后开始进入初始化状态,然后进行数据采集,把采集的结果与事先设定参数值相比较,如果超出设定的上下限范围,将驱动执行机构进行处理,否则判断有无键盘中断,若有,执行中断服务程序;若没有,再判断是否有串口中断;若有,则执行串口中断服务子程序,最后返回。
2.2.2 驱动执行机构子程序设计
在设计驱动执行子程序设计中,本系统采取以温度为主,同时辅以考虑湿度、光照、二氧化碳浓度的控制方法。首先,将实时采集的温度值和设定的温度值上下限进行比较,低于下限温度就关闭降温和降湿设备并开启加热设备;反之,就开启降温和降湿设备并关闭加热设备。然后接下来将实时采集的湿度和设定的湿度值进行比较,低于下限值就关闭降温设备并开启加湿设备;反之,开启降温设备并关闭加湿设备。完成之后,下一步就是对比光照值,开启或者关闭补光设备;最后,对比CO2浓度,低于下限值就关闭降温设备并开启CO2施肥设备;反之,关闭CO2施肥设备并开启降温设备。
2.2.3 键盘/显示系统子程序
在单片机控制系统中,键盘/显示系统常用来监视和分析键盘输入的命令和数据以及显示被控系统的工作状态。键盘/显示系统是单片机不可缺少的部件,它常由硬件电路和软件程序组成。软件程序主要由动态显示子程序、键盘扫描子程序和求键值子程序等组成。本系统主要完成:设定温度、湿度、光照、二氧化碳浓度等参数的上下限;可强行执行温室内空调、湿控装置、钠灯、排气扇等开关操作;浏览实时采集的数据。
温室环境监测远程监控系统以硬件电路AT89S52单片机为核心,通过协议的相互转换实现串口设备的网络化,再辅以上位机和下位机的软件编程能够实现室内温度、湿度、光照、二氧化碳浓度的网络监测和管理,具有一定的应用价值。