基于PC机的温湿度集中处理和显示软件设计_第1页
基于PC机的温湿度集中处理和显示软件设计_第2页
基于PC机的温湿度集中处理和显示软件设计_第3页
基于PC机的温湿度集中处理和显示软件设计_第4页
基于PC机的温湿度集中处理和显示软件设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计(论文)基于PC机的温湿度集中处理和显示软件设计TheSoftwareDesignoftheTemperatureandHumidityDataProcessingandDisplayUnitBasedonPC总计:23页表格:1个插图:7幅学院(系):电子与电气工程专业:电子信息工程基于PC机的温湿度集中处理和显示软件设计[摘要]基于PC机的温湿度集中处理和显示系统能实现多点温湿度的分布式检测和集中式显示、报警功能。用PC机作为温湿度数据显示和报警的中心,本设计是完成在PC中数据的集中显示和报警的软件设计。在PC界面设计中采用VisualBasic6.0在Window环境下创作,使用VisualBasic6.0提供的MSComm控件,实现数据的集中显示。在报警软件设计中分为温度控制、湿度控制,当显示的温湿度高于设作用定的上限值系统自动采用蜂鸣器报警。[关键词]串行通信;PC机;主从控制;VBTheSoftwareDesignoftheTemperatureandHumidityDateProcessingandDisplayUnitBasedonPCAbstract:ThePCmachineandserialtransmissionofthewaysandmeansofcommunication.PC-basedtemperatureandhumidityanddisplaysystemtofocusontoachievemulti-pointtemperatureandhumiditytestingofdistributedandcentralizeddisplay,alarmfunction.PC-usetemperatureandhumiditydataasadisplayandalarmcenter,thedesigniscompletedthedatainthePCdisplayandthepolicefocusonthesoftwaredesign.

