用VB6實現儀器串口通信及檢測功能

admin @ 2014-03-17 , reply:0

隨著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下與儀器進行串口通信程序是非常簡單的。



[admin via 研發互助社區 ] 用VB6實現儀器串口通信及檢測功能已經有1691次圍觀

http://cocdig.com/docs/show-post-24404.html