《基于VB和串口通信技术的多传感器检测系统设计.doc》由会员分享,可在线阅读,更多相关《基于VB和串口通信技术的多传感器检测系统设计.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、教学单位电脑与信息科学学院学生学号 091734129 本科毕业论文设计题目 基于VB和串口通信技术的多传感器检测系统设计学生 专业名称 自 动 化 指导教师 2013年5月8日学习文档 仅供参考基于VB和串口通信技术的多传感器检测系统设计摘要:组建基于VB和串口通信技术的多传感器检测系统,关键在于根据检测参数选择不同型号的传感器,并参考传感器信号输出选择与之匹配的数据采集模块。运用VB6.0的串行通信控件及电脑串口实现电脑与多个智能传感器的串行通信,最终到达多点、实时监测的目的。本文论述了如何基于Visual Basic语言实现串行通信,探讨了多传感器检测系统设计的方法及思想,并构建了多传感
2、器检测系统平台,最后将该系统应用到一个小型监测网络中。关键词:Visual Basic;串行通信;多传感器;检测系统Design of Multi-sensor Monitoring System Based on VB6.0 and Serial Communication technologyAbstract: The key point of multi-sensor monitoring system based on VB6.0 and serial communication technology lies in the selecting of different specifi
3、cations of sensors and the selecting of the matched data acquisition module. In order to monitor the data in time, we use the serial communication module of VB6.0 and the computer serial port to communicate with some intelligent sensors. This paper discusses the means of the realization of the seria
4、l communication based on visual basic language, the design of multi-sensor detection system and the formation of a small monitoring system based on serial communication program. In the end, we apply this system in a small monitoring network. Key words: Visual Basic; Serial Communication; Multi-senso
5、rs; Detection system目 录1 绪论11.1引言11.2课题研究的目的及意义11.3国内外研究现状21.4课题研究内容22 Visual Basic 6.0与RS-232串行通信32.1 Visual Basic 6.0概述32.1.1 Visual Basic的发展32.1.2 Visual Basic特点32.2 MSComm控件42.3 RS-232串行通信53 多传感器检测系统设计73.1 多传感器检测系统的组成73.2多传感器检测系统通信程序设计83.2.1通信协议83.2.2监控界面设计93.2.3数据存储设计103.3多传感器检测系统调试113.3.1调试系统界
6、面设计113.3.2 调试系统软件设计124 多传感器检测系统在鱼塘水质监测中的应用144.1 系统的任务及要求144.2系统硬件电路设计144.2.1 数据采集模块154.2.2 AD模块174.2.3 DS1302时钟模块174.2.4 12864液晶显示模块184.2.5 串口通讯及上位机显示194.3系统软件程序设计204.3.1主控界面设计204.3.2 通信程序设计204.4 系统的调试234.4.1调试系统界面设计234.4.2调试系统软件设计244.5 系统应用及推广244.5.1检测系统的应用244.5.2检测系统的推广245 总 结26参考文献27致 谢28学习文档 仅供参
7、考1 绪论1.1引言在自动化领域中,人们总是希望用机器来代替人类做某些工作,如简单重复性操作或者对人体有害的工作。虽然现在智能化的机器能够替代人类完成很多事情,不过还是需要有相关的设备来监测这些机器的工作是否正常,并据此做出相应的控制操作,这就是所谓的检测与控制。电脑要完成监控,首先必须进行监测,通过布设的传感器传回的信号对监测的参数进行判断。在监测的范围较大或监测点数较多时,就需要分布多个传感器进行分散检测,同时把检测的结果集中管理,这就是所谓的多传感器检测系统。组建多传感器检测系统,关键在于根据监测参数选择不同型号传感器,并参考传感器信号输出选择与之匹配的数据采集模块,在组建多传感器检测系
8、统的基础上,利用电脑串口RS-232实现串行通信,最终到达多点、实时监测的目的。本文论述了如何基于Visual Basic语言实现串行通信,组建多传感器检测系统的方法及思想,并介绍了利用温湿度传感器组建一个小型监测网络的硬件组建以及程序实现。1.2课题研究的目的及意义电脑的串口通信是一种重要的数据交换方法,其广泛应用于电脑外设或工业测控领域。传感器是控制领域必不可缺的基本元件之一,是实现各种复杂控制的基础。传感器检测到的各种数据是我们实现有目的的控制的基础,因而传感器检测技术的研究在现代化技术中显得尤为重要。如何对检测的数据进行处理、分析必将涉及到通信问题,对于串口通信技术的研究能使传感器检测
9、到的信号完整正确的传递。通过串口通信技术使检测到的数据传到上位机能实现有效的调节和控制。现代化工业生产系统中需要控制的量和需要检测信号种类繁多,因此设计一个实时监测系统,通过通信技术使传感器检测到的信号及时传送至上位机来进行实时有效的控制具有重要意义,有着广泛应用前景。对于此领域的研究不仅可以综合所学到的VB软件开发知识、串口通信技术及传感器技术等相关专业知识,而且可以进一步提高自己的动手能力,为参加工作做准备,打下坚实的基础。1.3国内外研究现状我国对于传感器测控技术的研究较晚,我国工程技术人员在吸收发达国家检测技术的基础上,才掌握了相关微机控制技术,该技术仅限于对某些单项环境因子的控制。在
10、技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。而国外对传感器控制技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统。目前正开发和研制电脑数据采集控制系统的多因子综合控制系统。现在世界各国的传感器测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。1.4课题研究内容使用Visual Basic设计了PC机与单片机间的串行通信程序,对控制系统现场的多个传感器数据进行适时采集、监控、报警和存储。本课题运用主从分布式思想,由一台上位
11、机(电脑)和下位机(单片机)通过传感器实现多点数据采集,组成两级分布式多点传感器巡回检测系统。该系统采用 RS-232串行通讯标准,通过上位机(电脑)控制下位机(单片机)进行现场相关数据的采集。采集的数据既可以送回主控PC进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的工作状态,对各点进行控制。本设计的关键是系统软件的编写,系统软件主要由两部分构成,一是下位机软件的编写,二是上位机软件的编写。其中下位机软件包括对数据的采集、显示及与上位机的串行通信程序。上位机软件部分主要负责对下位机传来的温度数据进行接收、处理、显示等,并可以设置相关操作,以便实时检测相关数据的变化2 V
12、isual Basic 6.0与RS-232串行通信2.1 Visual Basic 6.0概述Visual Basic 是Microsoft公司推出的基于Window环境的电脑程序设计语言,它继承了Basic语言简单易学的优点,同时增加了许多新的功能。由于Visual Basi才采用面向对象的程序设计技术,摆脱了面向过程语言的许多细节,而将主要精力集中在解决实际问题和设计友好界面上,使开发程序更为迅速、简洁。2.1.1 Visual Basic的发展 1991年,Microsoft公司推出Visual Basic 6.0版,它虽然存在一些缺陷,但仍受到了广阔程序员的青睐。随后,Microso
13、ft公司又相继推出了更多版本。Visual Basic6.0版较以前版本,其功能和性能都大大增强了,它还提供了新的、灵巧的数据库和Web开发工具。Visual Basic6.0 有三种版本,分别为学习版、专业版和企业版。2.1.2 Visual Basic特点Visual Basic具有以下几个主要的特点。1、提供了面向对象的可视化编程工具,它把程序和数据封装在一起视作一个对象。设计程序时只需要从现有的工具箱中“拖”出所需的对象,如按钮、滚动条等,就可以在屏幕上“画”出所需的用户界面来,因而程序设计的效率可以大大提高;2、事件驱动的编程方式,程序员只需编写响应用户动作的代码,而各个动作之间不一
14、定有联系,这样的应用程序代码一般比较短,所以程序易于编写与维护;3、结构化的程序设计,尽管Visual Basic是面向对象的程序设计语言,但是在具体的事件或过程编程中仍是要采取结构化程序设计。Visual Basic具有丰富的数据类型和结构化程序结构,而且简单易学;4、提供了易学易用的的应用程序开发环境,在Visual Basic的集成开发环境中,用户可设计界面、编写代码、调试程序,直至将应用程序编译成可执行文件在Windows上运行,使用户在友好的开发环境中工作;5、支持多种数据库系统的访问,数据访问特性允许对包括Microsoft SQL Server和其他企业数据库在内的大部分数据库格
15、式建立数据库和前端应用程序,以及可以调整的服务器端部件。基于以上相关优点,本系统选择利用VB6.0开发上位机软件。2.2 MSComm控件Visual Basic提供了MSComm控件,旨在实现RS-232的串口通信。MSComm控件实现串口通信的工作方式以及主要属性、事件如表2.2所示:表2.1 MSComm控件的工作方式、属性及事件类别名称意义或用途工作方式事件驱动预先将程序输入控件的事件中,一旦事件产生如字符到达则触发CommEvent事件,自动执行该程序事件轮询通过检查CommEvent属性的值来轮询事件属性CommPort属性设置或返回通信连接端口号码Setting属性设置或返回联机
16、速率、奇偶校验、数据位、停止位PortOpen属性设置或返回通信连接端口状态Input属性从输入缓冲区返回字符,同时删除缓冲区的字符Output属性将要发送的数据输入到传出缓冲区RThreshold属性设置或返回引发接收事件的字节数,以引发OnComm事件中接收事件InputMode属性设置或返回Input属性取回的数据的类型,有二进制形式、文字形式InBufferCount属性将InBufferCount属性设置为0,可清除接收缓冲区CommEvent属性CommEvent属性在事件发生时生成OnComm事件,CommEvent属性会返回不同值,表示不同的通信事件事件OnComm事件Comm
17、Event属性的值发生变化,就会引发OnComm事件对于MSComm控件OnComm事件的子函数形式源代码如下:Private Sub MSComm1_OnComm() Select Case MSComm1 mEvent Case comEvCD CD 线状态变化引发事件 Case comEvCTS CTS 线状态变化引发事件 Case comEvDSR DSR 线状态变化引发事件 Case comEvRing Ring Indicator 变化引发事件 Case comEvReceive 收到 RThreshold个字节引发事件 在此处添加从缓冲区读取数据的程序 Case comEvSen
18、d 传输缓冲区有 SThreshold 个字符引发事件 Case comEvEOF 输入数据流中发现 EOF 字符引发事件 End SelectEnd Sub对于RS-232的串口通信而言,当电脑缓冲区接收到RThreshold个字节时,MSComm控件将触发OnComm事件。在“Case comEvReceive”后添加从缓冲区中读取数据功能的源代码,即可实现串口通信的接收数据功能。2.3 RS-232串行通信分布式监测系统主要用到RS-232串行通信端口。串行通信端口Serial Communication Port在系统控制的范畴一直占据着极其重要的地位,用途以连接调制解调器来传输数据最
19、为常见。RS-232串行通信端口已经成为电脑上的标准配置,现在新一代的电脑以9引脚的接头接出所有的RS-232通信端口。RS-232外观以及引脚标号如图1所示:图1 RS-232外观以及引脚标号RS-232的引脚编号及定义如表2.2所示:表2.2 RS-232引脚标号及意义引脚简写意义引脚1CD载波检测Carrier Detect引脚2RXD接收数据Receive引脚3TXD发送数据Transmit引脚4DTR数据终端准备好Data Terminal Ready引脚5GND接地端Ground引脚6DSR数据准备好Data Set Ready引脚7RTS请求发送Request To Send引脚
20、8CTS清除发送Clear To Send引脚9RI振铃提示Ring Indicator由上表可知道,RS-232串口的引脚2和引脚3分别用来接收数据、发送数据,一般而言,如果要将数据从一端发送到另一端,只需要用到第2引脚、第3引脚以及第5引脚就可以形成一个简单的通信线路。在以单台电脑进行串行通信实验时,可将引脚2、引脚3短路,即可形成一个完整的回路,实现“自发自收”功能。串口通信简单易用,因此在工业领域得到大量的应用。但由于工业环境中通常会有噪声干扰传输线路,在用RS-232进行串行通信时经常会受到外界的电气干扰而使信号发生错误,有效传输距离仅为15米。3 多传感器检测系统设计3.1 多传感
21、器检测系统的组成任何一个监测系统都会使用了大量的各种类型的传感器。搭建一个检测系统平台会用到各类传感器如压力传感器、水位传感器、电压传感器、电流传感器、流量传感器、温度传感器、湿度传感器和电导率传感器等,从而构成多传感器系统,这些传感器被用于测量系统中各种物理量和状态,为控制系统提供最原始的信息。它们相对于控制系统的“眼睛”,其重要性不言而喻。一个多传感器检测系统的基本组成包括转换接口单元,控制单元,输出单元,执行单元,上位机接收与存储单元等。如图2所示即为一个简单的多传感器检测系统组成基本原理图。图2多传感器检测系统组成3.2多传感器检测系统通信程序设计VB是一种可视化的、面向对象和采用事件
22、驱动方式的结构化高级程序设计语言,它简单易学,效率高,功能强大。程序设计包括七步:创建工程设计应用程序界面设置对象属性编写程序代码运行和调试程序保存工程编译工程生成可执行文件。3.2.1通信协议串口通信规程:在微机内配有通信适配器, 它使微机能与其他具有RS-232C 串行口的电脑或设备进行通信。数据通过串行口一次只能传送1 个字节, 而且数据和控制信息都是在单线上移动, 故需要通信协议, 常用通信协议如下:l 一个起始位;l 七个或八个数据位;l 奇偶校验位;l 一个或两个停止位;l 传输速度( 单位: 波特率或b/ s) 。 通信接口标准:通信双方假设距离较近, 可用电缆直接连接标准RS-
23、232C 接口; 假设距离较远, 则需要附加调制解调器, 在连接中注意应将电缆采用交叉跳接信号的方法, 以满足RS-232C 接口中成对使用DTE DCE 的要求。本文仅讨论单片机与微机间串口通信连接头的接法。RXD: 接收数据;TXD: 发送数据;DT R: 数据终端就绪;DSG: 信号地;DSR: 数据装置就绪;RT S: 发送请求;CTS: 清除发送。在串行通信的实现过程中,底层为通信工作以及操作系统和电脑硬件提供了有力的支持,但是为了实现特定的用户功能,必须在软件中制定基于应用的通信协议。在开发鱼塘监测系统串行数据通信程序的过程中,通过长期的调试和不断的总结,最终得到一套完整而可靠的通
24、信协议。该协议一共分为三层,分别为:1.物理层。规定了电子电气方面的特性及原始位流在物理链路上的传输,提供了原始位流传输信道;串行通信口:RS-232串口;硬件接口:DSP输出的TTL电平经专用集成块转换成RS-232信号;波特率:9600;字符格式:8位数据位,1位停止位;过失校验:无奇偶校验;2.数据链接层。定义了数据帧作为信息传输单元,使用过失校验和帧应答等技术,屏蔽物理路上的噪声,使传输通道变成一条可靠的信道;数据链接层为数据的准确通信提供了充足的信息。表2.3描述了设备数据包传输的结构。 表2.3数据包传输结构LENGTHCMDDATACHKSUM11=27(2)LENGTH数据包字
25、节总数;CMD命令的ID号。决定命令类型为命令信息还是应答信息;DATA由CMD决定数据字节长度;CHKSUM校验和码。环冗余校验是一种常用的校验码3应用层。负责建立通信伙伴之间的连接关系,实现操作同步,报警及数据完整性等管理任务。对用户及用户程序提供以下功能:1选择控制多台下位机定时,即时或适时跟踪采样现场信息,将数据送数据库保存,数据库存储一定时段的数据,程序具有对数据二次处理,绘制曲线图 及报警等功能;2设置采样参数;3当通信线路中断或通信失败时,往下位机发出报警信息;3.2.2监控界面设计多传感器监测系统主控界面的设计是整个上位机软件设计的重点之一,它直接影响系统监控效率及准确性的高低
26、。因此,清晰、人性化的界面设计是整个软件开发的重要前提。 多传感器监测系统主要实现对现场传感器采集数据的适时发送、接收和保存的功能。以VB6.0为软件平台开发的通用监控系统的主控画面如图3所示。 通过该主界面可以完成对系统主要设备运行状态的实时监控,包括用不同的颜色来表示设备的启、停,用文本框显示系统主要的运行参数,如PH值、温度、溶氧量等,利用CommandButton控件的Click事件完成设定值的发送,从而实现对现场进行实时控制。同时,添加各种控件,导入图片,并通过设置其不同属性,到达了美观、实用的效果。图3 监测系统主控界面3.2.3数据存储设计VB语言提供了多种操纵数据库的方法,使用
27、Ado Data控件访问数据库就是一种很常用的操纵方法。通过设置和操纵其属性就可以实现与数据库的连接,通过绑定数据感知控件就能提供一个访问数据库的界面,用来对数据库数据的浏览,添加,删除,修改等操作。整个过程实现和操作起来非常简单方便。具体连接步骤如下:(1)建立Access数据库(2)引用Ado Data控件和数据感知控件DataGrid (3)分别设置Ado Data控件的ConnectionString、CommandType、RecordSource三个重要的属性以及DataGrid控件的DataSource属性在设置Ado Data控件的ConnectionString属性的最后,将
28、出现“测试连接”的按扭,通过单击此按扭可以清楚的了解到数据库连接成功与否,非常简单方便。具体程序的编写格式为:数据库画面名称.Adodc1.Recordset.AddNew数据库画面名称.Adodc1.Recordset.Fields(日期) = Date数据库画面名称.Adodc1.Recordset.Fields(时间) = Format(Now, h:mm:ss)数据库画面名称.Adodc1.Recordset.Fields(参数名称) =接收到的参量数据数据库画面名称.Adodc1.Recordset.Update数据库的设计需要特别注意的是:1在Access数据库定义的各个参数的名称
29、、类型、出现的顺序以及格式都必须与代码中的“参数名称“完全一致,否则将无法记录或者记录错误。2设置Ado Data控件的ConnectionString属性的时候,必须选择正确的数据库所在路径,否则“测试连接”就会报错。3.3多传感器检测系统调试3.3.1调试系统界面设计在基本监测系统设计好后,能否正常工作还不能确定,因此必须设计调试系统对其进行调试。调试系统的主要功能是保证上位机能与下位机进行准确的通讯,保证数据传送的准确性。设计的调试系统的界面如图4所示:图4 调试系统界面3.3.2 调试系统软件设计该调试系统程序主要设置通信时选用的串口、设置波特率、数据传送的帧格式以及数据的接收与保存等
30、。其主要的程序片段如下:1.通讯设置程序片段Private Sub Form_Load() With MSComm1 mPort = 1 选用COM1串行口; .Settings = 9600,N,8,1 波特率9600,无奇偶校验位,8位数据位,1位停止位; .InputLen = 5 设置Input从接收缓冲区读取全部内容; .InBufferSize = 1024 设置MSComm1接收缓冲为1024字节; .OutBufferSize = 512 设置MSComm1发送缓冲为512字节 .PortOpen = True 打开通信口 .InBufferCount = 0 输入缓冲区清零/
31、清除发送缓冲区数据 .OutBufferCount = 0 输出缓冲区清零/清除接送缓冲区数据 .InputMode = comInputModeBinary 传输模式为二进制形式 .RThreshold = 5 设置接收5个字节产生 OnComm事件 End With End Sub2.数据接收处理程序片段Private Sub MSComm1_OnComm() Dim buf2 As Variant Dim bufout(1 To 5) As Byte Select Case MSComm1 mEvent Case comEvCD Case comEvCTS Case comEvDSR C
32、ase comEvRing Case comEvReceive buf2 = MSComm1.Input bufout(1) = buf2(0) bufout(2) = buf2(1) bufout(3) = buf2(2) bufout(4) = buf2(3) bufout(5) = buf2(4) Text6.Text = Hex(bufout(1) Text7.Text = Hex(bufout(2) Text8.Text = Hex(bufout(3) Text9.Text = Hex(bufout(4) Text10.Text = Hex(bufout(5)Case comEvSe
33、ndEnd Select4 多传感器检测系统在鱼塘水质监测中的应用多传感器检测系统在实际应用中相当广泛,但其基本原理与设计方法基本上是一致的。本文以基于51单片机的鱼塘水质监测系统为例来论述其系统设计的思想、原理、调试及相关应用。4.1 系统的任务及要求对于一个鱼塘水质监测系统,要求传感器检测鱼塘的一系列信号如温度、PH值、溶氧量等,并且通过串口通信技术将信号传送至上位机处理,以到达对现场按指定要求控制的目的。系统利用多个传感器对鱼塘中温度、溶解氧等信号进行采集并且利用AT89C52单片机对其进行指定控制。可对各个参数设定参考值范围,当采集的数据超过参考值范围时发出报警信号采用DS1302时钟
34、芯片提供时间参数,用12864液晶显示各参数,并用串口将数据传送上位机进行显示储存,同时也可利用上位机发出相关的控制信号。设计要求:(1) 要求运用传感器技术检测各个控制信号;(2) 各个信号分别按地址不同进行分类;(3) 运用RS-232串口通信技术将采集的信号传送到上位机;(4) 通过VB6.0编写的上位机软件观测现场情况;(5) 通过上位机软件对现场各项参数进行控制。4.2系统硬件电路设计系统由单片机、数据采集电路、液晶显示电路、串口通信电路、时钟控制电路等组成,系统框图如图5所示图5 系统框架图系统以AT89C52作为主控单片机,接收和处理温度传感器、PH传感器、溶解氧传感器采集的信号
35、控制液晶实时显示鱼塘水的温度、PH以及氧的质量浓度,并通过串口通讯将数据送至上位机,上位机显示保存数据并发出相应的控制信号。4.2.1 数据采集模块l PH测量考虑成本和精度问题,设计中选用的是型号为YC-07型的PH传感器来测量水的PH它的适用范围广泛,温度范围为0110C完全能满足鱼类生长所需环境温度,可测PH范围为014,测量精度可达0.1,响应时间快,抗干扰能力强,输出信号强,无需加放大器。l 溶解氧质量浓度的测量水的溶解氧OD质量浓度是水质状况的一项重要指标,直接影响鱼类的生长生存,因此溶解氧质量浓度的测定十分重要。设计选用的是YC-2000型溶解氧传感器,测定范围020mg/L,精
36、度为0.2mg/L,输出电压信号范围0100mv具有温度自动补偿功能。由于输出信号弱,要经过放大后送至转换芯片,放大电路如图6所示。图6 信号放大电路AD623是一个集成仪表放大器,允许使用单个增益设置电阻进行增益编程。最大放大增益可达1000倍,增益计算公式为+1式中,R 为AD623管脚1和8之间的电阻,设计中采用滑动变阻器,可根据传感器信号强弱,适当地调节放大倍数。图中IN2为溶解氧传感器输入信号,OUT2为经过放大后的信号传送至AD转换器。l 温度测量本系统采用的是DS18B20温度传感器,是一款单线数字温度传感器芯片,与单片机通信只需要一根数据线,如图7所示。图7 DS18B20与单
37、片机连接电路DS18B20与一般的热敏电阻不同,它可以将温度直接转换为串行数字信号,供单片机处理,而不需要数模转换芯片来采集温度信号,还可以设定温度警戒范围,当所测得的温度不在范围内时可产生报警信号。4.2.2 AD模块由于传感器采集的模拟电信号不能直接被单片机所读取,这就需要采用模数转换芯片将模拟信号转换成单片机能处理的数字信号。系统中采用ADS7825作为模数转换芯片,通过外围逻辑电路对芯片的A0,A1地址线进行逻辑控制,选择通道0-3,ADS7825与单片机及传感器信号连接电路如图8所示,其中IN1为PH传感器信号,OUT2为经放大后的溶解氧传感器信号。图8 数模转换电路4.2.3 DS
38、1302时钟模块利用DS1302时钟芯片能够在液晶上实时显示当前时间,并能通过串口通信将时间数据传送至上位机显示储存,方便分析调用。DS1302与单片机连接电路如图9 所示。图9 时钟模块4.2.4 12864液晶显示模块液晶显示采用的是128x64点阵的汉字图形型液晶显示模块,可显示字符、汉字及图形。本设计利用液晶显示实时时间、传感器信号经过一定系数换算得到的温度值、PH以及溶解氧质量浓度。12864液晶显示模块与单片机连接电路如图10 所示。图10 12864液晶显示模块与单片机连接电路4.2.5 串口通讯及上位机显示在串口通信中采用了MAX232电平转换芯片,将温度、溶解氧质量浓度、时间
39、等参数传送至上位机,进行显示并保存数据MAX232与单片机及电脑串口连接电路如图11所示图11 MAX232连接电路上位机采用VB6.0 编程,对单片机发来的数据进行处理。上位机分为串口初始化、实时显示和历史数据查询三个模块,对温度等测量值进行显示并存储,以便调用分析。显示界面如图12所示。图12 上位机显示界面4.3系统软件程序设计4.3.1主控界面设计基于以上系统设计的基本原理和方法,以VB6.0为软件平台开发的鱼塘水质监控系统的主控画面如图4.2.5所示。 通过该主界面可以完成对鱼塘水质的监测和控制如PH值、温度、溶氧量等,利用CommandButton控件的Click事件完成设定值的发
40、送,从而实现对鱼塘水质的改变。同时,添加各种控件,导入图片,并通过设置其不同属性,到达了美观、实用的效果。4.3.2 通信程序设计鱼塘水质监控系统的通信包括上位机和下位机的通信。主要是PC机和单片机之间通过串口线完成数据的传输,以期对鱼塘现场采集的信息进行适时准确地监控。在基于以上基本监测系统的通信协议的基础上进行该鱼塘水质监测系统通信程序设计。l 上位机工作流程鱼塘水质监控系统的上位机软件分为手动程序和自动程序,自动程序是通信程序设计的最终版,一旦进入开机工作状态,就能够自动完成对下位机的监控功能,包括发送和接收信息。*为注释部分1发送信息程序段。其工作流程如下列图13。简单代码举例如下:P
41、rivate Sub Cmdstop_Click() *发送开机命令* byteout(0) = &HAA byteout(1) = &H55 MSComm1.Output = byteoutEnd Sub2接收信息程序段。接收部分需要准确采集现场上传的适时参数,如温度、PH值、溶氧量等,以便分析和改良鱼塘水质,是通信程序设计的重点,通过VB中MSComm控件的OnComm事件来完成。其工作流程如下列图14,简单代码举例如下:Private Sub MSComm1_OnComm() *数据接收; Dim buf() As Variant Dim buf1(1 To 2) As Byte buf
42、 = MSComm1.Input *通过MSComm的Input属性接收数据;buf1(1) = buf(0)buf1(2) = buf(1) Text1.Text = buf1(2) * 256 + buf1(1) End Sub图13 上位机发送信息流程图图14上位机接收信息流程图l 数据存储程序设计VB语言提供了多种操纵数据库的方法,使用Ado Data控件访问数据库就是一种很常用的操纵方法。通过设置和操纵其属性就可以实现与数据库的连接,通过绑定数据感知控件就能提供一个访问数据库的界面,用来对数据库数据的浏览,添加,删除,修改等操作。整个过程实现和操作起来非常简单方便。具体连接步骤与第3
43、章中论述的构建基本多传感器监测系统数据存储方法相同。数据存储对于系统来说具有重要意义,可以通过分析一段时间的具体数据来对该鱼塘水质的变化有明确的认识,从而可以制定相应的良好的对策来进行解决。以保证鱼塘的高效产出。4.4 系统的调试4.4.1调试系统界面设计在鱼塘水质监测系统设计好后,能否正常工作还不能确定,因此必须设计调试系统对其进行调试。调试系统的主要功能是保证上位机能与下位机进行准确的通讯,保证数据传送的准确性。该调试系统与基本的系统调试原理完全一样。设计的调试系统的界面如图15所示:图15调试系统界面4.4.2调试系统软件设计该调试系统程序主要设置通信时选用的串口、设置波特率、数据传送的
44、帧格式以及数据的接收与保存等。其主要的程序片段与第3章中的调试软件设计程序基本上是一致的。4.5 系统应用及推广4.5.1检测系统的应用该检测系统可应用于生产、生活的各个方面。如生产中的工业现场的相关信息采集,例如生产车间的各类参数的采集;生活中如大棚生产的温度、湿度、采光等控制。4.5.2检测系统的推广基于鱼塘监测系统设计的原理,可类似的应用于各类检测与控制系统。该类系统都基于VB控件的通信原理,利用VB开发上位机信息采集与控制软件。可对系统进行改良,完成水质的自动调节系统,如自动增氧、自动加温等,可用于工厂化水产品养殖。另外也可用于室内的鱼缸养殖中,实现全自动鱼缸养殖,如换水、增氧、降温等。因此,设计具有推广应用价值。5 总结上述是基于VB语言的多传感器检测系统组建以及测试程序的实现方法。通过测试,该实验平台能够实现正确通讯实时监测功能,即:通过一个串口通信口完成所接收数据的接收、解析与实时显示。程序编写采用了模块化设计的思想,这使得程序有着较好的扩展性,在实际监测中,如需要增加各类传感器数量和相应的分布式模块,只需要增加相应的发