




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 南京工程学院 自动化学院 本科毕业设计(论文)题目: 拉力试验机无线网络的pc软件设计 专 业: 自动化 班 级: 数控000 学 号: 000000学生姓名: 0000000 指导教师: 000000000000000 起迄日期: 2013.22013.6 设计地点: 工程实践中心7号楼 graduation design (thesis) pc software design for tensile testing based on wireless networkby00000000supervised byassociate prof.00000000school of automa
2、tion nanjing institute of technologyjune, 2013摘 要设计拉力试验机pc端软件的主要目的是配合拉力试验机下位机工作,运用无线网络技术实现对多台拉力试验机的监控,对接收到的数据进行简单处理,绘制出拉力曲线图,并完成对数据的存储。本文的主要内容是介绍了一种基于c+语言开发的监控软件。对拉力试验机的工作原理及整个系统的网络结构进行了简要的阐述。分析了软件的的用户需求、设计方法、设计思路、设计流程等。重点介绍了模块化程序设计的方法并着重讲述了各功能模块的功能实现。按照要求,本次的软件可分为以下几大功能模块,分别是串口通信模块、显示模块、绘图模块、存储模块及其
3、他附加功能模块,其中,重点讲述了串口通信模块的功能实现。在运行调试过程中,遇到的一些问题通过老师指导、查阅资料等方法得到了很好的解决。程序运行的结果基本达到了预期的效果,串口通讯可靠性满足要求,拉力曲线图绘制比较精确,数据的存储功能也基本实现。但是,仍有不足之处。例如:界面美化方面有待进一步加强,软件不够灵活,未能实现拉力曲线图的存储。关键词:拉力试验机;监控软件;c+;串口通信 abstract the main purpose of the design of tensile testing machine pc software is work with tensile testing
4、machine, computer, monitor multiple tensile testing machine with wireless network technology, a simple treatment of the received data, draw force curve, and complete the data storage. the main content of this paper is to introduce a monitoring software based on c+ language. the network structure of
5、the working principle of tensile test machine and the whole system are briefly discussed. analysis of consumer demand, the software design method, design ideas, design process. introduced the method of modular design and describes the functions of each function module realization. according to the r
6、equirement, the software can be divided into several functional modules, respectively is the serial communication module, display module, the drawing module, storage module and other additional function module, wherein, focuses on the serial communication module. in the debugging process, some of th
7、e problems encountered were obtained through the guidance of a teacher, access to information and other methods to solve good. the result of running the program basically achieve the expected results, to meet the requirements of serial communication reliability, tensile curve drawing is more accurat
8、e, but also realize the function of data storage. however, there are still shortcomings. for example: the interface landscaping should be further strengthened, the software is not flexible enough, failed to achieve the tensile curve graph storage.key words: tensile testing machine; monitoring softwa
9、re; c+; serial communication目录第一章 绪论71.1 引言71.2 设计的目的及意义81.2.1 本次选题的意义91.2.2 软件设计的目的91.3 国内外的研究现状91.3.1 国外的发展现状101.3.2 国内的发展现状111.4 本文的结构11第二章 上位软件的总体分析132.1 网络结构132.1.1 zigbee简介132.1.2 zigbee应用152.2 上位pc软件设计分析152.2.1 需求分析152.2.2模块化程序设计162.2.3 功能模块的划分172.3 设计的思路及实现的方法182.3.1 总体设计概述182.3.2 编程语言的选择182
10、.3.3 编程的步骤182.4 本章小结19 第三章 上位软件的具体设计203.1 软件总体流程图203.2串口通信的实现213.2.1 mscomm控件简介213.2.2 利用串口控件实现串口通信243.2 人机交互界面的设计273.2.1 人机界面设计原则273.2.2 主体界面的设计293.3.3 常用控件的使用情况303.3 拉力曲线的绘制313.3.1绘图用到的类与函数313.3.2 拉力曲线绘制的总流程图333.4 数据的存储343.5 本章小结36第四章 软件功能的实现384.1 软件调试方法384.2 软件具体调试39第五章 结论435.1 论文总结435.2 展望435.3
11、感想44 第一章 绪论1.1 引言试验机是试验、检测材料(金属材料、非金属材料)、零部件、构件和结构的强度、刚度、硬度、弹性、塑性、韧性、延性和表面与内部缺陷的仪器设备、系统或装置。大多数试验机是集机一光一电一液于一体的技术密集型高科技产品,多数产品均属于计量器具。在工业的发展过程中,新材料,新工艺,新产品的不断出现。为了判断材料的力学性能,产品的结构性能,就需要相应的试验设备以及材料试验方法,于是拉力试验机应运而生。第一台拉力试验机诞生于200年前的西欧,采用的机械杠杆,砝码加荷原理制成,用以测定钢铁和其他金属材料的抗拉强度试验。随着材料科学和材料力学的研究,拉力试验机逐渐成为一种专门用于研
12、究各类材料机械性能试验,工艺性能,结构强度的工具。二战以后,科学技术迅猛发展,促进了各国试验机产业的发展和技术改革。拉力试验机主要由机械部分,数据采集部分,私服驱动部分,数据处理部分等组成。随着科技的发展拉伸试验机经历了机械式拉力试验机,电液伺服拉力试验机(如图1.1),到今天的微机控制电子万能拉力试验机主要的三个阶段。 图1.1 waw-d系列微机控制电液伺服万能试验机 随着信息技术等科技的高速发展,拉力试验机在软硬件方面也出现的新的发展趋势。由于微电子技术的快速发展,微处理器的速度越来越快,价格越来越低,已被广泛应用于拉力试验机中,使得一些原本由硬件完成的功能,可以通过软件来实现。甚至许多
13、原来用硬件电路难以解诀或根本无法解决的问题,也可以采用软件技术很好地加以解决。电子万能试验机(如图1.2)就是一种广泛使用的标准测试设备,在各类材料的质量检验、材料科学研究和实验教学环节,都需要用它进行材料的力学性能测试。他们就是利用计算机来控制试验机的测试过程,并用计算机来采集试验时的各种传感器的数据,然后在计算机上实时显示,在试验结束后试验机可以将数据进行各种处理,从而得到例如弹性模量、强度极限、屈服极限等材料参数,同时还可以通过计算机来进行各种精确的闭环控制方式,例如位移控制、应变控制、应力控制等。 图1.2 微机控制电子万能试验机1.2 设计的目的及意义拉力试验机广泛应于用工矿企业、计
14、量、学校的现场和实验室,其应用领域涉及到机械、冶金、建筑、航空、航天、军工、交通、运输、质检、计量、教育、医疗等各行各业。因此,试验机在国民经济中占有相当重要的地位,它的发展水平在某种程度上反映了一个国家工业发展的水平。试验技术和试验机是现代科学技术不可缺少的重要组成部分,所以对试验机的研究具有重大意义的。1.2.1 本次选题的意义由计算机参与的控制系统是一种软件和硬件相结合的控制系统,其优势相对于传统的控制系统而言,是相当明显的。首先,它可以完成比较复杂的控制过程;其次,随着计算机产业的飞速发展,硬件产品的成本逐年下降,所以可以以较小的造价实现更为全面的功能,能够完成复杂试验过程的控制系统。
15、此外,计算机参与构成的控制系统具有试验结果的存储和分析功能,从而使此类系统能为研究人员提供及时准确的试验数据和结果分析,可以大大缩短试验周期,提高了试验效率。因此,开发拉力试验机pc端软件的意义主要体现在以下两方面: 1、拉力试验机计pc端软件可以充分发挥最新计算机产品所带来的海量的存储空间、快速的cpu运算速度所带来的性能优势,进行大量的数据存储,完成高速率的运算处理,最大限度地保证了系统拥有高性能的硬件基础。 2、高级语言开发出来的、易于操作的人机交互界面,可以为试验人员提供一个友好、明晰的操作环境,通过该界面,试验操作人员能方便地选择输入试验控制参数,控制试验的开始和终止,实时观察试验的
16、进程。在试验结束后,还可以由计算机处理试验数据绘制拉力曲线图,并将数据存储,试验人员可以调出以前的试验数据,以供研究,还可以根据研究的需要,编制相应程序,对有关数据进行处理,在计算机的协助下,快速准确的得到试验结果。1.2.2 软件设计的目的 本课题研究的主要目的在于结合现有的试验设备,开发出一种成本低、性能稳定、操作简明的拉力试验机pc端软件,以改进此类试验的控制手段。通过计算机软件控制试验的过程、存储试验数据,绘制拉力曲线图,达到其增强数据处理的能力,为试验人员提供高效精确的试验监控系统,减轻试验人员的劳动强度,缩短试验周期的目的,使拉力试验满足工作的需求。1.3 国内外的研究现状最早的拉
17、力试验机对试验过程的控制多数采用传统的机电控制手段实现,此类设备中操作过程烦琐、试验精度不高、试验数据的保存不便、处理不及时,在一定程度限制了试验机的使用和发展。伴随现场总线的问世,过程测控仪表发展历程出现了重大转折和难得机遇。现场总线的出现,为仪器仪表的更新换代、产品升级以及实现进一步的高精度、高性能提供了巨大动力和发展空间。一台基于std总线微机控制的拉力试验机的原理如下:由力传感器和位移传感器把拉伸试验过程中采集到的电信号传到std总线工业控制机的前置放大电路, 经前置放大电路一级放大之后, 传送到模/数转换器, 经过模拟量向数字量的转换, 电信号转变成数据, 同时又被二级放大, 再经由
18、rs232c串行接口, 传入计算机, 实现计算机的自动控制。如图1: 采用这种基于总线微机控制的拉力试验机,使得拉力试验的工作更加可靠,所得的数据更加准确。本系统相比普通拉力试验机能很好实现基本功能以外,还具有以下的特点:1、 原始拉伸过程的再现:由于在拉伸过程中存储了6000多个原始拉伸采样点, 从而可实现拉伸过程的再现, 为日后的科研研究提供物质基础。2、代码设计:由于采用了标准码输入, 从而简化了汉字输入,提高了整个系统的运行时间。目前,随着计算机技术的普及,计算机硬件成本的降低和计算机软硬件技术的发展,利用pc机实现较高性能的拉力试验控制系统成为发展的方向。1.3.1 国外的发展现状
19、国外拉力试验机经过一百多年的发展沉淀,拉力试验机的控制测量和记录系统,广泛采用了电子技术,计算机技术,使拉力试验机的性能得到很大的提高。比较有代表性的是德国,美国,以及日本等一些企业。而电子万能试验机经过四十年的发展,先后推出了四代产品:第一代为电子管与晶体管时代,第二代为集成电路模拟时代,第三代为数字时代,第四代为计算机时代。比较有代表性的是美国的英斯特朗(instron)公司,德国的茨维克(zwiek)公司、德国申克(schenck)公司和美国的mts公司等。长期以来,试验机一直是欧美对我国尖端科研课题限制出口的产品。1.3.2 国内的发展现状 我国的国防科技工业和其它部门的科研院所不能直
20、接进口某些关键材料试验的仪器设备。所以,要发展中国的试验机产业,就必须走自主创新的道路。 试验机行业在我国已有五十多年的发展史,其发源地在我国的东北吉林省长春市。随着各行各业对试验机产品需求的增长,我国生产制造水平的不断提高和测试技术的飞速发展,目前生产试验机的公司和企业已遍布全国各地,有代表性的试验机厂家是深圳新三思集团有限公司、济南试金集团有限公司、长春试验机研究所等。它们生产着几百种规格、型号的试验机产品,有的试验机产品已出口到国外,远销到亚洲和欧美市场。 目前,国内的试验机厂家的pc端拉力试验机软件,有自己开发的,有购买专门从事试验机软件开发的公司的,也有引进国外公司的。总体来说,各有
21、千秋,有的功能简单但操作方便,有的功能强大但操作复杂。其实我国的试验机软件技术水平是相当不错的,早在1996年,在上海多国仪器仪表展览会上,新三思公司和美国mts公司在中国大陆同期推出基于windows系统平台下的试验软件。我国的试验机从功能性、适用性等方面都紧随国外试验机行业,如新三思集团公司前两年推出的 powertestv3.o试验软件,功能更强大、操作更人性化,获得了国内广大用户的一致好评。1.4 本文的结构 本文以拉力试验机的研发工程项目作为应用背景,对拉力试验机无线网络的pc软件进行了设计。全文共分为五章,各章的主要内容如下:第一章扼要地介绍了拉力试验机的工业概念和它在国内外的发展
22、、基本工作原理以及本课题的研究意义和目的;第二章介绍了拉力测试系统的无线网络结构,分析了用户需求并提出了用模块化程序设计完成此次的软件设计。接下来就划分了各功能模块,给出软件设计的思路及实现方法;第三章则详细讲了各功能模块的实现,对其中的串口通信模块的实现进行了重笔墨的叙述。第四章是软件功能的实现和调试,介绍了几种常用的调试方法,用图片的方式详细给出了软件调试的过程和结果;第五章总结了全文的研究工作。 第二章 上位软件的总体分析2.1 网络结构本课题的拉力试验机系统所采用的是无线网络结构,运用的是无线网络中目前比较流行的zigbee无线网络技术。2.1.1 zigbee简介zigbee是基于i
23、eee802.15.4标准的低功耗域网协议。根据这个协议规定,zigbee技术是一种短距离、低功耗的无线通信技术。与移动通信的cdma网或gsm网不同的是,zigbee网络主要是为工业现场自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个zigbee“基站”却不到1000元人民币。每个zigbee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。下图为zigbee的网状结构图(图2.1.1)。 图2.1.1 zigbee的网状结构图zigbee网络相比于蓝牙跟wifi
24、的优势体现在:低功耗。在低耗电待机模式下,2节5号干电池可支持1个节点工作624个月,甚至更长。这是zigbee的突出优势。相比较,蓝牙能工作数周、wifi只可工作数小时。低成本。通过大幅简化协议(不到蓝牙的1/10),降低了对通信控制器的要求,按预测分析,以8051的8位微控制器测算,全功能的主节点需要32kb代码,子功能节点少至4kb代码,而且zigbee免协议专利费。每块芯片的价格大约为2美元。低速率。zigbee工作在20250kbps的速率,分别提供250 kbps(2.4ghz)、40kbps(915 mhz)和20kbps(868 mhz)的原始数据吞吐率,满足低速率传输数据的应
25、用需求。近距离。传输范围一般介于10100m之间,在增加发射功率后,亦可增加到13km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。短时延。zigbee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要310s、wifi 需要3 s。高容量。zigbee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000 个节点的大网。高安全。zigbee提供了三级安全模式,包括无安全设定、使用访问控制清单(ac
26、cess control list, acl) 防止非法获取数据以及采用高级加密标准(aes 128)的对称密码,以灵活确定其安全属性。简单的说,zigbee是一种高可靠的无线网络,类似于cdma和gsm网络。zigbee数传模块类似于移动网络基站。通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。下图2.1.2展示的zigbee无线网络模块。 图2.1.2 zigbee无线模块2.1.2 zigbee应用本课题中,多台拉力试验机所测得的试验数据经过zigbee无线网络传到系统中的无线接收模块。无线接收模块通过usb接口将得到的数据传送给数据处理模块,再由数据处理模块对数据进行一系列的
27、处理,并通过串口将数据上传到pc端,通过pc端的拉力试验监控软件实现对多台拉力试验机数据的显示,绘图,保存等一系列的处理。从而使整个系统达到了拉力试验的要求。本人毕业设计所要完成的工作就是对拉力试验机pc端软件的设计。整个系统形象的结构示意图如图2.1.3 图2.1.3 系统结构示意图2.2 上位pc软件设计分析2.2.1 需求分析pc软件应该包括串口通信、人机界面、数据显示、图形绘制、数据储存等功能。 串口通信作为一种基本而又灵活方便的通信方式,它被广泛应用于工业控制与自动控制中,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。本软件就是运用串口实现上下位机之间的
28、通信的。要求则是能完成数据的接收,并且可以在界面上修改串口传输的参数。人机界面是工业控制软件中的重要组成部分,通过显示器、键盘和鼠标,实现人机对话功能和操作人员对控制系统操作的干预。本软件对人机界面的需求是界面友好,易于操作。图形绘制是工业控制软件中最重要的内容,包括控制软件总貌显示、工艺流程图画面、系统实时数据显示等。工业图形的绘制通常是以坐标系的形式动态地显示图形的变化,并且操作面板符合操作人员的习惯。本软件对图形界面的需求是,能够准确显示拉力曲线图,直观地观察到拉力试验的过程。数据显示一般用编辑框实现,将试验的内容以数据的形式显示出来有利于保证数据的真实性和准确性,防止由于人为的种种原因
29、造成数据错误。本软件对数据显示的要求是可以将试验数据显示在界面上,并能显示是哪台设备发来的数据。数据存储是控制软件的重要组成部分,一般的工业控制软件会将数据导入数据库,这样有利于数据的安全性和可靠性。但考虑到种种的原因,本软件最终是将数据储存储在一个指定的.txt文档中,比较简单的完成了对数据的保存。2.2.2模块化程序设计 一个系统是否能够正常地运行,不但取决于硬件设计的合理性和可靠性,同时还要看系统的软件能否可靠的运行,软件功能是否能够满足用户的需求。工业控制软件的开发所遵循的一个重要原则是软件能够很好的和硬件相配合,可靠有效地完成对硬件的信息采集和控制。 在软件设计过程中,当用计算机高级
30、语言进行程序设计时,对于完成大规模的程序设计,往往按其问题的需要,将程序划分成若干段去编写。或者是对于那些重复使用的程序段,将其进行独立设计。使其达到计算机可以重复执行,而设计人员又不必重复去编写的目的。这样,可以使更多人参与编写,同时又避免因重复设计、交叉设计产生的错误。这样划分的程序段落被称为程序模块。以特定的规则将程序模块组合起来,这种程序设计的方式被称为程序模块化程序设计。各种高级语言在进行模块化程序设计时,虽然解决问题所采取的方式、方法有所不同,但所要达到的目的却是一致的,而且在其模块的定义、调用方式、参数传递等等方面,其实质性的问题也是一致的。各种计算机高级语言对于程序模块的编写方
31、式和使用方法都各自的规范。模块化结构的程序的共同点是:(l)必须有也只能有一个主控程序模块;(2)程序模块具有独立性,主控程序可以直接或间接的调用其余的模块;(3)程序模块(主控程序模块)之间也存在调用与被调用的关系;(4)任何一个程序模块调用另一个程序模块被调用的程序模块执行完毕后,必须返回其调用程序的下一个执行点;(5)从主控程序开始,在其内终止。2.2.3 功能模块的划分根据用户需求和测试系统的要求,各功能模块可划分为:拉力试验机数据接收显示模块、串口参数输入模块、拉力曲线绘制模块以及一些附加功能模块。如图2.2.3 图2.2.3 程序模块结构划分图(1)通信模块 pc机和下位机通讯时,
32、需要设置串口端口号,串口波特率等参数。本模块主要负责提供串口参数设置界面,用户设置完成后点击打开串口,模块将相关参数传递给串口控件。(2)存储显示模块 设置完串口参数后,下位机发送的数据经串口传送给pc软件。根据数据前的id信息,按要求显示该组的数据。显示模块提供给用户一个比较友好的界面,让数据更加生动直观的显示出来,同时数据将被保存在一个.txt文档中。(3) 绘图模块数据传上来之后,数据显示模块开始显示数据,对应的,拉力曲线绘制模块开始绘制拉力曲线图。 (4)附加功能模块 附加功能模块包括,翻看以前的数据、清空接收区、关闭程序、停止显示等功能。在测试系统中起辅助作用,为软件使用者提供更全面
33、的功能服务。2.3 设计的思路及实现的方法2.3.1 总体设计概述 本软件主要完成对多台拉力试验机进行数据采集,绘出拉力曲线图,被对接收到的数据进行存储。第一步:用户使用pc端软件的人机界面对串口的参数进行设置。第二步:打开串口,开始接收数据。每组数据最前面对应各拉力试验机的id号,以便确定是哪台拉力试验机正在工作并上传数据。第三步:软件对接收到的数据进行处理,并在人机界面绘图框里绘制拉力曲线图。第四步:对拉力实验的数据进行储存,数据存放在对应文件夹里的txt.文档中,以便随时查看。2.3.2 编程语言的选择 本系统的pc端软件采用c+作为开发语言。使用软开发工具是microsoft visu
34、al c+ 6.0,c+在c 语言的基础上,增加了对面向对象编程、类属编程、数据抽象等技术的支持,还对c 语言进行了非面向对象的扩充。使用c+语言进行程序设计可以获得可重用性、可靠性、连续性、访问控制、继承性以及多态性等优势。2.3.3 编程的步骤 确定了课题任务,软件工作模式后经过整理。确定了本次上位机软件软件开发流程步骤如图2.2.2所示。 确定课题任务,确定程序模块 第一步: 人机界面设计 第二步: 串口通信实现 第三步: 编写各功能模块程序代码 第四步: 程序调试 第五步: 生成.exe可执行文件第六步: 图2.2.2 编程的步骤图2.4 本章小结在本章中共分三小节分别介绍了拉力试验机
35、的无线网络结构、上位软件设计分析和软件实现的思路和方法。近年来,随着无线网络技术的日益发展,无线网络的应用越来越被各行各业所接受。由于无线网络系统具有安装方便、灵活性强、综合成本低、性价比高和易扩展、易维护等特性,使得逐渐被广大用户所青睐。本次课题中的拉力试验机系统运用的zigbee无线网络技术是一种相比于wifi和蓝牙等一些常见的无线网络技术更有竞争力的无线网络技术。软件设计分析则从软件的需求讲起,分析了用户需求和需要具有的功能。通过分析找到了适合本次课题的软件设计方法,即模块化程序设计。此小节介绍了模块化程序设计的概念和特点,最后将本次的软件设计分为四个模块实现,在下面的章节里将讲到具体的
36、实现方法。第三小结主要讲解了本次软件设计的思路及实现方法,简单介绍了c+用于编写上位机软件的优势。最后给出了软件编程的步骤图。 第三章 上位软件的具体设计3.1 软件总体流程图开始设置串口并打开串口接收请求消息接收下位机信息n*start?y显示设备号准备接收数据接收数据,显示并绘图n end?y 结束 图3.1.1 软件运行的总体流程图3.2串口通信的实现 随着计算机的普及,计算机网络和多微机系统的广泛应用,尽管当今usb通信技术和以太网技术快速发展,然而串口通信技术始终以其连接简便,价格低廉,稳定可靠等优点,在计算机通信领域占有一席之地。本次毕业设计所采用就是串行通信(serial com
37、munication )的方式。vc+是新一代面向对象的可视化开发工具,提供了良好的界面设计能力,在pc机的串口通信方面有很强的功能。对于从事机械行业的人来说,熟悉基于rs232串口通信的高级语言编程方法显得十分必要的。目前win32 中基于vc + + 6. 0 的常用串口通信程序一般可以用两种方法实现: 利用mscomm activex 串行通信控件; 使用win2dows api 通信函数。虽然在windows下win32api提供了使用文件操作方式的函数进行串口操作的方法,但是在编程实现上还是比较复杂。windows平台先进的activex技术使得对串口编程不再需要处理烦琐的细节。利用
38、已有的axtivex控件,只需要编写少量的代码,就可以轻松高效地完成任务。因此程序员不需要花时间去了解复杂的api函数,只需要利用mscomm控件就可实现串口编程。3.2.1 mscomm控件简介mscomm 通信控件是微软公司开发的专门用于串行通信的控件。它是高级语言编写的串行通信程序和pc串口之间的桥梁。通过这个桥梁,使得开发串口通信程序的工作变得简单容易。设置几个控件属性,然后添加控件的事件响应代码,就可以使串口按照要求进行工作。mscomm控件的大部分控件属性是可读可写的。当对其进行写入操作时,是在设置属性的新值。当读属性时,可以读出该属性的当前设置值。在visual c+中,对控件的
39、属性设定都是通过特定的函数来实现的,这些函数都是cmscomm类的成员函数,当声明了一个cmscomm类的实例后,就可以对该实例使用“.”操作符加成员函数的方法来访问控件的属性了。在使用串口对象之前,首先要了解一下控件的一些属性。下面介绍一些本次毕业设计用到的,比较常用的mscomm控件的属性,图3.1.1为串口控件的图标及它的属性表。1、 commport 属性通过设置该属性值,可以决定串口通信使用的串口编号。读取该属性值可以获取当前程序使用的串口编号。使用如下两个函数来操作该属性:void setcommport(short nnewvalue); /设置串口编号short getcomm
40、port(); /返回正在使用的串口编号nnewvalue可以设置成从116 的任何数(默认值为1),对应使用的串口号为com1com16.但是如果用portopen 属性打开一个并不存在的端口时,mscomm 控件会产生错误68(设备无效)。打开串口之前必须设置好串口号。2、 settings 属性该属性用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。使用如下两个函数来操作该属性: void setsettings(lpctstr lpsznewvalue),/设置通信参数,由lpsznewvalue来表示cstring getsettings(); /读取当前串口通信参数使用
41、字符串类型来设置该属性,lpsznewvalue的格式如下:bbbb,p,d,s其中bbbb是波特率(9600为默认值),p为奇偶效验类型(n为默认值),d为数据位数(8为默认值),s为停止位数(1为默认值)例如执行m_comm.setsettings(9600,n,8,1); /将串口波特率设置为9600bps,无校验,8 位数据位,1 位停止位。3、 portopen属性设置该属性可以打开或关闭串口。使用如下两个函数来操作该属性;void setportopen(bool bnewvalue); /打开或关闭串口bool getportopen(); /读取串口状态,即状态为打开还是关闭由
42、bnewvalue决定打开还是关闭串口,为flash时为关闭串口。在使用串口之前应通过设置该属性来打开串口,而退出串口通信时应该关闭串口,以释放程序占用的串口资源。4、 input属性通过操作该属性值可以从串口通信输入缓存区来获取数据。使用如下函数来操作该属性;variant getinput();执行该函数后,返回并删除接收缓存区中的数据。默认情况下读取缓存区里的全部内容,若设置inputlen属性值大于0,则读取的字符数量由inputlen属性值决定。5、 inputlen属性当使用getinput()函数从输入缓存区读读取数据时,该属性决定了一次读取的字节数。使用如下函数来操作该属性:v
43、oid setinputlen(short nnewvalue); /设置输入缓存区中一次读出的字节数short getinputlen(); /获取当前从输入缓存区中一次读出的字节数该属性的默认值为0,即读取整个缓存区中的内容。6、 inputmode属性该属性用于设置或读出getinput()函数从输入缓存区读取数据时的读取方式。使用如下的函数操作该属性:void setinputmode(long nnewvalue); /设置输入缓存区中读取数据的方式long getinputmode(); /获取当前从输入缓存区中读取数据的方式该属性的值为0(默认值)时,表示以文本的方式从输入缓存区
44、读取数据;该属性为1时,表示以二进制方式从输入缓存区中读取数据。7、 inbuffersize属性使用该属性来设置或读出串行通信输入缓存区的大小。使用如下函数来操作该属性:void setinbuffersize(short nnewvalue); /设置输入缓存区的大小short getinbuffersize(); /读取输入缓冲区的大小设置值 该属性的默认值为1024.单位是字节,即输入缓存区可缓存1024字节数据 。8、 inbuffercount属性使用getinbuffercount()函数可以返回当前缓冲区中可以读取的有效数据个数,以字节为单位。使用如下函数来操作该属性:shor
45、t getinbuffercount(); /获取当前输入缓存区中待读取数据的个数void setinbuffercount(short nnewvalue);/设置当前输入缓冲区代读取数据的个数使用setinbuffercount()函数,参数nnewvalue设为0时,可将缓冲区清空,除0外的参数都有可能导致函数出错。9、 rthreshold属性该属性代表一个阈值。当接收缓存区中的字符数达到该阈值时,mscomm控件就会产生oncomm时间,并且commevent属性会被设置为comevreceive,即接收事件。使用如下函数来操作该属性:void setrthreshold(short
46、 nnewvalue); /设置接收缓存区产生oncomm事件的阈值short getrthreshold() ; /获取接收缓存区产生oncomm事件的阈值 图3.2.1 mscomm控件图标及其属性表 3.2.2 利用串口控件实现串口通信用串口控件实现串口通信大概的流程为: 图3.2.2 串口通信流程图 对其中几个重要环节的叙述如下:1、 变量的声明变量包括主界面的成员变量和设置对话框的成员变量。在主界面对话框的头文件commdlg.h中声明这些变量。首先应该在头文件的首部增加如下包含文件:#include “mscomm.h” /引用mscomm控件类然后手工在类构造中声明成员变量:pu
47、blic:ccomboboxm_speed; /通信波特率ccomboboxm_com; /串口号码cmscommm_comm; /声明m_comm变量为cmscomm类型另外需要使用visual c+类向导自动创建静态文本、按钮和编辑框的关联成员变量,如图3.2.2 图3.2.2 控件成员变量声明2、 串口初始化程序的开发在“classview”中,单击“commdlg”类名前的“+”,展开该类,找到oninitdialog()并双击oninitdialog(),则打开commdlg.cpp文件并显示出该函数commdlg:oninitdialog()的定义(函数名和函数体)。在commdl
48、g:oninitdialog()函数中添加串口初始化程序代码。具体代码见附件。3、 设置串口本次串口参数设置主要是两个,串口号的选择以及波特率的选择。至于其他的串口参数(奇偶校验类型、停止位数、数据位数)在本软件中不太用得到就没放在对话框上,用的是串口控件默认的参数,如遇特殊情况可在程序中更改。4、 串口接收程序的开发mscomm控件的串口接收程序,一般是采用事件驱动方式,即消息驱动。当串口接收到数据时,则发生接收事件并发出消息,windows系统的消息机制是应用程序能响应消息,即自动调用消息的响应函数并完成数据的处理。因此需要建立mscomm控件的消息机制即启用mscomm控件的消息机制,需
49、要编写mscomm控件的事件消息响应处理函数来完成串口接收程序的开发。其开发的过程为以下两个步骤:步骤1:添加串口事件消息响应处理函数,实现mscomm控件的消息机制建立。 步骤2:添加串口事件消息响应处理函数的程序代码,即编写串口接收数据处理程序。3.2 人机交互界面的设计 人机界面(human一machine interface)是指人和机器进行交互的操作方式,即用户与机器相互传递信息的媒介,其中包括信息的输入和输出。好的人机界面美观易懂、操作简单且具有引导功能,使用户感觉愉快、增强兴趣,从而提高使用效率,如图3.2 图3.2 交互界面3.2.1 人机界面设计原则用户界面应该直观、赏心悦目
50、,用户易于使用。程序设计时要考虑界面中各种必需的元素,不同的元素之间的重要性和相互之间的联系,在屏幕上将颜色,文字,控件,框架等合理组合,一般遵循以下几条原则:(l)通信功能作为界面设计的核心人机界面的关键是使人与计算机之间能够准确的交流信息。一方面,人向计算机输入时应当尽量采用自然的方式;另一方面,机器向人传递的信息必须准确,不致引起误解和混乱。另外,不要把内部的处理、加工与人机界面混在一起,以免相互干扰,影响速度,增加复杂性。(2)操作通用性根据程序功能,将所需要的操作分割成不同的界面,为用户提供菜单,命令按钮,组合框,对话框等易于使用的界面控件。使用户看到程序界面能基本了解该采取何种操作
51、。(3)合理安排控件位置将控件适当分组,把功能相近或密切相关的控件划为一个逻辑组,放在一起,便于操作。控件的安排应按照人们从左到右,从上到下的阅读习惯,按照主次顺序放置,使界面易识别,方便自然,减少误操作的发生。(4)界面一致性为体现整个程序的协调性,不影响应用程序的可用性,应在程序中保持界面的一致性。如合理设置控件的大小,多种控件一起使用时尽可能使它们的风格(例如颜色)保持一致,在菜单和联机帮助中使用相同的术语等等。在确定设计思路时,要坚持用一种风格贯穿整个应用程序的始终,完成整个程序的设计。(5)界面简洁明了在界面的空间使用上,应当形成一种整洁,简单明了的布局。同时,合理使用窗体控件之间以
52、及控件四周的空白区域,有助于突出元素和改善可用性。(6)容错性软件应该有较好的容错性,对用户的误操作有相应的信息提示,保证软件的正常运行。(7)形式与内容的统一设计界面时将美的原则和实用性相结合,合理利用颜色,图像和显示效果来达成内容与形式的统一。本次软件运行之后人机界面的效果图如下: 图3.2.1 人机界面最终效果图3.2.2 主体界面的设计 设计思路:主体界面是用户接触最多的界面,所以设计是应考虑测试结果要在主要地方用比较醒目的方式显示出来。操作命令按钮名称要易懂,布局合理。操作流程尽量简单。主体界面是上位机软件的主体显示窗口,包含:系统标题、数据显示区域、图形显示区域、用于操作区域(包括
53、命令按钮,串口参数设置)、附加功能显示区域(包括各种命令按钮),本次上位软件的主界面如图3.3.2所示。具体步骤如下: 第一步:使用vc+6.0创建基于对话框的mfc程序后即可自动生成一个主题对话框。删除上面的static控件和确定取消按钮。 第二步:添加active 控件。在本上位机软件中用到了mscomm 控件。在使用之前必须将此控件添加到工程中。打开工程,一次点击项目 类向导 添加类activex 控件中的mfc类选择( microsoft communications control, version 6.0 ;)选中后,再分别将要使用的类添加到工程中。然后在主对话框上点击右键选择插入active控件,将其插入主对话框上。(注:有电脑没法添加此控件的,需要打开windows的cmd窗口注册一下此控件。) 第三步:通过前面的分析,大体知道了主界面上应该有哪些内容。包括测试结果显示编辑框,butten按钮控件,静态文本控件等。使用工具箱的对话框,将需要的控件按照显示合理布局美观的原则放到主题对话框上。第四步:主体界面设置好后,便开始为控件添加代码(包括设置控件属性代码,控件消息响应函数代码)。 图3.2.2 基于对话框的主界面设计图 3.3.3 常用控件的使用情况(1)edit control控件 编辑框控件,主要用于将结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专注中央厨房采购合同标准文本
- 乡下房子转让合同范例
- 买卖水果双方合同范例
- 党校培训住宿合同标准文本
- web外包合同标准文本
- 冷库贮藏苹果合同标准文本
- 办公区域转让合同标准文本
- 以合伙名义招工合同标准文本
- 016劳务派遣合同标准文本
- 劳动合同书模板
- 尪痹的护理查房
- 艾瑞咨询-2024年中国数字世界平台创新趋势发展研究报告:以实为本以虚强实
- 精神科理论知识考核试题题库及答案
- 99D102-1 6~10kV铁横担架空绝缘线路安装
- 渤中19-6凝析气田试验区开发项目(第二阶段)环评报告
- 中医养生之药膳食疗考试试题
- 3D打印人体器官
- 矩形的性质(公开课)
- 日语履历书模板
- 石材等各类幕墙材料计算规则
- 新地球观地球系统科学课件
评论
0/150
提交评论