VBを使い測定器のデータをPCへ取り込む方法
VBをPCとRS232で接続した測定器から、測定データを出力したいと考えています。
まずフォームで、計測器と通信するための「通信開始ボタン」をつくり、
テキストBOXに測定データを受信するものを作成しました。
しかし、これを起動して測定器と接続すると、測定データは受信できるのですが
1個データを受信したら「フレームエラー」と言うエラーが出て、途中で止まってしまい
ます。
このエラーを解決する方法はないでしょうか。
みなさん教えてください。
御願いします。
<作成した構文>
Private Sub tushin_Click()
'通信開始ボタンのClickイベント
Serial.PortOpen = Not Serial.PortOpen '交互の制御
If Serial.PortOpen = True Then
cmdOpen.Caption = "通信停止" '表示の切り替え
Else
cmdOpen.Caption = "通信開始"
End If
End Sub
Private Sub Form_Load()
' MSCommコントロールの初期設定
Serial.CommPort = 2 '通信ポートNo2指定
Serial.Settings = "9600,n,8,1" '通信条件設定
Serial.Handshaking = comNone 'フロー制御無し
Serial.RTSEnable = False 'RTS制御無し
Serial.RThreshold = 1 '1バイト受信毎にOnCommイベント発生
Serial.SThreshold = 1 '送信バッファ空でOnCommイベント発生
End Sub
Private Sub Serial_OnComm()
'変数宣言
Dim Buffer As Variant '受信バッファの宣言
'CommEventプロパティに対する処理
Select Case Serial.CommEvent 'イベントの区分
Case comEvCD '何もしない
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive '受信データを表示
Buffer = Serial.Input
txtInputData.Text = txtInputData.Text & Buffer
Case comEvSend
Case comEvEOF
'以下エラーダイアログ表示のみ
Case comEventBreak
MsgBox "中断信号受信", vbExclamation, "通信エラー"
Case comEventFrame
MsgBox "フレームエラー", vbExclamation, "通信エラー"
Case comEventOverrun
MsgBox "オーバーランエラー", vbExclamation, "通信エラー"
Case comEventRxOver
MsgBox "受信バッファオーバー", vbExclamation, "通信エラー"
Case comEventRxParity
MsgBox "受信パリティエラー", vbExclamation, "通信エラー"
Case comEventTxFull
MsgBox "送信バッファフル", vbExclamation, "通信エラー"
Case comEventDCB
MsgBox "DCB取得エラー", vbExclamation, "通信エラー"
Case Else
MsgBox "未定義エラー発生", vbExclamation, "通信エラー"
End Select
End Sub
<計測器の情報>
使用コード:JIS 8ビットコード
データの印字及び改行:CR LF
ポートレート:9600bps
パリティー:奇数
ストップビット:2ビット
データ長:8ビット