はじめまして。アカツキです。
vb6で、シリアル(RS-232C)から伝送されたデータを処理するのPGを作っています。
しかし、利用しているパソンコンはRS-232Cのポートがないため、RS-232CからUSBシリアル変換アダプター(USB-RSAQ5)を利用することになりました。
データを取れるかどうかを確認するため、以下のPGを作りました。
Private Sub Form_Load()
MSComm1.CommPort = 4 'RS-232Cポート番号
MSComm1.Settings = "19200,E,8,1"
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeText
MSComm1.InBufferCount = 0
End Sub
Private Sub Command2_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
If MSComm1.InBufferCount > 10 Then
Instring = MSComm1.Input
List1.AddItem Instring
End If
End Sub
実行したら、いつも
実行時エラー:8020
通信デバイスの読み取り時にエラーが発生しました。
のエラーメッセージが表示しました。
debugすると、
Instring = MSComm1.Input
のとき、エラーが発生
MSComm1.Settings = "19200,E,8,1"の値がいろいろ変わって
テストしましたが、エラーが解決できませんでした。
どなたかいいアイディアがあれば、教えていただくようにお願いします。
追記:
RS-232Cポートがあるパソコンに、データが問題なく取りましたが、
新しいパソコンに変わって、データが取れなくなりました。
USBシリアル変換アダプターのデバイスが一応問題なくインストールしました。
すみません。解決 チェックボックスを間違えてチェックしました。それを削除してください。まだ 解決していません。お願いします。
編集 削除>MSComm1.Settings = "19200,E,8,1"
この「E」は正しいですか?
普通はノンパリが多いんだけど。
我龍院さん、ご返答ありがとうございます。
それは、Eとか、Nとか、Oとか、変換しても、問題が解決されませんでした。
また、テスト途中、新しいエラーメッセージが出てきました。
comEventFrame 1004 フレーム エラーです。ハードウェアによってフレーム エラーが検出されました。
これは、具体的に、どんな意味でしょうか。よろしくお願いします。
>それは、Eとか、Nとか、Oとか、変換しても、問題が解決されませんでした。
そんな乱暴な(笑)、パリティは相手の機器と合わせてください。
ケーブルが長すぎるなんて事はないよね。
コネクタが半分抜けかかってるとか、フレーム エラーってのはそういう
レベルの話です。
両方の機器の設定が合っていて、フレームエラーが出るのでしたら、
ハードウェアーの問題でしょ。
我龍院さん、ご返答ありがとうございます。
以前のマシンで、MSComm1.Settings = "19200,E,8,1" で、問題なくデータを読み取りました。
今回はパソコンだけ変わったなので、その設定で、問題なくデータを取れると思いました。
>両方の機器の設定が合っていて。。。
パソコンの設定だったら、どこで設定したらいいのでしょうか。
MODE COMx で設定することでしょうか。
一度 MODE COMx コマンドで試したが、問題が解決されませんでした。
ご返答をまたよろしくお願いします。
私の場合も、VB6で作った、プログラムが、
通信で、RS232C VB6 8020エラー
PCの、RS232Cの、ドライバーを、アップデート前の、
やつに、かえたら、解消しました、
ご参考までに