专拉力试验机无线网络的pc软件设计_毕业设计论文(编辑修改稿)内容摘要:

上位 PC 软件设计分析 需求分析 PC 软件应该包括 串口通信、 人机界面、 数据显示、 图形 绘制 、 数据储存 等功能。 串口 通 信 作为一种基本而又灵活方便的通信方式 ,它被广泛应用于工业控制与自动控制中 ,它不仅没有因为时代的进步而遭淘汰 ,反而在规格上越来越完善 ,应用也越来越广泛。 本软件就是运用串口实现上下位机之间的通信的。 要求则是能完成数据的接收,并且可以在界面上修改串口传输的参数。 人机界面是工业控制软件中的重要组成部分,通过显示器、键盘和鼠标 ,实现人机对话功能和操作人员对控制系统操作的干预。 本 软件 对人机界面的需求是界面友好,易于操作。 南京工程学院自动化学院本科毕业设计(论文 ) 16 图形 绘制 是工业控制软件中最重要的内容,包括控制软件总貌显示、工艺流程图画面、系统实时数据显示等。 工业图形的绘制通常是以坐标系的形式动态地显示图形的变化 ,并且操作面板符合操作人员的习惯。 本 软件 对图形界面的需求是,能够 准确 显示拉力曲线 图,直观地观察到拉力试验的过程。 数据显示 一般 用编辑框实现,将试验的内容以数据的形式显示出来有利 于保证数据的真实性和准确性,防止由于人为 的种种原因 造成数据错误。 本 软件 对 数据显示 的 要求 是可 以将试验 数据显示在界面上,并能显示是哪台设备发来的数据。 数据存储是控制软件的重要组成部分,一般的工业控制软件会将数据导入数据库,这样有利于数据的安全性和可靠性。 但考虑到种种的原因,本软件最终是将数据储存储在一个指定的 .TXT 文档中,比较简单的完成了对数据的保存。 模块化程序设计 一个系统是否能够正常地运行,不但取决于硬件设计的合理性和可靠性,同时还要看系统的软件能否可靠的运行,软件功能是否能够满足用户的需求。 工业控制软件的开发所遵循的一个重要原则是软件能够很好的和硬件相配合,可靠有效地完 成对硬件的信息采集和控制。 在软件设计过程中,当用计算机高级语言进行程序设计时,对于完成大规模的程序设计,往往按其问题的需要,将程序划分成若干段去编写。 或者是对于那些重复使用的程序段,将其进行独立设计。 使其达到计算机可以重复执行,而设计人员又不必重复去编写的目的。 这样,可以使更多人参与编写,同时又避免因重复设计、交叉设计产生的错误。 这样划分的程序段落被称为程序模块。 以特定的规则将程序模块组合起来,这种程序设计的方式被称为程序模块化程序设计。 各种高级语言在进行模块化程序设计时,虽然解决问题所采取的方式 、方法有所不同,但所要达到的目的却是一致的,而且在其模块的定义、调用方式、参数传递等等方面,其实质性的问题也是一致的。 各种计算机高级语言对于程序模块的编写方式和使用方法都各自的规范。 模块化结构的程序的共同点是 : (l)必须有也只能有一个主控程序模块 ; (2)程序模块具有独立性,主控程序可以直接或间接的调用其余的模块 ; (3)程序模块 (主控程序模块 )之间也存在调用与被调用的关系 ; (4)任何一个程序模块调用另一个程序模块被调用的程序模块执行完毕后 , 必须返回其调用程序的下一个执行点 ; (5)从主控程序开始,在其 内终止。 南京工程学院自动化学院本科毕业设计(论文 ) 17 功能模块的划分 根据用户需求和测试系统的要求,各功能模块可划分为: 拉力试验机数据接收 显示模块、串口参数输入模块、 拉力曲线绘制模块以及一些 附加功能模块。 如图 图 程序模块结构划分图 ( 1) 通信 模块 PC机和下位机通讯时,需要设置串口端口号,串口波特率等参数。 本模块主要负责提供串口参数设置界面,用户设置完成后点击 打开串口 ,模块将相关参数传递给串口控件。 ( 2)存储 显示模块 设置完串口参数后,下位机发送的数据经串口传送给 PC软件。 根据数据前的ID信息,按要求 显示 该组的数据。 显示模块提供给用户一个比较友好的界面,让数据 更加生动直观的显示出来 ,同时数据将被保存在一个 .TXT文档中。 ( 3) 绘图模块 数据传上来之后,数据显示模块开始显示数据,对应的,拉力曲线绘制模块开始绘制拉力曲线图。 ( 4)附加功能模块 附加功能模块包括, 翻看以前的数据 、清空 接收区 、 关闭程序 、 停止显示 等功能。 在测试系统中起辅助作用,为软件使用者提供更全面的功能服务。 南京工程学院自动化学院本科毕业设计(论文 ) 18 设计的思路及实现的方法 总体设计概述 本 软件主要完成对多 台拉 力试验机进行数据采集 , 绘出拉力曲线图,被对接收到的数据进行存储。 第一步:用户使用 PC 端 软件的人机界面对 串口的 参数进行设置。 第二步: 打开串口,开始接收数据。 每组数据最前面对应各拉力试验机的 ID 号,以便确定是哪台拉力试验机正在工作并上传数据。 第三步: 软件对接收到的数据进行处理,并在人机界面绘图框里绘制拉力曲线图。 第四步: 对拉力实验的数据进行储存,数据存放在对应文件夹里的 , 以便随时查看。 编程语言的选择 本系统的 PC端 软件采用 C++作为开发语言。 使用软开发工具是 Microsoft Visual C++ , C++在 C 语言的基础上,增加了对面向对象编程、类属编程、数据抽象等技术的支持,还对 C 语言进行了非面向对象的扩充。 使用 C++语言进行程序设计可以获得可重用性、可靠性、连续性、访问控制、继承性以及多态性等优势。 编程的步骤 确定了课题任务,软件工作模式后经过整理。 确定了本次上位机软件软件开发流程步骤如图。 第一步: 第二步: 第三步 : 第四步: 第五步: 第六步: 图 编程的步骤图 确定课题任务,确定程序模块 人机界面设计 串口通信实现 编写各功能模块程序代码 程序调试 生成 .EXE 可执行文件 南京工程学院自动化学院本科毕业设计(论文 ) 19 本章小结 在本章中共分三小节分别介绍了拉力试验机的无线网络结构、上位软件设计分析和软件实现的思路和方法。 近年来,随着无线网络技术的日益发展,无线网络的应用越来越被各行各业所 接受。 由于无线网络系统具有安装方便、灵活性强、综合成本低、性价比高和易扩展、易维护等特性, 使得 逐渐被广大用户所青睐。 本次课题中的拉力试验机系统运用的 Zigbee无线网络技术是一种相比于 wifi和蓝牙等一些常见的无线网络技术更有竞争力的无线网络技术。 软件设计分析则从软件的需求讲起,分析了用户 需求和需要具有的功能。 通过分析找到了适合本次课题的软件设计方法,即模块化程序设计。 此小节介绍了模块化程序设计的概念和特点,最后将本次的软件设计分为四个模块实现,在下面的章节里将讲到具体的实现方法。 第三小结主要讲解了本次软件设计的思路及实现方法,简单介绍了 C++用于编写上位机软件的优势。 最后给出了软件编程的步骤图。 南京工程学院自动化学院本科毕业设计(论文 ) 20 第三章 上位软件的具体设计 软件总体流程图 图 软件运行的总体流程图接收下位机信息 开始 设置串口 并打开串口 接收请求消息 结束 N 接收数据,显示并绘图 **START。 显示设备号 准备接收数据 Y END? Y N 南京工程学院自动化学院本科毕业设计(论文 ) 21 串口通信的实现 随着计算机的普及,计算机网络和多微机系统的广泛应用,尽管当今 USB 通信技术和以太网技术快速发展,然而串口通信技术始终以其连接简便,价格低廉,稳定可靠等优点,在计算机通信领域占有一席之地。 本次毕业设计所采用就是 串行通信 (Serial Communication )的方式。 VC++是新一代面向对象的可视化开发工具,提供了良好的界面设计能力,在 PC 机的串口通信方面有很强的功能。 对于从事机械行业的人来说,熟悉基于 RS232 串口通信的高级语言编程方法显得十分 必要的。 目前 Win32 中基于 VC + + 6. 0 的常用串口通信程序一般可以用两种方法实现 : ①利用 MSComm ActiveX 串行通信控件。 ②使用 Win2dows API 通信函数。 虽然在 Windows 下 Win32API 提供了使用文件操作方式的函数进行串口操作的方法,但是在编程实现上还是比较复杂。 Windows 平台先进的 ActiveX 技术使得对串口编程不再需要处理烦琐的细节。 利用已有的 AxtiveX 控件,只需要编写少量的代码,就可以轻松高效地完成任务。 因此程序 员不需要花时间去了解复杂的API 函数,只需要利用 MSComm 控件就可实现串口编程。 MSComm 控件简介 MSComm 通信控件 是微软公司开发的专门用于串行通信的控件。 它是高级语言编写的串行通信程序和 PC串口之间的桥梁。 通过这个桥梁,使得开发串口通信程序的工作变得简单容易。 设置几个控件属性,然后添加控件的事件响应代码,就可以使串口按照要求进行工作。 MSComm控件的大部分控件属性是可读可写的。 当对其进行写入操作时,是在设置属性的新值。 当读属性时,可以读出该属性的当前设置值。 在 Visual C++中,对控件的属性设定都是通过特定的函数来实现的,这些函数都是 CMSComm类的成员函数,当声明了一个 CMSComm类的实例后,就可以对该实例使用“ .”操作符加成员函数的方法来访问控件的属性了。 在使用串口对象之前,首先要了解一下控件的一些属性。 下面介绍一些本次毕业设计用到的,比较常用的 MSComm控件的属性, 图。 CommPort 属性 通过设置该属性值,可以决定串口通信使用的串口编号。 读取该属性值可以获取当前程序使用的串口编号。 使用如下两个函数来操作该属性: Void SetCommport(short nNewValue)。 //设置串口编号 南京工程学院自动化学院本科毕业设计(论文 ) 22 Short GetCommPort()。 //返回正在使用的串口编号 nNewValue可以设置成从 1~16 的任何数 (默认值为 1),对应使用的串口号为COM1~ PortOpen 属性打开一个并不存在的端口时, MSComm 控件会产生错误 68(设备无效)。 打开串口之前必须设置好串口号。 Settings 属性 该属性用于设置并返回数据传输速率、奇偶校验、数据比特 、停止比特参数。 使用如下两个函数来操作该属性: void SetSettings(LPCTSTR lpszNewValue) , // 设置通信参数,由lpszNewValue来表示 CString GetSettings(); //读取当前串口通信参数 使用字符串类型来设置该属性, lpszNewValue的格式如下: BBBB,P,D,S 其中 BBBB是波特率( 9600为默认值), P为奇偶效验类型( N为默认值), D为数据位数( 8为默认值), S为停止位数( 1为默认值) 例如 执行 (9600,N,8,1)。 //将串口 波 特率设置为9600bps,无校验, 8 位数据位, 1 位停止位。 PortOpen属性 设置该属性可以打开或关闭串口。 使用如下两个函数来操作该属性; void SetPortOpen( BOOL bNewValue); //打开或关闭串口 BOOL GetPortOpen(); //读取串口状态,即状态为打开还是关闭 由 bNewValue决定打开还是关闭串口,为 FLASH时为关闭 串口。 在使用串口之前应通过设置该属性来打开串口,而退出串口通信时应该关闭串口,以释放程序占用的串口资源。 InPut属性 通过操作该属性值可以从串口通信输入缓存区来获取数据。 使用如下函数来操作该属性; VARIANT GetInput(); 执行该函数后,返回并删除接收缓存区中的数据。 默认情况下读取缓存区里南京工程学院自动化学院本科毕业设计(论文 ) 23 的全部内容,若设置 InputLen属性值大于 0,则读取的字符数量由 InPutLen属性值决定。 InPutLen属性 当使用 GetInput()函数从输入缓存区读读取数据时,该属性决定了一次读取的字节数。 使用如下函数来操作该属性: void SetInputLen( short nNewValue); //设置输入缓存区中一次读出的字节数 Short Get。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。