图4.13串行通讯流程图
4.4 上位机软件设计
4.4.1 VB界面的设计
上位机采用普通PC机为监控主机,通信软件在中文Window XP环境下用专业版软件Visual Basic 6.0上开发。Windows是大多数PC机用户所选择的图形用户界面(GUI),而Visual Basic的“可视性”及“面向事件”的特征使得基于Windows环境的通信软件的开发更加简单。温度上限与定时时间是通过VB界面设定。
VB软件为可视化的面向对象编程,本设计中只操作了串口控件,利用Visual Basic与单片机通讯时,本设计所使用的波特率是9600bps。不进行奇偶校验,数据是8位,停止位是1位。MSComm控件的Setting属性的设置为“9600,n,8,1”。当单片机向上位机发送数据时,接收时,Visual Basic可以将MSComm的InputMode属性设置为ComInputMode为Binary方式(以二进制接收数据)。当利用Visual Basic向单片机发送数据时,如果是一组十六进制的数据,可以将这组数据设置为Byte型数据。这样在单片机一方接收的数据就是一组十六进制的数据,不然,单片机接收到的是一组ASCII码,而且当发送的数据大于128位时,单片机就会接收到错误的数据。
在设计过程中引用了Microsoft Comm Control 6.0控件,该控件的属性介绍如下:
4.4.2 通讯控件属性分析
(1)CommPort属性
CommPort属性用于设置或返回通信连接端口号码。程序必须指定所要使用的串行端口的号码,Windows 系统会通过所设置的通信端口与外界通信
(2)Setting属性
Setting 属性用于设置初始化参数。以字符串的形式设置或返回联机速率、奇偶校验、数据位、停止位等四个参数。其格式为:“BBBB,P,D,S”其中BBBB表示联机速率,P表示奇偶校验位检查方式,D表示数据位,S表示停止位。默认值是“9600,N,8,1”,它表示所使用的通信端口是以每秒9600位的速率进行传输,不进行奇偶校验位的检查,每个数据位是8个位,而停止位是1个位。而这四项必须是按照顺序,不可前后对调;其中的字母可以是大写或小写。联机的速率为110bps, 300bps, 600bps, 1200bps, 2400bsp, 9600bps等。Setting设置完成以后,所传输及接收的字符串便以此设置为准,通信双方,Setting设置必须完全一样,彼此才能顺利的通信,否则双方将无法正确的接收到彼此所传输的信号。
(3)PortOVIpen 属性
PortOpen 属性用于设置或返回连接端口的状态。使用串行端口之前必须先将要使用的端口打开,而在使用完毕之后,也必须执行关闭操作。串行通信端口各项功能都是在PortOpen的True与False之间完成。
(4)Input 属性
Input 属性用于从输入缓冲区返回并删除字符。程序靠这个命令将对方传到输入缓冲区中的数据读进程序中,并清除缓冲区中以被读取的数据。
(5)Output 属性
Output属性用于将要发送的数据输入传输缓冲区。当程序需要传输字符串到对方时,可以将字符串使用此命令输入输出缓冲区中,一般的数据均是在送达输出缓冲区后随即被送出,当MSComm控件设置有发送阀值属性时,则就会生成事件。
(6)InputLen 属性
InputLen属性用于指定由串行端口读入的字符串长度或字节数。Visual Basic程序可使用Input命令将存放在输入缓冲区的字符读入,但要指定读入的字符长度则需要设置本属性。若指定读取的单位是字节,则是读入字节的个数。
(7)HandShaking 属性
HandShaking属性用于指定通信双方的握手协议。所谓“握手协议”也就是就是流量管制。握手协议只有在缓冲区没有超速的情况下,才能保证数据不被遗失。而缓冲区超速是指数据到达端口的速度太快,以至于通信装置来不及将数据移到接收缓冲区。握手协议所要进行的是数据传输速度的控制,因此也被称为“流量控制”;简单的说,当双方传输数据时,如果一方送出的数据的速度快于另一方所能处理的速度时,接收的一方要求发送的一方暂停送出数据,待接收的一方处理完数据之后,再通知发送方继续发送未传完的数据。
(8)InBufferCount 属性
InBufferCount属性用于返回在接收缓冲区的字符数。该属性在设计阶段无法使用InBufferCount是指已接收的,并在缓冲区中等待读取的字符数。
(9)InputMode 属性
InputMode属性用于设置或返回Input属性取回的数据类型。
最后,VB运行的界面如下:
图4.14 VB运行界面
4.5 程序烧写软件
Easy 51Pro V2.0软件可以方便的对单片机进行操作,可以实现程序的烧写工作。
4.5.1 V2.0的特性
支持.HEX文件;
用户自己可以扩充器件;
重载的文件对话框,方便查找文件;
热键支持,调试程序效率高;
灵活的程序设计,可以让整套软件在其它编程器硬件上运行;
支持多种下载线,有更多的选择;
设计了串行通讯超时程序,减少掉线现象。
4.5.2 V2.0的使用
点击下载软件Easy 51Pro.EXE,进入下载程序的界面,按顺序检测通信、检测器件,如果无错误提示,表示下载系统硬件连接正常。
图4.15 下载程序界面
下载系统硬件连接正常后,可以进行程序下载。首先点击“打开文件”选项,打开需要下载的文件;其次点击“擦除器件”选项,将AT89S52芯片清空;然后点击“写器件”,将程序写入AT89S52芯片;最后点击“校验数据”选项,如果系统如图4.16提示“0个单元不对”则表示下载正常,下载工作完成。
可以使用上面的过程完成程序下载工作,也可以使用“自动完成”选项,“自动完成”选项可以一次性对芯片进行“擦除器件”、“写器件”“校验数据”。
图4.16 程序下载完成界面
4.6 本章小结
在所做的硬件基础上,进行软件编写调试,是一个比较麻烦的过程,通过keil c进行编程,用VB作为上位机界面,用Easy 51Pro V2.0对程序进行烧写,大大加快了进程。
第5章 实验及数据分析
电机的硬件与软件协调成功后,现在已经能正常读取温度数与显示时间,而且在设定时间到时后,继电器可以动作,实现时间保护功能。现在进行试验,对电机进行测温。
5.1电机表面温度的测试
本实验所选取电机的规格为:
型号: JO3-029-4 额定:连续
功率:1.1KW 接法:Y
电压:220/380V 绝缘等级:E级
电流:0.28A 温升:75ºC
转速:1370转/分 重量:17KG
周率:50Hz
温度计的放置如下图所示:
图5.1 电机温度计放置示意图
实验中应该注意的事项:
实际上电机只要在一个小时内其温升变化不超过1 ºC时,即可以认为是稳定的温升状态。此时对电机进行温度数据进行记录采集。连续定额的电机,试验如果从冷态开始,升温时间比较长。小型、高速、防护式电机至少要1.5~3个小时,大型、低速或封闭式电机则更长,甚至5小时以上。所以如果为了缩短实验时间,开始可让电机1.05~1.15倍额定负载下过载运行一段时间(约30分钟),或有意减少冷却空气量,直到绕组温升接近预计稳定温升75%止。
试验中有时要观察电机通风情况,用羽毛试探气流方向,估计吹到各发热部分的风量是否合理。我在本次实验中,用长的碎纸片来试探气流方向,也能充分说明问题。
5.2数据分析——数据融合技术[37]
电机过热保护器设计(七)由毕业论文网(www.huoyuandh.com)会员上传。