現有電子秤一臺,使用串口與計算機進行通訊。編寫VB程序來訪問串口,達到讀取電子秤上顯示的數據。該電子秤為BE01型儀表,輸出為RS-232C標準接口,波特率為300-9600、偶校驗、7個數據位、2個停止位。所有字符均發送11位ASCII碼,一個起始位。在VB中與串口通訊需要引入控件MSComm串口通訊控件(在Microsoft Comm Control 6.0中)。具體程序如下:控件簡稱:MSC
Dim Out(12) As Byte '接收var中的值 Dim var As Variant '接收MSC.input中的數值 Dim nRece As Integer '計算MSC.inputbuffer的個數 Dim i As Integer, j As Integer '隨即變量,計算循環
Private Sub ClearText() Text3.Text = "" Text2.Text = "5" Text1.Text = "" End Sub
Private Sub Command1_Click() ClearText ' nRece = 0 '計數器清零 With MSC .InputMode = comInputModeBinary '設置數據接收模式為二進制形式 .InBufferCount = 0 '清除接收緩沖區 If Not .PortOpen Then .PortOpen = True '打開通信端口 End If End With End Sub
Private Sub MSC_OnComm() DelayTime ‘用來延續時間 ClearText With MSC Select Case .CommEvent '判定通信事件 Case comEvReceive: '收到Rthreshold個字節產生的接收事件 SwichVar 1 If Out(1) = 2 Then '判定是否為數據的開始標志 .RThreshold = 0 '關閉OnComm事件接收 End If Do DoEvents Loop Until .InBufferCount >= 3 '循環等待接收緩沖區>=3個字節 ' nRece = nRece + 1 For i = 2 To 12 SwichVar i Text1.Text = Text1.Text & Chr(Out(i)) Next Text1.Text = LTrim(Text1.Text) Text2.Text = Text2.Text & CStr(nRece) .RThreshold = 1 '打開MSComm事件接收 Case Else ' .PortOpen = False End Select End With