在线温度监控系统上位机软件毕业设计

上传人:沈*** 文档编号:100226849 上传时间:2022-06-02 格式:DOC 页数:48 大小:1.74MB
返回 下载 相关 举报
在线温度监控系统上位机软件毕业设计_第1页
第1页 / 共48页
在线温度监控系统上位机软件毕业设计_第2页
第2页 / 共48页
在线温度监控系统上位机软件毕业设计_第3页
第3页 / 共48页
点击查看更多>>
资源描述
毕业设计(论文)题 目: 在线温度监控系统上位机软件设计 学 院:电子信息学院 专业班级:*指导教师:*职称:副教授 学生: *学 号:*42 / 48摘 要该项目背景是液压操动机构试验状态在线监测与故障预警研究。对断路器终端温度进行实时采集,并将其显示于上位机上。但由于现场限制,需要通过RS-485总线传输数据,并经由主控板做终端与上位机之间的通信,上位机的功能是对断路器电的温度进行实时监测。本文主要工作是利用C+Builder6.0软件编写断路器温度监控系统的人机交互界面,该界面的主要功能有通过RS-232串口将数据接收进来,并将该温度数据显示在数据表上,还需调用数据表中的数据显示成曲线。关键词:温度,RS-232,C+Builder6.0,上位机,监控ABSTRACTThe background of this project is testing the temperation and hydraulic operation(液压操动机构 )testing condition Receiving emperature index is an important index of many working environment, therefore, temperature monitoring has been widely used in industrial field. This topic using C+Builder6.0 to build up the temperature monitoring system for circuit breaker operation interface, this software is very easy to use. Whats more,its function is powerful,especially with ones own knack in interface design, WINDOWS programming, database programming etc.And it cant be compared by some of the other software development tools.The main function of PC is to receive the temperature data collected by the lower control machine through the RS-232 serial port, and displayed in the data sheet. Also it should be plotted into curves by SimuCurves control.In addition, this system uses C language programming, the past software using assembly language.But assembly language is readability and portability, and high-level language is difficult to realize the direct operation of computer hardware.However C language combines the characteristics of these two kinds of language.It has the characteristic of concise,convenient,flexible,compact. And the target code it generated has high quality and high efficiency.It has become one of the most popular programming languages in the world today.KEY WORDS: temperature, RS-232, C+ Builder6.0,PC, monitor 目 录第1章 绪论11.1 项目背景11.2 国外研究发展趋势21.3 本课题设计容2第2章 项目分析42.1 高压断路器的发展42.2 项目研究意义62.3 项目研究特点72.4 项目总体技术方案72.5 拟采集的信号8第3章 上位机设计要求103.1 软件环境103.2 温度模块设计目标143.3 串口模块设计目标143.4 数据表设计目标153.5 辅助功能设计15第4章 系统总体设计164.1 上位机总体规划164.2 串口设计174.2.1 串口介绍174.2.2 所用组件介绍184.2.3 串行通信的实现214.3 数据表设计284.4 上位机温度曲线设计304.5 辅助功能设计33第5章系统的调试运行365.1 温度曲线调试365.2 辅助功能调试375.3本章小结38第6章结论与展望396.1 结论396.2 展望39参考文献40致42诚信声明第1章 绪 论1.1项目背景该项目背景是液压操动机构试验状态在线监测与故障预警研究。随着电力体制改革的深入,在电力市场,电力系统需要进一步提高电力设备的可靠性。保证运行可靠性和维修经济性成为输电、发电企业适应市场竞争的迫切需要,用状态检修模式取代现有的计划检修模式,是电力工业发展的趋势。根据国家电力公司公布实施火力发电厂实施设备状态检修的指导意见的要求,电力公司应根据自身设备的实际与人员、资金情况,选择一些适合实施状态检修的设备, 先在一定围开展工作。550kV、220kV、110kV 高压开关、厂地高压开关都已经被列入实施状态检测的畴。实现电气设备状态检修的基础是对设备的在线状态监测。在线监测能准确、实时地反映电气设备的状况和预测使用寿命,为检修决策提供依据。电气设备状态监测不仅是设备状态检修模式的基础,也符合无人值守变电站目前我国电力部门正在实施的电气运行管理模式的发展需要。这就要求电力企业逐步形成一套融故障检修、定期检修、状态检修和主动检修为一体的、优化的综合检修方式,以提高设备的可靠性并降低电力成本。高压开关液压操动机构的出力特性和断路器的负载特性匹配较好、动作快、反应灵敏度高、输出功大、免运行维护、操作噪音小等优点,成为对操作需求较大的高压领域的首选配用机构。随着液压操动机构应用围的不断扩大,液压传动与控制系统也越来越复杂,对传动、控制精度、系统柔性化与系统各项性能要求也越来越高。各种液压操动机构在装配到高压断路器等电气设备前必须经过严格的出厂试验。在做出厂试验时必须对试验设备的各个状态进行时实监测,在出现紧急情况前做出故障预警处理。因此,为了提高高压开关液压操动机构产品的质量,有必要研制一套液压操动机构试验状态在线监测与故障预警系统。该项目特点是:1) 该系统能够实时监测试验设备的运行状况,随时调用、在线显示数据、实时记录、超限时给出超限报警、有很强的抗干扰性;2) 提出复杂运行环境中试验设备状态控制策略,保证液压机构可靠运行。该项目的先进性和创新性体现在高效、高可靠性等是当今世界科学技术人员追求的目标,如何能提高液压操动机构的出厂质量,获得最佳经济效益,根据液压操动机构配用。1.2国外研究发展趋势断路器(大型锻压机、大型挤压机等)是一个国家建立独立工业体系和强大制造业所必须的大型战略性装备。由于大型液压装备结构特点和极端强化的工作环境,目前缺乏对其非功能参数实施有效监测的成熟技术,在这一方面,还有很大的发展空间。 中南大学谭建平教授领衔的科研团队与西南铝业(集团)XX公司合作,在国家863计划 “300MN模锻水压机状态监测与故障诊断研究”和国家科技重大专项“2万吨难变形金属挤压机”等项目支持下,针对大型液压装备结构特点与运行环境,开展了持续的科技攻关,原创了基于机器视觉的大型液压机活动横梁姿态监测技术、基于现场总线的数字式立柱应力监测技术、大型挤压机挤压中心双激光远程多路图像识别检测技术等多项具有自主知识产权的大型液压机状态监测技术;建立了大型液压机关键构件附加应力、液压系统异常冲击与故障预警机理模型,开发了与设备操纵控制系统相融合的大型液压机状态监测与故障预警软硬件系统,全面实现了大型液压机的状态监测与故障预警功能,以上研究成果于2009年8月应用于亚洲最大的300MN模锻水压机和我国最大吨位125MN卧式挤压机,成功解决了300MN模锻水压机立柱应力保护、125MN卧式挤压机高精度对中挤压等多个技术难题,有效保障了大型装备的安全运行和国防军工重要制品的产品质量。高压断路器的操动机构由手动操动机构发展到手动储能弹簧操动机构、电磁操动机构、气动操动操动机构、液压操动机构、弹簧操动机构、液压弹簧操动机构和永磁操动机构,目前正在向电机操动机构发展,并且发展前景良好。1.3本课题设计容本课题:在线温度监控系统上位机软件设计。项目整体要现在线检测液压操动机构试验状态时的状态,共分解为三部分,终端温度数据采集,主节点数据收集与处理,以与上位机交互界面制作,本课题的任务是利用C+builder软件制做上位机界面,主要功能是通过串口将其采集来的温度数据接收进来,并将其显示在坐标曲线上。所以我的容主要分为两大模块,调试串口和在坐标上显示出温度曲线。第2章 项目分析2.1高压断路器的发展断路器的操动机构由手动操动机构发展到手动储能弹簧操动机构、电磁操动机构、气动操动机构、液压操动机构、弹簧操动机构、液压弹簧操动机构和永磁操动机构,目前正在向电机操动机构发展。手动操动机构:靠手力分合闸的操动机构称为手动操动机构,它在最早的低电压等级的断路器上使用过。它的优点是结构简单,不需要辅助设备和电源,缺点是不可能开断大电流,不能实现自动重合闸,而且不安全,因此已经被淘汰。手动弹簧操动机构:靠手力分合闸并同时给分闸弹簧储能,分闸靠弹簧力的操动机构称为手动弹簧操动机构。这种机构多用于10kV柱上断路器。它的优点是结构较简单,不需要辅助设备和电源,缺点是不能实现自动重合闸和自动控制。这种机构目前仍然在有些柱上断路器上使用。电磁操动机构:靠电磁力合闸并同时给分闸弹簧储能,分闸靠弹簧力的操动机构称为电磁操动机构。电磁操动机构优点是结构简单,工作可靠,制造成本较低,缺点是合闸消耗的功率太大(17kW至52kW分闸线圈电流75235A)。因此用户必须配备价格较贵的蓄电池或整流电源装置,而且结构笨重、耗材多、合闸时间长(0.20.8s),只适用于110kV与以下的断路器。电磁操动机构目前仍然在一些多油、少油和真空断路器上使用,但数量会越来越少直至淘汰。气动操动机构:气动操动机构分早期和后期两种形式。早期的气动操动机构用于空气断路器,分合闸都靠压缩空气提供动力,储压筒压力高。机构体积大,噪声高。这种气动操动机构已经淘汰。后期的气动操动机构是改进后的气动操动机构。分闸靠压缩空气提供动力。同时给合闸弹簧储能。合闸靠弹簧提供动力。因此,也称为气动弹簧操动机构。气动弹簧操动机构的优点:以压缩空气为动力源,不需要大功率的直流电源。当失去电源时,储压罐的压缩空气仍然可以操作断路器。结构较简单,传动零件较少,也较为可靠。气动弹簧操动机构的缺点:空气压缩机与系统如果出现故障就会造成机构故障。压缩空气系统如果泄露严重就会因失压而造成机构故障。噪声大。目前,气动弹簧操动机构仍然在有些126-500kV压气式SF6断路器上使用。但是随着自能式高压SF6断路器的发展,气动弹簧操动机构将会被淘汰。液压操动机构液压操动机构利用液压油作为动力传动的介质。用于断路器的为储能式的液压操动机构,它利用储压器中预储的能量,运用差动原理,间接推动操作活塞来实现断路器的分合闸操作。液压操动机构的优点:体积小、操作力大、操作平稳、无噪声而需要控制的能量小。容易实现自动控制和各种保护。液压操动机构的缺点:如果有泄露就会影响能量输出而造成断路器的慢分和慢合。如果气温变化大,一是储压器中的压力变化增大;二是引起油的粘度变化而影响断路器分合速度的变化。加工精度要求高。由于液压操动机构具有的优点,在相当一段时期在高压断路器上广泛使用。高压断路器的不断发展也促使了液压操动机构不断改进。目前,模块化,高质量,无泄漏的新型的液压操动机构仍然受到用户欢迎。液压弹簧操动机构:液压弹簧操动机构是在液压操动机构基础上发展起来的。最大的改进是用蝶簧储能取代氨气储压筒储能,这就避免了泄漏和温度变化造成的故障,且大大减少了机构体积,简化了结构。新型液压弹簧操动机构完全模块化,采用集装板块结构(如ABB公司的HMB型)。操动机构的主要元件按功能分为五大模块:充能模块、储能模块、工作模块、控制模块和监测模块。结构紧凑,基本上无管道连接,大大减少了泄露,且检修方便。由于液压弹簧操动机构集液压和弹簧操动机构的优点,操作平稳,性能较为可靠,因此在高压SF6断路器上使用围逐渐扩大。但是由于该机构蝶簧的材料和工艺要求较高,液压元件精度要求也高,制造难度较大,成本较高,也有继续研究和改进的必要。如果要将该机构用于自能式高压SF6断路器上的话,对多次打压后由于油温升高,油的粘度变化而影响断路器速度变化的现象不可忽视。近现代的科学技术的出现,特别是计算机技术的出现和飞速发展给试验设备状态检测、诊断技术的提供了良好的发展契机,试验设备状态检测技术必定向着集成化、智能化、在线化的方向发展。因此,为提高液压操动机构的出厂质量,获得最佳经济效益,根据液压操动机构配研制一用不同高压断路器的不同特点,种能实现液压操动机构试验状态在线监测系统,并能实现试验设备状况超标时自动报警的检测装置,对减少液压操动机构液压系统故障,保证液压操动机构正常运行,是十分必要也是非常有用的。在液压机构监测工作基础上,建立了液压操动机构试验状态在线监测通用模型。基于上述的原因,决定对液压操动机构试验状态进行在线监测与故障预警研究工作。 2.2项目研究意义随着计算机技术、传感器技术、信息技术、数字采集与处理技术等的飞速发展与综合应用,设备状态监测与故障诊断分析技术在设备管理与维修现代化中越来越占有重要的地位。根据被诊断设备自身的重要性选定相应的监测方法和仪器设备,建立起与设备有关的状态监测与诊断技术体系,在不影响设备正常运行的情况下,通过各种方法对设备的健康水平进行监视和评估,从而实时了解设备的运行状态,捕捉故障征兆,并对故障部位、故障严重程度与发展趋势做出判断,最后确定设备的最佳维修时机,做出针对性的检修计划,是提高设备使用效率,获得最大企业效益,实现企业设备管理现代化的良好途径。本项目研究液压操动机构试验状态在线监测系统,该系统能实时监测试验设备的多个状态。在测量时,现场显示结果,时实性强、准确性高。当试验设备状态值超过系统设定值时,系统发出报警信号,提醒操作人员注意。该系统对高压、超高压、特高压开关液压操动机构的状态进行监测;建立液压操动机构试验状态监测系统通用模型。通过与早发现系统潜伏的故障隐患,防止重大恶性事故,对于确定液压设备合理的维修时间,降低维修费用,达到主动预防性维护,使机械系统达到最佳性能和最大可靠性,提高经济效益,将具有非常重要的意义。2.3项目研究特点高效、高可靠性等是当今世界科学技术人员追求的目标,如何能提高液压操动机构的出厂质量,获得最佳经济效益,根据液压操动机构配用不同高压断路器的不同特点,研制一种能实现液压操动机构试验状态在线监测系统,并能实现试验设备状况超标时自动报警的检测装置,对减少液压操动机构液压系统故障,保证液压操动机构正常运行,是十分必要也是非常有用的。在液压机构监测工作基础上,建立了液压操动机构试验状态在线监测通用模型。基于上述的原因,决定对液压操动机构试验状态进行在线监测与故障预警研究工作。项目特点:1) 该系统能够实时监测试验设备的运行状况,随时调用、在线显示数据、实时记录、超限时给出超限报警、有很强的抗干扰性。2) 提出复杂运行环境中试验设备状态控制策略,保证液压机构可靠运行。2.4项目总体技术方案系统的总体构想:液压操动机构试验状态在线监测系统平台应包括硬件平台、软件平台和网络环境三部分,对软、硬件与网络环境应具有较强的适应能力;系统的结构大小可根据需求灵活调整、扩充;可接入各种用途的工作站,接入的工作站的数目应基本不受限制。对硬件系统的要求:在系统的硬件设计上,要求选用传输速度快,抗干扰能力强、性能可靠的产品。设备数量应考虑系统的扩展性。对软件系统的要求:系统所采用的应用软件应符合WINDOWS的视窗标准,确保升级方便,系统开放性好,应可以任意集成其他厂商提供的软件模块,便于功能扩展。应具有良好的人、机交互使用环境,操作、维护简易、方便。对系统整体性能的要求:1) 适用于72.5-00kV的各种类型液压操动机构试验状态的在线监测;2) 系统可采用模块化设计,以便于安装、调试、维护,应能保证装置长期、可靠、稳定运行;3) 用先进的数字信号处理技术,确保采样精度和采样密度,具备强大的数据处理能力;4) 有对所有回路(包括监测回路和保护回路)的独立采样,既保证正常时的监测精度,又能保证故障时的数据精度;5) 有完善的自检体系。能同时提供芯片供电电压异常预警、温度报警等功能以保证系统安全可靠运行,且装置本身的故障不影响其它装置的正常运行;6) 有很强的抗干扰能力。装置应能保证系统在恶劣的环境中能稳定、可靠运行。与外部的连接在电气上都经过隔离,保证外部的干扰不影响装置的正常运行。2.5拟采集的信号本文的设计目的是实现在线监测液压操动机构试验状态时的状态,其中既有温度参量、压力参量、电压参量、电流参量,也有力学参量等。液压操动机构试验状态的在线监测涉与到包括传感器技术、计算机技术、网络通信技术、电磁兼容技术以与信号的处理技术等诸多方面。现代检测技术作为传感测量技术与信息处理技术的结合,为本课题的设计提供了先进的理论基础。现场智能采集监测单元为一个单片机监测模块。断路器的各种监测信息通过不同传感器,送入采集监测单元封装的各调制回路进行预处理后,由高速A/D采样后经CAN现场总线实现实时高速传输,上传给前台工控机。如图2-1所示。图2-1在线监测系统原理图前工控机作为高层管理设备,通过编程软件编制的处理控制程序,结合数据库,完成断路器监测过程的监视和管理,实现特性参数和相关曲线的计算,显示,存储,查询和打印等功能。串行通信转换接口,将各采集节点CAN总线连接在一起,转换为RS-232接口,实现与前台处理机的通信。数据库服务器系统的接受和处理数据采集系统发送的各路信号数据,并将处理后的数据写入集中诊断特征数据库和历史数据库。以便于完成数据积累、资源共享,实现分散监控。第3章 上位机设计要求3.1软件环境本次毕设用到的软件是C+builder6.0。Borland C+Builder6.0基于C+ 语言的快速应用程序开发(Rapid Application Development,RAD)工具,它是最先进的开发应用程序的组件思想和面向对象的高效语言C+融合的产物。C+Builder 充分利用了已经发展成熟的Delphi 的可视化组件库(Visual Component Library,VCL),吸收了Borland C+ 6.0 这个优秀编译器的诸多优点。C+Builder 结合了先进的基于组件的程序设计技术,成熟的可视化组件库和优秀编译器,调试器。发展到6.0版本,C+Builder 已经成为一个非常成熟的可视化应用程序开发工具,功能强大而且效率高。C+Builder的特色:1) C+builder是高性能的C+开发工具;2) C+Builder是基于C+的,它具有高速的编译,连接和执行速度。同时,C+Builder具有双编译器引擎,不仅可以编译C/C+程序,还能编译Object Pascal语言程序;3) C+Builder是优秀的可视化应用程序开发工具;4) C+Builder是一完善的可视化应用程序开发工具,使程序员从繁重的代码编写中解放出来,使他们能将注意力重点放在程序的设计上,而不是简单的重复的劳动中。同时,它提供的完全可视的程序界面开发工具,从而使程序员对开发工具的学习周期大大缩短。 5) C+Builder具有强大的数据库应用程序开发功能。+Builder 提供了强大的数据库处理功能,它使的程序员不用写一行代码就能开发出功能强大的数据库应用程序,这些主要依赖于C+Builder众多的数据库感知控件和底层的BDE数据库引擎。C+Builder除了支持MicroSoft的ADO(Active Data Object)数据库连接技术,还提供了一种自己开发的成熟的数据库连接技术BDE(Borland Database Engine)数据库引擎。 6) C+Builder具有强大的网络编程能。C+Builder具有众多的Internet应用程序开发控件,如WebBroker,CppWebBroswer,WinSocks等,它们基本含盖了Internet应用的全部功能,利用它们程序员可以方便地建立自己地Internet应用程序。 执行C+ Builder光盘上的安装文件后,依照安装向导的指引,一步步做完安装项目的选择,便可以成功地将C+ Builder安装到计算机里;要执行C+ Builder,必须选择开始|程序|Borland C+ Builder5|C+ Builder5命令。界面打开后如图3-1所示。 图3-1 C+Builder软件界面下面对各板进行说明:1)如图3-1中的最上方是菜单与工具栏,用来执行相关的功能;2) Form1为组件面板:设计系统时所需要的可视化对象与功能性组件的集中摆放处。当设计窗体或是功能时,一定会需要各式各样的由Borland或是其他的第三方厂商所制作的对象,这些被用来设计系统的对象称为VCL组件。通过对这些组件的运作,就可以轻松的设计所需要的窗体或功能。添加多个组建后,组件面板中的组件就会多起来,可以在组件面板中单击鼠标右键,在弹出的快捷菜单中选择Properties命令,在打开的Palette Properties对话框中查看C+ Builder中可以使用的组件。3) 对象查看器(Object Inspector):每个组件被使用到系统设计时,都或多或少需要改变一些特性,这些特性就是组件的属性,通过对属性的不同设置,同一个组件在不同的程序中也可能展现不同的外观。组件属性通常相当多,一般的常用属性可以由字面上与该组件的功能得到一些大概的了解,所有的属性要了解的话就要由在线说明来查看才比较能够知道。属性的指定有时只是一个简单的数值指定,有的则可能引出另一个对话框,让用户进行更多的详细设置。除了一般的属性设置之外,还有Events选项卡,其中是让用户选择所需要执行的事件程序,一般的设计上,直接在此事件名称右边双击鼠标即可让C+ Builder自动创建事件程序的框架,若程序类似者还可以共用同一个事件程序,相当方便。4) 程序设计区:这个部分是真正写入程序代码的地方,不管界面设计的如何,最终总是要在这个地方将系统要执行的步骤写入。程序代码的编写并不是类似一流程图般从头写到尾,从第一个开始,直到最后一个结束;而是针对某一个对象的某一个事件发生时,该对象应该要有什么样的响应或行为来写程序代码。程序代码的编写方式完全采用事件驱动的方式,一旦该事件引发后便执行此段预先写入的程序代码,当此段代码执行完毕后,系统就处于闲置状态。例如一个按钮被按下了,也许在这个按下的动作的事件里预先编写了一个启动声卡播放一段音乐的程序,当这段程序被执行完毕,除了原本就安排的固定动作外(如定时器的固定循环动作),系统便不再执行其他的程序了。设计的样子如图3-2所示。图3-2 程序设计区5) C+ Builder6.0的环境模式分成3种环境模式:设计模式、运行模式与中断模式,如图3-3所示。 设计模式:设计界面,编写程序代码时所处的环境成为设计模式,这很类似于在S开发程序时的集成开发环境,设计这想法均是在此环境中先形成。运行模式:当程序开发到一个阶段后,就可以进入运行模式测试一下运行的结果,此模式下的结果一般会与编译成为可执行文件后运行的结果一样(部分API例外),C+ Builder运行模式下所执行的程序代码是先编译成可执行文件而后直接以该可执行文件来运行,因此速度较快。中断模式:此模式则是当设计者在程序中设下断点,而执行的过程中遇到此行时,程序即在此中止,等待设计者的下一步指令,设计者可以继续执行、单步执行、跨函数执行或进行断点前的变量运算。设置断点最方便的方式就是在程序编译环境下,光标移至该行程序,然后,按下F5键,即可使光标所听的该行成为一个断点;若该行程序代码原来为终端所在的位置,则此F5键的按键动作将使得此断点取消。 图3-3 C+ Builder环境模式3.2 温度模块设计目标在本多点测温技术中,下位机采用的是DS18B20数字温度传感器和89C51单片机,整个系统硬件简单、可靠,系统成本低,易于维护。而本文所要做的上位机的功能是实现多点温度测量的温度显示,既要对温度进行实时采集,也要将其显示在上位机温度变化曲线上,以便于观察温度变化情况。这一模块是上位机的最终目的。由于是多点温度采集,在这一模块中,我设置了六个节点,为了方便区分是哪个节点的温度,每个节点的温度都由不同颜色的曲线来绘图。并在下面标明哪种颜色代表哪个节点的温度。3.3 串口模块设计目标上位机本身并不具备测温的功能,它只是对采集来的数据进行处理、显示,因此就需要从下位机处接收到这些数据,也就是说上位机与下位机之间要进行相互通信,本次选用的是串口通信,串口是计算机上一种非常通用的设备通信协议。串口同时也是仪器仪表设备通用的通信协议。串口通信是指外设和计算机之间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据较少,在远距离通信中,可以节约通信成本,串口按位(bit)发送和接收字节,尽管比按字节(byte)发送的并行通信慢,但是由于串口通信是异步的,端口能够在使用一根线发送数据的同时使用另一根线接收数据。它很简单,并且能够实现远距离通信。串口通讯原理如图3-4所示。 图3-4串行通信原理本设计中,需要在C+Builder平台上,设计串行通讯,并调试成功,以接收主控机发送的温度、时间、节点信息等数据,从而方便曲线显示的调用。3.4 数据表设计目标上位机从外设接收数据,这就需要将这些数据进行区分,并有序显示在数据表里,同时,上位机可从表中调用数据信息并显示在上位机监控画面中,进行实时监控。数据到达串口后,将数据处理成(A,B)C*格式,其中ABC均为数据,A代表温度,B代表时间,而C*表示结点。这样系统就能识别出每组数据中的三个数据都代表什么。3.5 辅助功能设计上位机的功能主要有两大模块,但为了上位机整体效果看起来更直观一些,能让使用者用起来方便,并且还可以看到一些其它信息,我在设计时加入了一些辅助功能。COM口结点指示灯的设计:在串行通信调试时用到指示灯,在不同状态时,显示灯会显示出不同的颜色,这样看起来更效果更明显。各节点指示灯的设计:打开某个结点时,这个结点上的指示灯颜色就会变绿。日期显示的设计:在界面上放置日期显示组件,更方便使用者查看日期,这个组件有个下拉菜单,点开下拉菜单,会显示出日历的格式,也方便查看以前的日期。波特率的设计:界面上还放职了显示波特率的模块,方便使用者清楚串口运行时的通信速度。温度设置:由于季节不同,高压断路器的最适温度有所不同,而对温度差值也有一定的围,该设计能够在系统上显示出当下的最适温度以与温度差值。执行/退出等功能键:在系统上放置一个退出按钮,用于整个系统的退出。第4章 系统总体设计4.1上位机总体规划在C+builder6.0软件环境中,设计温度监控系统的上位机主界面,上位机所要实现的主要功能包括:通过主界面可以选择用哪个端口进行串口通讯,导入采集来的温度数据,并在二维坐标上显示设备的温度时间曲线等。设计思路:考虑到界面外观问题,需要用到两个Panel控件,一个的Anchors属性设置成左,另一个的Anchors属性设置成右,就会将整个界面分成两个模块,一个是曲线显示模块,另一个是串口调试模块,这样一来,一旦执行程序,则各个模块就会充满整个上位机界面,而不会出现所有模块集中到一处的情况。而为了让上位机界面充满整个计算机界面,则在Form1的FormCreate中添加如下指令:void _fastcall TForm1:FormCreate(TObject *Sender)Form1-Position=poScreenCenter; Form1-Height=768; Form1-Width=1366;/*全屏指令*/这样一来,上位机界面的分辨率与计算机的就一样了。(Height与Width的数值因个人计算机不同而有所不同,只需将其设置成与所用计算机一样的分辨率即可)软件使用方法:运行软件,打开该界面后,选择通讯簿旁边有一个指示灯,指示灯原本为灰色,点击开始通讯按钮,若指示灯变为绿色,则说明通讯端口打开,计算机串口可以进行正常通讯,接收下位机采集来的温度数据,并且,这些数据将会显示在数据表里点击结束通讯时,指示灯又会变为红色。在温度显示曲线这一模块中,只要点击打开按钮,系统就会开始绘制曲线,将采集来的温度数据显示在温度时间曲线Curves上,并且系统会自动统计出这组数据的温度差值。当要退出系统时,只需点击右上角的退出按钮即可。4.2 串口设计4.2.1 RS-232概述通信的主要目的是将数据从一端传送到另一端,实现数据的交换,从人与人之间的对话,计算机与设备之间的数据交换,计算机与计算机之间的数据传送,乃至于广播或卫星信号的传送,全都属于通信畴。一个完整的通信系统包括发送端、接收端、转换数据的接口以与传送数据的实际信道或媒体。随着个人计算机的迅速发展,个人计算机成为信息传输的良好工具,数台计算机可以连接成一个速度很快的网络系统。互相交换数据。传输设备与媒体的快速发展,成本的大幅度下降,也使得距离越来越不是问题,因此以计算机为基础发展出相当多的通信方法。常用的串行通信有两种,并且串行通信端口(Serial Communication Port)在系统控制的畴中一直占据着极其重要的地位,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。现在,串行端口(RS-232)是计算机上的标准配置,常用于连接调制解调器来传输数据。当然,它的重要性还不止如此。以下将对通信端口进行深入的介绍。RS-232的通信端口是每台计算机上的必要配备,通常含有COM1与COM2两个端口。一般的计算机将COM1以9引脚的接头接出,而以25引脚的接头将COM2接出。新一代计算机均以9引脚的接头接出所有的RS-232通信端口。在计算机上的RS-232均是公头,这点是不会改变的。通常与计算机连接的设备,最简单的通信接口就是RS-232,不仅实际操作简单,而且价格上也便宜很多。另外,在工业应用的场合中,工业计算机的使用比一般计算机普遍。图4-1是RS-232标准接头。图4-1 RS-232标准接头RS-232各针脚标号如图4-2所示。图4-2 RS-232串口针脚标号 RS-232各针脚功能如下表4-1所示。 表4-1 RS-232各针脚功能针脚 信号 定义 作用 1 DCD 载波检测 Received Line Signal Detector(Data Carrier Detect)2RXD 接收数据 Received Data3TXD 发送数据 Transmit Data4DTR 数据终端准备好 Data Terminal Ready5 SGND 信号地 Signal Ground6 DSR 数据准备好 Data Set Ready7 RTS 请求发送 Request To Send8CTS 清除发送 Clear To Send 9 RI 振铃提示 Ring Indicator4.2.2所用组件介绍RadioGroup是一个单选组框,位于standard组件的页面上。这种组件的特点是能使数个单选按钮成为一组,同组的单选按钮之间具有互斥性,只能选一个。单选组框组件的主要属性为:1) Colums属性:用来获得或设置单选分组框的列数,它的取值围为116,默认值为1。即如果为1,则是一列(如图4-3a),如果是2,则是两列(如图4-3b)。图4-3a 组件外观1 图4-3b组件外观2 2) Itemlndex属性:用来获得被选择项的索引,默认值为-1,表示没有选项被选中,索引为0的时候表示第一项被选中,其他的以此类推。Itemlndex是设计时使用的,运行时由用户的选择而自动改变它的值。3) Items属性:用来列出单选分组框的各个单选按钮。它含有一个Strings对象,用来设置各个单选按钮标题。设计期间可以点击Object Inspector窗口中Items属性右端的按钮来对其进行编辑。Memo组件是一个标准的Windows多行编辑组件。可以用来输入与显示数据,虽然Edit组件也有此功能,但它只能进行单行输入,而Memo组件则可以多行输入,它主要用于输入备注型的字符串,但它不能进行文字格式的设置。在需要多行输入的情况下,使用Memo组件是比较合适的选择除此之外,ScrollBar的使用,也使得Memo组件中的数据具有容易查看的效果。此组件在组件面板中的位置与外观如图4-4所示。 图4-4 memo组件外观1) Lines属性:可以访问多行文本中的每一行。2) ScrollBars:此属性用于设置是否要加上滚动条。本属性设定了以下4个用户可选值:ssNone不加滚动条;ssHorizontal加上水平滚动条;ssVertical加上垂直滚动条;ssBboth水平和垂直滚动条都加上。3) WantReturn:用于解决按下“enter”键适用于换行还是作用于按钮WantTabs每按一次Tab键,将使光标在多行文本编辑器中移动一个制表位WordWrap,当输入文字到了多行文本编辑器的右边界时,文字自动换行。即当此属性设为True,按下“Enter”键就是换行。如果设为False,按下“Enter”键就不是换行,而是作用与按钮,这时候要换行必须按“Ctrl+Enter”组合键。4) WantTabs属性:如果WantTabs属性设为True,每按一次“Tab”键,将使光标在多行文本编辑器中移动一个制表位。如果该属性设置为False,按下“Tab”键使输入焦点在同一个Form的组件之间依次切换,这时候,要在多行文本编辑器中移动一个制表位,必须按“Ctrl+Tab”组合键。5) WordWrap属性:如果此属性设置为True,当输入的文字到了多行文本编辑器的右边界时,文字自动换行。当编辑器的水平尺寸改变时,编辑器中的文字也将自动调整。6) 常用属性如下表4-3所示。表4-3 memo常用属性常用属性 说明 Name 对象名称,对象摆放完成后给予,是第一个必要设置的属性 Font 决定字体、颜色、大小 Text 决定文本框的容ScrollBar 决定此组件要出现与使用的滚动条使用Text属性,就可以设置或读取Memo的容,使用Lines属性亦可。 Label组件是专门用来显示文字和数字的组件。它通常配合其他的对象一起使用,并提供其他对象的简要说明和标注。由于通常被用来做标注,事件的使用就不会太频繁。在组件面板中的位置与外观如图4-5所示。 图4-5 Lable外观常用属性设置如表4-4所示。 表4-4 Lable属性常用属性 说明 Name 对象名称,对象摆放完成后给予,是第一个必要设置的属性Caption 标签的标题 Font 显示字体的设置4.2.3 串行通信的实现在Windows环境下,利用C+ Builder实现串口通信主要有两种编程方法:一种是使用ActiveX控件,另一种是使用Windows的API函数。下面将分别介绍这两种方式。ActiveX控件:使用ActiveX控件可快速实现小型的组件重用、代码共享。通过使用ActiveX控件,可以很快的在网址、台式应用程序、以与开发工具中加入特殊的功能。开发控件可以使用各种编程语言,如C,C+。它可以跟支持ActiveX控件的任何主机应用程序函数结合并扩展函数的功能,例如C+Builder、Delphi、Visual Basic、InternetExplorer和Netscape Navigator 等。ActiveX实现一组特定的允许这种集成的接口。例如,C+Builder跟几种ActiveX控件结合在一起,包括图表、电子表格和图片控件等。用户可以把这些控件添加到IDE中的组件栏中,然后就可以像使用标准的VCL组件一样使用它们,把他们拖放到窗体上并使用Object Inspector设置它们的属性。ActiveX控件也可以在网上发布,并可以被HTML文件引用和在支持ActiveX的网络浏览器中显示。C+Builder提供的向导可以创建两种类型的ActiveX控件。1) 捆绑VCL类库的ActiveX控件通过绑定VCL类,用户可以把存在的组件转化为ActiveX控件;或者创建一个新控件,并在本地对它们进行测试,然后把它们转化成ActiveX控件。ActiveX控件总是被嵌在大型的主机应用程序。2) ActiveFormActiveForm允许用户使用窗体编辑器来创建一个非常精致的窗体,它的行为就像一个对话框或一个完整的应用程序。开发一个完整的Active窗体跟开发一个C+Builder应用程序一样。Active窗体通常要在网上发布。ActiveX控件有较强的功能且简单易用,但灵活性较差,而且这种方法经常发生数据丢失的情况,不能满足实时系统的需求。并且也存在被人利用的隐患,网页中的恶意代码往往就是利用这些控件编写的小程序,只要打开网页就会被运行。所以要避免恶意网页的攻击只有禁止这些恶意代码的运行。API函数:API是Application Programming Interface的缩写,也就是应用程序调用系统功能的接口。它是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的存)的外观和行为的一套预先定义的Windows函数。用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。这在某种程度上很象Windows的天然代码,其他的语言只是提供一种能自动而且更容易的访问API的方法。WindowsAPI主要包括系统定义的函数、消息与与之相关的数据类型。这些函数可以为程序设计人员提供相当多的执行功能。就连操作系统本身也是由这些API函数所组成。它还可以搭建出各种界面丰富,功能灵活的应用程序。不管是哪种快速开发工具,最后都会调用到API,由API执行操作。实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉与到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现,这也是API函数使用的场合。对于API的声明,该函数包含在位于系统目录下的DLL文件中,可以自己输入API函数的声明,要想在你的工程中声明API函数,只需运行API Text Viewer,打开Win32api.txt(或.MDB如果已经把它转换成了数据库的话,这样可以加快速度),选择“声明”,找到所需函数,点击“添加(Add)”并“复制(Copy)”,然后粘贴到工程里。使用预定义的常量和类型也是同样的方法。由于C+ Builder已经将Win32 API声明进去了,因此在C+ Builder里面使用API时只要直接引用即可。这种方法虽然要复杂一些,但使用API函数,既能保证数据的完整,又可以让我们清楚地掌握串口通信的机制,熟悉各种配置和自有灵活采用不同的流控进行串口通信。综合这两种方法的优缺点考虑,本次毕设最终选择通过调用API函数来实现串口通信的问题。API函数中与串行通信相关的函数约有十七个,但常用的函数只有以下几个。1) CreatFile:用创建文件函数打开通信端口;2) CloseHandle:关闭通信端口;3) GetCommState:获得计算机串行端口的设置参数;4) SetCommState:设置计算机串行端口的参数;5)WriteFile:用写文件函数将数据由串行端口送出;6) ReadFile:用读文件函数获取送到串行端口的数据; 7) ClearCommError:清除串行端口的错误,并取得信息;8) PurgeComm:清除串行端口上的缓冲区;实现过程:在Win32下,对串口的操作就如同对文件一样打开或关闭,对串行数据的读写可在用户定义的读写缓冲区中进行,具体过程参见图4-6所示。图4-6串口流程图1) 打开串口通信。串行通信前,要调用CreatFile()函数打开串行端口,当通信端口成功打开后,就返回一个串口句柄(Handle),以后只要使用这个句柄就可以对通信端口操作。然后进行串口配置,在打开通信设备句柄后,通常要对串口进行初始化工作,即配置参数如波特率、数据位数、停止位数、奇偶校验以与握手协议等。配置串口通过改变数据结构设备控制块DCB(Device Control Block)来实现。只要设置波特率、数据位、停止位、校验位等几个关键参数即可。我们可以使用GetCommState函数获得串口的配置,该函数把当前配置填充到DCB结构中。要修改串口配置,应该先修改DCB结构数据成员值,然后调用SetCommState函数将改变了的通信设备控制块DCB再返回给串行通信端口,一重新分配串口资源的各个参数。点击开始通讯按钮便开始接收资料,因此双击开始通讯按钮,加入如下程序代码:void _fastcall TForm1:Button1Click(TObject *Sender) char *ComNo; DCB dcb; String Temp; /取得要打开的通信端口 Temp = COM+IntToStr(rdCOM-ItemIndex +1); /转换至指针类型Char ComNo = Temp.c_str(); hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0); if (hComm = INVALID_HANDLE_VALUE) / 如果通信端口未打开 MessageBox(0, 打开通信端口错误!,Comm Error,MB_OK); return; /将dcb地址传入,以取得通信参数 GetCommState(hComm,&dcb); / 得知目前通信端口的状态 dcb.BaudRate = CBR_9600 / 设置波特率为9600 dcb.ByteSize = 8; / 字节为 8 bit dcb.Parity = NOPARITY; / Parity 为 None dcb.StopBits = ONESTOPBIT; / 1 个Stop bit /通信端口设置 if (!SetCommState(hComm, &dcb) / 设置通信端口的状态 MessageBox (0, 通信端口设置错误!,Set Error,MB_OK); CloseHandle(hComm); return; 2) 接发数据。当有通信事件产生时,可使用函数ReadFile()和WriteFile()直接对串口缓冲区进行读写操作。其中JpBuffer指向读写缓冲区,nNumberOfBytes为要读写的字节数,lpNumberOfBytes为实际读写的字节数,lpOverlapped指定同步或异步操作。在实际使用中,当有数据到达通信端口时,应主动将数据接收下来。将数据由串口读进计算机的方法是使用ReadFile()函数,要得知被送到串口输入缓冲区的字节数,必须使用ClearCommError()函数,来获得当前串行端口状态,这些状态中包括了输入缓冲区中数据的字节数,只要将这两个函数放在定时器即可达到不断读取数据的目的。在发送数据时,只要在发送数据的mSend_Data控件中,输入要发送的信息,然后按回车键即能发送。双击传送资料按钮,给
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!