版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MACROBUTTONMTEditEquationSection2SEQMTEqn\r\hSEQMTSec\r1\hSEQMTChap\r1\h本科生毕业设计任务下达日期:2009年3月5日毕业设计日期:2009年3月5日至2009年6月10日毕业设计题目:高压开关柜温度在线监测系统毕业设计专题题目:毕业设计主要内容和要求:1)分析掌握微机综合保护器功能及工作原理;2)了解电气产品电磁兼容性要求及设计方法;3)对微机综合保护器的电磁兼容做出详细设计;4)翻译电气自动化方面专业外文资料约3000字。摘要开关柜是保证电力系统平安运行的重要设备之一,但是经常因为开关柜局部过热,而引起事故,造成损失。在以往的开关柜过热故障检测中,采用人工巡检,不仅费时、费力,而且不易及时发现事故。开关柜过热故障在线监测系统不仅克服了开关柜内高温、高压、强磁场环境下温度不易监测的难题,而且通过监控软件实时显示开关柜内测点的当前温度值,并做出报警处理,节省了大量人力、物力,提高了事故预判的准确性、实时性。本文从硬件和软件两个方面介绍了监测系统的设计过程。硬件方面设计了两种不同的温度传感系统:中压开关柜过热故障监测采用光纤式温度传感器,同时采用光纤传输数据;低压开关柜采用单总线数字式温度传感器,数据采用无线传输。监测系统软件主要实现了实时显示测点温度,并对温度数据做出分析、报警、保存等功能。及时提醒工作人员对报警情况做出处理,防止事故的发生。关键词:开关柜在线监测温度传感器实时监控软件MFCADOAbstractAsthemostimportantequipment,Metal-cladswitchgearguaranteethesafeoperationofelectricpowersystem.Sometimes,thetemperatureofpartofMetal-cladswitchgearmaybeoverthelimitofsafeoperation,andthenarouseaccident,bringlosing.Inpast,workerscheckuptheMetal-cladswitchgearonschedule,whichtakestimeandhardsledding,cannotworkefficiencyandbetimes.On-linereal-timemonitoringfortemperatureovercomethedifficultiesofhightemperature,highvoltageandhighmagneticfield,tobeanewmethodofcheckinguptheMetal-cladswitchgear.Itcanshowthetemperatureofthespotofbeingmonitored,judgethetemperatureandgiveanalarm.Thesystemsaveslotsofresourceandimprovestheveracity.Thepaperpresentsthedetailabouttheprocedureofthedesignforthesystemfrombothhardwareandsoftwareaspects.Therearetwodefferentdesignofhardware:opticalfibertemperaturesensorisusedformiddle-voltageMetal-cladswitchgear,whichdataistransferredbyopticalfiber;anotheroneis1-WireDigitalThermometer,itisusedforlower-voltageMetal-cladswitchgear,andthedataistransferredbyunwired.ThesoftwareofOn-linereal-timemonitoringfortemperaturecanshowthetemperaturereal-time,analysethedata,gaveanalarm,savethedata,andsoon.Thesystemcanawoketheworkersaboutthealarmintime,avoidingtheaccident.Theresultoftheaxperimentindicatesthenewsystemworkswell,ithasaccomplishedthedesignaimsofanticipating,providingagoodguaranteeofthesafeoperationofMetal-cladswitchgearKeywords:Metal-cladswitchgear.Keywords:monitoringsoftwareon-linemonitoringMFCADO目录1绪论1课题背景和意义1开关柜温度监测技术的研究2系统监测软件的设计需求3课题主要任务42开关柜在线监测系统的总体设计6监测系统硬件结构6监测系统软件功能设计73监测系统的硬件设计103.1光纤式温度监测系统设计10光纤式温度传感器11光纤温度在线监测仪123.1.2Nsmart接口通信协议14单总线数字式温度传感器电路设计17单总线数字式温度计17温度监测模块的其他外围元件20单总线温度监测系统设计23两种温度监测硬件设计比拟总结234监测系统软件设计25软件开发平台介绍25软件总体设计25多线程的编程模式25线程间的通信29多线程编程设计要点30软件功能模块设计32温度报警功能的实现37通信模块编程39本章小结405监测系统的运行及调试41监测系统软件的功能调试416总结42参考文献43翻译局部44英文原文44中文翻译58致谢681绪论“上下压开关柜过热故障在线监测系统”是为减轻人工巡检的负担,实现开光柜温度实时监测、提前报警而合作开发的实时温度监测系统。发电厂、变电站的中低压开关柜是保证电力系统平安运行的重要设备之一。但在运行过程中,经常因为发热引起设备烧毁或突然停电等事故,导致大量的经济损失。现代电力系统对电能质量的要求越来越高,相应地对开关柜运行的可靠性也提出了更高的要求。同时,随着传感器技术、信号处理技术、计算机技术、人工智能技术的开展,使得对开关柜的运行状态进行在线监测,及时发现故障隐患并对累计性故障做出预测成为可能。它对于保证开关柜的正常运行,减少维修次数,提高电力系统的运行可靠和自动化程度具有重要意义。在设备长期运行过程中,开关柜中的触点和母线排连接处等部位因老化或接触电阻过大而发热,或母线与触点在载流过大时经常出现温升过高,使相邻的绝缘部件性能劣化,而这些发热部位的温度无法监测,由此最终导致击穿甚至火灾而造成事故。电气设备的外部热故障主要指裸露接头由于压接不良等原因,在大电流作用下,接头温度升高,接触电阻增大,恶性循环造成隐患,此类故障占外部热故障的90%以上。统计近几年来检测到的外部热故障的几千个数据,可以看到线夹和刀闸触头的热故障占整个外部热故障的77%。电气设备内部热故障的特点是故障点密封在绝缘材料或金属外壳中,如电缆。内部热故障一般都发热时间长而且较稳定,与故障点周围导体或绝缘材料发生热量传递,使局部温度升高,因此可以通过检测其周围材料的温升来诊断电气设备的内部故障。根据电力事故分析,电气设备过热故障可引起火灾导致大面积设备烧损,造成被迫停电,短时间内无法恢复生产,造成重大经济损失。近年来,在发电厂和变电站已经发生多起开关柜过热事故,造成火灾和大面积的停电事故,解决开关柜局部过热问题是杜绝此类事故发生的关键。因此,必须采取有效措施监控开关柜内母线与触点等的温度。为了提高供电可靠性,减少停电时间和次数,保证用户长期、稳定、平安的用电,有必要设计能实时监测并记录电力设备关键点的温度变化的监测系统,预测可能引起火灾或设备故障的局部过热情况,为现场设备的平安运行提供可靠保证。同时又可以作为电气设备故障的温度记录器,能在设备故障发生之前发出报警及检修建议,让管理人员及时发现故障前兆,提前采取防患措施,变“定期检查”为“按状态检修”减少大量的人力物力。通过监测开关柜内触点温度的运行情况,可有效防止开关柜的火灾发生,由于开关柜内高压狭小的结构,很难进行人工巡查测温,因此实现温度在线监测是保证变电站开关柜平安运行的重要手段。1.2开关柜温度监测技术的研究由于开关柜触头及母线处于高电压、高温度、强磁场以及极强的电磁干扰环境中,要实现对它们的测温,必须解决电子测量装置在上述恶劣环境条件下的适应性,解决温度传感器的电位隔离、抗电磁干扰、小尺寸和便于安装等问题。目前常用的温度监测方法有以下几种:1.热敏电阻式测温系统:热敏电阻具有体积小、温度响应快、产品成熟、本钱低等优点,可以显示温度值,但由于每个热敏电阻都需要独立的接线、布线复杂且热敏电阻易损坏、维护量大,传感器不具备自检功能,需要经常校验,因此不常采用。2.红外探头测温系统:红外测温有着响应时间快、非接触、使用平安及使用寿命长等优点。红外测温仪器主要有3种类型:红外热像仪、红外热电视、红外测温仪〔点温仪〕。非接触红外测温仪包括:便携式、在线式和扫描式三大系列,可以在线监测。但由于系统稳定性不高,体积较大,受安装空间限制,外加受环境影响严重,误报较多,也不常采用。3.示温蜡片/试温蜡片温:采用“示温蜡片/试温蜡片”存在一些问题,一是在粘贴时普遍采用清漆将“示温蜡片/试温蜡片”粘贴在电气设备需要测试的部位,这样粘贴牢固后,待测点温度到达“示温蜡片/试温蜡片”相同温度时,不能脱落下来,只有温度超过很大程度才会脱落下来,这样很容易给操作人员造成误导,判断不及时。二是:“示温蜡片/试温蜡片”只能靠熔化现象表示发生了过热,现象不直观也不易发现。三是:电气设备的负荷是随用户需求量变化的,接点温度也是随之变化的,当被监视的电气设备接点发生了不同程度的过热,使用“示温蜡片/试温蜡片”不能随之不同程度熔化或脱落下来。4.使用示温记录标签:“示温记录标签”是以胶粘贴固定的,只要在测温范围内发生了过热,就可以继续保存在贴片接点部位。“示温记录标签”外表涂一层随温度变化而改变颜色的发光材料,通过观察其颜色变化来大致确定温度范围,这种方法准确度低、可读性差,不能进行定量测量,因此也不能满足现在系统监测的需要。其它还有:采用双CCD彩色CCD及NICCD)成像技术,基于比色测温原理,研制生产可以实现大范围目标温度全面实时测量的高温测量电视系统。提高了测温的灵敏度、线性度、检测速度,而且大大地减少了检测过程对目标物体发射率的依赖性,做到了不受检测距离的影响,成功地解决了温度场动态实时检测的技术难题。但是这种方法本钱太高,并不利于大面积推广。或者采用新兴ZigBee组网技术,研制、生产的ZBT1.0型无线测温系统,实现对电力系统的高压和超高压母线、高压开关接点(以2及人员无法接近的其他危险、恶劣环境)的温度进行实时在线检测,经过与电力自动化系统连接,在中心监控室内就可以监视运行状态,真正做到了远距离遥测,当被测点温度超过预先设定的阀值时,就发出报警信号及时提醒有关人员采取措施。国内ZigBee无线传输系统仍然处于实验阶段,技术并不成熟,而且对于单片机、无线发射模块在高温、高压、高磁场的环境下的稳定运行并不能保证。根据以上分析,电力系统中需要一种高性能、稳定、低本钱、安装方便、不需外供电源的开关柜温度监测设备,并组成相应监测系统。为实现上述温度在线监测的功能,现有两种不同的温度传感系统满足需求。一种是分布式光纤温度传感系统。分布式光纤温度传感系统原理是同时利用光纤作为温度传感敏感元件和传输信号介质,采用先进的OTDR技术,探测出沿着光纤不同位置的温度和应变的变化,实现真正分布式的测量。温度测量原理是基于Raman散射效应的分布式温度传感系统,光纤光栅温度在线监测系统采用布置在各个触点的光栅传感器将温度信号通过光纤传至网络分析仪。由于利用了光纤光栅固有的绝缘性和抗电磁场干扰性能,并具有极高的可靠性和平安性,因此从根本上解决了开关柜内母线及触点运行温度及柜内环境温度不易监测的难题。对于在线监测包括母线连接处的温度及断路器等触头温度的另一种温度传感器,常用的还有单总线数字温度传感器、石英传感器、光微薄硅温度传感器和吸收型光纤温度传感器,它们分别以石英晶体、硅片及玻璃构成的Fabryperot槽和GaAs晶体作为感温元件,并对数据无线传输,这就有效地解决了电磁干扰问题。1.3系统监测软件的设计需求变电站中低压开关柜过热故障在线监测系统是基于分布式温度测量、数据采集与传输、显示及报警等局部组成的计算机实时温度监测系统。此系统采用分布式、可组网、隔离性能良好的高精度温度传感器,对变电站中低压开关柜内的母线、断路器与隔离开关触点、互感器(包括电缆接头)等这些易产生异常温升的部件实现在线温度测量与监控。利用温度采集单元采集多路温度信号并通过RS232或RS485总线上传到监控主机,主机采用巡检式(查询式)工作方法,逐一巡检每个测量点的温度,并可统计、打印、报警,设定工作温度范围,显示每个开关柜内测量点的温度及历史数据。系统软件需要实现多种报警方式,当发生报警时,主监控计算机能自动弹出报警窗口,显示出报警时间、报警测点名称和安装部位,同时发出声、光报警并可以打印报警记录,提醒运行人员检查。所有的报警信息都被记录数据库中,以备查阅。系统能提供完善的分析功能,包括超温分析、温升趋势分析、相间温差分析,并能做出报警、比照、历史记录统计与分析等处理,保障工作人员在开关柜发生事故之前做出及时处理。测控软件可以建立开关柜设备数据库,帮助工作人员监测和分析开关柜内母线与触点的过热情况,预测出故障发生的部位,保证开关柜设备的平安运行。监测结果可通过本地数据库进行存储,监测结果和统计报表可通过屏幕和打印机与网络等多种方式进行输出。1.4课题主要任务根据工程的要求,开关柜温度监测系统的设计主要有以下几个方面:1)温度测量、信号隔离与传输对于中高压开关柜的过热故障监测采用光纤式温度传感器,用光纤进行高压隔离和信号传输。利用光纤固有的绝缘性和抗电磁场干扰性能,从根本上解决了开关柜内母线与触点温度不易监测的难题。对于低压开关柜的过热故障监测采用单总线数字式温度传感器,数据传输采用无线传输方式,以实现高、低压侧的电隔离。2)温度的数据采集光纤式温度传感器将母线与触点的温度值转换为模拟量,通过数据采集变换器转化为数字信号,通过通讯总线,上传到控制计算机,实现温度在线监侧。系统采用完全的总线测量方式,使系统的扩展和与其它网络互连变得很方便。单总线数字式温度传感器直接测量母线与触点的温度,通过无线传输到数据采集器,然后传送到监控中心。多只数字式温度传感器可直接连接到一条总线电缆上,在扩展测点时不受布线的限制。3)软件设计系统软件有在线监测和实时分析两个主要功能。软件具有在线采集、监测、分析现场温度的功能,实时分析那么包括超温分析、温升趋势分析、相间温差分析等,并能做出报警、比照等处理,保障工作人员在母线或触点发生事故之前做出处理。软件还具有历史记录分析、查看等功能,实现对相应测点历史运行状态的查看,评估。本课题在完成以上研究的同时,要实现完整的系统调试。2开关柜在线监测系统的总体设计本设计方案中,变电站中低压开关柜温度监测系统以微型计算机作为监测核心,结合高精度的温度传感器、数据采集变换器及可靠的通讯技术,构成功能强大、操作简便、工作平安可靠的在线温度监测系统。在系统设计中,充分考虑系统的可操作性、可靠性等,使系统能够应用于实践并加以推广。整个监测系统的硬件由温度传感器、信号传输线缆(光纤或者无线通信)、数据采集变换器、RS-485总线、RS-485/RS232转换器以及监测中心构成,系统总体连接示意图如2-1所示:图2-1系统总体连接示意图其中,系统设计要求每个开关柜有6个温度监测点,即每个温度采集模块连接6个温度传感器。系统采用两种不同的温度监测方式,分别利用不同的数据传输方式,并需要设计相对应的温度采集模块。在高温、高压以及强磁场的环境下,必须保证监测系统的正常工作,测温和信号传输的准确性。各硬件模块的选择和功能如下:1)温度传感器:温度传感器是组成整个监测网络底层的工作单位,保证传感器长期、稳定的工作是系统运行的保证。基于综合考虑,对于中高压开关柜的过热故障监测采用光纤式温度传感器,并采用光纤传输数据。对低压开关柜的过热故障监测采用单总线数字式温度传感器DS1820,监测数据采用无线传输。在监测系统中,传感器通常紧贴需要监测的母线排、开关触点等安装。要求传感器测温精度不小于100。2)温度采集模块每个开关柜设置一个温度采集模块,实现该开关柜内温度监测数据的采集,并将数据传送到监测中心。对于两种不同的温度传感器,需要设计不同的温度采集模块 光纤式数据采集器采用Nsmart光纤式温度监测仪接收光纤信号,完成温度数据的转化。单总线数字式温度传感器DS1820通过无线传输数据,需要无线接收模块实现数据的接收与转发。温度采集模块可安装在开关柜面板,并需要外部提供24V直流电源供电。3)RS-485总线在温度采集模块和监测中心之间采用RS-485电缆进行通讯连接,以保证信号可靠的传输,RS-485通信在1200m内可以保证可靠的通信质量,因此监测计算机与最远的开关柜间距离应小于1200m。监测计算机一般采用工控机,而工控机只带有RS-232接口,故RS-485总线末端需要用RS-485/RS-232转换器进行信号转化,方便系统软件的数据采集。4)监测中心监测中心是由工业控制计算机构成(含不间断电源UPS),保证对系统进行实时监测。监控中心通过系统软件对接收到的温度信号进行适当的处理,完成显示、报警等功能。软件开发使用MicrosoftVisualC++6.0的根底类库MFC,MFC作为大型的工程编程语言,已经大量的应用于实践当中。它提供了大量预先编写好的类及支持代码,大大减少了工程开发的时间,提高了工作效率。系统软件由在线监测和实时分析两个主要局部组成。软件具有在线采集、监测、分析现场温度的功能,这些分析包括超温分析、温升趋势分析和相间温差分析,并能做出报警、预报警(包括温升预报警,三相相间温差预报警等)、报警日志记录等处理。可以在数据库中保存历史数据,作查看与分析使用。系统功能模块可大致分为开关柜自检模块、温度管理模块、数据显示与分析统计模块、温度报警模块、日志记录和系统平安模块等组成。各模块功能如下:1)自检模块为了使监测系统能够可靠的工作,系统在第一次上电时对温度采集模块、传感器等硬件设备进行自检。同时在系统工作中,也可以通过比拟采集到的数据,提示可能发生的故障:如采集器通信故障、光纤故障(含温度传感器故障)等。自检模块通过在系统运行过程中的自检,方便设备的检查、维修工作,同时保证设备正常有效的工作。2)温度管理模块温度管理模块主要实现对温度报警限值的设置。系统需要根据报警限值来对数据进行分析和报警。根据开关柜温度监测的实际需求,温度报警限值主要有三种:温度上限报警值,温升趋势报警值和相间温差报警值。温度报警限值的设置需要用户根据现场的实际情况,并且温度报警限值的设置和修改需要具有管理员操作权限。3)数据显示与分析统计模块该模块可对采集到的数据进行实时显示与分析,各测点温度的实时显示可以用数码管显示框或温度实时变化曲线来反映,同时也可以实时显示温升曲线;相间温差也可用数码管显示框或温差实时变化曲线图来反映。此外该模块可通过读取保存在数据库中的历史数据,对所有测点温度的数据和变化情况进行分析和统计。如可查看测点温度的日平均值、最高值、最低值及对应的检测时间;可查看各测温点的温度历史曲线,温升历史曲线,相间温差历史曲线。4)温度报警模块系统通过对实时数据与报警限值的比拟来做出报警判断。系统报警时,对应数据显示与报警状态指示灯都会变成橙色,同时激活声音报警系统,提示操作人员检修。操作人员可以通过点击实时温度监测按钮来查看报警传感器,并可以通过点击报警传感器弹出报警对话框,查看报警测点的准确位置、测点名称以及这次报警的详细时间。报警对话框还可以显示最近一个小时内的温度变化曲线图。由于系统能指示出故障发生的准确部位,因此能有效指导检修工作。报警信息可被长期记录。5)日志记录模块考虑到平安操作的需要,在系统开机后,所有与监测系统有关的操作都将被记录,如什么时候开始登录监测系统,何时执行了何种操作等。如果出现问题,操作人员就可以查看历史日志,完成修复工作。6)系统平安模块考虑到系统运行的平安问题,系统对操作做了分级控制,普通操作员一般只能进行常规操作(如读取数据并查看),而对报警的上下限、一些重要的参数等设置只能由系统管理员完成。上述对系统软、硬件的大体设计。它的功能设计根本上满足开关柜系统监测的需要,防止了开关柜内恶劣环境对温度监测和数据传输的影响。系统监测软件能够很好的完成报警,分析,设置等功能,使工作人员不必再对开关柜执行巡检,大大减少了工作量,提高温度监测的自动化程度。3监测系统的硬件设计3.1光纤式温度监测系统设计光信号,将其解码为标准的摄氏温度数值。图3-1显示了光纤测温仪的结构组成:在开关柜温度实时监测系统中,传感器是底层的硬件设备。开关柜内部是高电压、高温度、以及强磁场的环境,在这种环境下实现对开关触头以及母线等的温度测量,必须解决电子测量装置在上述环境条件下的工作可靠性,解决温度传感器的电位隔离、抗电磁干扰、小尺寸和便于安装等问题。光纤式温度在线监测仪采用光纤进行高压隔离和信号传输,利用光纤固有的绝缘性和抗电磁场千扰性能,从根本上解决了高压开关柜内触点温度不易监测的难题。Nsmart光纤式温度监测仪是北京安伏电子技术开发的,用于监测高温,高压设备的光纤温度监测系统。采用先进的光纤和光电子技术,在温度测点和测温仪表之间使用光导纤维进行高压隔离和信号传输,因此具有极强的抗干扰性能。温度监测仪接受来自光纤传感器的图3-1Nsmart光纤测温仪的结构组成Nsmart光纤式温度监测仪单个单元装置包括温度传感器、传输光纤、监测仪主机三个局部。测量电路转换测温点采集的温度量为相应的电信号,经逻辑控制电路产生数字信号并传给光调制器调制后由光纤传给监测仪主机,由LCD屏显示各测点温度。监测仪主机可以将温度数据通过RS-485通讯总线传到监控中心作进一步处理,实现开关柜温度的集中监测、处理。3.1.1光纤式温度传感器1)光纤光栅温度传感器原理光纤光栅就是一段光纤。光纤光栅是利用光纤中的光敏性制成的。所谓光纤中的光敏性是指激光通过掺杂光纤时,光纤的折射率将随光强的空间分布发生相应变化的特性。而在纤芯内形成的空间相位光栅,其作用的实质就是在纤芯内形成一个窄带的(透射或反射)滤波器或反射镜。利用这一特性可制造出许多性能独特的光纤器件。这些器件具有反射带宽范围大、附加损耗小、体积小,易与光纤祸合,可与其它光器件兼容成一体,不受环境尘埃影响等一系列优异性能。光纤光栅的种类很多,主要分两大类:一是Bragg光栅(也称为反射或短周期光栅);二是透射光栅(也称为长周期光栅)。光纤光栅从结构上可分为周期性结构和非周期性结构,从功能上还可分为滤波型光栅和色散补偿型光栅,色散补偿型光栅是非周期光栅。光纤沿径向从里向外分为纤芯、包层、涂覆层三局部,用特殊的紫外光照射工艺,光纤纤芯折射率受到永久的周期性微扰而形成一种光纤无源器件。它能将入射光中某一特定波长的光局部或全部反射。满足布拉格条件的波长被光纤光栅反射,相关公式如下:n其中是被反射的波长是光纤光栅的有效折射率为光栅周期通过拉伸和压缩光纤光栅,或者改变温度,可以改变光纤光栅的周期和有效折射率,从而到达改变光纤光栅的反射波长的目的。反射波长和应变、温度、压力物理量。温度变化量根据这些特性,可将光纤光栅制作成应变、温度、压力、加速度等多种传感器。光纤光栅传感系统主要由光纤光栅解调系统、信号传输系统和传感器三个主要局部组成。对光芯进行照射,使得光纤纤芯的一段区域折射率发生周期性变化,从而制成光纤光栅。光纤光栅传感器获取物理变化量。以光波长为载体,通过光纤传输系统传至解调系统,由解调系绕对光信号进行处理分析,获取物理变化量数据。2)Optic-3000光纤式温度传感器锂电池,应用时间到达两年以上,能够满足开关柜监测需要,可结合设备检修适时更换。图3-2Optic-3000型光纤温度传感器Optic-3000光纤式温度传感器利用光纤作为传感敏感元件和传输信号介质,有效地解决了在高电压,高温度,强磁场的环境中,温度难以监测得难题。Optic-3000光纤式温度传感器的主要性能指标为:测温范围:-55℃~+100测量误差:小于0.5℃(全量程范围)测温分辨率:士0.1光纤长度:小于50m接口方式:标准ST接口外观尺寸:6.0(长)cm*3.2(宽)cm*2.2(高)cm该光纤式温度传感器有一个测面是感温面,传感器测得的温度就是该感温面的温度,假设传感器放置在空气中,那么测到的就是环境温度。为了准确测量物体外表的温度,应保证传感器的感温面与被测物体的外表紧密接触。安装光纤传感器之前,首先要找到传感器的测温面,每一个Optic-3000光纤式温度传感器的光纤接口都有一个定位缺口,和定位缺口相反的一面就是传感器的感温面。传感器的传感头与光纤设计为可拆卸的结构,即通过标准ST光纤接口与多模光纤连接。3.1.2光纤温度在线监测仪Nsmart光纤式在线温度监测仪组成温度监测系统网络的节点,实现对传感器温度数据的采集,并通过RS-485总线将数据传送到监控中心。检测仪安装可以直接嵌入到开关柜的前柜门上,也可以放置在其他易于观察的地方。在方便安装的同时,可以现场观察温度数据。它的系统指标如下:光纤通道:6ch(支持1到6个光纤式温度传感器);光纤接口:标准ST光纤接口;光纤类型:多模光纤;巡检周期:小于60s/6光纤通道(典型值:45s);温度显示:LCD液晶显示器,带背光;报警输出:1个(无源接点)250Vac,或24Vdc,5A;网络接口:隔离RS485工业总线接口;工作电压:直流10-30V或交流220V(外接电源适配器);工作温度:-10℃—+80℃存储温度:-40℃—+85℃安装方式:挂装或嵌入式盘装。主要功能为:1)温度显示功能监测仪具有6个ST光纤接口,能够同时支持6个光纤温度传感器,实现最多6通道的温度测量。带背光的LCD显示屏能够同时显示6个通道的温度数值,并具有温度报警和温度测点故障指示等功能。2)运行状态指示当Nsmart光纤温度监测仪运行时,可以通过仪表的LCD显示屏了解当前的运行情况。在仪表LCD显示屏上,有一个运行状态指示(run),该指示在显示屏的右上角。运行状态指示是一个可以旋转的状态棒,每测到一个通道的温度值时,该状态棒即旋转450。3)报警功能Nsmart光纤温度监测仪具有多种报警功能,每个光纤测温通道都可以设置独立的定温报警值和温升报警值,报警值可以通过RS-485通讯接口下载。当发生超温报警时,报警状态在LCD液晶屏上指示,一个继电器型的报警输出,可以控制外部设备动作或用于报警指示。4)RS-485网络接口Nsmart光纤温度监测仪具有一个RS-485接口,该接口用于与上位计算机的通信,接口可以支持64个Nsmart光纤温度监测仪联网运行,使用网络驱动器可以增加联网的光纤温度测量仪的数量,整个网络最多可连接254台光纤温度测量仪。光纤温度监测仪采用可插拔接线端子,方便仪表的电气连接。这是一个8位端子,可以带电插拔,它包括电源供电、通讯接口和报警输出,其功能定义如表3-1所示:表3-1Nsmart光纤式温度监测仪接线端子功能定义端子号名称功能说明1NCstate报警输出的无源接点,常闭接点2Com.报警输出的公共端子3Nostate报警输出的无源接点,常开接点4Noused未使用5Rs485(—)Rs485通讯接口正端子〔—〕6RS485(+)Rs485通讯接口正端子〔+〕7Power(—)直流供电电源正端子〔—〕8Power(+)直流供电电源正端子〔+〕Nsmart接口通信协议Nsmart光纤温度在线监测仪作为光纤温度传感器的接入设备,通过RS-485网络接口与上位机进行数据传输。Nsmart在线监测仪设备的RS-485通信接口采用标准异步串行通信方式,格式由1个起始位,8个数据位和1个停止位组成,无校验位。位格式如图3-3所示。每个Nsmart设备都具有一个唯一的设备地址号,这个设备地址号用于主机与设备通讯时使用,它可以由用户自己设定。每个设备地址由一个字节组成,这说明设备地址的整个分布空间为256个地址可供使用,但对于Nsmart又有不同的限制,其设备地址分配表如图3-4图3-4Nsmart设备地址空间分布为使Nsmart设备能与主机通信,它们应该设定相同的通信速率,即波特率。这样运行在主机上的软件才能采集到Nsmart设备中的温度数据。Nsmart设备RS-485通讯接口的波特率可以由用户设定,其波特率可以选择为以下四种:1200bps,2400bps,4800bps,9600bpsoNsmart设备RS-485通讯接口初始波特率为2400bps。多台Nsmart设备通过RS-485接口构成总线网络,网络采用主从通信方式,Nsmart设备作为网络中的从设备工作,主设备(可以为上位机)发出命令帧,与其相匹配的Nsmart设备会响应该命令帧,并发出响应帧。响应帧是由网络中的Nsmart设备响应主设备的命令帧的数据时,用于传输Nsmart设备测量到的温度数据。每个响应帧由41个字节构成,结构如以下图3-5所示。图3-5命令帧结构Nsmart光纤式温度监测仪已经通过中国电力科学研究院高压所的测试实验,能够满足高温、高压和强磁场环境下的温度监测功能。实验结果如表3-2所示:气象条件Pa,ta=25.5℃电压等级KV光纤长度mm规定电压KV校正值KV试验电压KV耐受时间min实验结果61002525251通过101253535351通过352508586861通过665001401411411通过1108502002022021通过22020003603623621通过50045006806836831通过表3-2光纤式温度在线监测仪工频耐受电压试验结果3.2单总线数字式温度传感器电路设计3.单总线数字式温度计对于低压开关柜的过热故障检测我们采用单总线数字式温度传感器,数据传输采用红外线传输方式,以实现高、低压侧的电隔离。由DALLS公司生产的DS1820温度传感器就是常用的一种单总线1W工RE数字温度传感器,可以广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。1)DS1820温度传感器DS1820数字温度计提供9位温度读数,指示器件的温度。信息经过单线接口送入DS1820或从DS1820送出,因此从中央处理器到DS1820仅需连接一条线(地线也需要连接)。读写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。每一个DS1820都有唯一的系列号(siliconserialnumber),因此多个DS1820可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。其主要特性有:独特的单总线接口方式:DS1820与总线连接时,只需1个接口引脚即可实现双向通信;多点Multidrop能力使分布式温度检测应用得以简化;在使用中不需要任何外部元件可以用正常供电,也可以使用IO寄生供电方式工作,电压范围:+3.0V—+5.5V.测量范围从-55℃至+125℃,增量值为0.5℃,等效的华氏温度范围是-670F至2570F,增量值为0.9DS182温度传感器具有体积小,接口方便,传输距离远等特点。DS1820有三个主要的数据部件:1)64位激光ROM,2)温度灵敏元件,3)非易失性温度告警触发器TH和TL。器件从单线的通信取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生电容电源为止。作为另一种可供选择的方法,DS1820也可用外部5V电源供电。与DS1820的通信经过一个单线接口,可以将单片机串行输出口与DS1820传感器DQ引脚相连接。在单线接口情况下,在ROM操作约定未建立之前不能使用存贮器和控制操作。如果在单线上有许多器件那么可以挑选出一个特定的器件并给总线上的主机指示存在多少器件及其类型。一个控制操作命令指示DS1820完成温度测量。该测量的结果将放入DS1820的高速暂存(便笺式)存贮器(Scratchpadmemory),通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器TH和TL构成一个字节的EEPROM。如果不对DS1820施加告警搜索命令,这些存放器可用作通用用户存储器。使用存储器操作命令可以写TH和TL。对这些存放器的读访问通过便笺存储器,所有数据均以最低有效位在前的方式被读写。2)DS1820的电源与通信DS1820的电源供电主要有两种方式,一种是外部5V电源供电,将电源接在VDD引脚即可。第二种是器件从单线的通信总线取得电源,即寄生电源。为了使DS1820能完成准确的温度变换,当温度变换发生时,I/0线上必须提供足够的功率。因为DS1820的工作电流高达1mA,寄生电源供电将使I/0线没有足够的驱动能力,如果几个DS1820在同一条I/0线上而且企图同时变换,那么这一问题将变得特别锋利。解决问题的方法是通过使用连接到VDD引脚的外部电源供电。这种方法的优点是在I/0线上不要求强的上拉,总线上主机不需要上拉引脚以便在温度变换期间使线保持高电平。这就允许在变换时间内其它数据在单线上传送,此外在单线总线上可以放置任何数目的DS1820。而且如果它们都使用外部电源,那么通过发出跳过(SkipROM)命令和接着发出变换(Convert)T命令可以同时完成温度变换。需要注意的只是外部电源处于工作状态,GND地引脚不可悬空。我们在系统设计中就采用外部电源供电。图3-664位激光ROM每一个DS1820包括一个唯一的64位长的ROM编码,如图3-8.64位ROM和ROM操作控制局部允许DS1820作为一个单线器件工作,并遵循单线总线系统的单线协议,直到ROM操作协议被满足,DS1820控制局部的功能是不可访问的。总线上的主机根据64位ROM的前56位计算CRC的值并把它与存储在DS1820内的值进行比拟以决定ROM的数据是否已被主机正确地接收。CRC的等效多项式函数为:CRC==X8+Xs+X4+1DS1820在使用CRC来确认数据传送的每一种情况中,总线主机必须使用上面给出的多项式函数计算CRC的值并把计算所得的值与存储在64位ROM局部中的8位CRC值(ROM读数),或者与DS1820中计算得到的8位CRC值(在读暂存存储器中时,它作为第九个字节被读出),进行比拟。当存储在DS1820内或由DS1820计算得到的CRC值与总线主机产生的值不相符合时,在DS1820内设有电路来阻止命令序列的继续执行。校验码CRC可以使用如图3-7所示,由一个移位存放器和“异或”(XOR)门组成的多项式产生器来产生。移位存放器的所有位被初始化为零,然后从产品系列编码的最低有效位开始,每次移入一位,接着移入序列号。在序列号的第48位进入之后,移位存放器便包含了CRC值。移入CRC的8位应该使移位存放器返回至全零。图3-7单线CRC编码3)DS1820的报警功能DS1820通过使用在板((on-board)温度测量专利技术来测量温度。温度测量电路的方框图见图所示。DS1820通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。同时计数器用斜率累加器电路所决定的值进行预置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的。斜率累加器用于补偿振荡器温度特性的非线性,以产生高分辨率的温度测量。通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿。此计算在DS1820内部完成以提供0.5摄氏度的分辨率。温度读数以16位、符号扩展的二进制补码读数形式提供。DS1820以0.5摄氏度的增量值,在-55摄氏度至++125摄氏度的范围内测量温度。对于应用华氏温度的场合,那么需要使用查找表或变换系数。注意,在DS1820中,温度以1/2摄氏度LSCB(最低有效位)形式表示时,产生以下9位格式,见以下图3-8:图3-8DS1820内数据表示格式最高有效(符号)位被复制到存储器内两字节的温度存放器中较高的MSB的所有位,这种“符号扩展”产生了如表3-3所示的16位温度读数。温度数字输出(二进制)安息字输出〔十六进制〕+125000000001111101000FAh+2500000000001100100032h+1/200000000000000010032h+000000000000000000032h-1/211111111111111110032h-2511111111110011100032h-5511111111100100100032h表3-3温度/数据对应表在DS1820完成温度变换之后,温度值与贮存在TH和TL内的触发值相比拟。TH或TL的最高有效位直接对应于16位温度存放器的符号位,如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DS1820将对告警搜索命令做出响应。这允许并联连接许多DS1820,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出,而不必读出非告警的器件。温度监测模块的其他外围元件1)CC1000射频芯片的应用在单总线数字式温度传感系统的设计中,数据采用无线传输方式。为了防止强磁场对数据传输的影响,最好采用高频波段传输。为此我们采用了CC1000来实现这个功能。CC1000是Chipcon公司推出的单片可编程RF收发芯片,它基于ChipconISSmartRF技术,是一种高性能、低损耗、高灵敏度的射频芯片。CC1000专用于低功率和低电压类无线电产品,并且很容易通过编程使其工作频率在300-1000MHz范围内,完全满足设计的需求。CC1000的结构示图见图3-9:图3-9CC1000简化模块图CC1000的主要工作参数可由三个串行接口(PDATA,PCLK和PALE)编程设定来控制CC1000处于发送或接收模式。CC1000在一个电路中只能在一种模式下工作。芯片提供信号接口DIO和DCLK,用于收发数据。DIO是双向数据线,DCLK提供数据发送和数据接收的同步时钟。在接收模式下,CC1000可看成是一个传统的超外差接收器。射频(RF)输入信号经低噪声放大器(LNA)放大后翻转进入混频器,通过混频器混频产生中频(IF)信号。在中频处理阶段,该信号在送入解调器之前被放大和滤波。可选的RSSI信号和IF信号也可通过混频产生于引脚RSSI/IF。解调后,CC1000从引脚DIO输出解调数字信号,解调信号的同步性由芯片上的PCLK提供的时钟信号完成。在发送模式下,压控振荡器(VCO)输出的信号直接送入功率放大器(PA)。射频输出是通过加在DIO脚上的数据进行控制的,称为移频键控(FSK)。这种内部T/R切换电路使天线的连接和匹配设计更容易。当调制数据时,CC1000能被设置成三种不同的数据形式,分别为同步NRZ模式、同步曼彻斯特码模式、异步传输(DART)模式。为了满足电池供电情况下严格的电源损耗要求,CC1000提供了十分方便的电源管理方法。通过MAIN存放器控制低电平模式,有单独的位控制接收局部、发射局部、频率合成以及晶振。这种独立控制可用来优化在某个应用中最低可能到达的电流损耗。CC1000芯片的其他外围元件较少,且对精度要求不高,所以CC1000与一个微控制器和少数几个外接元件便可组成一个完整的RF收发系统.图3-102)RS485传输模块的选择我们通过RS-485通讯标准组成设备网络。可供选择RS-485芯片是很多的,我们选用了Maxim公司生产比拟成熟的MAX485接口芯片。MAX485接口芯片采用单一电源+5V工作,额定电流为300p.A,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。其引脚结构图如图3-13所示。从图中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TO相连即可;EF和DE引脚分别为接收和发送的使能端,当EF为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A和B引脚分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选1000的电阻。单总线温度监测系统设计我们采用ATMEL公司生产的AT89C2051单片机与DS1820组成母线温度测量系统。数据传输采用CCl000无线传输,这样就实现了上下压侧的电压隔离。整个温度监测系统分为两个局部:温度监测模块和数据接收转发模块。温度监测模块实现对母线温度的测量,并将测量温度通过CCl000无线传输模块发送出去。数据接收模块接收温度监测模块传送过来的温度数据,并将数据通过RS-485总线送到监控中心。它同样使用CCl000实现数据的接收AT89C2051单片机是一个带有2K字节EEPROM只读存储器的低压、高性能8位CMOS微型计算机,电路设计中除了供给5V电源外,不再需要增加其他外围电路。而CCl000除了与AT89C2051连接外,还需要单独提供14MHz的晶振和工作在接收、发射模式下的输入/输出配置电路。AT89C2051单片机的P1口是8位双向I/0口,口引脚P1.0,Pl.1,Pl.2连接到CCl000的三个串行接口(PDATA,PCLK和PALE),完成对CC10oo的工作模式编程。CCl000发送模式下,采用同步曼彻斯特码模式,引脚DIO接AT89C2051的串行输出引脚TXD,同步时钟信号由AT89C2051的引脚P3.2接DCLK提供。同样,在接受工作模式下,DCLK提供同步接收时钟,DIO输出数据。DS1820传感器封装类似于普通三极管,见图3-14中CON3元件。在温度监测模块设计中,DS1820直接采用5V电源供电,数据引脚DQ接AT89C2051串行输入引脚(RXD),这样需要连接多只DS1820传感器,组成单总线温度监测网络时,只要将DS1820的电源引脚VDD与数据引脚DQ分别并接在5V电源和串行输入引脚(RXD)上即可。这两个模块组成了实时温度监测系统的硬件网络设备。我们在系统安装调试中,可以扩展多个DS1820传感器,共用一个数据接受转发模块。由于扩展DS1820传感器时,数据信号线容易受到电压、磁场等外部干扰,易使温度传输出错,实际应用有一定的局限性。它的实际工作性能和抗干扰能力还需要在工作环境下来验证。开关柜温度监测的硬件电路主要采用了上述两种方式:光纤式温度传感系统和单总线数字式温度测量系统。两种检测方式分别对应于不同的电压环境,各有自己的优缺点。对于中压开关柜的温度测量,采用光纤式温度传感系统,保证了系统运行的可靠性与平安性。而且温度测量准确,抗干扰性,耐压性好。但是开关柜内大量的光纤走线,可能影响开关柜的正常应用。单总线数字式温度测量系统只能在低压环境下工作,但是抗干扰性好,容易组成大范围的监测网络。利用CC1000组成监测网络时,需要编写大量的网络协议,来实现对温度监测模块的识别,这样就形成了ZigBee无线传感网络的简单模型,增加了工作难度。我们在设计中,采用温度监测模块和数据接收转发模块一一对应的模式,降低了开发难度。单总线数字式温度测量系统本钱低廉,安装简单,是光纤式温度传感器不具备的优势。4监测系统软件设计开关柜温度监测系统软件是整个系统与工作人员沟通的平台,系统需要长期地运行,并强调系统运行的可靠性,稳定性和易操作性。我们采用MicrosoftWindows2000作为监测系统软件的开发平台。Windows2000在易使用程度、易管理性、可扩展性、可靠性、灵活性等方面都有相当突出的表现。Windows2000通过三种途径来确保最大的可靠性和可用性:统一处理硬件和软件系统错误;保护用户程序不会相互干扰和系统干扰;提供数据和系统的恢复机制。至今,Windows2000仍然得到相当广泛的应用,充分说明了Windows2000是一个高性能的操作系统。软件开发使用MicrosoftVisualC++6.0.MicrosoftVisualC++的核心是Microsoft的根底类库(MicrosoftFoundationClassLibrary,MFC)oMFC相当彻底的封装了Win32软件开发工具包(SDK)中的功能和结构,提供了大量预先编写好的类及支持代码,用于处理多数标准的Windows编程任务。它为应用程序开发者提供了一个应用程序框架(ApplicationFramework),这使得可以完全使用面向对象的方法来开发Windows应用程序。对于企业应用于平安性领域的系统软件,不仅需要应对各种突发性情况,还要考虑到用户的可操作性,最重要的是软件在运行中的稳定性与可靠性。温度监测系统软件是个多任务操作软件,例如通过RS-232串行总线实现对监测网络硬件设备的控制与通信;实时数据的存储;以曲线形式实时显示测试数据;历史数据的查询、曲线显示以及操作记录等。为了在完成这些任务的同时,主控制界面能够实时的处理用户的输入,始终保持工作状态,一种比拟好的方法就是采用多线程的编程模式。多线程的编程模式Windows2000是一个多任务的操作系统,它支持多线程的应用程序。进程总是以一个线程(称为主线程)作为开始。如果需要,进程可以产生更多的线程,让CPU在同一时间执行不同段落的代码。当然,在只有一个CPU的情况下,不可能真正有多任务同时执行的情况发生。多个线程同时工作主要是靠调度程序来完成的,它在不同的线程之间做快速的切换操作。当然,线程并不是越多越好,线程的切换需要消耗大量的系统资源。相对于单线程来说,单线程只能顺序的执行程序代码,同时只能对一个任务进行处理,这样对多任务的实时操作系统来说,单线程就不能满足系统的需要,只能采用多线程编程。图4-1主线程的流程图Windows提供了两种类型的线程:一种是用户界面线程;另一种是工作线程,也称为辅助线程。这两种线程均为MFC类库所支持。用户界面线程的特点是拥有单独的消息队列,可以具有自己的窗口界面,能够对用户输入和事件做出响应。在应用程序中,根据用户界面线程具有消息队列这一特点,可以使之循环等待某一事件发生后在进行处理。由于Windows2000是优先多任务的操作系统,即使一个线程因等待某事件而阻塞,其他线程仍然可以继续执行。工作线程常用于处理后台任务,执行这些后台任务并不会耽误用户对应用程序的使用,即用户操作无需等待后台任务的完成。在监测系统软件设计过程中,主线程(用户界面线程)处于中枢地位,其执行流程如图,此外还有3个辅助线程,用于处理后台任务,响应用户的操作命令。执行流程如图4-2所示,当程序运行后,首先启动主线程。用户登录成功后,主线程启动主控制界面,完成相关的初始化工作,并启动辅助线程1。辅助线程1在程序的运行过程中一直都在循环执行,它根据需要监测开关柜数目的不同,执行一次的时间也不同,为(60/(开关柜数目)))S。辅助线程1每执行一次,只监测一个开关柜的温度数据,所有开关柜监测的循环时间为60S。辅助线程1采用循环执行的方式,上位机从RS-232串口读取数据,进行数据分析并存储后,主动放弃剩余时间片,跳出线程,等待下一次监测循环的开始。图4-2辅助线程流程图辅助线程2和辅助线程3都是通过用户操作来启动的。这两个线程都用于用户对存储于工控机中的数据进行查看。当通过软件对数据库中的大量数据进行读取时,会消耗大量的系统资源。如果采用主线程操作,用户必须等待读取数据后台操作完成后,才能进行其它操作,因为大量数据的读取是很慢的。采用辅助线程后,用户可以在等待数据读取的时间内做其它的操作。跟辅助线程1不同,辅助线程2和辅助线程3采用顺序执行的方式,数据读取完毕后,向主线程发送一个表示结束的信息,辅助线程结束。主线程收到这个结束消息后,5秒钟之后可以再次启动辅助线程2或3进行数据库操作。当操作人员关闭程序的时候,主线程需要完成保存数据、关闭设备、释放占有的资源等操作,确保进程平安结束。线程间的通信通过对软件的多线程编程,一个重要的问题就是线程之间的相互通信。VisualCMFC直接支持三种通信方式:使用全局变量;使用用户自定义消息:使用事件对象。在本次软件设计中主要采用了前两种,下面依次介绍之。一、采用全局变量通信最简单、最有效的方法就是采用全局变量,因为所有的线程都在它们的进程地址空间中执行代码,故都可以访问所有的全局变量。在程序的设计中,主线程向辅助线程的通信的采用了全局变量volatileintkgg(当前监测的全部开关柜的数量)。在程序运行的过程中,所监测的开关柜的数目是一定的,在程序的安装过程中就已经设置好的变量。主线程开启辅助线程1以后,需要按照开关柜的数目kgg依次访问开关柜的温度采集模块,并在主窗口循环显示当前正在监测的开关柜以及采集回来的温度值。辅助线程1是循环执行的,kgg设置好后,辅助线程每执行一次的时间就被定在(60/kgg)S。如果辅助线程在循环执行某个任务,而主线程需要向辅助线程传递某些信息时,全局变量是最简单、最有效的。需要注意的是,用于通信的全局变量应该声明为volatile,它告诉编译器不要对该变量作任何优化,并且总是重新加载来自该变量的内存单元的值。如果辅助线程要向主线程传递某些信息时,最好的方式应该是采用Windows消息。二、用户自定义消息通信方式Windows消息是辅助线程与主线程通信的首选方法,因为主线程总是有消息循环。主线程应该有一个窗口(可见或者不可见)。为了向主线程发送消息,辅助线程必须获得指向该窗口的句柄。如何获得该窗口的句柄、怎样发送和发送什么类型的消息,是最重要的问题。在主线程中可以通过调用AfxBeginThread函数来启动辅助线程,并向辅助线程传递窗口句柄。在此次程序设计中,辅助线程1是在主线程的定时器函数中,通过调用函数AfxBeginThread(ThreadFuccom,GetSafeHwnd(),THREA几PRIORITY-ABOVE-NORMAL);来启动。AfxBeginThread函数的第一个参数是函数指针,它指向辅助线程1所要执行的函数。该函数是用户自定义的,以辅助线程形式调用,用于实现后台效劳的。它相当于C/C十+程序中的主函数,且应该是全局函数或者是C++类的静态(static)成员函数。定义成如下的形式:DINTThreadFuccom(LPVOIDpParam){//pParam参数是一个32位的指向不确定类型的指针变量,它可以用来传递刀任何信息。…//完成对温度采集模块的访问工作,采集数据并进行分析、显示、报警、存储Return0}第二个参数通过GetSafeHwnd()函数获取主控界面的窗口句柄并将其传递给线程函数,第三个参数是线程的优先级代码。Windows将根据线程的优先级来分配时间。辅助线程1启动后,需要通过Windows消息来跟主线程通信。在开关柜监测软件程序设计中,调用::PostMessage((HWND)pParam,WM-THREADCOM,0,0)函数来发送消息。PostMessage函数的第一个参数是目标窗口的句柄,第二个参数是消息类型,在一般的应用中,这个消息为用户的自定义的消息。第三个和第四个参数是该消息的附带信息。在这里,消息传递没有附加任何信息,故设置为0。辅助线程消息发送后,目标窗口自动调用用户自定义的消息响应函数。辅助线程2,3与主线程的通信方式与上述方式类似。多线程编程设计要点结合此次开关柜温度监测软件的设计过程,在采用多线程的编程模式时,应当注意如下问题。一、线程的优先级设置在Windows2000下,CPU调度单位是线程。如果所有的线程都具有相同的优先级,那么每个线程被CPU“照顾”的时间(即所谓的时间片)是20ms。实际上线程的优先级是不同的。调度程序根据线程优先级的上下,决定下一个获得CPU时间的线程。我们在开关柜程序设计中主要应用了4个线程,如上文所介绍的,其中主线程作为用户界面线程,拥有比辅助线程更高的优先级0当它调用GetMessage函数而其消息队列是空的时候,进入暂停状态(也称为不可调度状态)。此时尽管它的优先级很高,但调度程序不会给它分配CPU时间。当主线程中有输入消息等待处理时,调度系统会暂时提高它的优先级,故在其他3个辅助线程运行的同时,主线程能及时地处理用户的输入请求。辅助线程1需要不停的对硬件监控网络发送和接收数据,实时产生报警信号,所以将它的优先级设置为比正常优先级高一个等级。辅助线程2,3主要用于从数据中读取数据、并显示,实时性要求不高,故将其优先级设置为正常的优先级。Windows2000是一个抢占式的操作系统,高优先级的线程会抢在低优先级进程之前运行。因此只要在辅助线程1中不调用Sleep函数进入不可调度状态,这个线程就会一直运行。只有当辅助线程1进入不可调度状态后,辅助线程2和3才有时机被调度运行。这样的优先级设置确保了应用程序在实时处理外部输入,完成后台任务的同时,能够及时响应用户的输入。二、线程的同步线程的执行是异步的,我们无法预期线程的执行次序,正是由于这种不可预期性造成了所谓的竞争条件(racecondition)。如果有两个线程同时读写一个全局变量,就有可能产生竞争条件。另一个可能产生的问题就是死锁(deadlock)。死锁就是两个线程相互占有对方需要的资源,而互相等待对方释放资源,结果造成线程不能得到资源而停止运行。为了解决这些问题,必须采用相应的措施协调各个线程的执行次序。Windows提供了四种同步机制,他们分别是临界区,互斥体,信号量和事件。临界区只能在某一个进程的内部实现访问控制。如果需要在不同的进程之间控制数据的访问,那么就需要互斥体或信号量。事件是Windows的一种内核对象,它通过发信号表示某一操作己经完成。使用事件同步线程的时候,首先要创立一个事件,然后调用等待函数来等待另一个线程完成某一操作。当另一个线程执行完某一操作后,此线程必须通过设置事件的信号位来通知等待线程。事件同步可以设置最长等待时间,这就不会出现因为系统异常而导致死锁。在本次的程序设计中,把程序中使用的全局变量放入临界区,实现线程对全局资源的同步访问。MFC提供的CCriticalSection类实现了临界区的功能,其用法如下:CCriticalSectiong_cs.Lock();g_cs;//全局的CCriticalSection类对象//要保护的全局变量g_cs.Unlock();当有一个线程正在访问全局变量时,其余需要访问此全局变量的线程会阻塞在Lock)的调用上,直到访问全局变量的线程调用Unlock()函数。这就实现了“以原子操作方式”使用共享资源的一种方法。使用临界区要注意以下两点:第一,不要把长时间运行的代码放入临界区中,这样会使一些线程长期处于等待状态,影响应用程序的性能。第二,尽量为每一个共享资源使用CCriticalSection对三、辅助线程不要涉及图形设备接口(GDI)对象GDI(GraphicsDeviceInterface)是Windows操作系统的核心局部,管理Windows程序的所有图形输出。Windows使用GDI绘制用户界面元素,诸如窗口、菜单和对话框等。辅助线程不能涉及GDI对象意味着不可以查询、设置控件的状态,不能创立对话框等。要完成这些任务,唯一的方法就是向主线程发送消息。在这里,辅助线程1,2,3只完成一些后台的工作,数据显示等与GDI相关的操作由主线程负责。四、确保在进程结束之前,终止所有的辅助线程,终止辅助线程最好的方法就是让线程函数返回,即执行到return0,这是确保线程所占有的资源被正确去除的唯一方法。在应用程序结束之前释放其占有的资源是一种良好的编程风格。如果线程函数能够返回,就可以确保以下事项的实现:在线程函数中创立的所有C++对象均可通过它们的结构函数被正确;操作系统将正确释放线程堆栈使用的内存;操作系统将线程的退出代码(在线程内核对象中维护)设置为线程函数的返回值;操作系统将递减线程内核对象的使用计数。如果使用计数降为0,线程的内核对象就会被撤销。在程序运行过程中,辅助线程1一直在循环运行,如果不采取措施,线程函数不会返回。在线程结束之前,主线程会采取措施迫使辅助线程1跳出循环,使线程函数返回。辅助线程2,3顺序执行,在进程结束之前,在主线程中可以调用等待函数::WaitForSingleObject(hThread,5000),确保辅助线程终止运行。该函数的第一个参数是辅助线程的句柄,第二个参数是要等待的时间,这里要等待5秒。此时主线程进入等待状态,直到辅助线程终止运行。辅助线程2,3终止运行后主线程继续运行,完成相关操作后,程序执行完毕。以上从宏观方面分析了开关柜温度监测软件的总体结构和线程的执行过程,下面我们从功能上来对软件进行介绍,更加细致的分析软件的设计。根据委托方的要求,为了方便开关柜温度监测系统的推广和应用,监测软件可以通过设置,监测3-6个开关柜。操作人员只需要在第一次安装软件时,设置好需要监测的开关柜即可,以后软件的运行将不需要重新设置。开关柜监测数目设计窗口如图4-3所示。温度监测软件对于不同的开关柜监测数目,对应不同的操作界面与系统功能,我们以监测三个开关柜为例介绍系统的功能模块,监测4,5,6个开关柜时系统设计类似。图4-3开关柜监测数目设置开关柜温度监测系统软件可以分为温度显示控制、温度报警、开关柜温度管理、RS-232通信、数据库操作5大功能模块。各个模块虽然功能不同,但是模块之间并非独立运行的,它们是相互配合的整体,相互通信,相互依存。这些模块和相应的接口共同完成开关柜温度监测的任务。图4-4温度显示控制模块功能图温度显示控制模块,温度显示控制模块组成了开关柜温度监测软件的主界面,也是整个系统的核心。在程序设计中,它对应于C++类的CMyDlg,CMyDlg类派生于CDialogoCDialog类是在屏幕上显示的对话框基类。当程序开始运行的时候,第一个实例化的类就是CMyDlg类,它的功能如图4-4所示:温度显示控制模块的主要功能是创立程序主窗口,但在主窗口初始化之前,为了程序操作的平安性,需要先进行操作人员身份验证,见图4-5。如图图4-5输入用户名和密码后,系统自动根据用户名从数据库中读取匹配的用户名和对应密码,如果用户不存在,系统会自动提示用户输入错误。用户登录成功后,系统会从数据库中读取用户的操作权限,普通登录用户(normal)的功能操作会受到限制。每次程序运行,都有三次登陆时机,如果登陆不成功,软件需要重新运行。静态文本显示(类CFontStatic实现此功能)、功能按钮(此功能由类CTrackLookBut七。n实现)、状态灯(由类CLight实现)。按照功能可以将主界面划分为系统功能、开关柜温度显示、报警检测三个主要区域。系统功能由六个功能按钮组成,其中系统模块检测功能在系统运行后,自动对温度采集硬件模块进行通信检测。开关柜温度监测软件会依次向下位机发送命令帧数据,通过能否接收到响应帧数据来判断是否硬件通信出错。如果出错,会弹出错误报警窗口,提示工作人员进行检查。系统对下位机通信检测一遍后,按钮提示变为模块停止检测,即系统停止检测,如果需要重新检测,只需要重新按下按钮即可。开关柜温度显示功能有两种方式来实现。在主控制界面上,开关柜温度显示区域循环显示所有正在监测开关柜的温度数据。循环的时间周期为60S,每个开关柜监测温度的显示时间为60/kgg(监测开关柜的数目)S,温度显示标题会对应开关柜自动改变。如果某开关柜通信出错,那么自动跳过。其次,我们可以通过系统功能按钮来查看具体开关柜的实时温度。点击实时温度监测按钮,会弹出开关柜温度实时监测对话框,如图4-5所示。我们可以选择想要查看的开关柜,系统会自动读取、显示开关柜的实时监测温度。具体传感器的温度还可以以曲线形式表示出来。点击开关柜的对应传感器,弹出一个新的对话框,可以显示对应传感器在最近一个小时内的温度变化曲线(上)和温度斜率变化曲线(下)。正常情况下,数据是以绿色LED显示的,当温度数据超过最高允许温度值,数据变为橙色,向操作人员报警提示。在程序设计中,根据实际的监测要求,每个开关柜最多可以监测6路温度数据。主控制界面创立后,首先对RS-232串口进行初始化,然后启动系统检测模块程序。开关柜监测系统通过RS-232串口组成监测网络,但是RS-232串口同时只能由一个程序占用,否那么会初始化不成功,报警出错。初始化过程还需要完成与数据库的连接。数据库是系统的重要组成局部,不但需要将检测到的开关柜温度保存到数据库中以便操作人员查询,开关柜温度报警限值和登录用户名也都以数据库的方式进行保存。主控界面的第二个主要功能就是消息处理。VC中消息的来源主要有两个,第一主要是由用户输入产生,它由MFC自带的消息定义,通过对用户操作添加相应的消息映射函数即可实现。第二是自定义消息。自定义消息的处理比拟复杂,它无法使用VisualC++的ClassWizard工具为消息编写映射函数。它需要自己添加消息,手工编写消息处理程序代码。自定义的消息主要用来实现辅助线程与主线程之间,父窗口与子窗口之间的通信为了提高系统的操作平安性,可靠性,防止误操作和非法操作,为了操作人员能够随时查询系统状态和操作记录,这里采用了重要操作需要管理员身份验证的方法,同时借鉴了数据库、操作系统中日志的设计思想。程序起始运行,就需要用户登录系统,同时将登录用户名以及登录时间保存在日志中。用户在对报警参数设置、温度采集模块地址修改和对用户帐户操作时,均需要具有管理员(admin)操作权限的用户登录,同时将修改纪录保存在日志中。普通(normal)用户不能对以上三种功能进行操作。系统的运行状态(例如温度报警时间、类型等)都会在系统日志中纪录。所有的日志信息都保存在类CString的对象m_sLog中。CString类似于字符串的操作,它最重要的特性是具有动态分配内存的能力。在程序运行的时候,所有的系统状态和操作记录都保存在mslog中。我们以温度报警限值的设置为例,说明将此操作保存到日志中的过程,在系统运行的过程中,用户可以随时查看本次和历史日志。当系统退出时,会提示用户是否将本次日志保存到磁盘上的文本文件中,供日后参考。图4-6显示了系统记录的局部日志:图4-6系统日志系统功能模块还可以实现对历史数据的查看。历史数据有两种查看方式:通过菜单项中数据库查看功能,或者系统功能按钮历史温度曲线查看。对数据库的操作可以查看具体一天的温度数据,由于数据量太大,对数据的查看表达不出温度变化的整体趋势。而对历史数据的曲线查看功能更具有直观性和实际应用意义,通过查看当天
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风力发电试题及分析
- 精神分析试题及分析
- 二级建造师市政试题及解析
- 医院招聘护理专业题库及答案
- 循证护理-将现有的最佳证据应用于住院患者抗凝剂皮下注射并发症的预防与管理
- 高脂血症性急性胰腺炎患者的护理
- 2026年互联网行业数据安全应急响应最佳实践分享
- 工厂小孩免责协议书
- 工程资质挂靠协议书
- 差额结算协议书
- 运用PDCA降低血管内导管相关血流感染发生率(NPICU)
- 2024贵州贵阳中考物理试题及答案 2024年中考物理试卷
- 特发性肺纤维化急性加重AEIPF诊治指南
- 2023年广州市黄埔区中医院护士招聘考试历年高频考点试题含答案解析
- 第四章基层疾病预防控制与妇幼保健职能演示文稿
- D500-D505 2016年合订本防雷与接地图集
- 高考乡土散文的阅读技巧
- JJG 1105-2015氨气检测仪
- GB/T 4295-2019碳化钨粉
- 西部钻探套管开窗侧钻工艺技术课件
- 徐汇滨江规划和出让情况专题培训课件
评论
0/150
提交评论