基于VB的测控软件开发设计
发布时间:2021-06-06
发布时间:2021-06-06
基于VB的测控软件开发设计
基于VB 基于VB的 VB的 测控软件开发设计报告人:李湘江 报告人:
基于VB的测控软件开发设计
引言计算机工业测控系统过去在DOS操作系统下, 计算机工业测控系统过去在DOS操作系统下, DOS操作系统下 一般是采用汇编语言或C语言开发设计. 一般是采用汇编语言或C语言开发设计.随着 操作系统的普及应用, Windows 95/98 操作系统的普及应用,数据采 集及工业测控等软件的开发也上升到Windows 集及工业测控等软件的开发也上升到Windows 环境下.可视化软件开发平台的出现, 环境下.可视化软件开发平台的出现,为软件 开发提供了强大的图形界面功能, 开发提供了强大的图形界面功能,使得开发出 来的各种应用软件具有良好的人机交互功能. 来的各种应用软件具有良好的人机交互功能. 汇编语言的特点是功能强,运行速度快, 汇编语言的特点是功能强,运行速度快,但编 程复杂,调试难, 程复杂,调试难,而高级语言具有良好的可读 性及方便的调试手段. 性及方便的调试手段.
基于VB的测控软件开发设计
VB是Windows环境下简单,易学, VB是Windows环境下简单,易学,高效的 环境下简单 可视化编程语言开发系统, 可视化编程语言开发系统,以其所见即所 得的可视化界面设计风格和32 32位面向对象 得的可视化界面设计风格和32位面向对象 的程序设计等特点, 的程序设计等特点,已广泛地应用于各个 领域, 领域,是很多计算机软件开发人员采用的 开发工具.VB不但提供了良好的界面设计 开发工具.VB不但提供了良好的界面设计 能力, 能力,而且在微机串口通信方面也有很强 的功能.采用VB开发Winodws VB开发Winodws下的数据采 的功能.采用VB开发Winodws下的数据采 集和工业控制应用软件十分方便, 集和工业控制应用软件十分方便,尤其软 件界面设计非常便捷,编程工作量较小, 件界面设计非常便捷,编程工作量较小, 开发周期短, 开发周期短,特别适合非计算机专业的工 程技术人员掌握和使用. 程技术人员掌握和使用.
基于VB的测控软件开发设计
1 系统的数据处理相对于其它语言来说,VB的数据结构相对简单.对于测控系 相对于其它语言来说,VB的数据结构相对简单. 的数据结构相对简单 其浮点数运算较多, 统,其浮点数运算较多,而计算机处理整型数的速度要远高 于处理浮点数的速度,因而为了不影响测控数据的速度, 于处理浮点数的速度,因而为了不影响测控数据的速度,如 果需要的数据的精度不是很高时, 果需要的数据的精度不是很高时,最好在系统中把采集到的 数据转化为整型数进行处理,而结果的处理再转换为浮点数, 数据转化为整型数进行处理,而结果的处理再转换为浮点数, 这样有利于提高系统的运行速度. 这样有利于提高系统的运行速度. 对于数据采集与处理的系统来说,由于数据的
存储多采用二 对于数据采集与处理的系统来说, 进制方式,不可避免地要使用Byte数据类型. Byte数据类型 进制方式,不可避免地要使用Byte数据类型.在转换期间里 Byte变量存储二进制数据 变量存储二进制数据, String变量在ANSI和 变量在ANSI 用Byte变量存储二进制数据,当String变量在ANSI和Unicode 格式间进行转换时,变量中的任何二进制数据都会遭到破坏. 格式间进行转换时,变量中的任何二进制数据都会遭到破坏. 因此,在下列的任何一种情况下,VB都会自动在ANSI和 都会自动在ANSI 因此,在下列的任何一种情况下,VB都会自动在ANSI和 Unicode之间进行转换 读文件时;写文件时;调用DLL 之间进行转换: DLL时 Unicode之间进行转换:读文件时;写文件时;调用DLL时; 调用对象的方法和属性时.所以, 调用对象的方法和属性时.所以,对于一些数据采集中的数 据处理而言,为了避免出错,数据处理可在DLL中完成, DLL中完成 据处理而言,为了避免出错,数据处理可在DLL中完成,而VB 仅用来在界面中显示数据结果. 仅用来在界面中显示数据结果.
基于VB的测控软件开发设计
2 RS-232C 接口 RS串行通信接口标准经过使用和发展, 串行通信接口标准经过使用和发展,目前已经有几 但都是在RS-232标准的基础上经过改进而形成 种.但都是在RS-232标准的基础上经过改进而形成 RS-232C标准是美国 标准是美国EIA(电子工业协会) 的.RS-232C标准是美国EIA(电子工业协会)与 BELL等公司一起开发的 BELL等公司一起开发的1969年公布的通信协议. 等公司一起开发的1969年公布的通信协议 年公布的通信协议. 它适合于数据传输速率在0 20000b/s范围内的通信 范围内的通信. 它适合于数据传输速率在0-20000b/s范围内的通信. RS-232C标准的全称是"EIA-RS-232C"标准,其 RS-232C标准的全称是"EIA-RS-232C"标准, 标准的全称是 标准 EIA( Association) 中EIA(Electronic Industry Association)代表美 国电子工业协会,RS( standard) 国电子工业协会,RS(Recommend standard) 代表推荐标准,232是标识号 是标识号, 代表RS232的最新 代表推荐标准,232是标识号,C代表RS232的最新 一次修改(1969),在这之前, RS232B, ),在这之前 一次修改(1969),在这之前,有RS232B, RS232A.这个标准对串行通信接口的有关问题, RS232A.这个标准对串行通信接口的有关问题, 如信号线功能,电器特性都作了明确规定. 如信号线功能,电器特性都作了明确规定.由于通 行设备厂商都生产与RS-232C制式兼容的通信设备, 行设备厂商都生产与RS-232C制式兼容的通信设备, 制式兼容的通信设备 因此,它作为一种标准, 因此,它作为一种标准,目前已在微机通信接口中 广泛采用. 广泛采用.
基于VB的测控软件开发设计
2.1 RS-232C接口标准 RS-232C接口标准1.电气特性 EIA-RS-232C对电器特性,逻辑电平和各种信号线 EIA-RS-232C对
电器特性 对电器特性, 功能都作了规定. 功能都作了规定. 对于数据(信息码): 对于数据(信息码): 逻辑1 MARK) 3V~ 逻辑1(MARK)=-3V~-15V 逻辑0 SPACE)=+3~+ ~+15V 逻辑0(SPACE)=+3~+15V 对于控制信号: 对于控制信号: 信号有效(接通,ON状态 正电压)=+3V~ 状态, 信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态 负电压) 3V~ 状态, 信号无效(断开,OFF状态,负电压)=-3V~-15V 实际工作时,应保证电平在± 15) 之间, 实际工作时,应保证电平在±(3~15)V之间,介 于-3~+3V之间的电压无意义,低于-15V或高于 +3V之间的电压无意义,低于-15V或高于 之间的电压无意义 +15V的电压也认为无意义 +15V的电压也认为无意义. 的电压也认为无意义.
基于VB的测控软件开发设计
2.连接器的机械特性 连接器:由于RS-232C并未定义连接器 连接器:由于RS-232C并未定义连接器 的物理特性,因此,出现了DB-25,DB的物理特性,因此,出现了DB-25,DB15和DB-9各种类型的连接器,其引脚的 15和DB定义也各不相同,下图分别显示了两种 连接器:
基于VB的测控软件开发设计
(1)DB-25: PC和XT机采用DB-25型连接器.DB-25连接 DB-25: PC和XT机采用 -25型连接器 DB-25连接 机采用DB 型连接器. 器定义了25根信号线 分为4 根信号线, 器定义了25根信号线,分为4组: 异步通信的9个电压信号(含信号地SG) ①异步通信的9个电压信号(含信号地SG) 20、22脚 (2、3、4、5、6、7、8、20、22脚). 20mA电流环信号 ②20mA电流环信号 9个 12、13、14、15、16、17、19、23、24脚 (12、13、14、15、16、17、19、23、24脚). 10、11、18、21、25脚 ③空6个(9、10、11、18、21、25脚). 保护地(PE) 作为设备接地端( ④保护地(PE)1个,作为设备接地端(1脚). DB-25型连接器的外形及信号线分配如上图所示.注意, DB-25型连接器的外形及信号线分配如上图所示 注意, 型连接器的外形及信号线分配如上图所示. 20mA电流环信号仅 20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机 电流环信号仅IBM PC和 PC/XT机提供 机提供, AT机 及以后,已不支持. 及以后,已不支持. DB- 连接器: AT机及以后 不支持20mA电流环接 机及以后, (2)DB-9连接器:在AT机及以后,不支持20mA电流环接 使用DB- 连接器,作为提供多功能I/O卡或主板上 口,使用DB-9连接器,作为提供多功能I/O卡或主板上 COM1和COM2两个串行接口的连接器 COM1和COM2两个串行接口的连接器.它只提供异步通信 两个串行接口的连接器. 个信号.DB- 型连接器的引脚分配与DB-25型引脚信号 的9个信号.DB-9型连接器的引脚分配与DB-25型引脚信号 完全不同.因此,若与配接DB-25型连接器的 型连接器的DCE设备连接 设备连接, 完全不同.因此,若与配接DB-25型连接器的DCE设备连接, 必须使用专门的电缆线. 必须使用专门的电缆线.
基于VB的测控软件开发设计
2.2 RS-232C的接口信号 RS-232C的接口信号引脚 引
脚1 引脚1 引脚2 引脚2 引脚3 引脚3 引脚4 引脚4 引脚5 引脚5 引脚6 引脚6 引脚7 引脚7 引脚8 引脚8 引脚9 引脚9 简写 CD RXD TXD DTR GND DSR RTS CTS RI 意义 载波检测(Carrier 载波检测(Carrier Detect) 接收字符(Receive) 接收字符(Receive) 发送字符(Transmit) 发送字符(Transmit) 数据终端就绪 (Data Terminal Ready) 地线(Ground) 地线(Ground) 数据发送端就绪(Data 数据发送端就绪(Data Set Ready) 请求发送(Request 请求发送(Request To Send) 清除发送(Clear 清除发送(Clear To Send) 响铃检测(Ring 响铃检测(Ring Indicator)
基于VB的测控软件开发设计
引脚1 CD):此引脚是由调制解调器控制,当电话接通之后, 引脚1(CD):此引脚是由调制解调器控制,当电话接通之后,发送的信号是载在载波信 ):此引脚是由调制解调器控制 号上面,调制解调器用此引脚通知计算机有载波被检测到(即表示现在处于联机状态, 号上面,调制解调器用此引脚通知计算机有载波被检测到(即表示现在处于联机状态,而 当载波被检测到时才可以保证此时是处于联机状态).一般若计算机未收到此信号, ).一般若计算机未收到此信号 当载波被检测到时才可以保证此时是处于联机状态).一般若计算机未收到此信号,均会 响应信息,并将调制解调器挂断. 响应信息,并将调制解调器挂断. 引脚2(RXD):通过该引脚接收从Modem发来的串行数据(DCE→DTE). 引脚2 RXD):通过该引脚接收从Modem发来的串行数据 ):通过该引脚接收从 发来的串行数据(DCE→DTE). 引脚3(TXD):通过该引脚将串行数据发送到Modem(DTE→DCE). 引脚3 TXD):通过该引脚将串行数据发送到Modem(DTE→DCE). ):通过该引脚将串行数据发送到 引脚4(DTR):此引脚由计算机控制,用以通知调制解调器可以进行传输.高电位时表示 引脚4 DTR):此引脚由计算机控制,用以通知调制解调器可以进行传输. ):此引脚由计算机控制 计算机已经准备就绪,随时可以接收数据. 计算机已经准备就绪,随时可以接收数据. 引脚5(GND):此引脚为地线,作为计算机与调制解调器之间的标准电位参考.两端设 引脚5 GND):此引脚为地线,作为计算机与调制解调器之间的标准电位参考. ):此引脚为地线 备的地线标准电位必须一样,否则会产生地回路,使得信号因标准电位的不同而产生偏移, 备的地线标准电位必须一样,否则会产生地回路,使得信号因标准电位的不同而产生偏移, 也会导致结果失常.RS-232数据采用单接点式的数据传输方式 数据采用单接点式的数据传输方式, 也会导致结果失常.RS-232数据采用单接点式的数据传输方式,其特点是信号电压的标准 电位是参考地线标准电位而来,因此传输双方的地线才必须连接在一起, 电位是参考地线标准电位而来,因此传输双方的地线才必须连接在一起,以避免标准电位 不
同而造成数据的错误. 不同而造成数据的错误. 引脚6(DSR):调制解调器用这个引脚通知计算机一切准备就绪,可以传输数据过来. 引脚6 DSR):调制解调器用这个引脚通知计算机一切准备就绪,可以传输数据过来. ):调制解调器用这个引脚通知计算机一切准备就绪 引脚7(RTS):计算机用此引脚通知调制解调器马上发送数据到计算机.当调制解调器收 引脚7 RTS):计算机用此引脚通知调制解调器马上发送数据到计算机. ):计算机用此引脚通知调制解调器马上发送数据到计算机 到此信号后,便会将它由电话线上收到的数据发送给计算机, 到此信号后,便会将它由电话线上收到的数据发送给计算机,在此之前若有数据发送至调 制解调器则会暂存在缓冲区中. 制解调器则会暂存在缓冲区中. 引脚8(CTS):表示Modem准备好接收DTE发来的数据,是对RTS的响应信号.当 引脚8 CTS):表示 ):表示Modem准备好接收 准备好接收DTE发来的数据,是对RTS的响应信号. 发来的数据 的响应信号 MODEM已准备好接收终端传来的数据 并向前发送时,使该信号有效, MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发 已准备好接收终端传来的数据, 送数据线TXD发送数据 发送数据. 送数据线TXD发送数据. 引脚9(RI):调制解调器通知计算机有电话进来,是否接听由计算机决定. 引脚9 RI):调制解调器通知计算机有电话进来,是否接听由计算机决定. ):调制解调器通知计算机有电话进来
基于VB的测控软件开发设计
2.3 RS-232C基本通信过程 RS-232C基本通信过程近距离通信 当通信距离较近时(小于15米),通信双方 当通信距离较近时(小于15米),通信双方 可以直接连接,这种情况下,只需使用少数 几根信号线.最简单的情况,只需三根线 (发送线,接收线,信号地线)便可实现全 双工异步串行通信. 远距离通信 使用Modem. 使用Modem.
基于VB的测控软件开发设计
2.4 流控制串行通信处理中,常常看到RTS/CTS和 串行通信处理中,常常看到RTS/CTS和 XON/XOFF这两个选项,这是两个流控制 XON/XOFF这两个选项,这是两个流控制 的选项.
基于VB的测控软件开发设计
2.4.1 流控制的作用这里讲到的" 这里讲到的"流"是指数据流.数据在两个串口之间传输时, 是指数据流.数据在两个串口之间传输时, 常常会出现丢失数据的现象, 常常会出现丢失数据的现象,或者两台计算机的处理速度不 如台式机与单片机之间的通讯,接收端数据缓冲区已满, 同,如台式机与单片机之间的通讯,接收端数据缓冲区已满, 则此时继续发送来的数据就会丢失. 则此时继续发送来的数据就会丢失.现在我们在网络上通过 MODEM进行数据传输 这个问题就尤为突出. MODEM进行数据传输,这个问题就尤为突出.流控制能解 进行数据传输, 决这个问题,当接收端数据处理不过来时,就
发出" 决这个问题,当接收端数据处理不过来时,就发出"不再接 的信号,发送端就停止发送,直到收到"可以继续发送" 收"的信号,发送端就停止发送,直到收到"可以继续发送" 的信号再发送数据.因此流控制可以控制数据传输的进程, 的信号再发送数据.因此流控制可以控制数据传输的进程, 防止数据的丢失. PC机中常用的两种流控制是硬件流控制 防止数据的丢失. PC机中常用的两种流控制是硬件流控制 包括RTS/CTS,DTR/DSR等 和软件流控制XON/XOFF (包括RTS/CTS,DTR/DSR等)和软件流控制XON/XOFF 继续/停止). (继续/停止).
基于VB的测控软件开发设计
2.4.2 硬件流控制硬件流控制常用的有RTS/CTS流控制和 硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据端就绪 / 流控制和DTR/DSR(数据端就绪 数据就绪 流控制. 数据就绪 )流控制. 硬件流控制必须在相应的电缆线连上,应将通讯两端的RTS, 硬件流控制必须在相应的电缆线连上,应将通讯两端的RTS,CTS 线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调 线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调 器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器) 器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器) 则用CTS来起动和暂停来自计算机的数据流 来起动和暂停来自计算机的数据流. 则用CTS来起动和暂停来自计算机的数据流.这种硬件握手方式的 过程为: 过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志 可为缓冲区大小的75%)和一个低位标志( %)和一个低位标志 (可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的 25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置 25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置 %),当缓冲区内数据量达到高位时 低电平(逻辑0),当发送端的程序检测到 当发送端的程序检测到CTS为低后 为低后, 低电平(逻辑0),当发送端的程序检测到CTS为低后,就停止发 送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平 置高电平. 送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平. RTS则用来标明接收设备有没有准备好接收数据 RTS则用来标明接收设备有没有准备好接收数据. 则用来标明接收设备有没有准备好接收数据.
基于VB的测控软件开发设计
2.4.3 软件流控制由于电缆线的限制, 由于电缆线的限制,我们在普通的控制通信中一般不用硬件 流控制,而用软件流控制.一般通过XON/XOFF来实现软件 流控制,而用软件流控制.一般通过XON/XOFF来实现软件 流控制.常用方法是: 流控制.常用方法是:当接收端的输入缓冲区内数据量超过 设定的高位时,就向数据发送端发出XOFF字符(十进制的 设定的高位时,就向数据发送
端发出XOFF字符( 字符 19或Control- ),发送端收到 19或Control-S),发送端收到XOFF字符后就立即停止发送 发送端收到XOFF字符后就立即停止发送 数据;当接收端的输入缓冲区内数据量低于设定的低位时, 数据;当接收端的输入缓冲区内数据量低于设定的低位时, 就向数据发送端发出XON字符 十进制的17或Control字符( 就向数据发送端发出XON字符(十进制的17或Control-Q), 发送端收到XON字符后就立即开始发送数据 字符后就立即开始发送数据. 发送端收到XON字符后就立即开始发送数据. 应该注意,若传输的是二进制数据, 应该注意,若传输的是二进制数据,标志字符也有可能在数 据流中出现而引起误操作,这是软件流控制的缺陷, 据流中出现而引起误操作,这是软件流控制的缺陷,而硬件 流控制不会有这个问题. 流控制不会有这个问题.
基于VB的测控软件开发设计
3 VB中的I/O操作 VB中的 操作 中的I/O测控系统有较多的输入输出操作,VB虽然有 测控系统有较多的输入输出操作,VB虽然有 丰富的用户界面设计能力, 丰富的用户界面设计能力,却没有提供直接 I/O操作功能 也没有嵌入汇编语言的功能. 操作功能, 的I/O操作功能,也没有嵌入汇编语言的功能. 当用户使用诸如AD AD板 当用户使用诸如AD板,数据采集卡等即插即 用的功能板时, 用的功能板时,这就需要利用其丰富的用户 控件OCX 动态连接库DLL 动态数据交换DDE OCX, DLL, 控件OCX,动态连接库DLL,动态数据交换DDE API函数及对象的连接与嵌入技术OLE来对 函数及对象的连接与嵌入技术OLE 或API函数及对象的连接与嵌入技术OLE来对 VB程序的功能进行扩展 从原则上说, 程序的功能进行扩展, VB程序的功能进行扩展,从原则上说,这些 技术都可以实现I/O操作. I/O操作 技术都可以实现I/O操作.
基于VB的测控软件开发设计
3.1串行通信控件MSComm.OCX 3.1串行通信控件 串行通信控件MSComm.OCXMSComm控件是Microsoft提供的扩展控件, MSComm控件是Microsoft提供的扩展控件,用 控件是Microsoft提供的扩展控件 于支持VB程序对串口的访问,该控制"隐藏" VB程序对串口的访问 于支持VB程序对串口的访问,该控制"隐藏" 了大部分串口通信的底层运行过程和许多烦琐 的处理过程, 的处理过程,同时支持查询方式和事件驱动通 信的机制,VB为该控件提供了标准的事件处理 信的机制,VB为该控件提供了标准的事件处理 函数,过程,并通过属性和方法提供了串行通 函数,过程, 讯的设置.它使用户能够方便的访问WINDOWS 讯的设置.它使用户能够方便的访问WINDOWS 串行通讯驱动程序的大多数特性,包括输入, 串行通讯驱动程序的大多数特性,包括输入, 输出缓冲区的大小及决定何时使用流控制命令 挂起数据传输等. 挂起数据传输等.
基于VB的测控软件开发设计
基于VB的测控软件开发设计
基于VB的测控软件开发设计
要完成正常的通信功能, 要完成正常的
通信功能,首先要正确设置通信控件的 CommPort(通信串行口号 ,格式为 通信串行口号), 通信串行口号 mport=2;Settings(波特率,奇偶校验位, 波特率, ; 波特率 奇偶校验位, 数据位,停止位), 数据位,停止位 ,格式为 MSComm1.Settings=〃9600,O,8,1〃,Settings属性必须设 , 属性必须设 置正确的波特率,奇偶校验,否则是无法处理的乱码; 置正确的波特率,奇偶校验,否则是无法处理的乱码; PortOpen(是否打开串行口 ,设计时不可见,格式为 是否打开串行口), 是否打开串行口 设计时不可见, MSComm1.PortOpen=True;Input从接受缓冲区接收字符, 从接受缓冲区接收字符, ; 从接受缓冲区接收字符 OutPut向发送缓冲区写入字符. 向发送缓冲区写入字符. 向发送缓冲区写入字符
基于VB的测控软件开发设计
判断发送缓冲区和接收缓冲区是否有字符,否 判断发送缓冲区和接收缓冲区是否有字符, 则会发生错误. 则会发生错误.这时就要考虑 InBuffersize(输入缓冲区的大小 输入缓冲区的大小) InBuffersize(输入缓冲区的大小), (输出缓冲区大小 输出缓冲区大小) OutBuffersize (输出缓冲区大小), InputMode(接收数据类型 等重要的属性外, InputMode(接收数据类型)等重要的属性外, 接收数据类型) InputLen(读字符串长度 读字符串长度) Sthreshold(输出 InputLen(读字符串长度),Sthreshold(输出 缓冲区允许的最少的字符数) Rthreshold(输 缓冲区允许的最少的字符数)和Rthreshold(输 入缓冲区允许的最少的字符数) 入缓冲区允许的最少的字符数)三个属性的设 置也非常重要.WINDOWS正是利用用户定义的 置也非常重要.WINDOWS正是利用用户定义的 输入输出缓冲区的有关属性实现了中断驱动程 序.
上一篇:餐厅服务-如家