PCinterfacedesignintheuseofVisualBasic6.0intheWindowenvironmentcreation,theuseofVisualBasic6.0.MSCommprovidedcontroldatashowthefocus.Softwaredesigninthereporttothepoliceisdividedintotemperaturecontrol,humiditycontrol,type1linkage,type2linkage,asshownfortheroleoftemperatureandhumidityishigherthantheupperlimitsetautomaticallyusingbuzzeralarm.KeyWords:Serialcommunication;PC;Master-slavecontrol;VB目录TOC\o"1-3"\u1引言 11.1前言 11.2研究的背景及意义 11.3本文的主要工作 22系统总体设计 22.1系统主要构成部分 32.1.1主控PC机 42.1.2带光电隔离RS232/485转换电路 42.1.3RS-485总线型通信网络 42.1.4测量节点部分 42.2系统主从通信的基本条件 42.2.1串行通信的传送方式 52.2.2通信协议 62.3运行环境 73系统软件设计 73.1VB软件介绍 73.2通信控件介绍 74主控PC机软件设计和界面显示 94.1软件设计 94.2界面设计及显示 114.2.1界面设计中美的需求与导向作用 114.3主界面窗体的设计 124.3.1接收显示部分的实现 124.3.2主控机系统实现 144.3.3参数设置 145系统调试 14结束语 17参考文献 18附录 19致谢 201引言1.1前言计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术。计算机控制是计算机技术与自动控制理论、自动化技术紧密结合并应用于实际的结果,它的应用领域非常广泛。随着高性能计算机、网络技术及单片机技术的不断发展,不仅使计算机应用向网络化、综合化、集成化、智能化发展,而且使单片机的应用也从独立的单机控制向多机联网的方向发展,这就需要将各单机进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式形式发展,于是出现了以通信网络技术为基础的新的控制形式。串行通信作为一种简单、廉价的通信方式在控制工程中得到了广泛的应用,其中RS-485总线型控制系统得到了推广和发展。由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。在一个应用系统中,通常由PC机对数据进行分析并处理,单片机则完成数据的采集和上传等工作,复杂的还要建立数据库。在这样的系统中,单片机系统一般称之为下位机,由PC机、网络设备、数据库组成的应用部分则通称为上位机。二者结合,充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点,使得单片机的应用己不仅仅局限于传统意义上的自动监测或控制,而且形成了以网络为核心的分布式多点系统发展的趋势。这种发展的结果就使得数据通信在单片机应用系统中的作用越发重要。1.2研究的背景及意义在工业应用中,PC机由于其优越的性能价格比和丰富的软件资源,己成为计算机应用的主要机种。应用中我们常常会遇到若干任务需要同时执行的情况,单片机可以根据预先设置的指令获取现场数据并完成规定的控制功能,从而能够解决此类问题,因此被广泛的应用于工业检测与控制系统中。分布式控制为一种常用的控制方式,要实现分布式控制,多采用主从式微机网络形式,每台独立的单片机不仅要按预先设计的程序工作,更多时候需要根据来自上位机的控制指令适时调整工作程序。因此,各单片机之间、上位机与各单片机之间需要信息的相互传递,这样就形成了一个以单片机为用户的网络。不同于计算机网络的是:网络中单片机的工作只能被动的发送或接收信息。与单个独立单片机系统不同,网络中单片机的工作程序可以按照上位机的命令随时加以改变。上位机或称主控微机能对整个网络的运行进行管理和控制,所以说是微机控制下的单片机网络。这种以PC机为中心控制机和以单片机为现场测控机的分布式控制系统可以广泛的应用于工业测控系统中,而且具有很好的应用前景。现代实时控制系统综合了多功能,要解决的不仅是系统局部最优化问题,而且要解决整个系统的最优化设计,以保证整个系统各功能部件的协调工作。因而整个系统结构复杂、规模庞大,计算机不仅要完成整个系统的控制任务,以保证动态最优化的实现;而且要对生产的组织、决策等进行相应的规划管理,实现生产过程的静态最优化任务。因此,目前对大系统的控制,普遍采用的是分解原则,将大系统分解成若干相对独立的小系统,利用局部的控制器完成一个小系统的最佳控制,由监督管理计算机完成个子系统控制器的协调工作,负责整个系统的各种管理。在这种分布式系统中,各个控制器安装于现场,信号传输线路短,能及时处理控制对象的工//0数据,反应迅速,抗干扰能力强,减少通道上的信息传输量,减少了对上一级计算机的要求。在测控系统和工程应用中,还会经常遇到对多个检测对象进行检测与控制的和单片机组成。单片机由于其体积小、功能强、价格低廉、开发应用方便,尤其具有全双工串行通信的特点,在工业控制、数据采集、智能仪器仪表等方面都有广泛的应用。而PC机正好弥补了单片机数据处理能力弱和软硬件资源贫乏的缺陷。各单片机独立完成数据采集和控制任务,同时通过通信接口将检测数据传送给PC机,PC机将这些数据进行处理、显示或打印,并根据需要把各种控制命令传送给单片机,以实现集中管理和最优控制。因此,主控PC机与各测量节点之间的通信就显得尤其重要。1.3本文的主要工作本文的主要工作是研究基于PC机的温湿度集中处理和显示的软件程序。在论文中主要对主控PC机和测量节点之间的通信,以及对数据的显示工作做了具体设计。论文主要分四个部分:(1)系统总体设计;(2)系统的软件设计;(3)主控PC机软件设计;(4)系统调试。2系统总体设计本测控系统工作过程如下:主控PC机经过一定的程序后,向各测量节点发出信号,同时准备向各测量点发送数据或接收各测量节点发送上来到信号和数据。各测量节点一方面要响应主控机发出的信号,另一方面接收数据或向主控机传输数据。当数据传输完毕,主控机可以把接收到的数据进行显示、存储。PC机与各测量节点的配合是按需要将它们组成一定形式的网络,使它们之间相互通信,以完成各种功能。目前,最常用的多机通信网络形式有以下4种:串行总线型网络结构、环型网络结构、星型网络结构、树型结构。上述几种通信网络形式各有优缺点,其性能比较。见表1所示:表1计算机数据通信网络性能比较可靠性接口复杂性组成灵活性通信效率价格控制星型差简单好高高较复杂总线型较好简单很好中等较低简单环形中等较简单较好中等较低简单树形好复杂差最高很高很复杂从表中可以看出,总线型网络结构接口简单、使用灵活,因此在本测控系统中使用总线型网络结构,同时为了提高系统在通信过程中的性能和进行多机通信,我们在设计时采用RS-485总线进行串行数据通信。2.1系统主要构成部分本系统是建立在RS-485总线型网络基础上的主从分布式测控系统。系统中作为主机的PC机通过调用串行口控件和RS-232进行通信,RS-232和RS-485总线标准间通过MAX232,MAX485两个芯片进行转换。各测量点和RS-485总线的连接通过MAX485芯片来实现。本系统的结构简图如图1所示:图1系统主要构成部分从结构上可以分为:主控PC机部分、带光电隔离RS232/485转换电路、RS-485总线型通信网络部分和测量节点部分。2.1.1主控PC机 上位机作为主控机一般采用PC机,放置在中央控制室,该上位机主要用来向下位机发送命令和接收下位机做出的反应。设计显示界面的目的主要是为了用户方便地使用该系统,我们采用VisualBasic6.0在Window平台上对上位机界面进行设计。具体实现功能:(1)主要承担复杂控制计算、数据显示等功能;(2)向各测量点发出信号,接收、处理和存储各测量节点上传的数据;(3)对通信参数进行设置;(4)提供用户登录界面和帮助系统。2.1.2带光电隔离RS232/485转换电路RS232/485转换电路通过485收发芯片和光电藕合器相结合,实现对收发芯片两端进行电流隔离和总线信息收发。2.1.3RS-485总线型通信网络分布式控制是一种常用的控制方式,要实现分布式控制,多采用主从式微机网络形式。现代控制系统越来越复杂,一个系统往往由分散目标监控系统、数据采集系统、智能仪表等几部分组成,自动控制系统大多为多站、远距离通信网络,RS-485总线的传输距离长、抗干扰能力强,因此常采用RS-485总线进行网络通信。由MAX485收发器组成的差分平衡系统,抗干扰能力强、适合于远距离通信,可组成满足RS-485标准的通信网络。2.1.4测量节点部分每个测量节点是一个以AT89C51单片机为核心,再配上必要的外围电路所构成的单片机系统。该部分具体完成任务:(1)对主控机发出的信号做出响应;(2)完成与主控PC机的数据传输;(3)进行数据采集。2.2系统主从通信的基本条件为了确保主从测控系统通信的畅通,在通信过程中需要满足以下三个基本条件:(1)系统中的各测量节点都有各自唯一的地址码。(2)在系统中,主控机直接与各测量节点建立通信联系,主控机在通信中起主导作用,进行主动通信,各测量节点为被动通信,各测量节点之间不能进行直接通信,通信时需要通过主控机;各测量节点在不进行通信时处于监听状态。(3)在通信的任意时刻,只允许主控机和一个测量节点进行通信,即一对一通信,而不允许多个测量节点同时通信。数据通信方式有两种,即并行数据通信和串行数据通信。通常根据信息传送的距离决定采用哪种通信方式。并行数据通信是指数据的各位同时进行传送的通信方式。其优点是传送速率快;缺点是数据有多少位,就需要多少根传送线。串行数据通信指数据是一位一位顺序传送的通信方式,它的突出优点是只需一对传送线,这样就大大降低了传送成本,特别适合于远距离通信。所以本文采用串行通信方式。2.2.1串行通信的传送方式串行通信的传送方式通常有三种:一种为单工(或单向)配置,只允许数据向一个方向传送:另一种是半双工(或半双向)配置,允许数据向两个方向中的任一个方向传送,但每次只能有一个站发送;第三种传送方式是全双工(或全双向)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接收能力。本文采用半双工配置。串口通信接收显示部分的基本实现流程如图2所示:图2串口通信接收部分的实现流程图串口通信接收显示部分可以在线设置各种通信速率、通信口而无需重新启动程序,可以显示接收到的数据,并能在字符串、十进制和十六进制之间进行切换;自动保存设置参数。文件传输部分负责文件的传输,如果需要发送文件,必须选中“发送文件”单选框,在其下的编辑框内填入文件路径(或单击编辑框右部的按钮,从弹出的文件对话框中选择待发送的文件),然后单击开始传输;要接收文件,选择“接收文件”单选框,在其下方编辑框内填入接收文件的路径(或单击编辑框右部的按钮,从弹出的文件对话框中选择文件保存路径和名称)。程序见附录。2.2.2通信协议在传输过程中主控机发送出去的数据有三类:(1)从机地址;(2)命令字;(3)向各测量节点发送的数据包;收到的数据有两类:(1)从各测量节点发来的确认信号;(2)从各测量节点传来的数据;各测量节点接收和发送的数据与之对应不再赘述。为了使主控机和各测量节点之间能够正确通信,减少传输错误必须制定双方共同遵守的协议,即通信协议。通信协议如下:(1)首先使RS-485总线所有从机处于只接收命令的监听状态。(2)PC机先向从机发送一帧命令信息,包括一字节命令和一字节温湿度采集点地址。(3)数据格式:8个数据位,无校验位,1个停止位。通讯速率:9600pbs。命令格式:上位机发送:第1字节:AEH第2字节:温湿度采集点的地址(地址范围:00H─FFH)下位机回应:第1字节:90H第2字节:9XH(X=温度十位十进制码)第3字节:9XH(X=温度个位十进制码)第4字节:9XH(X=温度小数十进制码)第5字节:9XH(X=湿度十位十进制码)第6字节:9XH(X=湿度个位十进制码)第7字节:9XH(X=湿度小数十进制码) 第8字节:9XH(X=以上7字节低4位累加和)当温度为零下时,第2、3、4字节定义如下:第2字节:9AH(X=负温度符号)第3字节:9XH(X=温度十位十进制码)第4字节:9XH(X=温度个位十进制码)(4)通信的各机之间必须以相同的帧格式及波特率进行通信。通信协议中,帧格式和波特率的选择,它关系到通信的效率,传输的距离和通信的可靠性,是串行通信中的一个关键参数。采用帧格式为:1位起始位,1位停止位,8位数据位。根据通信距离和通信速率的要求,综合考虑,在实验中,我们将波特率设置为9600bps。通信协议分为三段,即主机与从机的连接与握手阶段、发送(接收)阶段、结束阶段。在连接阶段主要完成通信联络任务,主机首先发送测量节点的地址信号,与测量节点联络之后,向测量节点发送命令代码,收到应答信号后,开始发送或接收数据:接收(发送)阶段收/发数据及检验码,完成数据传输的校验;结束阶段则是由于通信系统出错或误码次数越限则宣告通信失败而结束通信。每发送一数据块,仅当数据接收正确时,才会发送一个帧格式,否则回送出错信息,要求重发数据块,直到正确为止,为了防止系统出错而引起“死锁”,最多只允许重发数据3次,否则转向出错处理程序,显示系统出错。2.3运行环境本系统是应用在温室、仓库、档案管理室等方面的客户端软件。从硬件上来说,一般的PC机即可运行;从软件上来说,由于系统是在Windows操作系统.NET平台的环境下开发的,调用的都是WindowssAPI,所以系统只能在Windows操作系统上运行。同时,系统的正常运行需要一个良好的运行环境,这要靠熟悉系统的人员(系统管理员)负责维护。3系统软件设计串行通信是微机之间常用的通信方法之一,由于串行通信编程灵活,硬件简洁并遵循统一的标准而在工业控制领域得到了广泛的应用。Windows现已成为当今计算机操作系统的主流,在其环境下利用Microsoft公司推出的功能强大的VisualBasic可视化的程序设计语言,开发出界面友好,操作简便的多机串行通信软件就显得尤为重要了。对于用户来说,此类可视化语言所开发出的界面友好、操作简便;对于开发者来说,Windows提供了丰富的资源,VisualBasic提供了面向对象程序设计的功能。本文利用VisualBasic的强大功能,在Windows环境下方便的开发了多台单片机的串行通信软件。3.1VB软件介绍1991年Microsoft公司推出的Windows应用程序开发工具一VisualBasic,它是基于Basic的可视化的程序设计语言,既继承了Basic所具有的程序设计语言简单易用的特点,其编程系统又采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视界面设计方法,此应用程序开发工具一出现就受到了广大软件开发人员的青睐。VB具有高的代码效率,与Windows系统有着完美的接口,易于进行硬件访问,非常适合一些应用程序的开发。3.2通信控件介绍VisualBasic提供了大量的控件供编程人员使用,编程人员可以方便利用这些组件中的属性、方法、语言等以事件驱动方式开发应用程序,还可以利用WindowsSDK中的AP工中的应用程序接口等工具开发应用程序。在通信问题中我们可以使用VB提供的通信控件或调用WindowsAPI通信函数。在我们实践中,用VB控件实现通信的方法比调用SDK的API动态连接库的方法更加方便、快捷,而且使用较少的的代码就可以实现相同的功能,这就是用VB控件实现通信的优点所在。在VB的控件工具箱中,提供了一个使用非常方便的串行通信控件MSComm,它全面的提供了使用RS-232串行通信进行上层开发的所有细则,它既可以使用查询方式又可以使用事件驱动方式来完成串行通信。(1)MSComm控件的引用正常的工具栏中没有MSComm控件,需要在菜单“工程”的选项“部件”中添加,选择MicrosoftCommControl6.0即可。通过以上步骤,工具栏中就会出现我们需要的通信控件MSComm,单击图标,拖动鼠标,就可以在系统中设计所需要的窗体或功能。(2)VisualBasic6.0MSCo二控件主要属性介绍VB6.0提供的通信控件MSComm可以方便地对串行通信的各项参数进行设置,包括串口状态、通信格式等。一旦发送或接收数据发生,则触发OnComm事件,通过编程访问CommEvent属性了解通信事件的类型,并进行相应的处理。每个通信控件对应一个串口,可以根据需要利用访问不同的通信端口。MSComm通信控件主要属性介绍如下:CommPort:用于设置或返回通信连接端口号。在设计时,CommPort属性值可以设置成从1-16的任何数(缺省值为1),但是通常大多数计算机的通信端口不大于4。如果用PortOpen属性打开一个并不存在的端口时,MSComm控件会产生运行时的错误。还需注意的是必须在打开端口之前设置CommPort属性。Settings:用于设置初始化参数。以字符串形式设置或返回波特率、奇偶校验、数据位和停止位4个参数。Settings属性值由4部分设置值组成,第一部分为波特率,其可选值为110,300,600,1200,2400,9600(缺省),14400,19200或28800。第二部分为奇偶校验,E表示偶校验,0表示奇校验,N表示不校验,S表示空格校验,M表示符号校验。第三部分为数据位的值,其值可为4,5,6,7和8(缺省)。第四部分为停止位位数,可选值为1(缺省),1.5和20。PortOpen属性:用于设置或返回通信串口的状态(开或关)。PortOpen属性为Boolean类型,值为True时表示打开串口,值为False时则表示关闭串口并清空接收和发送缓冲区。nput属性:从接收缓冲区读取数据,类型为Variant。它从输入缓冲区中删除一组字符。删除字符的个数由工nputLen属性决定,返回值的类型由InputMode属性决定。InputMode属性:读取或设置从接收缓冲区读取数据的格式,类型为Integero。InbufferCount属性:读取接收缓冲区中的字节个数,类型为工ntegero。InbufferSize属性:读取或设置接收缓冲区的大小,类型为Integer。缺省值大小为1024字节。Output属性:用于向发送缓冲区写入数据,可以传输文本数据或二进制数据。该属性在设计时无效,在运行时为只读。OutBufferCount属性:用于读取发送缓冲区中的字节数。可以通过将该属性设置为0来清空缓冲区。OutBufferSize属性:用于读取或设置发送缓冲区的大小。RTHreshold属性:设置在OnComm事件激活一前接收缓冲器收到的字节数。当接收到的字节数达到RTHreshold设置的字数时,就会引起OnComm事件。CommEvent属性:在通信错误或事件发生时都会产生OnComm事件,CommEvent属性存有该错误或事件的数值码。4主控PC机软件设计和界面显示4.1软件设计利用MSComm控件编写主控机程序,简单快捷,灵活方便。在前面的章节已简要的介绍了MSComm串行通信控件加入方法及其属性,在此就不再叙述。该控件用于支持应用程序对串口的访问,为应用程序提供了通过串行接口收发数据的简便方法,在应用程序中加入MSComm控件可以非常方便地实现对计算机串口的通信管理,使用MSComm控件,程序员只需设置其相应的属性,然后通过调用Output属性发送数据,并且当有交换数据到达时会自动响应和做出处理,因此用其实现计算机间的数据传输相当简单,程序员可以轻松地用其实现串口访问。根据主从式测控系统得基本要求,本系统的PC机与单片机采用的是主机查询、从机中断的通信方式,在通信过程中需要加入地址信息,首先要进行地址识别。整个通信过程采用轮询的方式,只有当PC机对从机进行访问时,从机才能做出应答。从机则一直处于等待串行中断状态,一旦接收到数据,就进入串行中断进行数据处理。在进行数据传输时,PC机对各测量节点端口进行查询,所有测量节点都处于监听状态,等待主控PC机发出命令。当主控PC机发出命令时,所有测量节点都接收并且将其中的地址帧和自己的地址相比较,如果相同则继续接收后面的指令或数据,如果不同则不予理会。主控机在得到各测量节点的确认后准备开始接收数据,否则中断线路查询下一单片机端口,直到接收完毕。本测控系统采用的是半双工异步通信,主控PC机发给各测量节点的为控制命令帧。各测量节点发给主控机的数据有两种:一种是应答帧,一种是数据帧。各测量节点在接收到主控机命令或数据发送完毕时都发出应答帧,并转为接收状态,在接收到主控机的命令后进行操作,在不发送数据时,进入中断状态。主控机在发送指令后如果接收到各测量节点的应答则认为命令发送成功,可以发送下一命令,否则重新发送命令。若本次查询的测量节点没有数据传输,则重置地址帧,对下一地址的测量节点进行查询。这样确保了在任一时刻,主控机机只与一个测量节点进行通信,有效防止了总线冲突问题。其主机查询方式流程图如图3所示。图3主机查询方式流程图实现过程中有以下关键点需要注意:(1)数据帧的产生。由于PC机没有像单片机一样的串口工作方式,因此不能自动生成地址帧。设计软件时应人工生成地址帧。单片机串口工作在方式2时数据帧的格式如图2所示:A7

