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