本科毕业论文——PLC与PC通信.doc_第1页
本科毕业论文——PLC与PC通信.doc_第2页
本科毕业论文——PLC与PC通信.doc_第3页
本科毕业论文——PLC与PC通信.doc_第4页
本科毕业论文——PLC与PC通信.doc_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

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

文档简介

本科毕业论文个人计算机(PC)与可编程控制器通信 个人计算机(PC)与可编程控制器通信摘 要在当今工业生产控制领域中,可编程控制器(PLC)以其卓越可靠的性能被广泛使用,而实现个人计算机(PC)与PLC的通信,则能非常方便且直观地将工艺流程和动态数据等信息显现在用户眼前。本文主要介绍利用VB6.0Mscomm控件来实现PC与FX系列PLC的串行通信,免去了采用VB中API函数的繁琐步骤,使得通信程序相当简练。关键词:VB6.0 串行通信 可编程控制器THE COMMUNICATION BETWEEN PC AND PLCABSTRACTIn the current field of the chemical industry production, a programmable logic controller (PLC) is widely used because of its outstanding and reliable performance. The achievement of the communication between PC and PLC can make it easy, that some information such as process data and dynamic data will be shown before the customers. This paper mainly describes that how to use Mscomm controller of VB6.0 to realize the serial communication between the PC and FX series PLC, which will simplify the cumbersome procedure of the API function.Keyword: VB6.0 serial communication programmable logic controller目 录中文摘要ABSTRACT第一章 绪 论1第二章 可编程控制器简介12.1 可编程控制器的基本概念12.2 可编程控制器的基本结构22.3 可编程控制器的工作原理32.4三菱FX系列可编程控制器指令简介42.4.1 FX系列可编程控制器软元件62.4.2 FX系列可编程控制器基本指令82.4.3 FX系列可编程控制器的步进指令102.5 可编程控制器发展新动向11第三章 VB简介123.1 VB变量123.2 VB控件143.3 常用编程语句183.3.1 赋值语句183.3.2 If语句193.3.3 Select-Case语句193.3.4 Inputbox函数和MsgBox函数203.4 Mscomm控件213.4.1 Mscomm常用控件属性223.4.2 Mscomm控件通信处理方法233.4.3 Mscomm控件调用方法23第四章 个人计算机PC与可编程控制器连接24第五章 VB通信程序代码与程序运行结果265.1 计算机与可编程控制器通信程序说明265.2 计算机与可编程控制器通信代码285.3 计算机与可编程控制器通信测试375.4 计算机与可编程控制器通信结果37第六章 通信时所遇问题及解决方法38第七章 小 结40参考文献英译中上海理工大学本科生毕业设计(论文)第一章 绪 论可编程控制器是一种工业控制计算机,它具有工作可靠性高、抗干扰能力强、编程简单、功能丰富、扩展灵活等特点。可编程控制器在现今的工业生产控制中,占有极其重要地位。将个人计算机PC与可编程控制器进行通信,可以在PC上对可编程控制器的运行过程进行监控,对数据单元进行数据设置。编辑工艺流程画面后,能直观地将工艺流程信息和动态数据等显现在用户眼前,要完成可编程控制器与个人计算机PC两者间的通信,一方面要用到专用接口和连接电缆等硬件设备,另一方面还需要使用到通信程序(即软件),而利用VB编程是实现个人计算机PC与可编程控制器通信的常用方法。本毕业设计通过VB编程来实现个人计算机PC与可编程控制器的通信,这种通信是通过将PC的RS-232接口与可编程控制器的编程口通过SC-09电缆连接,再通过编制通信程序来实现。PC的RS-232接口为串行通信的形式,VB中的MsComm控件可使PC与可编程控制器的串行通信简便高效,所以本设计应用VB6.0软件来实现个人计算机PC与可编程控制器的串行通信。经调试个人计算机PC与可编程控制器之间已成功实现串行通信。第二章 可编程控制器简介2.1 可编程控制器的基本概念可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制应用而设计制造的。早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller),简称可编程控制器,它主要用来代替继电器实现逻辑控制。随着技术的发展,这种装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称PLC。 2.2 可编程控制器的基本结构可编程控制器实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,如图2.1所示: 图2.1 可编程控制器硬件系统结构图2.2.1中央处理单元(CPU) 中央处理单元(CPU)是可编程控制器的控制中枢。它按照可编程控制器系统程序赋予的功能,接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O端以及警戒定时器的状态,并能诊断用户程序中的语法错误。当可编程控制器投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后,按指令的规定执行逻辑或算数运算的结果,将被送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环,直到停止运行。 为了进一步提高可编程控制器的可靠性,近年来对大型可编程控制器还采用双CPU构成冗余系统,或采用三CPU的表决式系统。这样,即使某个CPU出现故障,整个系统仍能正常运行。 2.2.2存储器 存放系统软件的存储器称为系统程序存储器。 存放应用软件的存储器称为用户程序存储器。 2.2.3电源 可编程控制器的电源在整个系统中起着十分重要的作用。如果没有一个良好的、可靠的电源,系统是无法正常工作的,因此可编程控制器的制造商对电源的设计和制造也十分重视。一般交流电压波动在+10%(+15%)范围内,可以不采取其它措施而将可编程控制器直接连接到交流电网上去 2.3 可编程控制器的工作原理当可编程控制器投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,可编程控制器的CPU以一定的扫描速度重复执行上述三个阶段。 2.3.1 输入采样阶段 在输入采样阶段,可编程控制器以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中相应的单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。 2.3.2 用户程序执行阶段 在用户程序执行阶段,可编程控制器总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。 在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。 2.3.3 输出刷新阶段 当扫描用户程序结束后,可编程控制器就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设,这时,才是可编程控制器的真正输出。2.4三菱FX系列可编程控制器指令简介FX系列可编程控制器是由三菱公司近年来推出的高性能小型可编程控制器,他逐步替代了三菱公司原来的F、F1和F2系列可编程控制器产品。FX系列可编程控制器包括FX0S/1S/0N/2N/2NC/3U等类型产品,具有较高的性价比,适用于大多数单机控制的场合,是我国使用最广泛的可编程控制器系列产品之一。FX系列的不同型号,在输入/输出点数方面有很大区别,其中最早的FX0S型可编程控制器输入/输出点数为1030,用于要求不高、点数较少的场合。而第二代的FX2N型可编程控制器的功能很强,基本输入/输出点数为16128,可以扩展到256点,编程指令很强,运行速度很快,可用于要求较高的场合。第三代的可编程控制器,运行速度更快,可扩展到384点,大幅增加了内部软元件的数量,增强了通信功能,还增加了输入/输出适配器、模拟量输入/输出适配器和温度输入适配器。FX系列可编程控制器型号编写表示了其相应的含义,如图2.2:图2.2 FX系列可编程控制器型号说明图其中系列名称:如0、2、0S、1S、ON、1N、2N、2NC等单元类型:M基本单元,E输入输出混合扩展单元,Ex扩展输入模块,EY扩展输出模块。输出方式:R继电器输出,S晶闸管输出,T晶体管输出。特殊品种:DDC电源,DC输出,A1AC电源,AC(AC100120V)输入或AC输出模块,H大电流输出扩展模块,V立式端子排的扩展模块,C接插口输入输出方式,F输入滤波时间常数为1ms的扩展模块。如果特殊品种一项无符号,为AC电源、DC输入、横式端子排、标准输出。例如FX2N32MTD表示FX2N系列,32个I/O点基本单位,晶体管输出,使用直流电源,24V直流输出型可编程控制器。三菱FX2N 可编程控制器是超小型机,I/O点数最大可扩展到256点。其基本单元有16/32/48/64/80/128共6种基本规格,如表2.1。表2.1 三菱FX2N系列可编程控制器基本单元图2.3. 三菱FX2N 可编程控制器产品外形图 FX2N系列可编程控制器由外部端子部分、指示灯部分和接口部分等组成,其外观如图2.3.。外部端子包括可编程控制器电源端子(L、N),直流24V电源端子(24+、COM),输入端子(X),输出端子(Y)等。主要完成电源、输入信号和输出信号的连接。其中24+、COM是机器为输入回路提供的直流24V电源,为了减少接线,其正极在机器内已经与输入回路连接,当某输入点需要加入输入信号时,只需将COM通过输入设备接至对应的输入点,一旦COM与对应点接通,该点就为“ON”,此时对应输入指示就点亮。指示部分包括I/O点的状态指示、可编程控制器电源(POWER)指示、可编程控制器运行(RUN)指示、用户程序存储器后备电池(BATT)状态指示及程序出错(PROG-E)、CPU出错(CPU-E)指示等,用于反映I/O点及可编程控制器的状态。接口部分主要包括编程器、扩展单元、特殊模块及存储卡盒等外部设备的接口,其作用是完成基本单元同上述外部设备的连接。在编辑器接口旁边,还设置了一个可编程控制器运行模式转换开关SW1,它有RUN和STOP两个运行模式,RUN模式能使可编程控制器处于运行状态(RUN指示灯亮),STOP模式能使可编程控制器处于停止状态(RUN指示灯灭),此时,可编程控制器可进行用户程序的录入、编辑和修改2.4.1 FX系列可编程控制器软元件软元件简称元件。将可编程控制器内部存储器的每一个存储单元均称为元件,各个元件与可编程控制器的监控程序、用户的应用程序合作,会产生或模拟出不同的功能。当元件产生的是继电器功能时,称这类元件为软继电器,简称继电器,它不是物理意义上的实物器件,而是一定的存储单元与程序的结合产物。后面介绍的各类继电器、定时器、计数器都指此类软元件。元件的数量及类别是由可编程控制器监控程序规定的,它的规模决定着可编程控制器整体功能及数据处理的能力。我们在使用可编程控制器时,主要查看相关的操作手册。主要软元件如下:l 输入继电器(X)输入继电器是可编程控制器中用来专门存储系统输入信号的内部虚拟继电器。它又被称为输入的映像区,它可以有无数个动合触点和动断触点,在可编程控制器编程中可以随意使用。这类继电器的状态不能用程序驱动,只能用输入信号驱动。FX系列可编程控制器的输入继电器采用八进制编号。FX2N系列可编程控制器带扩展时,输入继电器最多可达184点,其编号为X0X7、X10X17X260X267。l 输出继电器(Y)输出继电器是可编程控制器中专门用来,将运算结果信号经输出接口电路及输出端子,送达并控制外部负载的虚拟继电器。它在可编程控制器内部直接与输出接口电路相连,它有无数个动合触点与动断触点,这些动合与动断触点可在可编程控制器编程时随意使用。外部信号无法直接驱动输出继电器,它只能用程序驱动。FX系列可编程控制器的输出继电器采用八进制编号。FX2N系列可编程控制器带扩展时,输出继电器最多可达184点,其编号为Y0Y267。l 内部辅助继电器(M)可编程控制器内有很多辅助继电器。辅助继电器的线圈与输出继电器一样,由可编程控制器内各软元件的触点驱动。辅助继电器的动合和动断触点使用次数不限,在可编程控制器内可以自由使用。但是,这些触点不能直接驱动外部负载,外部负载的驱动必须由输出继电器执行。在逻辑运算中经常需要一些中间继电器作为辅助运算用。这些元件不直接对外输入、输出,但经常用作状态暂存、移位运算等。它的数量比软元件X、Y多。内部辅助继电器中还有一类特殊辅助继电器,它有各种特殊功能,如定时时钟、进/借位标志、启动/停止、单步运行、通信状态、出错标志等。FX2N系列可编程控制器的辅助继电器按照其功能分成以下三类。a.通用辅助继电器M0M499(500点)通用辅助继电器元件是按十进制进行编号的,FX2N系列可编程控制器有500点,其编号为M0M499。b.断电保持辅助继电器M500M1023(524点)。可编程控制器在运行中发生停电,输出继电器和通用辅助继电器全部成断开状态。再次运行时,除去可编程控制器运行时就接通的以外,其它都断开。但是,根据不同控制对象要求,有些控制对象需要保持停电前的状态,并能在再运行时再现停电前的状态情形。断电保持辅助继电器完成此功能,停电保持由可编程控制器内装的后备电池支持。c.特殊辅助继电器M8000M8255(256点)这些特殊辅助继电器各自具有特殊的功能,一般分成两大类。一类是只能利用其触点,其线圈由可编程控制器自动驱动。例如:M8000(运行监视)、M8002(初始脉冲)、M8013(1s时钟脉冲)。另一类是可驱动线圈型的特殊辅助继电器,用户驱动其线圈后,可编程控制器做特定的动作。例如,M8033指可编程控制器停止时输出保持,M8034是指禁止全部输出,M8039是指定时扫描。l 内部状态继电器(S)状态继电器是可编程控制器在顺序控制系统中实现控制的重要内部元件。它与后面介绍的步进顺序控制指令STL组合使用,运用顺序功能图编制高效易懂的程序。状态继电器与辅助继电器一样,有无数的动合触点和动断触点,在顺控程序内可任意使用。状态继电器分成四类,其编号及点数如下:初始状态:S0S9(10点);回零:S10S19(10点);通用:S20S499(480点);保持:S500S899(400点);报警:S900S999(100点)。l 内部定时器定时器在可编程控制器中相当于一个时间继电器,它有一个设定值寄存器(一个字)、一个当前值寄存器(字)以及无数个触点(位)。对于每一个定时器,这三个量使用同一个名称,但使用场合不一样,其所指的也不一样。通常在一个可编程控制器中有几十个至数百个定时器,可用于定时操作。l 内部计数器计数器是可编程控制器重要内部部件,它是在执行扫描操作时对内部元件X、Y、M、S、T、C的信号进行计数。当计数达到设定值时,计数器触点动作。计数器的动合、动断触点可以无限使用。l 数据寄存器(D)可编程控制器用于模拟量控制、位置控制、数据I/O控制时,需要许多数据寄存器存储参数及工作数据。这类寄存器的数量随着机型不同而不同。每个数据寄存器都是16位,其中最高位为符号位,可以用两个数据寄存器合并起来存放32位数据(最高位为符号位)。a.通用数据寄存器D0D199。只要不写入数据,则数据将不会变化,直到再次写入。这类寄存器内的数据,一旦可编程控制器状态由运行(RUN)转成(STOP)时全部数据均清零。b.停电保持数据寄存器D200D7999。除非改写,否则数据不会变化。即使可编程控制器状态变化或断电,数据仍可以保持。c.特殊数据寄存器D8000D8255。这类数据寄存器用于监视可编程控制器内各种元件的运行方式用,可在电源接通(ON)时,写入初始化值(全部清零,然后由系统ROM安排写入初始值)。d.文件寄存器D1000D7999。文件寄存器实际上是一类专用数据寄存器,用于存储大量的数据,例如采集数据、统计计算器数据、多组控制参数等。其数量由CPU的监视软件决定。在可编程控制器运行中,用BMOV指令可以将文件寄存器中的数据读到通用数据寄存器中,但不能用指令将数据写入文件寄存器。l 内部指针(P、I)内部指针是可编程控制器在执行程序时,用来改变执行流向的元件。它有分支指令专用指针P和中断用指针I两类。a.分支指令专用指针P0P63。分支指令用指针在应用时,要与相应的应用指令CJ、CALL、FEND、SRET及END配合使用,P63为结束跳转使用。b.中断用指针I。中断用指针是应用指令IRET中断返回、EI开中断、DI关中断配合使用的指令。2.4.2 FX系列可编程控制器基本指令基本指令适用于表到软元件触点与母线之间、触点与触点之间、线圈等的连接的指令。主要的基本指令如表2.2。表2.2 基本指令一览表符号名称功 能梯形图表示LD 取运算开始 常开触点LDI 取反运算开始常闭触点LDP取上升沿脉冲运算开始上升沿触点LDF取下降沿脉冲运算开始下降沿触点AND 与串 联 常开触点ANI 与非串 联常闭触点ANDP与脉冲串 联 上升沿触点ANDF与脉冲(F)串联下降沿触点 OR 或 并 联 常开触点 ORI 或非 并 联 常闭触点ANB 逻辑块与 块串联 ORB 逻辑块或 块并联 OUT 输出 线圈驱动指令 MPS 进栈 进栈指令 (PUSH) MRD 读栈读栈指令 MPP 出栈 出栈指令 (POP 读栈且复位) SET 置位 保持指令 RST 复位 复位指令 END 结束 程序结束 程序结束,返回0步2.4.3 FX系列可编程控制器的步进指令l 步进指令(STL/RET)步进指令是专为顺序控制而设计的指令。在工业控制领域,许多的控制过程都可用顺序控制的方式来实现,使用步进指令实现顺序控制既方便实现又便于阅读修改。FX2N中有两条步进指令:STL(步进触点指令)和RET(步进返回指令)。STL和RET指令只有与状态器S配合才能具有步进功能。如STL S200表示状态常开触点,称为STL触点,它没有常闭触点。我们用每个状态器S记录一个工步,例STL S200有效(为ON),则进入S200表示的一步(类似于本步的总开关),开始执行本阶段该做的工作,并判断进入下一步的条件是否满足。一旦结束本步信号为ON,则关断S200进入下一步,如S201步。RET指令是用来复位STL指令的。执行RET后将重回母线,退出步进状态。l 状态转移图一个顺序控制过程可分为若干个阶段,也称为步或状态,每个状态都有不同的动作。当相邻两状态之间的转换条件得到满足时,就将实现转换,即由上一个状态转换到下一个状态执行。我们常用状态转移图(功能表图)描述这种顺序控制过程。如图2.4所示,用状态器S记录每个状态,X为转换条件。如当X1为ON时,则系统由S20状态转为S21状态。图2.4 状态转移图与步进指令状态转移图中的每一步包含三个内容:本步驱动的内容、转移条件及指令的转换目标。如图2.4中S20步驱动Y0,当X1有效为ON时,则系统由S20状态转为S21状态,X1即为转换条件,转换的目标为S21步。l 步进指令的使用说明 STL触点是与左侧母线相连的常开触点,某STL触点接通,则对应的状态为活动步; 与STL触点相连的触点应用LD或LDI指令,只有执行完RET后才返回左侧母线; STL触点可直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈; 由于可编程控制器只执行活动步对应的电路块,所以使用STL指令时允许双线圈输出(顺控程序在不同的步可多次驱动同一线圈); STL触点驱动的电路块中不能使用MC和MCR指令,但可以用CJ指令; 在中断程序和子程序内,不能使用STL指令。2.5 可编程控制器发展新动向可编程控制器是一种专门为在工业环境下应用,而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器已经广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化娱乐等各个行业,它具有高可靠性、抗干扰能力强、功能强大、灵活,易学易用、体积小、重量轻和价格便宜的特点。 可编程控制器技术发展呈现新的动向有以下几点:l 产品规模向大、小两个方向发展:大:I/O点数达14336点、32位为微处理器、多CPU并行工作、大容量存储器、扫描速度高速化。 小:由整体结构向小型模块化结构发展,增加了配置的灵活性,降低了成本。 l 可编程控制器在闭环过程控制中应用将日益广泛。l 不断加强通讯功能。l 新器件和新模块不断推出,高档的可编程控制器除了主要采用CPU以提高处理速度外,还有带处理器的EPROM或RAM的智能I/O模块、高速计数模块、远程I/O模块等专用化模块。l 编程工具丰富多样,功能不断提高,编程语言趋向标准化。即有各种简单或复杂的编程器及编程软件,采用梯形图、功能图、语句表等编程语言,还将有更高档的可编程控制器指令系统。l 追求软、硬件的标准化。第三章 VB简介vb是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的,结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具。Visual意为可视的、可见的,指的是开发像Windows操作系统的图形用户界面的方法,它与其他编程软件不同的是不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。应该说,这是一次质的飞跃,是一次编程技术的革命。Basic实际上是一个短语的缩写,这个短语就是 Beginners all-purpose symbo-lic instruction code ,其中文意思为“初始者通用符号指令代码语言”。Visual Basic 6.0(启动界面如图3.1)有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用Visual Basic开发一般Windows应用程序的人员;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的应用程序。随着版本的提高,Visual Basic的功能也越来越强。自从5.0版,Visual Basic推出了中文版,与前个版本相比,其功能有了很大提升。图3.1 Visual Basic6.0启动界面3.1 VB变量变量是指在运行时,其值可以被改变的量。不同于常量,变量是可以多次赋值的,因此此变量常用于保存程序中的临时数据。变量在程序中使用是非常平凡的,重要性就好比一个液体容器,在运输液体的过程中,如果没有这个容器,液体将无法被运输。变量的名称可以由程序设计人员自行设置,设置时必须遵守下列规定: l 变量必须是以字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母,最后一个字符可以是类型说明符。l 变量名的有效字符为255个。l 不能用 Visual Basic 的保留字作为变量名,但可以把保留字嵌入变量名中。同时变量名也不能是末尾带有说明符的保留字。l Visual Basic 不区分变量名和其他名字中字母的大小写,但习惯上,一般用大写字母定义。3.1.1变量类型变量有许多种类型,而各种变量类型的存储器数量都不同,常用变量类型如表3.1所列。表3.1 常用变量类型变 量 类 型意 义暂用存储器的空间Byte位元组1字节Integer整数2字节Long长整型4字节Single单精度数4字节Double双精度数8字节String变动长度的字符串最多20亿个字节Date日期8字节3.1.2声明变量声明变量就是事先将变量通知程序。要用 Dim 语句声明变量,Dim 语句提供了变量名,语法如下:Dim 变量名 As 变量类型在过程内部用 Dim 语句声明的变量,只有在该过程执行时才存在。过程一结束,该变量的值也就消失了。此外,过程中的变量值对过程来说是局部的,也就是说,无法在一个过程中访问另一个过程中的变量。由于这些特点,在不同过程中就可使用相同的变量名,而不必担心有什么冲突和意想不到的变故。但如果有一变量将不断地用在多个过程中,可在整段程序的开头进行全局的变量声明。例如以下程序:Option ExplicitDim A as Long Private Sub Form_Click()Dim B as Long End SubPrivate Sub Command1_Click()End Sub此段程序中,Option Explicit语句表示强制变量声明,即表示,程序中每一个自定义的变量,必须被声明,否则程序将无法正常运行,好处在于,在编写非常长的程序时,可能某些变量名会有书写上的错误,强制声明后,拼写错误的变量将被视为未声明的变量,而被系统检查出来,提醒你对其进行声明,大大提高了程序编写的正确性。上述例子中,变量B只可用于Form_Click()事件,其他程序段中需要重新声明,否则将被视为未声明变量。变量A可能为两个过程所用,但进行了全局声明,就不需要在每一个程序中多次声明,简化了程序,提高运行速度。3.2 VB控件在VB6.0软件中进行编程时,控件(即“对象”,如图3.2)是不可缺少的、直接反映VB可视化性质的工具,它是可操作的实体。常用控件包括标签(Label)、文字框(TextBox)、按钮(CommandButton)、图片框(PitcureBox)、选择控件(OptionButton)、框架(Frame)、几何图形控件(Shape)等。每一个控件都有其属性、事件及方法,而在程序中常以改变控件的属性作为表现方法。此处为控件选择窗口图3.2 控件3.2.1控件的属性多数控件的属性如表3.2所列:表3.2 多数控件的属性Name控件的名称,可自行定义适当的名称Caption控件的标题Font标签标题显示的字型Forecolor标签标题显示的颜色Backcolor控件中文本和图形的背景色Height控件的高度Left控件的内部左边缘与容器左边缘之间的距离Picture控件中显示的图形Scaleheight可自行定义图框的高度Scaleleft控件左边缘的水平坐标Top控件顶端与其容器顶端之间的距离Width控件的宽度在将某控件拖入窗体后,点击属性窗口(如图3.3)中的某一属性,即可改变相应属性。图3.3 控件属性窗口3.2.2 控件的事件事件是指由系统事先设定的、能被对象识别和响应的动作。当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码被称为“事件过程”。事件过程的命名格式为: Private Sub 控件名_事件名()例如:我们在窗体上按了一下鼠标左键,这样就发生了一个窗体的“Click”(即单击)事件,并执行与其对应的事件过程。这个的事件过程名称为:Form1_Click。不同的控件具有不同的事件。如:对于命令按钮,通常情况下我们都是单击它,所以最常使用的是单击事件,对于驱动器列表框控件,通常我们使用的是它的改变事件。我们在使用控件的相应事件时,我们必须先对其相应的事件进行编写代码,否则控件什么事情也不会做。常用的事件有两种,即鼠标事件和键盘事件。l 鼠标事件 鼠标事件是Visual Basic编程中最常用到的事件,多数控件都支持鼠标操作,因此对鼠标事件进行编程是非常重要的。鼠标事件主要有以下几种: Click:单击事件,即单击鼠标时发生的事件。 DblClick:双击事件,即双击鼠标时发生的事件。 MouseDown:鼠标按下时发生的事件。 MouseUp:鼠标抬起时发生的事件。MouseMove:鼠标移动时发生的事件,对某控件的此事件进行编程,则当鼠标移过此控件时就会触发此事件,执行其相应代码。在上面所列出的这些事件中,最常用到的就是Click事件和DblClcik事件,MouseMove和MouseUp事件不经常用,一般用在需要对鼠标进行处理的地方。如:对于最常见的命令按钮,通常情况下我们使用Click事件;而在进行画图的时候,例如画一条直线,必须先按住鼠标左键,然后拖动鼠标,再松开鼠标。鼠标的单击事件定义如下:Sub Click()End Sub双击事件定义如下:Sub DblClick()End Subl 键盘事件鼠标事件是由鼠标键的单击、双击、移动等操作时发生,键盘事件则是在键盘的某个键按下去时触发。除了鼠标事件外,通常需要对键盘事件进行编程。键盘事件主要有如表3.3几种:表3.3 主要键盘事件KeyDown当键盘上某键被按下去时发生。KeyUp键盘上的键抬起来时发生。KeyPree此事件发生在键盘被按下后和字符被显示出来之前发生。Change此事件在控件的内容发生改变时执行。对于键盘事件,相对来说KeyDown事件和KeyUp事件使用比较少,通常情况下对KeyPress事件和Change事件编程较多,因为此事件注重键盘被按下的是哪个键KeyPress事件定义如下:Private Sub Textl_KeyPress(KeyAscii As Integer).End Sub其中,参数KeyAscii被定义为整型变量,表示被按下去键的Ascii码,我们可以通过对变量KeyAscii值的判断来执行一些特殊操作。例如要想实现在文本框中只能输人数字,不接受其它字符,可以编写如下代码:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii 57 ThenKeyAscii = OEnd IfEnd Sub此段代码表示:如果被按下去的键的Ascii码值不在48到57之间(即输入不是数字),则将KeyAssii值设置为零。从而不进行操作,文本框中并不存在输入的字符。3.2.3 控件的消息响应在VB编程中,经常要根据不同的情况在运行时向窗口中添加或者删除控件,而各个控件还要响应各种事件。在一般的情况下是首先在设计时将控件加入到窗口中,在它们的各个事件中写入代码,然后将它们的Visible属性设置为False。在运行时再使控件显示出来。这就是最常见的消息响应的方法,以下为例。程序运行最初界面如图3.4:图3.4 程序运行最初界面运行最初“按钮”旁为空白,鼠标点“按钮”会出现如图3.5运行结果。“请输入”及输入框原来的visible属性设置为FALSE,后在“按钮”的程序编码中加入使其两个控件visible属性为TRUE的语句,运行后,控件得以显示出来。图3.5 运行结果“按钮”控件的程序代码是:Private Sub Command1_Click()Label1.Visible = TrueText1.Visible = TrueEnd Sub3.3 常用编程语句VB编程中,语句就像一个个框架一般,编程人员就是组合使用这些语句,来达到最终的编程目的。VB的语句内容、数量都非常丰富,在本章节主要介绍一些最常见语句。3.3.1 赋值语句之前说过,变量是承载程序中值的“容器”,那如何将值装入变量中,就将运用到赋值语句,语句语法如下:变量名=系统执行时,先计算“=”右边的表达式的值,再把该值存入“=”左边的变量中,这就是“赋值”。例:Private Sub Command5_Click()cz = 0sz = 0r = Text1.TextFor a = 1 To rcz = cz + 2 * a * PIsz = sz + a * a * PINext aLabel5.Caption = czLabel6.Caption = szEnd Sub此段程序中,先将“0”赋值给“cz”将“cz”初始化,再将“cz+2*a*PI”的值赋给“cz”。3.3.2 If语句用于判断条件是否符合要求,来达到不同结果,是非常常用的语句。语法如下:If 条件 then(ElseIf 条件 then)ElseEnd if其中,“then”必须与“if”写在同一行,否则系统运行时将视为无效,条件语句,必须以“end if”来结尾,否则语句将不完整,系统将无法正常运行。“elseif”可是条件多少添加。3.3.3 Select-Case语句当并列条件数量巨大时,可使用Select-Case语句,较If语句简单。语法如下:Select Case 表达式Case 条件1Case 条件2Case ElseEnd Select例:Select Case awe1 Case 0 If BN1 = 1 Then biaozi = True Else biaozi = False End If Case 1 If BN2 = 1 Then biaozi = True Else biaozi = False End If Case 7 If BN8 = 1 Then biaozi = True Else biaozi = False End If End Select3.3.4 Inputbox函数和MsgBox函数Inputbox函数用来接收用户通过键盘输入的值。语法如下:返回值即变量 = (语句,标题,默认值,X坐标,Y坐标,帮助,conText)运行时,会弹出对话框,此时用户可输入值。括号中,除“语句”部分必须有,其他均可式具体情况省略。MsgBox函数用于向用户发布提示信息,并要求用户做出反应。语法如下:返回值 = MsgBox (语句,格式码,标题文本,帮助文件,conText)格式码的书写形式分为内置常数和设置值两种,可通过查表(部分见表3.4)获得。返回值,在后期语句使用过程中,也会用到格式码,届时使用的格式码必须与括号中的格式码形式一致。表3.4 部分格式码按 钮 名内 置 常 数设 置 值OK(确定)vbOK1Cancel(取消)vbCancel2Abort(终止)vb Abort3Retry(重试)vb Retry4Ignore(忽略)vb Ignore5Yes(是)vb Yes6No(否)vb No7当Inputbox函数和MsgBox函数配套使用时,“语句”部分必须相同。例:Private Sub Command4_Click()r = InputBox(请输入半径, 半径值)c = MsgBox(确定是你需要的半径 + r + ?, vbInformation + vbYesNo, 请确定半径值)If c = vbYes Then Label5.Caption = PI * r * 2 Label6.Caption = Str(PI * r * r)Else Label5.Caption = 请重新输入半径值 Label6.Caption = 请重新输入半径值End IfEnd Sub运行结果如图3.6、图3.7 图3.6 inputbox函数 图3.7 msgbox函数3.4 Mscomm控件Mscomm控件可以通过串行端口传输和接收数据,为应用程序提供串行通讯功能。Mscomm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。3.4.1 Mscomm常用控件属性Mscomm控件常用的控件属性有以下几个:l CommPort 属性(设置并返回通讯端口号) 在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。 l Settings 属性(设置并返回波特率、奇偶校验、数据位、停止位参数) 当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。 Value 由四个设置值组成,有如下的格式:BBBB,P,D,S 。 BBBB 为波特率,P为奇偶校验,D为数据位数,S为停止位数。value 的缺省值是: 9600,N,8,1 。l Input属性(从接收缓冲区中读取数据并清空该缓冲区)该属性设计时无效,运行时只读。l InputLen 属性(设置并返回 Input 属性从接收缓冲区读取的字符数)该属性缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部.l InputMode属性(设置或返回接收数据的类型)l InBufferSize属性(设置或返回接收缓冲区的大小)缺省值为1

温馨提示

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

评论

0/150

提交评论