■ シリアルで転送されたデータを読み取るには?
アカツキ
2008/02/05(火) 15:55:42 <初心者> 
はじめまして。アカツキです。
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"の値がいろいろ変わって
テストしましたが、エラーが解決できませんでした。
どなたかいいアイディアがあれば、教えていただくようにお願いします。
アカツキ
2008/02/05(火) 16:04:22
[[解決]]
追記:
RS-232Cポートがあるパソコンに、データが問題なく取りましたが、
新しいパソコンに変わって、データが取れなくなりました。
USBシリアル変換アダプターのデバイスが一応問題なくインストールしました。
アカツキ
2008/02/05(火) 16:07:37
すみません。解決 チェックボックスを間違えてチェックしました。それを削除してください。まだ 解決していません。お願いします。
我龍院
2008/02/05(火) 17:18:06
>MSComm1.Settings = "19200,E,8,1"
この「E」は正しいですか?
普通はノンパリが多いんだけど。
アカツキ
2008/02/05(火) 17:40:13
我龍院さん、ご返答ありがとうございます。
それは、Eとか、Nとか、Oとか、変換しても、問題が解決されませんでした。
また、テスト途中、新しいエラーメッセージが出てきました。
comEventFrame 1004 フレーム エラーです。ハードウェアによってフレーム エラーが検出されました。
これは、具体的に、どんな意味でしょうか。よろしくお願いします。
我龍院
2008/02/05(火) 18:55:00
>それは、Eとか、Nとか、Oとか、変換しても、問題が解決されませんでした。
そんな乱暴な(笑)、パリティは相手の機器と合わせてください。
ケーブルが長すぎるなんて事はないよね。
コネクタが半分抜けかかってるとか、フレーム エラーってのはそういう
レベルの話です。
両方の機器の設定が合っていて、フレームエラーが出るのでしたら、
ハードウェアーの問題でしょ。
アカツキ
2008/02/06(水) 14:31:56 <初心者> 
我龍院さん、ご返答ありがとうございます。
以前のマシンで、MSComm1.Settings = "19200,E,8,1" で、問題なくデータを読み取りました。
今回はパソコンだけ変わったなので、その設定で、問題なくデータを取れると思いました。
>両方の機器の設定が合っていて。。。
パソコンの設定だったら、どこで設定したらいいのでしょうか。
MODE COMx で設定することでしょうか。
一度 MODE COMx コマンドで試したが、問題が解決されませんでした。
ご返答をまたよろしくお願いします。
毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!
