老古开发网首页
导航:老古开发网首页文章索引索引第1384页文章分类另类其他第1页→[用VB6实现仪器串口通信及检测功能]
| -文章搜索 - 最新文章 - |

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

发布时间:2005年12月1日 点击次数:1981
来源:   作者:
 

38610部队89分队(125000) 才 滢 38611部队96分队(125000) 李 莉

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

关键词 串行通信   测控   软件开发


    随着Windows98的推出,越来越多的微机用户已习惯于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

    完成后的界面如图1所示

图1 用户界面

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下与仪器进行串口通信程序是非常简单的。


欢迎进入老古论坛进行讨论
[另类其他] 相关文章:
常见化学电池的分类表
简介:
常用设备 常用电池 一次/二次电池 酸性/碱性/有机类 常见尺寸 汽车用启动电源 铅酸电池 二次电池 酸性 方型 普通摄像机电池 铅酸电池 二次电池 酸性 方型 火车启动电源、电动车 镍镉/镍氢电池 二次电池 碱性 方性、圆柱型 ......

英特尔明年将公布一系列芯片 单双内核均有
VisualBasic 6编程中的汉字处理
嵌入式Linux研究和支持应用工程师 麦克泰
 
下一个:[新闻热点]盘子太大 南亚科技称不会接手英飞凌内存业务
简介:
  据国外媒体报道,有关中国台湾内存大厂南亚科技将接手德国英飞凌内存业务的传闻由来已久。11月18日(周五),南亚科技出面表态说,没有兴趣买下英飞凌DRAM业务,也没有考虑在其剥离出的内存实体中投资。   南亚科技副总裁Pei-Lin Pai表示:“我们从未讨论过接手英飞凌内存业务,这个盘子太大。” 他同时表示,即使英飞凌届时将内存业务剥离上市,南亚科技也不会考虑向其投资。   11月17日,英飞凌宣布将剥离旗下的内存业务,并有可能将它......

上一个:[仪器仪表]共模抑制和仪表放大器

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:266毫秒