煤气泄漏报警系统监控软件设计毕业设计.doc_第1页
煤气泄漏报警系统监控软件设计毕业设计.doc_第2页
煤气泄漏报警系统监控软件设计毕业设计.doc_第3页
煤气泄漏报警系统监控软件设计毕业设计.doc_第4页
煤气泄漏报警系统监控软件设计毕业设计.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

兰州交通大学博文学院毕业设计(论文)煤气泄漏报警系统监控软件设计毕业设计目 录摘要 IABSTRACTII目录I1 绪论11.1 课题背景11.2 集散测控系统11.3 室内煤气泄漏监控系统31.4 课题主要任务42 串行通信系统的设计与实现52.1 串行通信简介52.1.1 串行通信的基本概念52.1.2 串行通信的方式62.2 串行通信总线标准选择82.2.1 RS-232和RS-485总线标准接口简介82.2.2总线标准的选择与通信网络结构设计112.3 串行通信协议的制定132.3.1 通信协议的概念132.3.2 通信协议的内容132.3.3 通信协议的制定142.4 VB6.0环境下上位机通信的实现142.4.1 MSComm控件152.4.2 MSComm控件处理通信的方式152.4.3 MSComm控件的引用162.4.4 MSComm控件常用属性172.4.5 MSComm控件通信步骤192.4.6 Timer控件203 监控信息存储数据库的设计213.1 数据库的建立213.2 VB6.0数据窗体向导213.3 MSFlexGrid控件223.4 DataGrid控件243.5 Data控件253.6 ADO控件283.7 MSFlexGrid控件和Data控件的绑定303.8 DataGrid控件和ADO控件的绑定324 可视化界面设计344.1 软件操作流程图344.2 欢迎界面设计344.3 用户操作界面设计354.4 权限界面设计384.5 管理界面设计394.6 实时监控界面设计395 监控系统的通信模拟实验44致谢47参考文献48附录1附录2II1 绪论1.1 课题背景随着单片机和计算机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。它不仅体现了单片机现场实时数据采集时的快速性和灵活性,而且充分利用了PC机丰富的软硬件资源来实现友好的人机界面。同时,windows环境下后台计算机在数据库管理上具有明显的优势。二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。基于以上背景,本课题主要以煤气泄漏监控系统为例研究了PC机与多台单片机所构成的小型集散控制系统是如何进行通信的。1.2 集散控制系统集散控制系统又称多级计算机分布控制系统和分布式控制系统,它是以微处理器为基础的集中分散型控制系统,根据分级设计的基本思想,实现功能上分离,位置上分散,以达到“分散控制为主,集中管理为辅”的控制目的。目前,集散控制系统已在工业控制领域得到了广泛应用,越来越多的仪表和控制工程师已经认识到集散控制系统必将成为过程工业自动控制的主流。在计算机集成制造系CIMS(Computer Integrated Manufacturing System)或计算机集成作业系统CIPS(Computer Integrated Production System)中,集散控制系统将成为主角,发挥其优势。随着计算机技术和网络技术的发展,系统的开放性不仅能使不同制造厂商的集散控制系统产品互联,方便地进行数据交换,而且也使得第三方的软件可以方便地在现有的集散控制系统上应用。目前,我国已引进不同型号集散控制系统的数量多达几百套,同时也有自行研发的DCS系统,应用领域遍及石化、轻化、冶金、建材、纺织、制药等各行各业1。集散控制系统由过程控制站、操作站和通信系统三部分组成。(1)过程控制站:过程控制站由分散过程控制装置组成,是集散控制系统与生产过程之间的界面,它的主要功能是分散的过程控制,生产过程的各种过程变量通过分散过程控制装置转化为操作监视的数据,而操作的各种信息也通过分散过程控制装置送到执行机构。(2)操作站:操作站由操作管理装置,如由操作台、管理机和外部设备(如打印机、拷贝机)等组成,是操作人员与集散控制系统之间的界面,相当于车间操作管理级和全厂优化及调度管理级,实现人机接口。它的主要功能是集中各分散过程控制装置送来的信息,通过监视和操作,把操作和命令下送给各分散控制装置。(3)通信系统:集散控制系统要达到分散控制和集中操作管理的目的,就需要使下一层信息向上一层集中,上一层指令向下一层传送,级与级或层与层进行数据交换,这都靠计算机通信网络(即通信系统)来完成。通信系统是过程控制站与操作站之间完成数据传递和交换的桥梁,是集散控制系统的中枢。通信系统常采用总线型、环型等计算机网络结构,不同的装置有不同的要求。以上三部分之间的关系如图1.1所示。操作人员、管理人员集中操作和管理装置通信网络系统分散过程控制装置工业生产过程图1.1 集散测控系统组成集散控制系统大体可分为三个发展阶段:(1)第一阶段(1975年-1980年):微处理器的发展导致第一代集散控制系统的产生,系统以实现分散控制为主。(2)第二阶段(1980年-1985年):局域网络技术的发展导致以全系统信息管理为主的第二代集散控制系统的产生。同第一代相比,一个显著变化是:数据通信系统由主从式的星型网络通信转变为效率更高的对等式总线网络通信或环型网络通信。(3)第三阶段(1985年以后):开放系统的发展使集散控制系统进入了第三代。采用局部网络技术和国际标准化组织(ISO)的开放系统互联(OSI)参考模型,克服了第二代集散控制系统在应用过程中因难于互联多种不同标准而形成的“自动化孤岛”。通信管理和控制软件变得更加丰富和完善。集散控制系统因其一些优良特性而被广泛应用,成为过程控制的主流。与常规模拟仪表相比,它具有连接方便,采用软连接方法进行连接,容易改变;显示方式灵活,显示内容多样;数据存储量大等优点。与计算机集中控制系统比较,它具有操作监督方便、危险分散、功能分散等优点。它始终围绕着功能结构灵活的分散性和安全运行维护的可靠性,紧跟时代的发展成为前沿技术1。1.3 室内煤气泄漏监控系统概述在社会信息化进程日益发展的今天,信息技术应用己渗透到人类生存、活动的各个领域。人们对生活环境、工作场所的要求不仅仅是一个遮风避雨的地方,而是要达到舒适健康、安全可靠、高效便利。目前家用煤气,液化器、天然气作为气体燃料,已深入人民的生活之中。气体燃料的应用和普及,随之而来的是由于使用不当和设备老化等问题所导致的燃气泄漏爆炸或中毒事故时有发生。其中由于一氧化碳泄漏中毒死亡尤为严重。众所周知,由于CO与血液中的血红素的结合能力是氧的240倍,因此当它进入人体血液循环系统后,就会大量取代氧而与血红素结合,抑制血液中氧气的释放,从而导致发生头痛、耳鸣、呕吐、血压降低等不同程度的症状发生。如果CO中毒严重,轻者于康复过程中可能会头昏眼花、丧失记忆或引起视觉及神经上的障碍,严重者会导致脑部受损甚至发生死亡。为了预防一氧化碳的泄漏,人们采用了各种措施。家用智能煤气报警器是为了预防气体中毒的一种家用的自动报警器,也是一种高灵敏度的气体探测器。一般都是应用高灵敏度的气敏元件作为气电转换元件,并配以电路和声光报警部分组成。当泄漏的气体达到危险极限值时报警器就会发生鸣响和声光报警。如果将煤气报警器通过RS-485总线与PC机连接起来,借助本课题所设计的室内煤气泄漏监控系统就可以实现实时报警监控,及时提醒用户,防止煤气中毒或爆炸。一氧化碳报警器有便携式、壁挂式、固定式等,可对现场的一氧化碳浓度进行检测,浓度值达到预设值就会发生报警。以下是本人了解到的一些一氧化碳报警器,如图1.2所示。 图1.2一氧化碳报警器1.4 课题主要任务目前基于分布式控制结构的小型集散测控系统的应用越来越广泛,这种系统一般由两级微机组成:上位机和下位机。上位机多采用PC机,用于过程控制、计算或数据处理;下位机多采用单片机,用来完成实时控制及现场数据采集等。因此,PC机与单片机之间的通信成为关键。本课题中,上位机通过VB6.0进行可视化界面设计,通信软件程序编写,实现与多个以单片机为核心处理器的一氧化碳报警器的串行通信,以便达到室内煤气泄漏的实时监控。具体而言,完成的任务如下:(1)分析设计的内容,通过各种方法来搜集有关上位机通信的资料以及了解软件编写的方法。(2)了解小型测控系统的通信网络结构。(3)通过对串行通信的了解和研究,制定出相应的串行通信协议。(4)根据制定好的串行通信协议开始设计串行通信软件,编写通信流程图,根据流程图,编写主程序、发送子程序和接收子程序及其它子程序。 (5)用VB6.0设计可视化界面并实现上位机对下位机所传输数据的显示、处理和存储等操作。(6)完成5000字符与毕业设计相关的英文资料翻译。(7)整理论文,撰写并排版。2 串行通信系统的设计与实现随着计算机网络化和微机分级分布式应用系统的发展,通信的功能也越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。2.1 串行通信简介2.1.1 串行通信的基本概念在通信领域内,有两种数据通信方式:并行通信和串行通信。如图2.1所示:(a)图为并行通信示意图,(b)图为串行通信示意图。 图2.1 并行通信与串行通信示意图接收端发送端接收端(b)串行通信发送端(a)并行通信数据数据 (b)串行通信所谓并行通信,是在一些联络信号的控制下,一次将8位或16位或32位数据同时传送完毕。在并行通信中,传输线的数目没有限制,除了数据线之外还应设置有通信联络控制线。但是当要传输的距离比较远时,一般不能使用并行通信,其原因基于以下两点:一是通信线路费用昂贵;二是由于众多的连线间极易引入干扰,又容易发生线路故障,使整个系统的可靠性变得十分脆弱。如果采用两条线,即一条通信线加上一条地线来进行单向通信,传送的信息(数据信息和控制信息)一次传送一位,如8位的数据信息分8次传送完毕,这种方式称为串行通信。最简单的信息传送方式,应该就是用一条信号线路来传送电压的变化而达到传送信息的目的。只要准备沟通的双方事先定义好什么样的状态代表什么样的意思,那么通过这一条线就可以让双方进行数据交换。2.1.2 串行通信的方式由于信息在一个方向上传输只占用一根传输线,而这根线上既传送数据,又传送联络信号,因为此为区分这根线传送的信息流中,哪一部分是联络信号,哪一部分是数据,就必须引出串行通信的一系列约定。于是,在串行通信中就有异步通信和同步通信两种基本串行通信方式。(1)异步通信 异步方式通信ASYNC(Asynchronous Data Communication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置的起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧2。串行异步通信时的数据格式如图2.2所示。D0 D1 D2 D3 D4 D5 D6 D7 1/0 1011D0O0第n个字符停止位奇偶校验位位8位数据位起始位图2.2 异步通信一帧数据格式 a)起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志着传送一个符的开始。b)数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。c)奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶校验位。d)停止位:停止位为1位、1.5位或2位,可由软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。e)空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。(2)同步通信 一帧信息01111110 A C I FC 01111110开始标志 地址位 控制位 数据位(0-n位)16位CBC校验码 结束标志图2.3 同步通信一帧数据格式同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步2。串行同步通信时的数据格式如图2.3所示。同步通信中使用的数据格式根据所采用的控制规程(通信双方就如何交换信息所建立的一些规定和过程称为通信控制规程)又可分为面向字符型和面向位(比特)型两种。 面向字符型的数据格式又有单同步、双同步、外同步之分。 a)单同步:发送方先传送1个同步字符,再传送数据块,接收方检测到同步字符后接收数据;b)双同步:发送方先传送2个同步字符,再传送数据块,接收方检测到同步字符后接收数据;c)外同步:用一条专用线来传送同步字符,以实现收发双方同步操作。同步传送,接收和发送时钟对于收、发双方之间的数据传送达到同步是至关重要的。在发送方,一般都是在发送时钟的下降沿将数据串行移位输出;在接收方,一般都是在接收时钟的上升沿将数据串行移位输入。 (3)串行通信的传送方向 串行通信在两个站(或设备)之间传送,有单工、半双工、全双工三种形式。 a)单工:仅能进行一个方向的传送,即A只能作为发送器,B只能作为接收器。如图2.4所示。AB图2.4 单工形式b)半双工:交替地进行双向数据传送,但两个设备之间只有一根传输线,因此两个方向的数据传送不能同时进行,如图2.5所示。发送器接收器发送器接收器图2.5 半双工形式c)全双工:两个设备之间有两条传输线,能在两个方向上同时进行数据传送,如图2.6所示。 发送器接收器发送器接收器 图2.6全双工形式2.2 串行通信总线标准选择EIA-232、EIA-422与EIA-485标准等串行通信技术应用很广,如录像机、计算机以及许多工业控制设备上都配备有EIA-232串行通信接口。2.2.1 RS-232和 RS-485总线标准接口简介1.RS-232总线标准接口RS-232C总线标准接口是由美国电子工业协会(EIA)1969年正式公布的,全称是“使用二进制进行交换的数据终端设备和数据通信设备(DCE)之间的接口”。在异步串行通信中应用最广的标准总线,它包括了按位传输的电器和机械方面的规定,适合于短距离或带调制解调器的通信场合,最大的传输速率为20Kb/s,最大传输距离为15m3。目前RS-232是PC机与通信工业中应用最广泛的一种串行接口,RS-232被定义为一种在低速串行通信中增加通信距离的单端标准。由于 RS-232C 并未定义连接器的物理特性,因此,出现了 DB-25、DB-15 和 DB-9各种类型的连接器,其引脚的定义也各不相同。本文通信用串口DB-9类型,如图2.7所示。 图2.7 DB-9串口在 AT 机及以后,不支持 20mA 电流环接口,使用 DB-9 连接器,作为提供多功能 I/O 卡或主板上 COM1 和 COM2 两个串行接口的连接器。它只提供异步通信的 9 个信号。其各引脚定义及功能如表2.1所示。表2.1引脚定义及功能9针RS-232串口(DB-9)引脚简写功能说明1CD载波侦测(Carrier Detect)2RXD接收数据(Receive)3TXD发送数据(Transmit)4DTR数据终端准备(Data Terminal Ready)5GND地线(Ground)6DSR数据准备好(Data Set Ready)7RTS请求发送(Request To Send)8CTS清除发送(Clear To Send)9RI振铃指示(Ring Indicator)RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(Recommended Standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。(1)在TXD和RXD管脚上:逻辑1(MARK)= -3V-15V,逻辑0(SPACE)=+3+15V。(2)在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)+3V+15V,信号无效(断开,OFF状态,负电压)=-3V-15V。RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL与EIA双向电平转换。2.RS-485总线标准接口电子工业协会(EIA)于1983 年制订并发布RS-485 标准,并经通讯工业协会(TIA),修订后命名为TIA/EIA-485-A,习惯地称之为RS-485标准。RS-485 总线作为一种多点差分数据传输的电气规范,已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点双向通信,它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的。正因为如此,许多不同领域都采用RS-485 作为数据传输链路。例如:汽车电子、电信设备局域网、智能楼宇等都经常可以见到具有RS-485 接口电路的设备。这项标准得到广泛接受的另外一个原因是它的通用性,RS-485 标准只对接口的电气特性做出规定,而不涉及接插件电缆或协议,在此基础上用户可以建立自己的高层通信协议,如MODBUS协议。RS-485总线电气性能如表2.2所示。目前,在我国应用的现场网络中,RS-485半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线。但是基于在RS-485 总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间。表2.2 RS485总线电器性能性能指标RS485总线工作模式差分传输(平衡传输)允许的收发器数目32(受芯片驱动能力限制)最大电缆长度4000英尺(1219米)最高数据速率10Mbps最小驱动输出电压范围1.5V最大驱动输出电压范围5V最大输出短路电流250mA最大输入电流1.0mA/12Vin、-0.8mA/-7Vin驱动器输出阻抗54欧输入端电容50pF接收器输入灵敏度200mV接收器最小输入阻抗12k接收器输入电压范围-7V+12V接收器输出逻辑高200mV接收器输出逻辑低200mV2.2.2总线标准的选择与通信网络结构设计目前最通用的串行通信接口是RS-232串口,但因其负载能力差,通信距离较较短的原因,用RS-232建立PC机与多单片机的通信网络是不合适的。而RS-485是一个多引出线接口,这种接口可以有多个驱动器和接收器,能够实现PC机与多台单片机的串行通信,而且其通信距离可达1000米以上,适合远距离传输。因此,在本课题所设计的室内煤气泄漏监控系统中采用RS-485总线建立PC机与多台一氧化碳报警器的传输网络是可行的。PC机对外的两个串口COM1、COM2都是专门为RS-232通信设置的,所以当PC机与多台单片机远距离通信时,可使用RS-232/ RS-485型通信接口转换器,将计算机上的RS-232通信口转为RS-485通信口,在信号进入单片机前在使用RS-485/ RS-232转换器将RS-485通信口转RS-232通信口,再与单片机相连,如图2.8所示。 PC机COM1COM2RS232/RS485RS485/RS232 RS485RS4852号RS485/RS232RS485/RS232n号1号图2.8 PC机与多个单片机远距离连接武汉波仕电子有限公司生产的波仕RS-232/RS-485/RS-422 转换器都可将RS-232 通信距离延长至1.2Km以上(9600bps时)。都可以用于PC 机之间、PC 机与单片机之间构成远程多机通信网络。波仕的485TC 和485TA 转换器外形都为DB-9/DB-9 转接盒大小,其中DB-9(孔座)一端直接插在9芯RS-232 插座(针座)上。PC 机RS-232串行口的DB-9芯连接器引脚分配如下:2-RXD(收),3-TXD(发),5-GND(地)。产品均无需任何初始化设置,只用到RXD(收)、TXD(发)、GND(地)信号,加上独有的内部零延时自动收发转换技术,确保适合所有软件。485TC为全双工半双工通用型,485TA为半双工型,如图2.9所示。由波仕RS-232/RS-485转换器所构成的RS-485总线式通信方式如图2.10所示。(a)波仕485TC(b)波仕485TA(图2.9 波仕RS-232/RS-485转换器图2.10 典型的RS-485半双工多机通信2.3 串行通信协议的制定2.3.1 通信协议的概念所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISOSOSI七层参考模型中的数据链路层4。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。2.3.2通信协议的内容通信协议是对数据传输方式的规定,包括数据格式定义和数据位定义等。通信方式必须遵循统一的通信协议。要想保证通信成功,通信双方必须有一系列的约定,比如作为发送方,必须知道什么时候发送信息、发什么、对方是否收到、收到的内容有没有错、要不要重发、怎么通知对方结束等;作为接收方,必须知道对方是否发送信息、发的是什么、收到的信息是否有错、如果有错如何通知对方、怎么判断结束等。具体而言包括起始位、数据位、奇偶校验位、停止位、波特率设置和握手信号等。1.起始位:当通信线路上没有数据被传送时处于逻辑“1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。其作用就是使设备同步,通信双方必须在传送数据位前协调同步。2.当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8,PC机中经常采用7位或8位数据传送。3.奇偶校验位:数据位发送完后,便可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方应约定一致的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑“1”的个数必须是偶数,如果选择奇校验,那么逻辑“1”的个数必须是奇数。4.停止位:在奇偶位或数据位之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位或2位,接收设备收到停止位之后,通信线路上便又恢复逻辑“1”状态,直至下一个字符数据的起始位到来。5.信号线上传送的所有为信号都保持一致的信号时间,每一位的宽度都由数据传送速率确定,而传送速率是以每秒多少字节衡量的,这个速率叫波特率。2.3.3 通信协议的制定本系统初步拟定网络容量为1台PC机与24台单片机进行多机通信,单片机为主动方,PC机为被动方。PC机不做查询,当单片机发送报警信息时,PC机进行数据接收,并显示在监控界面上。PC机与单片机通过RS-232标准串行接口进行半双工异步串行通信,采用总线连接方式。该标准接口采用9针插头,只用其中的三个引脚,即串行输入RXD、串行输出TXD、地线GND,这就是所谓的三线接法。信号传输的速率设定为9600bps。PC机串口信息帧格式应同单片机一致,包括1位起始位、1位停止位、8位数据位、无奇偶校验。用FEH、EFH两个字节表示起始标识,FFH表示停止标识。2.4 VB6.0环境下上位机通信的实现实现上位机通信软件的工具有很多种,如:C语言、Visual Basic、Visual C+等。但Visual Basic是创建开发Window环境下应用程序强有力的工具。VB是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最便捷的语言。它简单易学、容易掌握,使用VB,编程人员不用编写大量的代码去描述界面元素的外观和位置,而只需把预先建立好的对象拖到屏幕的某一位置即可,从而使编程效率得到了极大的提高。VB6.0又在数据访问、控件、语言、向导及Internet支持等方面增加了许多新的功能,可用于开发Window环境下功能强大、图形界面丰富的各类应用软件系统。用Visual Basic 6.0 进行串行通信程序的设计有两种方式:一是直接调用Windows API,另一种方式是使用通信控件,但后一种方式实际上是通过通信组件间接地调用了Windows API 函数,其过程要比直接调用API 要复杂,但是在程序的实现上要比前一种方式简单的多3。所以本课题使用串行通信控件,即MSComm控件来实现PC机与多台单片机之间的串行通信。2.4.1 MSComm控件串行通信控件MSComm控件全称为Microsoft Communications Control,是微软公司提供的简化Windows 下串行通信编程的ActiveX 控件,它既可以用来提供简单的串行端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API 函数,而且在VC、VB、Delphi等语言中均可使用。使用它可以建立与串行端口的连接,通过串行端口连接到其他通信设备(如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件。利用它可以进行诸如拨打电话、监控串行端口的输入数据,以及创建功能完备的终端程序等。2.4.2 MSComm控件处理通信的方式MSComm控件的目的是为了让用户设计一个系统可以和串行端口进行沟通及传送数据,因此信息会在其硬件线路上流动,此控件提供了以下两种方式来处理信息的流动。1.事件驱动方式该方式相当于一般程序设计中的中断方式。当串口发生事件或错误时,MSComm 控件会产生 OnComm事件,用户程序可以捕获该事件并进行相应的处理。它是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时程序应该能处理它,例如,在串口接收缓冲区中有一个字符到达或者一个变化发生时,程序都可以利用MSComm控件的OnComm事件捕获并处理这些通信事件。OnComm 事件还可以检查和处理通讯错误。在程序的每个关键功能执行之后,可以通过检查CommEvent 属性的值来查询事件和错误5。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。2.查询方式在程序的每个关键功能执行之后,在用户程序中设计定时或不定时的查询,通过检查CommEvent 属性的值来查询事件和错误,从而做出相应的处理。在进行简单应用程序设计时可采用这种方法。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一需要接收的字符就是调制解调器的“0K”回应。查询方式的进行可用计时器Timer或Doloop程序实现5。查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。2.4.3 MSComm控件的引用1.控件添加我们开始一个项目的设计时,VB的工具箱中会有许多默认的控件让设计者选择,这些原本就出现在工具箱中的控件是内置控件,它提供一些基本的系统设计组件给设计者。不过,功能比较特别的控件就不会出现在其中,如用来设计通信功能的控件MSComm就不在其中。所以,当使用MSComm控件时,首先要把它加入到工具箱中。步骤如下:选择“工程”菜单下的“部件”子菜单,在弹出的“部件”对话框中,在“控件”选项卡中选中“Microsoft Comm Control 6.0”复选框,单击“确定”按钮后,在工具箱中就出现一个形似“电话”的图标,它就是MSComm控件,如图2.11所示。工具箱中有了MSComm控件,就可以选择MSComm控件的图标将其添加到程序窗体上,利用该控件就可以通过VB编程实现PC机与串口设备的串口通信了。图2.11 MSComm控件的添加 2.控件操作在使用VB所提供的串行通信功能之前,必须对VB的电话盒(MSComm控件)做一个了解,以便可以将串行通信的观念套用上去。Windows采用了全新的对象化设计思想,把所有的程序都对象化。在对象化之后,我们在VB设计串行通信的相关项目时,一样是遵循了4个步骤。(1)对象首先了解所要操作的对象是什么?(2)属性该对象所具备的属性有哪些?(3)事件该对象在系统执行的过程中会因其他对象而发生什么样的事情?(4)方法当该对象被引发了某个事件之后,程序应该采取的步骤是什么?VB的串行通信对象乃是将RS-232的初级操作予以封装,用户以高级的VB语法即可利用RS-232与外界通信,并不需要了解其他有关的初级操作。使用MSComm控件主要是对其属性的设置。2.4.4 MSComm控件常用属性MSComm控件的属性众多,其主要属性说明如下。1.CommPort:设置或返回通信连接端口代号。程序必须指定所要使用的串行端口的号码。程序亦可经由此属性读回所使用的连接端口号码。在此所设置的通信端口号由1开始往上递增,MSComm的最大值是16,当使用的通信端口号码超过16时,此控件会显示错误信息。当我们欲指定某一通信端口时,可用如下语句:例如:MsComm.CommPort = 1 指定使用COM1作为通信传输。2.Settings:设置初始化参数。以字符串的形式设置或返回连线速度、校验码、数据位、停止位四个参数。其格式为“BBBB,P,D,S”,其中BBBB为连线速度,P为字符校验方式,D为数据位数,S为停止位数。默认值是“9600,N,8,l”,其意为“所使用的通信端口是以每秒9600Bit的速度作传输,不作字符校验,每次数据是8个Bit,而停止位是1个Bit”,而此四项必须是依照顺序,不可前后对调。Settings设置完成之后,所送出及收回的字符串便以此设置为主,使用RS-232通信的两方,Settings必须完全一样,彼此才能顺利地作沟通,否则双方无法收到彼此所传送的信号。例如:MSComm.Settings =“9600,N,8,1”3.Portopen:设置或返回通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开,而在使用完毕之后,也必须执行关闭的操作。4.Input属性Input属性用于从输入缓存器返回并删除字符。程序靠这个命令将对方传到输入缓存区中的字符读进来,并清除缓存区中已被读取的字符。例如:Buffer=MSComm1.Input 将输入缓存区的字符读入Buffer字符串变量中。5.Output属性Output属性用于将一个字符串写入输出缓存区。当程序需要向对方传输字符串时,可使用此命令将字符串写入输出缓存区中。例如:MSComm.output =“ABCD” 将ABCD四个字符通过RS-232传输出去。6.InputLen属性InputLen属性用于指定由串行端口读入的字符串长度。7.Handshaking属性Handshaking属性用于指定通信两方的交握协议。交握协议只有在缓存区没有超速的情况下才能保证数据不被遗失。而缓存区超速是指数据到达连接端口的速度太快,以至于通信装置来不及将数据移到接收缓存区。VB中交握协议的设置如表2.3所示。设置值说明Comnone0(默认值)没有交握协议ComXOnXOff1(XON/XOFF)交握协议ComRTS2RTS/CTS(Request To send/Clear To send)交握协议 ComRTSXOnXOff3RequestToSend和XON/XOFF交握协议表2.3 交握协议的设置8.Rthreshold属性Rthresho1d属性用于设置或返回引发接收事件的字符数:即属性页上的“最小接收字符数”。当接收缓存区达到所设置的字符数时,将会引发OnComm事件中的接收事件。例如:MSComm.Rthreshold = 20,当接收缓存区达到20个字符时,引发接收事件。9.CommEvent属性CommEvent属性在通信错误或事件发生时都会产生OnComm事件,CommEvent属性存有该错误或事件的数值码。10.DTREnable属性DTREnable属性用于判断在通信时是否启用Data Terminal Ready(DTR)线路。通常Data Terminal Ready通常是由计算机发出的信号,表示计算机在等待接收传输。11.RTSEnable属性RTSEnable属性用于决定是否使Request To Send(RTS)线有效。一般情况下,由计算机向外设传输RequestToSend信号,以请示准许传输数据。RequestToSend线被用在RTS/CTS硬件交握协议上。12.InBufferCount属性InBufferCount属性用于返回在接收缓存区中的字符数。它是指己接收,并在接收缓存区中等待读取的字符。用户可以把InBufferCount属性设置为0,以清除接收缓存区。13.InputMode属性InputMode属性用于设置或返回Input属性取回的数据形态。可设置的数值如表2.4所示。表2.4 InputMode属性的设置常数值说明ComInPutModeText0(默认值)数据通过Input属性以文本形式返回ComInPutModeBinary1数据通过Input属性以二进制形式返回InPutMode属性决定Input属性如何返回数据,数据是以字符串的形式接收还是当作字节数组中的二进制数据来接收,完全要由属性的设置来决定。例如:MSComm.InputMode=1 则以二进制方式接收数据。2.4.5 MSComm控件通信步骤了解MSComm控件的相关属性、事件后,就可以正确地应用该控件来完成我们预定的通信任务。通常以下面的步骤来使用VB的MSComm控件作通信控制2。1.加入通信对象,也就是加入MSComm对象。2.设置通信端口号码,即CommPort属性。3.设置通信协议,即Handshaking属性。4.设置传输速度等参数,即Settings属性。5.设置其他参数,若必要时再加上其他的属性设置。6.打开通信端口,即PortOpen属性设成True。7.送出字符串或读入字符串,使用Input及Output属性。8.使用完MSComm通信对象后,将通信端口关闭,即PortOpen属性设成False。遵循以上的步骤,就可以建构串行通信传输系统。在上述步骤中,步骤25可以在设计环境中的属性窗口中作设置,也可以在程序中以程序的语法作设置,而步骤68的设置及使用则只能在程序中以VB的相关语法作设置。2.4.6 Timer控件在 Windows 应用程序中常常要用到时间控制的功能,如在程序界面上显示当前时间,或者每隔多长时间触发一个事件,等等。而 Visual Basic 中的Timer(时间)控制器就是专门解决这方面问题的控件。1.Enabled 属性 用于决定是否启动定时器。当该属性的值为True时,启动定时器的Timer事件;当该属性值为False时,关闭定时器。定时器的Enabled属性不同于其他对象的Enabled属性。对于大多数对象,Enabled属性决定对象是否响应用户触发的事件;定时器控件的Enabled属性值为False时,将暂停定时器操作。2.Interval 属性 两次定时器事件触发的时间间隔(ms)。Interval 属性的有效值在0到65535s之间,其属性值既可在设计时设置,也可在程序运行时设置。如果Interval=0,定时器停止工作。定时器控件的事件只有一个Timer事件。只要定时器控件的属性Enabled=True,而且Interval属性值大于0,则Timer事件以Interval 属性指定的时间间隔发生。在Timer事件过程中编写需要定时进行的处理,可以周期性地激活Timer事件,每隔一段时间自动地调用一次Timer事件过程6。3 监控信息存储数据库的设计数据库是存储在计算机存储设备上的结构化的相关数据的集合。数据库技术是在数据管理技术的发展中逐步形成的,是当前一种先进的数据管理技术。Visual Basic 6.0中最吸引人,同时也是大家最关心的地方就是Visual Basic 6.0强大的数据库开发功能。人们可以通过使用数据控件或者在程序中添加代码的方法来访问和控制大多数的数据库,如最常见的Access、SQL Server、FoxPro、Excel、Paradox等,而且随着Visual Basic 6.0编程技术的不断进步,Visual Basic 6.0在数据库方面的功能也突飞猛进。本设计以Access 7.0作为后台数据库,通过VB中提供的Data控件、ADO控件来进行访问,实现添加、更新、查询等基本操作。3.1 数据库的建立在Access中建立数据库不仅可以在可视化界面下通过向导实现,也可以通过程序实现。可视化数据管理器(VisData)是Visual Basic 6.0提供的一个相当实用的工具程序,凡是Visual Basic 6.0有关数据库的操作,例如数据库结构的建立以及记录的添加、修改、删除等,都可以利用这个有利的工具来进行。具体步骤如下。1.启动数据管理器 在Visual Basic 程序窗口中,选择“外接程序”菜单中的“可视化数据管理器”命令,就会启动“数据管理器”的VisData窗口。2.建立数据库表结构在“VisData”窗口中执行“文件”“新建”“Microsoft Access” “Version7.0” 命令,在随后出现的对话框中输入数据库文件名“yonghu”,并选择保存路径,确定后打开数据库窗口。3.新建数据表在“数据库窗口”中单击右键,在快捷菜单中选择“新建表”命令,出现“表结构”对话框,在“表结构”名称一栏中输入数据表名称“UsersInformation”,单击“添加字段”按钮,在出现的对话框中依次输入或选择表结构中的字段名称、类型、大小等信息。所有字段添加完毕后关闭该对话框,将返回“表结构”对话框,最后单击“生成表”按钮,就会生成数据表UsersInformation,并出现在“数据库窗体中”,至此,数据表结构建立完毕。进而可对其进行数据编辑。3.2 VB6.0数据窗体向导VB6.0有一个“数据窗体向导”可以用来自动创建数据库应用界面。也就是说,利用该向导,只需选择数据库和他的数据表就会自动地创建数据窗体,即自动地创建数据库应用界面。创建步骤如下:(1)选择“外界程序”菜单,单击“外界程序管理器”选项,在该对话框中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论