《步进电机的远程实时控制系统.doc》由会员分享,可在线阅读,更多相关《步进电机的远程实时控制系统.doc(45页珍藏版)》请在三一办公上搜索。
1、 本科毕业设计(论文)题 目:步进电机的远程实时控制系统设计学 院: 机械电子工程学院 专 业: 学 号: 学生姓名: 指导教师: 职 称: 二 O 一 二 年 五 月 二 十 日摘 要以步进电机为控制对象,完成一套基于485总线步进电机转速远程实时控制系统。该系统以上位机(PC机)和下位机(单片机控制系统)组成。通过Visual Basic 的串行通信控件MSComm和RS485总线完成两者之间的通信。 上位机发出控制指令,通过串行口通信,由下位机完成两台步进电机的速度与方向控制,并实现步进电机速度的实时显示。上位机要发出正转、反转、加速、减速及检测速度等指令。因为是远距离的通讯,指令的传输
2、要通过485总线,而数据的发送和接收则要依靠Visual Basic的通信控件。 通过通信接口,用户可以利用计算机与下位机进行联机,而从仪器上取得数据或设置,直接控制仪器的操作,而计算机又在数据处理上又是单片机本身所不能及的,所以研究此系统是必要的,实时运行的结果表明该系统的实用性和可靠性。关键词 :单片机;步进电机;串行通信 ABSTRACT The integral design of a set of speed remote real-time control system is designed , which uses stepper motors as the controlle
3、d object . The system is composed of personal computer and single chip microcomputer , which realizes communication with the Visual Basic serial communication controls and RS485 bus. The personal computer sends out the control commands and shows the real time velocity graph , and the single chip mic
4、rocomputer controls the speed and direction of two stepper motors through serial communication. The personal computer sends control command such as forward ,backward, accelerate, decelerate the speed and direction detection. Because it is in long-distance communications, direct transmission through
5、485 bus, and the display image data and data transmission and reception will have to rely on Visual Basic drawing, Communication Control. Equipment provided by the communication interface, the user equipment can be used with computer equipment on-line, from the device access to data, or set up, even
6、 the direct control of equipment operation, in the computer data processing equipment is not their own and, the study of this system is necessary. The experimental results show the practicability and reliability of the system.Key words : single chip microcomputer ; stepper motor ; serial communicati
7、on 目 录摘 要ABSTRACT1. 绪论11.1 课题背景及目的11.2 国内外同类研究状况11.3 课题研究的主要内容22. 系统方案设计32.1 功能技术指标分析32.2 步进电机的正、反转与加、减速控制方案32.3 步进电动机速度检测的方案42.4 步进电机速度实时显示方案42.5 本章小结43. 硬件设计53.1 串行通信的硬件介绍53.1.1 MAX485 芯片介绍53.1.2 RS-485标准的优点73.2 单片机与PC 机串行通信系统构成83.3 步进电机的介绍93.3.1步进电机的基本特点103.3.2 步进电机的工作原理113.3.3 步进电机的单片机控制原理123.4
8、本章小结144. 软件设计154.1 开发环境、工具介绍154.1.1 Visual Basic 6.0154.1.2 Visual Basic的编程特点154.2 VB控件的介绍174.3 窗体设计194.4 功能设计214.4.1 VB程序流程图214.4.2 通信协议模块224.4.3 初始化模块224.4.4 控制代码发送模块224.4.5 速度调节模块244.4.6 附加功能模块244.5 基于VB实现开关量的控制264.6 软件抗干扰措施264.6.1 指令冗余及软件陷阱264.6.2 数字滤波274.6.3 RS-485串行通信抗干扰284.7 本章小结315. Proteus软
9、件仿真325.1 Proteus 软件介绍325.1.1 Proteus仿真软件组成325.1.2 Proteus的工作过程335.1.3 Proteus软件所提供的调试手段335.2 基于Proteus对本系统的仿真345.3 本章小结376. 结论38致 谢39参考文献401. 绪论1.1 课题背景及目的 随着生活水平的提高,人们对于环境的要求越来越高,自动化是未来的趋势。不管是工厂自动化、生产线自动化、测试自动化等,我们会用到很多的仪器和设备,其中就包括步进电机,已经广泛应用于各个领域,而具有远程控制的步进电机比例更是高,例如应用于卫星、雷达等领域的,航天“星星指向跟踪控制系统”中的运动
10、控制部分,基于稀土永磁步进电机的双自由度(俯仰、方位)位置伺服系统,它是用计算机控制2台步进电机,每台步进电机代表天线运动的一个自由度,使天线指向任意给定位置,指向位置由旋转变压器测量。掌握步进电机的转速和方向控制原理,在上位机PC机发出信号后,经过串行通信控件总线传送至单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制。1.2 国内外同类研究状况在工业自动控制、智能仪器仪表中,单片机的应用越来越广范。随着应用范围的扩大以及根据解决问题的需要,对某些数据要做较复
11、杂的处理。由于单片机的运算功能较差,对数据进行较复杂的处理时,往往需要借助计算机系统。因此,单片机与PC机进行远程通信成为现在的主流。目前对步进电机远程实时控制主要是经过串行通信控件RS-485总线传送至单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制。许多高校、业内人员也对步进电机远程实时控制系统进行了研究,取得了很大的进展,串行通信控件和单片机的应用使电机控制技术发生了根本的变化。如阴晓峰等,提出了以TCU下位机、便携式电脑为上位机、二者通过串行通信总线来
12、实现车载信息在线监测的总体方案基于串行通信的车载信息在线监测系统1。步进电机的远程实时控制系统已国产化,我国许多科研生产单位都已投入到开发生产的行列。多用于卫星、雷达等,如航天“星星指向跟踪控制系统”中的运动控制部分,基于稀土永磁步进电机的双自由度(俯仰、方位)位置伺服系统,使用计算机控制2台步进电机,每台步进电机代表天线运动的一个自由度,使天线指向任意给定位置,指向位置由旋转变压器测量2。1.3 课题研究的主要内容掌握步进电机的转速和方向控制原理,在上位机PC机发出信号后,经过串行通信控件RS-485总线传送至AT89C51单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信
13、号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制。 2. 系统方案设计2.1 功能技术指标分析本文设计的控制系统是一种小型的集散型控制系统,上位机为微型计算机( PC 机) ,下位机为单片机控制系统。所要求实现功能如下:1) 单片机系统能够实现与PC 机的通信。2) 单片机系统能够驱动步进电机正、反转,加、减速,并完成电机转速检测。3) 上位机软件能够接收单片机传送的数据并进行数据处理,实时显示步进电机的速度状况。根据功能要求,初步分析该系统由以下几个模块组成:单片机最小系统模块、步进电机驱动电路模块、电机转速检测电路模块及通
14、信电路模块。 系统结构框图如图1 所示:步进电机步进电机驱动器AT89C51单片机RS-485PC机传感器调节电路复位 图2.1 系统的总体框图2.2 步进电机的正、反转与加、减速控制方案对于上位机所发送的步进电机控制指令,单片机采用查询方式,考虑到52 型单片机只有三个定时器,波特率发生器占用一个定时器(T2) ,步进电机转速的检测占用两个定时器,一个用于定时(T1) ,一个用于转速脉冲计数(T0) ,因此步进电机的步进脉冲采用延时方式传送;同时在上位机的控制程序中增加一个slider 控件,通过此控件控制下位机所调用的延时程序的循环次数,从而实现步进电机速度的控制。2.3 步进电动机速度检
15、测的方案步进电机也称为数字/ 角度转换器,其转速可采用软件测速也可以采用硬件测速。考虑在实际工业应用中,步进电动机在带负载运行时,采用软件测速误差较大,因此步进电动机的速度检测采用硬件测速。利用槽型光电开关和栅格编码盘来实现速度检测. 当步进电机带动栅格圆盘旋转时,测速光电开关获得一系列脉冲信号,这些脉冲信号通过单片机定时/ 计数器T0 计数,定时器T1 定时,这样就可以测得在一定时间内的脉冲数,通过单位转换就可以换算出转速。2.4 步进电机速度实时显示方案考虑到单片机与PC 机的优、缺点,如单片机控制电机运转、步进电机的转速采集时很方便,但处理数据及实时显示时较困难,而PC 机正好与之互补,
16、因此由单片机实现步进电机的速度与方向控制及转速的采集,由PC 机接收单片机采集的数据完成数据处理及速度图的描绘。2.5 本章小结 上面是对整个步进电机转速远程实时控制系统的方案设计,并根据设计的系统的总体框图,具体给出了各个模块的设计方案。3. 硬件设计3.1 串行通信的硬件介绍随着数据采集系统的广泛应用, 通常由单片机构成的应用系统, 如仪器仪表、智能设备等, 都需要PC 机之间交换数据, 实现与PC机之间的通讯功能,以充分发挥PC和单片机之间的功能互补, 资源共享的优势。以往常用的RS- 232协议在很大程度上已不能满足设计的要求, 如传输速率慢 ,传输距离短, 传输信号易受外界的干扰等缺
17、点。而RS-485解决了这些问题,所以此次毕业设计串行通信的硬件就用到了RS485接口芯片。3.1.1 MAX485 芯片介绍MAX485是用于RS-485与RS-422通信的低功耗收发器。MAX485的驱动器摆率不受限制, 可以实现最高2.5Mbps的传输速率。这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120A至500A之间。所有器件都工作在5V单电源下。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。具有较高的抗干扰性能。RS- 485是美国电气工业联合会(EIA)制定的利用平衡双绞线作
18、传输线的多点通讯标准。它采用差分信号进行传输; 最大传输距离可以达到112 km; 最大可连接32个驱动器和收发器; 接收器最小灵敏度可达200 mV;最大传输速率可达215Mb/s。由此可见, RS- 485协议正是针对远距离、高灵敏度、多点通讯制定的标准。MAX485是市面上最为常见的RS422芯片,亦是用量最大的RS422芯片,性价比高,优质,供货稳定是大部分厂家采用它的主要原因。 图3.1 MAX485引脚和结构图 MAX485接口芯片是Maxim公司的一种RS485芯片。 MAX485CPAMAX485、MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信
19、的低功耗收发器,每个器件中都具有一个驱动器和一个接收器。MAX483、MAX487、MAX488以及MAX489具有限摆率驱动器,可以减小EMI,并降低由不恰当的终端匹配电缆引起的反射,实现最高250kbps的无差错数据传输。MAX481、MAX485、MAX490、MAX491、MAX1487的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率。这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120µA至500µA之间。另外,MAX481、MAX483与MAX487具有低电流关断模式,仅消耗0.1µA。所有器件都工作在5V单电源下。采用单一
20、电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在
21、与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻。3.1.2 RS-485标准的优点 (1) 通信速度和通信距离RS-485最大的通信距离约为1219m,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。(2)RS-485的电气特性逻辑“1”以两线间的电压差为+(0.26)V表示;逻辑“0
22、”以两线间的电压差为-(0.26)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL 电路连接。 (3) 抗干扰能力 通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输,但在一些工业测控系统,通信环境往往十分恶劣,因此在通信接口标准选择时要充分注意其抗干扰能力,并采取必要的抗干扰措施。例如在长距离传输时使用RS-422标准能有效的抑制共模信号干扰,使用20mA电流环技术,能大大降低对噪声的敏感程度。在高噪声污染环境中,通过使用光纤介质减少噪声干扰,通过光电隔离提高通信系统的安全性等都是一些行之有
23、效的方法。 (4) RS-232C与RS-422 ,RS-485性能参数比较RS232使用12V,0,-12V电压来表示逻辑,(-12V表示逻辑1,12V表示逻辑0),全双工,最少3条通信线(RX,TX,GND),因为使用绝对电压表示逻辑,由于干扰,导线电阻等原因,通讯距离不远,低速时几十米也是可以的。RS422,在RS232后推出,使用TTL差动电平表示逻辑,就是两根的电压差表示逻辑,RS422定义为全双工的,所以最少要4根通信线(一般额外地多一根地线),一个驱动器可以驱动最多10个接收器(即接收器为1/10单位负载),通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时可
24、以进行较远距离通信,一般可达数百上千米。RS485,在RS422后推出,绝大部分继承了422,主要的差别是RS485可以是半双工的,而且一个驱动器的驱动能力至少可以驱动32个接收器(即接收器为1/32单位负载),当使用阻抗更高的接收器时可以驱动更多的接收器。所以现在大多数全双工485驱动/接收器对都是标:RS422/485的,因为全双工RS485的驱动/接收器对一定可以用在RS422网络。在RS-232连接的串行通信系统中实际上只用到RXD TXD 和地,在本设计中用到RS -232C ,RS-485标准,RS-485标准是一种多发送器的电路标准,它扩展了RS - 422A 的性能,允许双导线
25、上一个发送驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器。RS-485标准没有规定在何时控制发送器发送或接收机接收数据的规则,电缆选择比RS-422更严格。对驱动器和接收器规定了双端电气接口形式,把电位差转变成逻辑电平,实现终端的信息接收。3.2 单片机与PC 机串行通信系统构成 单片机与PC 机串行通信的总体原理图如图3.2所示,采用RS-485 最大的优点在于它的多点总线互连功能,它可以连接一台主机和多台终端同时通信,由于它是半双工的,同时只能有一方发送,一方接收,而且它采用差动电平接收的方法来提高抗干扰能力,适合在比较恶劣的环境下工作,因为在同一对电缆中所受到的干扰是很类似
26、的,采用差动方法可以用作差的方法将干扰抵销一大部分。PC机RS-485接口卡MAX485AT89C51图3.2单片机与PC 机串行通信原理图 由于RS - 485 通信是一种半双工通信,发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在监听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通信对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则。 (1) 复位时,主从机都应该处于接收状态/RE和D
27、E端相连为低时,从机处于接收状态,在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX485 的控制端,使上电时MAX485 处于接收状态。 (2) 控制端/RE ,DE 的信号要求在RS - 232 ,RS - 422 等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题。在RS - 485 半双工通信中,由于MAX485 的发送
28、和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TI ,RI信号作参考。发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能;接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为送。(3) 发送控制信号在时序上的要求总线上所连接的各单机的发送控制信号在时序上完全隔开。为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任
29、意两个单机的发送控制信号在时间上完全分开,避免总线争端。3.3 步进电机的介绍 步进电机(图3.1)是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。图3.1 步进电机3.3.1步进电机的基本特点(1)位移与输入脉冲信号数相对应,
30、步距误差不长期积累,可以组成结构简单且具有一定精度的开环控制系统,也可以在需要更高精度时组成闭环控制系统。(2)易于起动、停止、正反转及变速,快速响应性好。(3)速度可以在相当宽的范围内平滑调节。可以用一台控制器控制几台步进电机同时同步运行。(4)具有自锁能力。当控制脉冲停止输入且让最后一个脉冲控制的绕组继续通电时,电机可以保持在固定的位置上,即停在最后一个控制脉冲所控制的角位移的终点位置上,所以步进电机具有带电自锁能力。(5)步距角选择范围大,可以在几十角分至180 o 范围内选择。在小步距角情况下,电机通常可以在超低速下高转矩稳定运行,而且可以不经减速器直接驱动负载。(6)步进电动机按其应
31、用可分为伺服式和功率式。功率步进电动机可以不通过力矩放大装置直接带动机床等负载运动,简化了传动系统的结构,并具有一定的精度。(7)电机本体没有电刷,转子上没有绕组,也不需要位置传感器,可靠性高。(8)步进电机需要与控制器配合使用,不能直接使用普通的交直流电源。(9)步进电动机带惯性负载的能力差。(10)存在失步、共振等现象,在使用中要根据负载和运行条件合理选用步进电动机及其控制器。3.3.2 步进电机的工作原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁
32、场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步。步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。如下所示的步进电机为一四相步进电机,
33、采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图3.3.1是该四相步进电机是该四相反应式步进电机工作原理示意图。图3.3.1四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四
34、相绕组轮流供电,则转子会沿着A、B、C、D方向转动。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图3.3.2所示:图3.3.2 步进电机工作时序波形图3.3.3 步进电机的单片机控制原理步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机最大特点是它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电动机控制系统组成如图3.3.3 所示脉冲步进控制器功率放大器步进电机负载 图3.3.3 步进电机控制系统的组成步进控制器的作用是把输入的脉冲转换成环型脉冲,以便
35、控制步进电机,并能进行正反向控制。功率放大器的作用就是把控制器输出的环型脉冲加以放大,用来驱动步进电机转动。在这种控制方式中,由于步进控制器线路复杂,成本高,因而限制了它的应用。若我们采用单片机代替步进控制器,问题将被简化,不仅降低了成本,而且提高了可靠性。单片机控制步进电机的原理图如图3.3.4所示单片机接 口驱动器步进电机负 载 图3.3.4 步进电机的单片机控制原理图 单片机的主要作用就是把并行二进制码转换成串行脉冲序列,并实现方向控制。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。 (1) 脉冲序列的生成通电时间断电时间YX 图3.3.5 脉冲序列 在常见的接口电路中多为0
36、5V ,接通和断电的时间可用延时的方法来控制。延时时间的长短由步进电机的工作频率决定,如图3.3.5 所示。 (2) 控制换相顺序 通电换相这一过程称为脉冲分配。例如:四相步进电机的八拍工作方式,其各相通电顺序为A - AB- B - BC - C - CD - D - DA - A ,通电控制脉冲必须严格按照这一顺序分别控制A ,B ,C ,D 相的通断。(3) 控制步进电机的转向如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。若各相通电顺序为A - AB - B - BC - C - CD - D - DA - A时正转,则各相通电顺序为A - DA - D
37、- CD - C -BC - B - AB - A 时反转。. (4) 控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。3.4 本章小结上面对整个步进电机转速远程实时控制系统的主要硬件进行了一下简要的介绍.其中包括了串行通信中的MAX485芯片、步进电机的运转原理、以及步进电机单片机的控制原理等等。4. 软件设计硬件是系统的骨架,软件才是系统的灵魂。光有硬件的系统是不会工作的,只有在软件的驱动下,硬件才会得以像预先的那样实现各种功能。而且,一个好的软件系统不仅可以
38、提升系统的性能,还可以弥补硬件系统的不足。所以,一个经过缜密构思,执行效率高、代码精炼的软件系统是构成一个优秀整体系统比不可少的。4.1 开发环境、工具介绍该软件是在Windows XP Professional + Visual Basic 6.0 + SQL Server 2000的环境下完成的。下面就对这些开发工具进行介绍。4.1.1 Visual Basic 6.0微软公司的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作
39、量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。利用VISUAL BASIC 程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。故而,实现学生信息管理系统VB是一个相对较好的选择。4.1.2 Visual Basic的编程特点Visual Basic语言的出现为Windows下的编程提出了一个新概念,利用Visual Basic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序。利用Visual Basic语言编程有以下几个特点:1)可视化程序设计在Visual Basic中开发的应用程序,不但有丰富的
40、图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置 ActiveX控件的属性即可。2)强大的数据库和网络功能随着Visual Basic 语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用Visual Basic 中的ODBC开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用 Visual Basic自带的可视化数据管理器和报表生成器,完全可以在Visual Basic就完成数据库的开发工作。3)其他特性在Visual Basic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了 Visual B
41、asic 的发展。从Visual Basic5.0版本开始,在Visual Basic 中制作的应用程序都改变为编译执行,使得Visual Basic的代码效率有了很大的提高,同时执行的速度 也加快了解30%(同Visual Basic4.0相比)。当然在 Visual Basic中还有其它特性,例如:面向对象的编程语言;结构化程序设计;事件驱动的程序设计。在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的
42、代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。支持动态链接库;应用程序之间的资源共享;事件驱动的程序设计。在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触
43、发。这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。4.2 VB控件的介绍Windows环境下开发的应用软件具有许多优点:可视性,面向事件和对象的特征。而Visual Basic作为Microsoft公司近来推出的Windows环境下的高级语言,支持面向对象的程序设计,具有结构化的事件驱动编程模式,并支持DDE和OLE等特性。在Windows环境下用VB编制图形界面较之C语言结构简单、操作方便、界面美观。但要与过程控制的实时信号相互联系,就要求VB能够实现PC机与下位过程机的信息交流。 在Windows环境下,用VB6.0实现串行通信有两种方法:一是使用系统
44、集成环境提供的串行通信控件MSComm;二是使用Windows的API接口。 利用API函数编写串口通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富,应用面更广泛,更适合编写较为复杂的低层次通信程序。而VB6.0的MSComm控件提供了标准的事件处理函数、过程,并通过属性的方法提供了串行通信口参数的设置,可以较容易地解决串口通信的问题。 MSComm控件提供了功能完善的串口数据的发送和接收功能,有事件驱动和程序查询两种处理方式。事件驱动方式是处理端口通信的一种有效的方法,它可以利用OnComm事件捕获并处理通信中发生的事件或错误,通过分别对每个CommEvent属性值编程即
45、可完成对各个错误或事件的处理,实时性较强。而查询方式是在程序通过查询CommEvent属性的值来判断通信过程中的事件或错误并做出相应的处理,这种方式适合于应用程序较小、实时性要求不是很高的系统。 用Visual Basic的程序设计串行通信相关工程时,遵循以下4个主要的步骤: (1) 对象:首先了解所要操作的对象是什么; 首先是要使用MSComm控件与单片机进行串行通信,因此在工具箱中选择MSComm控件的图标,并在窗体上安置。 (2) 属性:设置该对象所具备的特性: 每一个控件的属性都相当多,通过属性值的设置,可以指定硬件以一定的方式工作。在窗体上安置一个MSComm控件后,可以调出其相应的
46、属性表,选择相应的项目,进行属性的设置。 MSComm控件的属性众多,其重要属性说明如下: 1 CommPort属性:用于设置或返回通信连接端口号码。程序必须指定所要使用的串行端口的号码,Windows系统会使用所设置的通信端口与外界进行通信,程序也可借助此属性返回所使用的连接端口号码。MSComm控件的最大值是16。 2 Settings属性:用于设置初始化参数。以字符串的形式设置或返回联机速率、奇偶校验、数据位、停止位等4个参数。 3 PortOpen属性:用于设置或返回通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开,而在使用完毕之后,也必须执行关闭操作。串行通信端口各项功能都是在PortOpen的True与False之间完成的。 4 Input属性:用于从输入缓冲区返回并删除字符。程序靠这个命令将对方传到