单片机水温控制系统设计说明.doc
. 永城职业学院毕 业 论 文论文题目:单片机水温控制系统题 目 单片机水温控制系统班 级 机电085班专 业 机电一体化技术学生 耿海涛指导教师 艳涛 日 期 2011年5月30日单片机水温控制系统摘要在现代冶金、石油、化工与电力生产过程中,温度是极为重要而又普遍的热工参数之一,在环境恶劣或温度较高等场合,为了保证生产过程正常安全地进行,提高产品的质量和数量,以与减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准。如何更快、更准确的控制所需的温度是温度控制技术的关键。本文介绍的是一个以51单片机为控制核心的水温控制系统,此系统通过人机交互设定控制温度,采用增量型PID算法,通过脉宽调制控制电炉加热,最终实现水温的恒定。该系统具有温度超调量小、调节时间短、静态误差小、测量精确、恒定温度与设定温度偏差小等优点,且控制方便、显示直观、性能稳定、可靠性高关键词:温度控制, MSComm ,串行通信,89S51 单片机,VC,监控系统目录第一章简介4第二章硬件系统设计72.1总体硬件设计72.1.1控制系统的总体硬件结构72.1.2 51单片机最小系统板简介72.1.3 AT89S51性能简介82.1.4硬件系统各功能模块设计92.1.5键盘与显示电路102.1.6串口通信接口电路122.1.7可控硅调功控温电路132.1.8掉电保护电路16第三章单片机与PC通信183.1工作方式193.2 主要属性193.3 单片机与PC机串口通信软件设计213.3.1 PC上位机软件设计213.3.2串口调试中要注意的几点:22第四章监控软件的设计与编程实现234.1水温监控软件实现的功能234.2软件开发环境的选择234.3程序类别介绍:26总结29辞30参考文献31第一章 简介与时准确地得到温度信息并对其进行适时的控制,在许多工业场合中都是重要的环节.水温的变化影响各种系统的自动运作,例如冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的水处理温度要求严格控制。对于不同控制系统,其适宜的水质温度总是在一个围。超过这个围,系统或许会停止运行或遭受破坏,所以我们必须能实时获取水温变化。对于,超过适宜围的温度能够报警。同时,我们也希望在适宜温度围可以由检测人员根据实际情况加以改变。单片机对对温度的控制是工业生产中经常使用的控制方法.自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展。单片机主要用于控制,它的应用领域遍与各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以与数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、部配线少、成本低,制造、安装、调试与维修方便。随着电视监视器材、计算机技术的日益发展,图形监视系统在电视系统或监控场所得到了广泛地应用。用图形来实时显示被控对象(摄像机、终端设备等)在操作过程中的状态,具有清晰明了、形象直观且可以与时处理反馈信息。它比数字仪表包含的信息量大得多,因此使现场监控人员的工作方式得到了改进,效率也由此得到了很大的提高。现场电视监控系统由实时控制系统、监视系统与管理信息系统组成。实时控制系统完成实时数据采集处理、存储、反馈的功能;监视系统完成对各个监控点的全天候的监视,能在多操作控制点上自动或手动切换多路图像,能遥控前端设备,能使摄像镜头自动对焦等;管理信息系统完成各类所需信息的采集、接收、传输、加工、处理,是整个系统的控制核心。目前的图形实时监控软件通常用VC或VC+开发,它具备编译各种可视化程序的功能,可以使计算机通过监控界面达到对被控对象的各种实时操控。 因此,我们选择设计一个简易的水温控制系统,采用单片机进行控制的水温自动控制电路,使系统能简单的实现温度的控制与显示,并将PC 机强大的软硬件资源、友好的人机界面和AT89S51单片机优秀的实时控制功能、灵活的编程能力有机的结合起来, 并且通过软件编程能实现各种控制算法,使系统具有控制精度高的特点,对实现对水温的自动控制,具有重大的现实意义。不但能用于学校的实验教学与其它一些研究课题的开发,同样能用于工厂多点温度的控制,提高工业企业自动化水平。方案选择与论证1)方案一:本方案是采用传统的模拟控制方法(方案框图如图1-1),选用模拟电路,用电位器设定给定值,采样放大的信号将反馈的温度值与给定的温度值比较后,根据比较结果控制当前温度显示,决定加热或者不加热。其特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静差大,不稳定。系统受环境的影响大,不能实现复杂的控制算法,而且不易实现对系统的控制与对温度的显示,人机交换性能差。数据采集信号放大温度预置比较器信号放大控制开关图1-1模拟控制框图2)方案二:此方案采用单片机对系统进行智能化控制,采用单片机89c51为核心。使用温度传感器DS18B20采集温度变化信号,并通过单片机处理后去控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制与显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。此方案不仅具有功能强、体积小、价格低的优点,而且可编程,智能化温度控制技术的广泛采用使得系统灵活性大大增加。传感器采样A/D8051CPU显示键盘控制电路电炉图1-2方案二模拟控制框图通过两种方案的比较分析,若采用前一种方案,选用模拟电路将反馈的温度值与给定的温度值比较决定是否加热,从输入采样到输出控制的各种误差产生因素较多,精度难以达到要求,而采用单片机就可充分发挥其优点,将误差减小到最小,还可以通过监控软件方便的实现实时控制,而且在试验过程中,根据试验数据进行误差补偿和软件校正,明显的改善了方案一的不足与缺点,其优点是传统电路无法比拟的。所以我们选定利用单片机实现温度控制的第二种方案。第二章 硬件系统设计2.1总体硬件设计2.1.1控制系统的总体硬件结构图2-1控制系统的总体硬件结构图控制系统的总体硬件结构图如图2-1。本系统采用AT89S52单片机作为下位机,完成水温检测与控制。PC机为上位机,与单片机实时通信,实现参数显示、修改、保存等功能。单片机最小系统2.1.2 51单片机最小系统板简介51单片机最小系统板是将控制软件、单片机实验板、ISP 下载线系统有机组合的套件,可轻松地将编绎好的代码下载到实验板上进行验证或演示,直接用USB 接口5V 电源供电,板上资源:1、8路LED、2、6位数码管显示 3、1个蜂鸣器4、4*4键盘5、3路5V电源输入/输出6、MAX232工业标准RS232串行接口电路。7、并口的ISP下载线电路,可作为ISP编程器用8、ATMEL新型FLASH型单片机AT89S529、所有I/O端口引出,方便用户扩展,用户可用万用板制作扩展模块2.1.3 AT89S51性能简介 AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,本系统使用AT89S51单片机作为微处理器。AT89S51引脚图如图2-1。图2-1AT89C51管脚图 图2-2微处理器电路图它主要具有如下特点:完全兼容51全部字系列产品,4K字节可编程FLASH存储器,0Hz- 33 KHz全静态工作,三级程序存储器锁定,128*8位部RAM,32条可编程I/O线,两个16位定时器/计数器,6个中断源,双工UART串行通道,看门狗(WDT)电路,片振荡器和时钟电路,ISP在线编程功能。AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作掉电模式冻结振荡器,因而可以保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。2.1.4硬件系统各功能模块设计温度检测电路温度检测用DS18B20温度传感器, DS18B20是Dallas公司推出的单线数字式测温芯片,它能在现场采集温度数据,并将温度数据直接转换成数字量输出。采用DS18B20主要在于以下特性:适应电压围更宽,电压围:3.05.5V,在寄生电源方式下可由数据线供电独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温S18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路温围55125,在-10+85时精度为±0.5可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度更快测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20部结构主要由4部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配制寄存器。其部结构图如图2-3所示。图2-3DS18B20的部结构图图2-4 DS18B20的管脚排列图DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.062 5/LSB形式表达,其中S为符号位。温度检测控制电路图见图2-5。图2-55温度检测控制电路图2.1.5键盘与显示电路显示器的扫描方式一般有静态显示和动态显示,对于多位LED数码显示器,通常采用动态扫描方法,即逐个地循环地点亮各位显示器。由于人眼具有视觉残留效应,虽然在任一时刻只有1位显示器被点亮,但是看起来与全部显示器持续点亮的效果基本一样。图2-6显示电路此电路中的LED数码显示器是8段共阳极接法,所以显示0、1、2、3、4、5、6、7、8、9时分别对应编码C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H,要显示小数点时,只需再将相应的编码的最高位置0。由于LED显示器的段电流为8mA左右,所以不能由单片机直接驱动,因此接上驱动器74LS245 八双向总线收发器,而LED显示器的公共端的驱动电流较大,8段全亮时需约4060mA。因此在单片机与LED的公共端之间接上三极管做为电流驱动器以提高驱动能力。此三极管采用的是PNP型。键盘采用非编码键盘结构,目的为了简化硬件电路,图2-13表示了此4*4行列式键盘的结构示意图。4*4表示有4根行线和4根列线,在每根行线和列线的交叉点上均匀分布1个单触点按键,共16个按键。其中定义09十个数字键,小数点,开/关键,显示参数键,设定值键。图2-7键盘电路2.1.6串口通信接口电路为了提高串行通信的可靠性,增大通信距离,一般采用标准串行接口、RS-232C、RS422A等标准接口来进行串行通信。EIA RS-232C是异步串行通信中应用最广泛的标准总线,它包括了按位串行传输的电气和机械方面的规定。在微机通信中,通常使用RS-232C接口即PC机的COM口,其引脚定义如图8所示。图2-8RS-232C引脚定义图PC机的COM 口,输入输出为RS-232C电平,而51单片机串行口的输入输出均为1frL电平。由于TTL电平和RS-232C电平互不兼容,所以两者接口时,必须进行电平转换。电平转换最常用的芯片是传送线驱动器MC1488和接收器MC1489,其作用除了电平转换外,还实现正负逻辑电平转换,如图2-9和图2-10所示。图2-11是单片机与ItS-232标准接口电路。图2-9MC1488引脚示意图图2-10MC1489引脚示意图图2-11单片机与ItS-232标准接口电路图2-12 PC机与单片机通信接口电路2.1.7可控硅调功控温电路可控硅调功控温具有不冲击电网,对用电设备不产生干扰等优点,是一种广泛应用的控温方式。调功控温指的是在给定周期控制可控硅的导通时间,从而改变加热功率来实现温度调节,设采取(控制)周期为T,在T 周期工频交流电的半周波长为N ,如全导通时额定加热功率为PH,则实际平均加热功率P与T 周期实际导通的半周波数n成正比,即P=n*PH/N.可控硅调功控温电路如图所示: 图2-12图中TL494为双端脉宽调制器,利用其脉宽调制功能构成脉冲形成与脉宽调制电路,其功能框图与引脚图如图2-13所示 图2-13 TL494功能框图与引脚图新型器件MOC3041的使用使调功器电路变得非常简练,它集光电隔离,过零检测功能于一身,具有体积小,功耗低,抗干扰能力强,无噪声等优点,图2-14 为其构成的可控硅基本驱动电路。IFT16R115TRSAC2过零检测4CS3RG RL MOC3041RS,CS为吸收电路,并接在功率可控硅的阳极与阴极之间,起保护作用。R11为触发器输出限流电阻。RG:晶闸管的门极电阻,防止误触发,提高抗干扰能力。掉电检测与保护电路在工业控制中,掉电事件可能产生严重后果,本系统能与时检测到交流电源下降,在电路动作的滞后时间,将断点状态保护在后备电池供电的存储器,来电后实现断点补偿运行。采用LM311比较器,其引脚功能外形结构如图2-15所示,它是一种应用较广泛的集成电压比较器,具有输入偏流小,电压围宽(从标准的±15V电源到单一的+5V电源均能正常工作)。 图2-15 LM311引脚功能外形结构整个掉电检测电路如图2-19所示,将LM311设为射极输出方式。以3V为临界,形成外部中断的触发脉冲,将输入电压与3V 参考电压相比较,当输入VI大于3V 时,输出为高电平;而当输入小于3V 时,输出为低电平。凌阳单片机的B口除具有常规的输入/输出功能外,还具有特殊功能,其中IOB2位可为外部中断源信号的输入,IOB2位根据输入的电平来判断是否发出中断请求。 图2-16:掉电检测电路与其输出2.1.8掉电保护电路该电路如图2-17所示,当外部VCC=+5V时,比较器LM393反相端电压高于正相端,LM393输出低电平。故原片选信号低电平有效地加到6264的20脚,同时26脚为高电平,6264进行正常的读写操作,而当VCC下降到一定程度时,比较器反相端电压低于正相端时,LM393输出为高电平。故20脚为高电平,26脚为低电平,此时6264的VCC 由后备3V干电池供电,从而对所存数据进行保护。图2-17: 掉电保护电路选用HITACHI HM6264B ,其静态RAM的容量为64K位,6264的引脚图如下:其中CS1,CS2都为片选信号,WE控制数据的写入,OE控制信号的输出,图2-18 6264引脚图其部结构图与控制表如下:图2-19 6264部结构图表2-5 6364控制表WECS1CS2OEMODEVCC ,CurrentI/O PINHNOT SELECTED (POWER DOWN)Isb,Isb1HighZLNOT SELECTED (POWER DOWN)Isb,Isb1HighZHLHHOUTPUT DISABLEIccHighZHLHLREADIccDoutLLHHWRITEIccDinLLHLWRITEIccDin第三章 单片机与PC通信在经过了对水温控制流程的确定后,就要开始控制方案,以实现课题。由于本人主要是做监控软件的实现,所以本章硬件方面研究了单片机与计算机的通信,以实现参数的传送,重点是对监控软件的实现做详细的说明。水温控制对实时控制要求比较高,需要时刻关注各个参数的变化,以与随时可以调节运行过程中设备的运行状态。作为目前自动化工业中应用较为普遍的一种控制系统,单片机具有优秀的实时控制功能、灵活的编程能力小、价格适宜等特点。因此我们决定在我们的这个课题里使用89C51单片机来实现对整个过程的控制。但是,由于要求能通过计算机来实现运行中对参数的观察以与控制,这就需要一个可以在PC上显示出来的人机界面。故决定采用PC单片机这一系统来完成对整个处理过程的控制。采用这一控制系统可以将计算机、单片机与操作人员的人机接口结合在一起,使单片机能利用计算机丰富的软件资源,而计算机能和单片机的模块交互存取数据。以PC机为基的控制容易编程和维护用户的利益,开放的体系结构提供灵活性,最终降低成本和提高生产率。而且使用PC+单片机控制时,即使PC出现了故障,无常工作的时候,单片机仍然能独立的完成控制任务而不会打断。串行通信的原理与通信线路连接串行通信基本原理串行通信端口(Serial Communication Port) 在系统控制的畴中一直占据着极其重要的地位,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。现在,串行通信端口(RS - 232 ) 是计算机上的标准配置,通常有COM1和COM2 两个端口。在工业应用领域中,RS - 232 串行通信端口的使用相当普遍。串行通信是把数据的每个字节分解为单个的二进制位并依次地传送,因此在串行通信中只需要一根数据线,比较适合远距离传输。串行通信可分为异步通信和同步通信,异步通信比同步通信简单,技术上易于实现,适用于数据的随机发送/ 接收。RS - 232 串行通信端口采用的是全双工连接的异步串行通信传输方式。通信线路连接串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。图3-1通信线路连接PC机的某个串行口通过电缆线与RS232收发器MAX232的2 3 2电平端口三线交叉连接,如图1所示 MAX232的逻辑电平端口与单片机的串行口相连。PC机RS232的9针连接器的4、6、7、8脚不用连接。PC与单片机通信是采用MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。Microsoft Communications Control(简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Eventdriven)方法,一是查询法。串行通信控件MSComm32. OCX提供了使用RS - 232 进行数据通信的所有协议,我们可以使用不同的工作方式来处理和解决各类通信软件的开发设计问题。Visual C+为该控件提供了标准的事件处理函数和过程,并通过属性和方法提供了串行通信的设置,我们可以通过设置不同的属性来完成所要求的通信功能。3.1工作方式具体的来说,MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 1)事件驱动方式事件驱动是处理连接端口通信的一种有效方法,可以利用OnComm 事件捕获并处理通信中发生的事件和错误,通过分别对每个CommEvent 属性值编程即可完成对各个事件或错误的处理,实时性较强。2)查询方式 可以在每个重要的程序之后查询MSComm控件某些属性(如Comnflvent属性和InBufferCount属性)的值来检测事件和通信错误。这对小的自含程序可能比较常用。3.2主要属性MSComm控件有许多重要的属性其中几个重要的属性如下:·CommPort:设置或返回通信端口。程序必须制定所要使用的串行端口,Windows 系统会使用所设置的通信端口与外界进行通信。程序也可借助此属性返回所使用的连接端口。为1时对应COM1;为2时对应COM2。·Settings:设置或返回波特率、奇偶校验、数据位和停止位参数。使用RS - 232 通信的双方,Settings 必须完全一样,彼此才能顺利地通信,否则双方将无确接收接收到彼此所传输地信号。·PortOpen:用于设置或返回通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开,而在使用完毕之后,也必须执行关闭操作。串行通信端口各项功能都是在PortOpen 的True 与False 之间完成的。·Output:将数据写入发送缓冲区。当程序需要传输字符到对方时,可将字符串使用此命令输入输出缓冲区中,一般的数据均是在送达输出缓冲区厚随即被送出。·Input:读取或删除缓冲区中的数据流。·InputLen:设置和返回Input属性从接收缓冲区中读取的字节数。·InputMode:设置和返回的类型。该属性为0时,Input属性所检取的数据是文本;为1时,Input属性所检取的数据是二进制数据。这个属性对与单片机的通信尤为重要。本次采用的主要是事件驱动方式,因为这样更容易使程序响应,可靠性高。在通信之前,先要对端口进行初使化的操作。if(m_MSCOMM.get_PortOpen()m_MSCOMM.put_PortOpen(FALSE);/*判断端口是否已被打开,如果也打开,则先关闭*/m_MSCOMM.put_CommPort(port);/选择端口if(!m_MSCOMM.get_PortOpen()m_MSCOMM.put_PortOpen(TRUE);/*判断选择端口是否成功,如果未被占用,且可正使用则打开此端口*/else tempst.Format("COM%d被其它占用",port);MessageBox(tempst);return ;/* 如果打开失败,显示失败消息*/初使化成功用即可使用,向单片机发送数据,只需使用MSComm控件提供的put_Output方法即完成发送任务,由于接收采用事件驱动方式所以只需在MSComm 控件的 OnComm 事件处理函数中加入处理代码,如下所示。VARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata2048; /设置BYTE数组 An 8-bit integerthat is not signed.CString strtemp;if(m_MSCOMM.get_CommEvent()=2)/*事件值为2表示接收缓冲区有字符*/variant_inp=m_MSCOMM.get_Input();/读缓冲区safearray_inp=variant_inp;/VARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize();/得到有效数据长度for(k=0;k<len;k+)safearray_inp.GetElement(&k,rxdata+k);/转换为BYTE型数组for(k=0;k<len;k+)/将数组转换为Cstring型变量BYTE bt=*(char*)(rxdata+k); /字符型strtemp.Format("%c",bt); /将字符送入临时变量strtemp存放m_ReadBuffer+=strtemp; /加入接收缓冲对应字符串3.3 单片机与PC机串口通信软件设计3.3.1PC上位机软件设计PC机和单片机在进行通信时,首先分别对各自的串行口进行初始化、确定串行口工作方式、设定波特率、传输数据长度等,然后才开始数据传输,这些工作是由软件来完成的,因此对PC机和单片机均需设计相应的通信软件。本人在本次毕业设计中主要负责的即是PC机上位机软件的设计。1)实现功能本软件为串口通信调试软件,利用键盘在PC机中输入一个数据,然后用鼠标点击通信命令按钮,PC机就将此数据发给单片机。单片机收到此数后再原样发回,PC机收到后显示窗体上。试验者可通过肉眼比较发送和接收的两个数据,检验通信是否成功。3.3.2串口调试中要注意的几点:同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 路焊接要牢固,不然程序没问题,却因为接线问题误事; 本章小结:在采集系统实现上,采用了性价比较好的89C51单片机为主的采集电路,将更多的任务由软件实现,这样可以用更少的端口实现数据外存储,解决了单片机外扩存储器线路复杂问题,从而减小了单片机采集电路的体积,实现尽可能的系统最小化,以便于携带在信息转送PC机问题上,采用串口中断,利用新型转换芯片MAX232,使得TTL电平到RS-232电平的转换电路更加简单实用,单片机采集系统的体积相应减小另外,PC机采用VC编程,VC提供了强大功能的通信控件MSCOMM,该控件可设置串行通信的数据发送和接收,对串口状态与串口通信的信息格式和协议进行设置为了充分利用高级语言的特点,在PC机中增加人机友好界面,由个人来检测和控制运行第四章 监控软件的设计与编程实现在自动化领域,自动化监控系统的发展愈来愈受到人们的重视。随着微机与单片机技术的不断发展,采用微机与单片机构成的主从式监控系统越来越多。它既利用了单片机价格低、功能强、抗干扰性能好等优点;又利用了Windows 操作系统的高级用户界面,操作方便灵活。在工业控制中,这种主从式监控系统通常由上位机PC 机和下位机为单片机的二级系统构成。单片机在操作现场常用于数据数据采集和现场控制,而PC 机则实现数据的处理、显示以与向单片机下传一些指令性数据。所以,PC 机与单片机之间快速有效的通信是实时状态监控的关键。4.1水温监控软件实现的功能本监控系统是对水温控制系统的监控,所以力求使它能实现水温控制系统的基本控制功能,并且能动态的模拟和显示参数。主要功能包括:1)设计友好的界面,通过软件的操作可以方便、直观的控制水温控制系统。2)从界面能够反映各个参数的变化趋势,并且对重要的数据进行保存,以便日后进行数据分析。3)能够与时了解报警状态,以便采取相应的故障处理。4.2软件开发环境的选择本监控软件采用Visual C+作为编程语言。它是微软公司推出的开发Win32环境(Window 95/98/NT)程序,面向对象的可视化集成编程系统。它不仅具有程序框架自动生成,灵活方便的类管理,代码编写和界面设计交互操作,可开发多种程序(应用程序,动态库,ActiveX控件等)等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE、WinSock网络、3D控件界面。因此它已经成为开发Win32程序的主要开发工具。使用Visual C+的优点很多,主要优点有:Visual C+面向对象的程序设计方法,数据与处理数据的函数封装于类中,程序的可维护性好;此外,Visual C+语言通过函数使程序模块化,并且可以独立编译,为结构化程序设计提供了强有力的手段;Visual C+语言与外部设备的接口性好,可以直接利用程序实现外部打印,扫描等功能;Visual C+语言具有强大的数据库功能,可以比较容易的进行数据库操作,从而为通过数据库实现图形的自动绘制打下了基础;Visual C+语言具有表达能力强、控制语句丰富、构造复杂数据类型的能力强、书写整洁、代码质量高等优点;Visual C+标准库中丰富的函数与其良好的兼容性,使得Visual C+语言成为功能极强的语言,还配备有70多个图形库函数,使利用VC+设计时具有更大的灵活性。综上所述,最终决定选择可视化语言Visual C+作为本软件的开发语言。监控软件功能简介实现功能通过串口接受数据;设计一个监控界面,对参数以曲线形式、数字形式显示和对系统输入相应命令等。根据测试要求,监控界面可设计成如图4-1所示的形式。在图4-1中,监控窗口分成四个部分,第一部分为曲线滚动区,它将测得的参数以曲线的形式滚动显示出来;第二部分为参数与时间显示区,将测得的参数值和测量的起止时间以数字的形式显示出来。第三部分为控制命令输入区,在本设计中是输入需测量的时间,需测时间到后系统将自动停止测量,至于在其它的应用场合,可根据系统需要自己定义一些命令。第四部分为图片显示区,它可根据用户的需要,贴人用户想要在界面中显示的图片。下面介绍用VC+ 60的对话框来实现上述监控界面的具体步骤。用visualC+6.0打开temperature.dsw文件并单击编辑命令,输入密码后便进入了监控软件的主界面统的整个流程,可以让用户对水温控制系统有一个整体、直观的了解。主界面 图4-1主界面(1)工艺流程图区为了清楚方便的演示控制过程,仿照水温控制系统制作了工艺流程图区。该区主要有水温控制器、进水室、污泥室等组成。并能够演示搅拌曝气,进水,酸碱中和等过程。(2)按钮区按启动按钮时,PC机向单片机发送指令,启动整个控制系统。系统开始进入自动控制方式,此时这四个按钮不能按下。单击自动按钮,按钮由红色变为绿色的时候进入手动状态,此时可以自行控制各个步骤的时间。(3)常用参数显示区参数栏中用数字显示水温控制器中各个变量的设定值,并可以动态的显示开始时间,结束时间。趋势图本系统趋势图为温度变化趋势图。 趋势图的时间轴不断刷新,因此我们可以观察一段时间我们水温变化趋势,从而指导我们对控制参数的设定。 图 4-2 温度变化趋势图报警当温度过高或者过低,系统可能会发生危险,因此我们做了报警系统来监控这几个参数,监控参数的状态当出现危急情况时,相应的参数将显示红色表示有危险情况。 图 4-3 报警对话框参数设定菜单可以设定温度控制参数,我们还可以在此设定参数的初始值,并可以使其显示在常用参数显示栏中。图 4-4参数设定菜单设定密码菜单由于本监控软件是仿照工业监控,在工业控制中为确保安全,因此进入和退出主界面时都会要求输入密码。此菜单可以进行密码的设定和修改。图 4-5 设定密码菜单4.3程序类别介绍:AppWizard为“Temperature”程序生成了五个类,这些类名都是基于应用程序的名而产生的:C Temperature App:应用程序类。CMainFrame:主框架窗口类C Temperature Doc:文档类C Temperature View:视图类CAboutDlg:版本信息对话框文件类型介绍:.cpp是源程序代码C+文件 .h是包含函数声明和变量定义的头文件.rc是定义资源的资源脚本文件.dsp是工程文件,记录当前工程的有关信息.dsw是工作区文件,一个工作区可能包含一个或多个工程与单片机数据的实时交换由于控制系统工作繁重很可能会导致控制界面的严重延时,因此我们要创建线程,让操作系统已轮转的方式为每个线程提供时间片,即一个线程执行一段时间,系统在调度另一线程执行,依次循环。这样就可以避免延时现象。下面是本系统线程的部分代码:1.线程的创建if(plccomflag)m_tThread=AfxBeginThread(ThreadComm,NULL);/如果没有无线程时,创建一个线程,线程的容在ThreadComm函数中2.线程的结束HANDLE hThread=pDoc->m_tThread->m_hThread;:WaitForSingleObject(hThread,INFINITE);主界面的开发位图的显示有两种途径,一种是首先把位图装入程序的资源库中,然后用LoadBitmap函数就可以显示位图。另外一种不把位图装入资源库中,通过绘图函数动态将位图显示在视窗中。4.4位图的代码实现:m_Bitmap.LoadBitmap(IDB_BITMAP1);/装载位图的ID= IDB_BITMAP1m_Bitmap.GetObject(sizeof(BM),&BM);m_BitmapHight=BM.bmHeight;/位图的高m_BitmapWidth=BM.bmWidth;/位图的宽CDC MemDC; /画图设备的定义MemDC.CreateCompatibleDC(NULL);/创建该设备oldbitmap=MemDC.SelectObject(&m_Bitmap);pDC->BitBlt(0,0,m_BitmapWidth,m_BitmapHight,&MemDC,0,0,SRCCOPY);/将位图复制到(0,0)位置总结本文以水温控制系统为研究对象,选取了近年应用了PC+单片机方式来对水温控制器进行控制。实现了温度的动态