用VB6实现仪器串口通信及检测功能--控制网



用VB6实现仪器串口通信及检测功能
企业:控制网 日期:2005-08-02
领域:仪器仪表 点击数:835



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

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

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

    1 设计用户界面

    首先新建一个“标准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

 

 

    2 编写程序代码

    编写的程序代码如下:

PriVate Sub Form_Load ()

Msc1.CommPort=1    使用串行口 1

波特率 9600 ,偶校验, 8 个数据位, 1 个停止位

Msc 1.Settings=“9600 , E , 8 , 1”

当使用 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

 

    3 程序简要说明

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

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

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: