日志档案

发表于 2008-1-21 15:43:30

0

标签: 无标签

用VB6实现仪器串口通信及检测功能

VB6实现仪器串口通信及检测功能

  介绍利用VB6串行通信编程的方法,对采用了RS-232接口的仪器进行串行通信的计算机测控软件开发,以及实现仪器功能和指标的验收。



  越来越多的微机用户已习惯于Windows操作系统。不过Windows应用软件的开发对于一般工程技术领域的技术人员来说并非易事,然而使用微软的VisualBasic6.0(简称VB6)来开发这些方面的Windows应用软件就十分方便,编程工作量相对较小,只需进行主要应用功能的编程和少量界面控制的编程。本文介绍利用VB6串行通信编程的方法对采用了RS-232接口的仪器,进行串行通信的计算机测控软件开发和实现仪器功能和指标的验收。

    VB6
提供了许多供用户选择的控件(Customcontrol),这些控件以.OCX为文件后缀名,其中MSCOMM.OCX即是用于串行通信的控件。如果需要使用该控件,可将该控件添加到工具箱(toolbox)内,这样就可以利用该控件进行串行通信程序的设计。

    
下面举一个简单的例子,说明如何进行串行通信程序的设计,该程序在Windows98环境下已调试通过。该例介绍通过RS-232对一台HP53150A微波计数器的程控功能和性能指标的验收。

设计用户界面

    
首先新建一个标准EXE”工程,然后选择工程/部件菜单项,在部件对话框中选择Microsoft Comm Control6.0即可添加MsComm控件;再在窗体中依次布置如下控件并设置其属性。

控件名称 name属性 Caption属性 
Form form1 
 
Frame1 frame1 
 
Frame2 frame2 
  
Frame3 frame3 
 
Command1 comd1 
确定 
Command2 comd2 
退出 
Command3 comd3 
确定 
Command4 comd4 
退出 
Command5 comd5 
做完退出 
MSComm msc1 
 
Label 1 lab1 RS-232
接口功能检测 
Label 2 lab2 
请输入被检仪器程控码控制仪器功能 
Label 3 lab3 
请输入被检仪器程控码读取仪器数据 
Text1 txt1 
 
Text2 txt2 
 
 
用户界面

编写程序代码

    
编写的程序代码如下:

PriVate Sub Form_Load
() 
Msc1.CommPort=1    ’ 
使用串行口
波特率9600,偶校验,8个数据位,1个停止位 
Msc 1.Settings=“9600
E81” 
当使用Msc 1.Input时,每次从接收缓冲区取一个字节。 
Msc1.InputLen=0 ’
读取整个接收缓冲区内码或消除 
Msc1.Portopen=True   ’ 
打开串行口 
End Sub 
Private Sub Comd1_Click
() 
On Error Resume Next    ’
简单的错误处理 
If Txt1.Text = "" Then 
x = MsgBox
"被检仪器程控码不能为空值", 16 
Exit Sub 
End If 
MSC1.Output = Txt1.Text + Chr$
13 
发送程控码 
For i = 1 To 20000000 
Next 
End Sub 
Private Sub Comd2_Click
() 
Txt1.Text = "" 
Txt1.SetFocus 
End Sub 
Private Sub Comd3_Click
() 
Dim instring As string 
instring = MSC1.Input 
MSC1.Output = Txt2.Text + Chr$
13 
Do 
DoEvents 
Loop Until MSC1.InBufferCount >= 20 
instring = MSC1.Input ’ 
从接收队列中读入字符串 
Txt2.Text = "" 
Txt2.Text = instring ’ 
显示读入的字符串 
End Sub 
Private Sub Comd4_Click
() 
Txt2.Text = "" 
Txt2.SetFocus 
End Sub 
Private Sub Comd5_Click
() 
MSC1.PortOpen = False ’ 
关闭串行口 
End 
End Sub 

程序简要说明

    
上述程序设置的端口通信协议为: 9600波特率,偶校验,8个数据位,1个停止位。当退出程序时,一定要关闭串行口,通过comm1.PortOpen=False完成。使用时,在请输入被检仪器程控码控制仪器功能文本框中输入“FUNC‘FREQ 1FREQRES1HZ”即仪器的程控码为:功能通道1测频,分辨率为1Hz。单击确定后,HP53150A置于相应功能。加入信号后即可测量检测,当读取测量数据时在请输入被检仪器程控码读取仪器数据框中输入“DATA,单击确定后,该框中以字符的形式显示测量结果。从而实现仪器程控功能和性能指标的检测。上述只是一个简单的例子。要实现完善的功能,必须进一步改进程序。

    
上面介绍了笔者在使用VB6开发Windows环境下测控软件的一点收获,可以看出使用VB6开发Windows98下与仪器进行串口通信程序是非常简单的。

系统分类: 工控软件   |   用户分类: 无分类   |   来源: 原创

    阅读(421)    回复(0)