《2022年多点温度检测系统上位机软件设计与编程 .pdf》由会员分享,可在线阅读,更多相关《2022年多点温度检测系统上位机软件设计与编程 .pdf(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中国矿业大学(北京校区)毕业设计(论文)1 第一章绪论1.1引言球磨机是建材、选矿、化工等重工业中最广泛采用的粉磨机械。运用在大规模的粉磨场合。在水泥生产中,经过粉碎的原料、熟料、煤及其他混合材料都要在球磨机中进行粉磨。球磨机是生产水泥的重要主机设备。但是在使用过程中, 主轴瓦过热问题时常影响着生产, 尤其出现在采用球磨机粉磨熟料生产成品水泥中,主轴瓦过热,严重的甚至烧瓦,造成停机降温,甚至停产抢修。这个问题的出现, 不同程度地影响设备运转率, 影响生产的正常进行,给企业造成一定的经济损失。因此,对球磨机进行实时故障检测,对保障安全生产、提高生产效率都有着重大的实际意义。1.2 球磨机故障分析
2、1.2.1 主轴瓦作用球磨机是一个水平装在两个主轴上的低速回转筒体,回转部分的重量全部由主轴承负担,而主轴承由主轴瓦、轴承座和润滑系统组成。主轴瓦是主轴承最重要的零件,它呈球面形,装在轴承底座的凹球面上,瓦面多用铅基轴承合金制成。这种主轴瓦具有较好的强度、塑性、距合性、减摩性、耐磨性、润滑性、传热性,而且更换简单、方便。能够满足主轴承良好润滑要求,适应球磨机低速、重载的工作环境。1.2.2 主轴瓦润滑原理主轴瓦的润滑有油圈带油式和油泵供油式等几种形式,目前常用的是油圈带油式。油圈随球磨机中空轴一起运转带油,由刮油体将油圈带来的油刮到布油器上,再由布油器将油均匀地撒到中空轴上,在中空轴和主轴瓦接
3、触的表面之间形成一层油膜,把摩擦表面隔开,获得液体动压润滑,从而减小中空轴与主轴瓦之间的磨损,保证球磨机正常运转。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)2 1.2.3 主轴瓦过热原因分析主轴瓦过热根本原因在于主轴承内有大量热量,不能及时散发出去,积存下来导致温度不断升高,主轴瓦过热,当温度进一步升高,主轴瓦表面的巴氏合金将熔化,造成烧瓦,导致球磨机无法正常运转。因此,这类问题在
4、生产中要高度重视,我们可以从以下几个方面来分析主轴瓦过热原因。(l) 主轴瓦刮研不良, 中空轴与主轴瓦接触达不到规定要求,造成主轴瓦过度磨损,产生大量热量,导致主轴瓦过热,甚至烧瓦。(2) 润滑油种类选择不当,油质不好,损坏中空轴与主轴瓦,油粘度小,难以形成润滑油膜。(3) 润滑系统有问题,如油圈带油不好,刮油体、布油器安装不正确,没有油过滤器,管道不畅通等。(4) 球磨机工的责任心不强,没有随时掌握油位、油质,不能及时加油,不能及时更换润滑油造成缺油、油质差。主轴瓦得不到良好的润滑,导致主轴瓦过热。(5) 中空轴与螺旋筒隔热不好,筒体内热量直接传递给主轴瓦。(6) 长时间喂入过热物料, 主要
5、是出窑熟料散热不充分, 导致入磨物料温度过高,直接反映在主轴瓦上温度偏高,这在夏天6-8月表现更明显。(7) 球磨机通风不良,磨内热量难以排出直接传到主轴瓦上。(8) 外部冷却不充分, 球磨机采用水冷却, 循环水一方面冷却主轴瓦, 一方面冷却磨机筒体表面,冷却水停止或冷却水不足,造成冷却不充分,主轴瓦过热。(9) 主轴承有裂缝, 轴承内冷却水穿过裂缝渗到瓦面,破坏了良好的润滑, 导致主轴瓦过热。通过上面分析,我们可以看到,球磨机的各种故障最终都引起主轴瓦的温度升高,造成主轴瓦过热甚至烧瓦。因此我们可以通过实时检测主轴瓦的温度,发现球磨机的故障。当主轴瓦温度异常时,给出报警信号,及时地进行检测,
6、避免烧瓦等严重事故,保障了设备的安全运行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)3 1.3 解决方案球磨机的轴承在故障情况下,引起温度升高而烧坏,从而造成直接和间接的巨大的经济损失。我们设计了一套多点温度检测系统,实时检测主轴承的温度,系统结构图如图1-1 所示。本系统由下位机和上位机组成,下位机由 AT89C51单片机、键盘显示电路、报警电路、数字温度传感器、E2ROM 和看
7、门狗电路组成。完成对球磨机轴承温度的检测、显示、报警。并把检测值通过RS-485 总线传送给控制室的上位机(微机) 。由上位机进行数据存储、显示。可对历史数据进行查询。通过图形显示,直观的反映球磨机的温度变化趋势可早期预报球磨机故障。图 1-1 系统结构图微机RS232/485 数字温度传感器3#球磨机数字温度传感器1#球磨机数字温度传感器2#球磨机数字温度传感器4#球磨机单片机串口 /RS485 AT89C51 单片机看门狗电路E2ROM 报警键盘显示RS485 总线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
8、 - - - - - - - 第 3 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)4 1.4 论文主要内容本文为多点温度巡检系统的一个子课题,设计与开发上位机监控系统软件,本文详细介绍了如何在windows 98 操作系统上用Visual Basic编程。设计并开发了数据采集、数据处理与存储、系统参数初始化、数据显示、查询、超温报警等功能模块。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 39 页 - - - - - -
9、 - - - 中国矿业大学(北京校区)毕业设计(论文)5 第二章 RS-232与 RS-485标准及应用2.1 RS-232 、RS-422与 RS-485的由来 RS-232、RS-422与 RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA) 制订并发布的, RS-232在 1962年发布,命名为 EIA-232-E ,作为工业标准, 以保证不同厂家产品之间的兼容。RS-422由 RS-232发展而来,它是为弥补 RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口, 将传输速率提高到10Mb/s,传输距离延长到 4000
10、 英尺(速率低于 100kb/s 时) ,并允许在一条平衡总线上连接最多 10 个接收器。 RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。为扩展应用范围,EIA 又于1983年在 RS-422基础上制定了 RS-485标准,增加了多点、 双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于 EIA 提出的建议标准都是以“RS ”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 RS-232、RS-422与 RS-485标
11、准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis 协议是公开的,而 ProLINK 则是基于 Profile上的。2.2RS-232串行接口标准 EIA RS-232C是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通讯。 RS-232C串行接口总线适用于: 设备之间
12、的通讯距离不大于15m ,传输速率最大为20KB/S。一、接口信号一个完整的 RS-232C接口有 22 根线,采用标准的25 芯插头座。表 21给出了 RS-232C串行接口信号的定义以及信号的分类。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)6 21 RS-232C 接口信号引脚号缩写符信号方向说 明1 屏蔽(保护)地2 TXD 从终端到调制解调器发送数据3 RXD 从调制解调器
13、到终端接收数据4 RTS 从终端到调制解调器请求发送5 CTS 从调制解调器到终端清除发送6 DSR 从调制解调器到终端数据装置就绪7 信号地8 DCD 从调制解调器到终端接收线信号检出(载波检测)9 保留供测试用10 保留供测试用11 未定义12 DCD 从调制解调器到终端辅信道接收线信号检测13 CTS 从调制解调器到终端辅信道清除发送14 TXD 从终端到调制解调器辅信道发送数据15 从调制解调器到终端发送器信号定时16 RXD 从调制解调器到终端辅信道接收数据17 从调制解调器到终端接收器信号定时18 未定义19 RTS 从终端到调制解调器辅信道请求发送20 DTR 从终端到调制解调器
14、数据终端就绪21 从调制解调器到终端信号质量检测22 从调制解调器到终端振铃指示23 从终端到调制解调器从调制解调器到终端数据信号速率选择器24 从终端到调制解调器发送器信号定时25 未定义名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)7 二、电气特性RS-232C采用负逻辑,即:逻辑“ 1” :-5V-15V 逻辑“ 0” :+5V+15V RS-232C的电气特性如表 22 所示。
15、表 22 RS-232 、RS-485、RS-422有关电气参数规定RS-232 RS-422 RS-485 工作方式单端差分差分节点数1 收、1 发1 发 10 收1 发 32收最大传输电缆长度50 英尺400 英尺400 英尺最大传输速率20Kb/s 10Mb/s 10Mb/s 最大驱动输出电压+/-25V -0.25V +6V -7V+12V 驱动器输出信号电平( 负载最小值 ) 负载+/-5V +/-15V +/-2.0V +/-1.5V 驱动器输出信号电平( 空载最大值 ) 空载+/-25V +/-6V +/-6V 驱动器负载阻抗 ( ) 3K7K 100 54 摆率( 最大值 )
16、30V/us N/A N/A 接收器输入电压范围+/-15V -10V+10V -7V+12V 接收器输入门限+/-3V +/-200mV +/-200mV 接收器输入电阻 ( ) 3K7K 4K(最小) 12K 驱动器共模电压-3V+3V -1V+3V 接收器共模电压-7V+7V -7V+12V 2.3 RS-485与 RS-422串行接口标准2.3.1 平衡传输名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 39 页 - - - - - - - - - 中国矿业大学(
17、北京校区)毕业设计(论文)8 RS-485、RS-422与 RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图 22 所示。通常情况下,发送驱动器A、B之间的正电平在 +2+6V,是一个逻辑状态,负电平在 -2-6V, 是另一个逻辑状态。 另有一个信号地 C, 在 RS-485中还有一“使能”端,而在RS-422 中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态” ,即它是有别于逻辑“ 1”与“0”的第三态。图 22 RS-422 、RS-48
18、5传输线定义接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA 与BB对应相连,当在收端AB之间有大于 +200mV 的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV 至 6V之间。如图 23 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)9 图 23 RS-485/RS-422接收器接收平衡线上的电平2.4 握手
19、协议计算机在与单片机通信时,为了确定所收的数据是单片机发出的温度值就要设计握手协议。 我们采用在发送每路温度数据前发送一个数AAH 作为数据报头,接着发送温度值所对应的序号、该路温度值的整数部分、该路温度值的小数部分,每次发送之间延时6mS。用这样的一组发送序列将一路温度数据发送给上位机。每组发送序列间隔大于450mS。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)10 第三章 软件功
20、能与结构设计3.1 数据采集模块上位机通过电缆与下位机相连。下位机进行数据预处理,组成一定的数据格式,通过 RS-232串行口,将数据送到上位机,上位机采用串口中断方式接收数据,保证采集数据的实时处理。数据采集模块负责设置串口,监听串口,当串口有数据传入时判断是否是所要接收的温度数据。如果所接收到的数据正确则将数据传给数据处理和数据显示模块。3.2 数据处理与存储该模块实现数据处理与存储。当此模块收到数据采集模块传来的数据后 ASC 函数将数据转化为String 型。然后判断此温度是否超过所设的最高温度。如果没有超过报警值,则将数据交给显示模块。如果超过则报警,提示用户温度过高。在完成数据的处
21、理和显示后,用WriteLine 函数将数据写入系统日志保存在硬盘上,至此就完成了数据处理与存储。3.3 系统参数初始化本程序可以对一些参数进行设置。包括高温报警值,低温报警值,串口波特率,串行端口号选择。参数被设置后将会被保存,以便系统在运行时使用。用户可以根据需要随时更改参数。3.4 数据显示数据显示采用了模拟LCD 显示的 ActiveX 控件。并使用了 4 组显示模块可以同时显示4 路不同的温度数据。该显示控件以黑色为底色,用天蓝色来显示温度值,这样的配色很醒目。而且当温度过高时背景色会变成红色以提醒用户温度过高了。3.5 图形显示本程序可以根据用户选择的数据源将数据以图形的形式显示在
22、绘图区中,直观的体现温度的变化情况。此模块先将用户选择的数据读入到一个名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)11 动态数组中然后绘图。用户可以清楚的看到温度的变化。3.6 查询本程序将收到的数据以文本的形式保存在一个以当天日期为文件名的文本文件中。用户可以通过打开日志文件来查看某天的温度记录。3.7 超温报警本软件设计了报警模块,当数据处理模块发现所收到的数据值大于最高温度时
23、就触发报警模块。报警模块会弹出用户温度过高的警告,并将当前温度以醒目的红色为背景色显示,并控制计算机的小喇叭发出蜂鸣声。这时用户可以选择“确定”来关闭报警对话框或者选择“忽略”,此时系统会自动打开设置对话框,用户可以重新设置高温报警值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)12 第四章 系统软件开发4.1 软件开发平台和编程语言的选择本 软 件 在 微 软Windows98
24、平 台 上 开 发 。 经 过 测 试 其 在 最 新 的Windows2000及 WindowsXP 上均可正常运行。 本软件使用微软基于Basic 语言的 Visual Basic软件开发。之所以选择Visual Basic是因为其提供了大量的控件,为程序的初期界面开发提供了便利。而且本程序对运行速度没有过高的要求,因为相对于当今CPU的处理速度,串口的传输速率不可能超过 CPU的处理速度。4.2 软件界面设计为使界面美观我是用了XP界面控件,界面美观醒目,格式统一。4.2.1 系统主界面在程序启动时先有一个Loading 界面(见图 41) 。 Loading界面会自动关闭,然后系统主界
25、面会弹出(见图42) 。图 41 系统 Loading 界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)13 图 42 系统主界面4.2.2 应用系统子界面本系统子界面包括:设置窗口,高温报警窗口,温度提示窗口,时间显示窗口,数值选择判断窗口,数值输入错误提示窗口,选择绘图数据源窗口。4.3 主要模块的实现4.3.1 数据采集模块的实现一、MSComm控件介绍在数据采集模块中使用M
26、SComm 控件通过串行端口接收数据,为应名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)14 图 43 数值输入错误提示窗口用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API 函数,而且在 VC 、VB 、Delphi 等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Mi
27、crosoft公司提供的简化Windows下串行通信编程的ActiveX 控件, 它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event driven) 方法,一是查询法。二、串行通信的两种格式进行串行通信时有以下的两种传输方式:(1)字符形式:通常以小于ASC 的字符码来传输 , 通常用于传送指令(2)二进制形式:将数据以二进制编码的方式传送,他可能含有ASC 128 以上的字符码,通常用来传送数据,以节省时间。进行串行通信的双方,一般说来是利用字符串(也就是我们在键盘上可以找到的可见字符,他们通常在 ASC 码 128以内)来
28、进行数据的交换,由于传输一般的命令,使用这种可见字符是相当恰当的;不过,在某些需要考虑传输的设计上会用以二进制的方式来传输数据。如当要传输一个100 的数值出去,如果使用字符的方式传输的话 , 将会使用到 4 个字节;由于1000 这个数值,在计算机上可以用一个整数来表示,所以将他改成二进制的方式的话,只要两名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)15 个字节就可以了, 两者之
29、间相差了50% 的传输时间。 由于串行传输的速度在我们看来还是很快的, 这种差异在小量的10 组,20 组数据传输时可能还没有关系;可是如果这样的数据我们要传送200 组,500组时,时间上的差异就非常明显,这种明显的差异表现出来就是系统效能的降低。因此在考虑传输方式时,要特别想到数据量的对少和系统效能之间的关系。三、 MSComm 控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式,定时器自动驱动方式。(1)时间驱动方式:事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如:在串口接收缓冲区中有字符,或者
30、Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。 在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在 OnComm 事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。本程序采用了事件驱动方式, 没有采用延时控制 , 因为本程序要
31、同时接受 4 路温度数据 , 延时所带来的误差即不确定性会导致程序无法正确的接受并显示数据。在 MSComm1_OnComm()方法中我采用 Select Case 语句来为接受到的数据选择显示地址。以下对 MSComm1_OnComm() 的源代码进行说明:temp = MSComm1.Input ,接受串口数据并存入字符串temp 中sel = Left$(temp, 1) ,取 temp中的第一个字符First = Mid(temp, 2, 2) ,取 temp中的的 2,3 个字符Second = Right(temp, 1) ,取 temp中的最后一个字符temping = Val(
32、First + . + Second) ,为了显示小数在第2,3字符与最后一个名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)16 符之间加点Select Case sel ,判断读入的数据应在哪块模拟LCD 上显示Case A LCDShower1.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text
33、) Then ,判断温度是否 ?超过警戒温度LCDShower1.BackColor = &HFF& 使 LCD 显示背景色变为红色frmmsg.Show End If Case B LCDShower2.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD 显示背景色变为红色frmmsg.Show End If Case C LCDShower3.Temperature = temping If temping = CDbl(O
34、ptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD 显示背景色变为红色frmmsg.Show End If Case D LCDShower4.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD 显示背景色变为红色frmmsg.Show End If End Select temp = 清空缓冲区名师资料总结 - - -精品资料欢迎下载 - -
35、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)17 End Sub (2)查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。(3)定时器自动驱动方式定时器控件在控制系统中经常被用来执行固定且周期性的工作,该控件中的 Interval属性用于设置每次执行的间隔时间, 只要间隔时间一到,马上就会执行Timer 时间内的程序代码
36、,这样就达到了不断执行的目的。如果希望每隔100 秒执行一次程序代码取得设备数据,最直接的做法就是设置定时器的 Intertal属性值为 100,表面上看这样可以每隔100 秒去一次数据了。但每一次向设备要求数据传送时,会执行一段代码, 这一段代码所费的时间依代码的大小而不同,以现在的计算机CPU来说,这些时间真的微不足道:可是经实验发现每一次的数据传输尽管使用了最优化设计,还会花上 100 毫秒左右的时间才能得到一组数据,这个时间还和所传输的数据量的大小有关。如果数据量一大,这个等待时间还必须再拉长。问题出在传输线上,即使现在的CPU进步神速,也只能看到数据在计算机内部处理时的速度加快;连上
37、单片机设备后,一个完整的传输系统中的传输效能就必须看速度最慢的环节- 显然这就是传输线本身了,因为他的速率无法无限制的往上提升。所以我把串口通信速度设为1200,这样才可保证数据准确无误的被传送和接收。四、MSComm 控件的常用属性MSComm 控件有很多重要的属性,现在对程序中所用的几个重要的属性进行说明:CommPort 设置并返回通讯端口号。Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。Input 从接收缓冲区返回和删除字符。名师资料总结 - - -精品资料欢迎下载 - - - - - -
38、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)18 Output 向传输缓冲区写一个字符串。下面分别描述:CommPort 属性 设置并返回通讯端口号。语法 object.CommPortvalue (value 一整型值,说明端口号。 ) 说明 在设计时, value 可以设置成从 1 到 16 的任何数(缺省值为 1 ) 。但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68 (设备无效)。注意:必须
39、在打开端口之前设置 CommPort 属性。本程序在端口初始化时设置端口为1 即 OmmPort=1 , 用户也可以点击 Option按钮在弹出对话框对串口属性进行设置。用户更改设置,点击确定后系统会自动将串口初始值保存。以下是 Option 窗口创建时对下拉框组件的初始化Public Sub Form_Load() Combo1.AddItem (1200) ,对串口速率的设置Combo1.AddItem (1800) Combo1.AddItem (2400) Combo1.AddItem (4800) Combo1.AddItem (7200) Combo1.AddItem (9600)
40、 Combo1.ItemData(0) = 1200 Combo1.ItemData(0) = 1800 Combo1.ItemData(0) = 2400 Combo1.ItemData(0) = 4800 Combo1.ItemData(0) = 7200 Combo1.ItemData(0) = 9600 Combo2.AddItem (Com1) ,对串行端口的号的设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 39 页 - - - - - - - - -
41、中国矿业大学(北京校区)毕业设计(论文)19 Combo2.AddItem (Com2) Combo2.ItemData(0) = 1 Combo2.ItemData(1) = 2 End Sub并设置 PortOpen为 TRUE: MSComm1.PortOpen = True RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。语法: object.Rthreshold = value (value 整型表达式,说明在产生OnComm 事件之前要接收的字符数。)说明:当接收字
42、符后,若 Rthreshold 属性设置为 0 (缺省值)则不产生OnComm 事件。例如,设置 Rthreshold 为 1 ,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。本程序使用 MScomm1.hreshold=4 ,即当串口收到 4 个字符后触发显示温度的事件 。Settings 属性:设置并返回波特率、奇偶校验、数据位、停止位参数。语法::object.Settings = value 说明:当端口打开时,如果value 非法,则MSComm 控件产生错误380(非法属性值)。Value 由四个设置值组成,有如下的格式:“BBBB,P,D,S”BBB
43、B 为波特率,P 为奇偶校验, D 为数据位数, S 为停止位数。 value 的缺省值是:“9600,N,8,1”本程序在端口初始化时对此属性进行设置,设置为“ 1200,n,8,1” :MSComm1.Settings = 1200,n,8,1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)20 用户也可以点击 Option,在弹出的窗口中修改组合框中的端口设置来设定,主程序通过
44、语句:MSComm1.Settings = OptionForm.Item + ,n,8,1 来在初始化是读取设置InputLen 属性:设置并返回Input 属性从接收缓冲区读取的字符数。语法 object.InputLen = value InputLen 属性语法包括下列部分:value 整型表达式,说明Input 属性从接收缓冲区中读取的字符数。说明:InputLen 属性的缺省值是0。 设置 InputLen 为 0 时,使用 Input 将使MSComm 控件 读取 接收 缓冲 区 中 全部的 内容 。 若 接收 缓冲区 中InputLen 字符无效, Input 属性返回一个零长
45、度字符串()。在使用Input 前, 用户可以选择检查InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。4.3.2 数据处理与存储模块的实现当串口收到数据时会自动触发数据处理与存储模块,此模块主要是使用 Windows提供的串口通信控件MSComm来实现的。此模块先将数据保存到一个字符串变量中然后程序判断所收数据属于那一路,并将数据取出。具体实现代码说明:temp = MSComm1.Input 从串口取出数据存于字符串变量temp中sel = Left$(temp, 1) 取 temp 的左边第一个字符First =
46、Mid(temp, 2, 2) 取 temp 的从左边第一个字符开始取两个Second = Right(temp, 1) 取 temp 的右边第一个字符Num1 = Asc(First) 返回字符串的 ANSI码Num2 = Asc(Second) Sum = Num1 + Num2 * 0.1 得到小数temping = Str(Sum) 将数字变为字符串数据取出并进行转换,将转换后的数据显示在LCD上具体实现代码说明:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共
47、39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)21 Select Case sel Case A 如果收到的时 A路数据 LCDShower1.Temperature = temping就将数据显示在第一块LCD上 If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD显示背景色变为红色 frmmsg.Show TextStreamA.WriteLine (A/ + temping)将数据写入日志保存 End If Case B LCD
48、Shower2.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD显示背景色变为红色 frmmsg.Show TextStreamB.WriteLine (B/ + temping) End If Case C LCDShower3.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &
49、HFF& 使 LCD显示背景色变为红色 frmmsg.Show TextStreamC.WriteLine (C/ + temping) End If Case D LCDShower4.Temperature = temping If temping = CDbl(OptionForm.HighTempText.Text) Then LCDShower1.BackColor = &HFF& 使 LCD显示背景色变为红色 frmmsg.Show TextStreamD.WriteLine (D/ + temping) End If 名师资料总结 - - -精品资料欢迎下载 - - - - -
50、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 39 页 - - - - - - - - - 中国矿业大学(北京校区)毕业设计(论文)22 End Select temp = 4.3.3 系统参数初始化模块的实现在系统参数初始化模块中可以对系统参数进行设置(见图 44) 。可设置的系统参数包括:高温报警值,低温报警值,波特率,端口号。本模块使用了 TextBox 和 ComboBox 两种控件。其中对于波特率和端口号的选择是用了复选框控件。图 44 系统设置模块界面Private Sub Combo1_Click() Item =