A6

A5

A4

A3

A2

A1

A0

1即八位数据后加一位“1”。因此可以利用MSComm控件中的奇偶校验位来模拟,方法是:form1.Comm1.ParityCheck:=false;form1.Comm1.Parity:=mark;form1.Comm1.ParityCheck:=true;这样在发出的一个字节的数据末尾会加上一个“1”,也就形成了地址帧。当然在发送其他数据时,应该先把最后一位清零“0”form1.Comm1.Parity:=space;form1.Comm1.ParityCheck:=true;(3)校验和的产生。为了增强数据传输的准确性,采用校验和的检验方式。本设计里校验和的产生分两部分,一部分是发送数据之前,要对发送的数据进行累加产生校验和发送出去,这个校验和称为源校验和(sorcechksum)。另一部分是在接收数据是,要将接收到的数据累加产生一个目的校验(orgchksum)和用来与接收到的校验和相比较。(4)数据的接收和发送是将一组数据看成一个String类型数据来操作,因此在发送之前应该用Pchar()函数对要发送的数据进行转:WriteCommData(Pchar(@outstr[i]),1);

//参数分别为发送字符串首地址,要发送的字符串数。Spcomm控件中的数据接收发式是事件触发方式。OnReceiveData:procedure(Sender:TObject;Buffer:Pointer;BufferLength:Word)ofobject.当输入缓存有数据时将触发该事件,在这里可以对从串口收到的数据进行处理。Buffer中是收到的数据,bufferlength是收到的数据长度。因此对于PC机来说可以通过bufflength的长度来区分数据和从单片机返回的确认信号。本设计规定命确认信号为一个字节,而数据的传输由于加上校验和至少为两个字节。(5)为了防止实际工作中当向某台从机发送地址帧或命令字后,如果失去接收主机发出的地址数据的机会,或因某测量节点不工作而使系统陷入“死循环”程序而不能正常工作。为了避免这种情况的发生,在设计时还要考虑一定的容错机制,本设计中采用的方法是在发送完地址帧和命令后,程序开始计时。如果超过一定时间还没收到返回确认信息,就重发刚刚发送的数据如果重发3确认还没收到确认信息,即报告出错,并记录该出错测量节点地址。4.2界面设计及显示4.2.1界面设计中美的需求与导向作用人们对美的向往和追求是与生俱有的。显然没有人愿意丑化自己的程序,也没有用户嗜好丑陋的界面。软件开发者要设计美,用户要享受美,所以界面的美是开发者与用户的共同需求。界面美的概念很抽象,以致让人无法说清楚什么是界面的美。但它同时又很现实,以致人人都可以去欣赏和感受界面美,并且挑剔美中之不足。美学不是一种量化的学问,如果因此而轻视美学指导,必将导致在设计过程中光依赖程序员个人的经验与感觉。由于程序员接受的教育主要是如何使计算机完成工作,而不是人如何工作,因此仅靠程序员主观想象设计而成的界面往往得不到大众用户的认可。美的界面能消除用户由感觉引起的乏味、紧张和疲劳(情绪低落),大大提高用户的工作效率,从而进一步为发挥用户技能和为用户完成任务作出贡献。从人机界面发展历史与趋势上可以看出人们对界面美的需求,以及美在界面设计中的导向作用。界面设计已经经历了两个界限分明的时代。第一代是以文本为基础的简单交互,如常见的命令行,字符菜单等。由于第一代界面考虑人的因素太少,用户兴趣不高。随着技术的发展,出现了第二代直接操纵的界面。它大量使用图形、语音和其它交互媒介,充分地考虑了人对美的需求。直接操纵的界面使用视听、触摸等技术,让人可以凭借生活常识、经历和推理来操纵软件,愉快地完成任务。更高层次的界面甚至模拟了人的生活空间,例如虚拟现实环境。界面的美充分体现了人机交互作用中人的特性与意图,越来越多的用户将通过具有吸引力而令人愉快的人机界面与计算机打交道。4.3主界面窗体的设计程序的主界面能够响应各种操作,并调用程序的各个模块和功能,因此主界面主要实现的功能就是调用本系统的所有其他功能,包括参数设置、发送数据、接收数据、显示数据、查看数据以及清除数据等功能。首先创建一个基于Standard.EXE的项目。打开VB,从“File”菜单中选择“NewProject”然后选择建立Standard.EXE项目即可,这样就创建了标准的项目文件,在此标准项目中我们可以添加各个按钮、组合框、文本框、复选框等控件来完成对主界面的设计。程序的主界面应当能够响应各种操作,并调用程序的各个模块和功能。本程序的基本功能是依靠MSComm控件实现的,首先要将其添加到窗体中。为了响应发送接收等操作,在窗体中添加了几个CommandButton和添加下拉式菜单并通过相应的单击事件进行响应。对于接收回显方式的标志信息,采用4个复选框CheckBox和一个滑轨Slider来实现。对于发送模式的标志信息,采用一个带有下拉菜单的组合框实现选择的功能。对于接收到的数据,也要在主窗体中显示。接收回显的功能较为复杂,我们将其作为一个单独的模块来实现。4.3.1接收显示部分的实现(1)接收显示模块HexEdit的功能分析为了便于进行串行口调试,希望能够同时查看接收到的数据的十六进制编码和ASCII码,此外,还希望可以调节每行显示的字符数。在此采用了4个TextBox的组合来完成,分别显示地址位、十六进制编码、ASCII码以及预留空白区。当一行显示的字符较多时,或者行数较多时,显示区不能完全显示所有的数据,采用了滚动条来实现。(2)界面设置在主窗体上添加一个Caption为接收显示的Frame,然后再其上添加名称txtReceive的TextBox,用于显示接收到的数据或文本。对于接收显示方式的标志信息,采用4个复选框和一个滑轨来实现;下来再在名称为txtReceive的TextBox上添加一个VscrollBar、一个HscrollBar和一个Frame,这一个Frame对原来的txtReceive起到了屏蔽的作用,然后在这个Frame内添加4个TextBoxa要完成这一部分的功能,还要添加一个Module。从“Project”菜单选择“AddModule",并将新添加的Module命名为HexEdit.Bas,然后在此文件中添加有关接收和显示的代码。(3)接收功能的实现当CommEvent属性发生变化时,将触发主窗体中MSComm控件:MSCommControl_OnCommo因此可以在该过程中进行检测,接收数据。由于在显示时要同时显示十六进制数据和ASCII码,因此接收过程可以不区分数据格式,而都先以十六进制形式接收,而后利用转化功能分别显示。接收的过程为:当OnComm事件发生时,检测CommEvent的值,当它为CommEvReceive时,就知道接收到了数据。此时,检测全局变量blnReceive)而判断是否应该读入数据,然后打开串行口,设置接收模式为二进制模式,并获得数据量信息。接下来要重新定义动态字节数组的大小,从而进行接收。(4)转换功能的实现在主窗体中,实现了从文本表示的十六进制数向二进制数据的转化,现在要实现的是一个相反的过程。在处理时每读取一个字节,将其作为一个整数用16去整除,商即为相应的高位值,余数为相应的低位值,然后再把它们转化为相应的字符即可。当把数据作为文本输出时,会受到一些限制,这是因为有些ASCII码是无法作为文本输出的,对于这样的情况,将其转化为一个“.”输出。(5)输出显示功能的实现在进行界面设计时,并没有调整显示部分控件的位置和大小,因此首先要进行显示模块的初始化。希望显示控件能够自动的与txtReceive设置的区域相适应,因此利用txtReceive的属性来对显示控件进行设置。为了实现滚动的功能,采用两种不同的方法来分别实现水平滚动和竖直滚动。由于Frame的限制,当它里面的控件超过它的边界时,将不再显示越界的部分。这样可以通过改变文本框的输出位置,从而实现在Frame界定的视窗中看到文本框的不同部分,可以用同样的方式实现水平或竖直的滚动。在接收时,在水平方向接收将会有最大限制,但如果不断的接收数据,竖直方向将会产生很大的数据显示范围,如果单单依赖调文本框的位置的话,那么就极易造成越界。解决这一问题的方法是:不断改变文本框的高度,而在适当的时候改变输出的内容,从而实现滚动的功能。4.3.2主控机系统实现本系统采用面向对象可视化语言VisualBasic6.0,根据系统功能开发上位机系统管理软件,其中包括温室环境数据库的开发,模糊控制算法编写。VisualBasic语言中包含各种控件便于程序开发,如使用MSComm控件可完成通信程序的开发。系统设计简洁,功能齐全,运行在VB自发的温湿度主控系统应用软件上,会出现一个独立的界面。系统数据管理界面,主要是显示温室的状态,显示实时采集的数据以及系统设定的上下限数据;系统具有数据查询界面,通过此界面可观察温湿度数据的长期变化,可查询历史数据。界面显示如图4所示:4.3.3参数设置在主界面点击帮助,在弹出的菜单中选择参数设置。即打开如图5窗口。程序设置:(1)巡检间隔:第一轮巡检与第二轮巡检之间的时间间隔,单位:秒。(2)标题显示:主界面系统标题。现场设置:(1)输入1名称、输入2名称、输出1名称、输出2名称:相应的输入、输出在主界面中的提示,以方便查看现场输入、输出状态。(2)可用:指明输入1、输入2、是否报警,输出1、输出2是否显示当前状态。具体操作步骤:(1)查看系统前端:可按上一个、下一个找到想要杳看的系统前端。(2)添加系统前端:输入地址号、地址名称等相应信息,然后点击添加按钮,即可添加一个系统前端。(3)修改系统前端:按上一个、下一个找到想要修改的系统前端,修改相应内容,点击修改按钮,即可将系统前端信息修改为当前显示的信息。(4)删除系统前端:按上一个、下一个找到想要删除的系统前端,点击删除,即可将当前项删除。5系统调试PC机和各测量点之间的数据传送通过RS-485总线来实现的。所以PC机与各测量点之间的调试是通过RS-485测试的过程,最后达到预期的设计目的。只有一个测量数通过改变拨码开关能显示4个不同的地址点的温湿度,如图4所示。本系统采用面向对象可视化语言VisualBasic6.0,根据系统功能开发上位机系统管理软件,其中包括温室环境数据库的开发,模糊控制算法编写。VB语言中包含各种控件便于程序开发,如使用MSComm控件可完成通信程序的开发。系统设计简洁,功能齐全,主界面如图4所示。通过硬件调试确保系统硬件工作正常后,对系统进行软件调试。软件调试由两部分完成,软件仿真调试和软件固化调试。(1)软件仿真调试,调试工具采用上海星研START51L在线实时仿真器,对系统软件分模块逐步调试,使系统完成满足设计功能。(2)软件固化调试,将仿真运行产生的二进制代码,通过芯片烧写器固化到E2PROM进行系统脱离仿真器运行,调试解决脱机运行出现的各种问题。如图5所示,系统统数据参数设置界面,主要设置采集点地址及现场名称等参数信息。如图6所示,系统的数据查询界面,通过此界面可设置要查询历史数据的采集地址和起止时间。如图7所示,系统的数据记录曲线界面,在此界面上可直观的观察温湿度采集历史数据。图4主控PC机界面显示图5参数设置界面图6历史记录查询时间范围设置界面图7历史记录曲线系统调试完成后在我校电子信息工程专业教学楼进行了测试运行,结果表明,系统实用性、可靠性和各类功能,满足生产实际的需要。结束语到这里基于PC机的温湿度集中处理和显示软件设计已经全部完成了。全文详细的介绍了系统的架构、系统各个功能部件的设计方案和实现原理、以及主控PC机显示界面的设计。总体来说,本文设计的主从式测控系统具有一定的实用性、通用性及可扩展性。PC机可充分利用其在数据处理、模拟仿真、图像处理、多媒体、网络通信方面的强大功能,既可以通过软件对单片机进行控制,又能利用Microsoft的Office系列工具对接收的数据进行处理、分析和显示。此测控系统本着“实用、方便”目的而设计的。它主要具有以下几个特点:(1)PC机通信软件可以独立设置。用户可选择波特率、奇偶校验、数据位等通信格式,以适应不同的串行通信要求。(2)既适合于近距离通信,又适合远距离通信。而远程通信系统,对数据传输的距离提出了较高的要求。若将PC机与AT89C51单片机的RS-232串行口直接相连,传输距离只有十几米,无法满足系统的要求。为此,可以采用RS-232到RS-485的转换电路,使得PC机与AT89C51间接相连,以RS-485方式进行通信,这样可大大增加传输距离,最大传输速率可达lOMbit/s(传输距离15m时),传输速率降至100kbit/s时,最大传输距离可达1200m。(3)微机系统可实现无人值守。系统开始工作后,所传输的数据会按照程序要求完全记录下来,工作过程也能按要求进行相应的操作。(4)本系统所包含的各种元器件均是常用的器件且性价比比较高,因此综合下来整个系统的性能价格比就比较高,具有很好的实用性。参考文献[1]潘世永,郑萍,李英.集散控制系统的发展及展望.自动化仪器仪表,2003.[2]陈泽宗,郭红星,严杰.总线结构分布式测控系统通信功能的实现[fJ].武汉水利电力大学学报,199932[3]朝青.PC机及单片机数据通信技术仁[M].北京:北京航空航天大学出版社,2001[4]宋向荣.智能温室计算机集散系统的研究与开发「D].杨凌:西北农林科技大学,2002.[5]徐信福.激光打靶多路数据采集处理系统[D].大连:大连理工大学,2005.[6]石东海.单片机数据通信技术从入门到精通[M].西安:西安电子科技大学出版社,2002.[7]孙德坤.基于FPGA的HOST与多单片机的串行通信[D].大连:大连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论