咨詢電話
ENGLISH0755-88840386發(fā)布時間:2021-06-28 14:35:46 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
在VB6.0中?通過添加ActiveX控件?用戶可以借助其操作系統(tǒng)應(yīng)用程序來擴展VisualBasic6.0的功能。在應(yīng)用程序的窗體中?可以含其他應(yīng)用程 序的數(shù)據(jù)?如聲音數(shù)據(jù)?串口數(shù)據(jù)等。用戶可以使用創(chuàng)建這些數(shù)據(jù)的應(yīng)用程序?以編程方式控制含有串口數(shù)據(jù)的應(yīng)用程序。在VB6.0應(yīng)用程序中可以有很多方法來使用OLE和ActiveX技術(shù)。
1硬件與軟件支撐
計算機上的RS-232其9針腳2?3?5定義如下:
2RXD 接收(Receive)
3TXD 傳送(Transmit)
5GND 地線(Ground)
計算機上的RS-232與稱重儀RS-232串行通信端口連線示意圖如下:
軟件:操作系統(tǒng)為Windows98?應(yīng)用軟件為VB6.0。
2 向窗體中添加MSComm 控件
(1)從主菜單中選擇“工程”?從工程中選擇“部件”;
(2)隨后在打開的對話框中?打勾選擇“ MicrosoftComm Control6.0”;
(3)單擊確定后?即可在工具箱中見到“電話機”圖標(biāo)
3主要屬性
Comport:設(shè)置或返回通信連接端口代號。Settings:設(shè)置初始化參數(shù)?以字符串形式設(shè)置或返回連接速度、校驗碼、數(shù)據(jù)位、停止位等4個參數(shù)。其格式為“BBBB、P、D、S”?其中BBBB為連線速度?P為字符校檢方式?D為數(shù)據(jù)位數(shù)?S為停止位數(shù)。如“960、N、7、1”?即端口以每秒960Bit的速度傳輸?每次數(shù)據(jù)是7個Bit。而停止位為1個Bit。
Portopen:設(shè)置或返回通信連接端口的狀態(tài)。
使用前必須將要使用的串行端口打開;使用完畢后?也必須執(zhí)行關(guān)閉操作。
Input:從輸入寄存器返回并刪除字符。程序靠其將對方所傳至輸入寄存器的數(shù)據(jù)讀進(jìn)程序中?并清除寄存器中已被讀取的數(shù)據(jù)。
Output:將欲傳送的數(shù)據(jù)字寫入輸出寄存器。當(dāng)程序需要傳輸字符串到對方時?可將字符串使用此屬性寫入輸出寄存器中。
Inputlen:指定由串行端口讀入的字符串長度或字節(jié)個數(shù)。
Inbuffercount:返回串行端口輸入緩沖區(qū)中的字符個數(shù)。
4實現(xiàn)過程
首先建立一窗體?向窗體中添加通信控件如2)?接著添加1個文本框Text1?再添加2個命令鈕?一個為接收命令鈕?另一個為退出命令鈕。
(2)對其主要控件屬性設(shè)置如下:MSComm1.CommPort=2MSComm1.Settings=“120.E.7.2”應(yīng)與稱重儀設(shè)置一致
(3)各控件代碼如下:
接收:
buf=””buf=Trim(MSComm1.Input)IfLen(buf)=0Then
Text1.Text=””&&Text1為接收文本框Else
Text1.Text=bufEndIf
退出:
MSComm1.PortOpen=False.End
(4)也可實現(xiàn)自動接收
向表單添加定時器控件?并將其屬性interval設(shè)置為10
對其事件編程如下:
IfMSComm1.InbufferCount>0ThenText1.Text=Text1.Text+MSComm.InputEndIf
5結(jié)束語
實際工作環(huán)境可以是實時接收信息來自于稱重儀等相關(guān)儀器設(shè)備?可根據(jù)這些儀器設(shè)備的說明書查其輸出數(shù)據(jù)的格式?然后對相關(guān)屬性進(jìn)行適當(dāng)設(shè)置?再在接收數(shù)據(jù)程序段中通過函數(shù)對數(shù)據(jù)進(jìn)行適當(dāng)處理后?即可交給其它實用程序段使用。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除