PCを替えると複数(5ポート)のRS-232C通信が出来なくなりました。
諦めてVB2005で作りなおそうとも考えてますが
その前に他に何かないかと思い、
もしこれはどうなの?ってことがあれば教えて頂ければと思います
状況
通信対象は重量測定機5台です。
データはバイナリで送られてきます。
現環境では10年間運用し問題なくデータ取得出来ています。
新環境に同じアプリ(厳密にはDB接続文字列、COMポート№は変更)を
インストールしました。
1つ1つのポートの動作確認は実施しています
ですがさっきまでCOM2では取得できていたが、
再起動後は取得できないなど正常な通信が出来ていないようです。
更に調査するとバイナリデータを正常に取得できていないことがわかりました。
ただしテストアプリを作りテストをすると正常なデータを取得できます。
RS-232Cの設定(ソースで設定)は同じです。
現環境
Windows2000SP4 Pentium3 800MHzくらい メモリ512MB MSEDE2000 自作
新環境
WindowsXPSP3 32bit 適当に選んだDELLのPC CPU約3GHz メモリ4GB SQLserver2008 Express
共通事項 RS-232C増設カード contec COM-4 PCI
どのようなプログラムを組まれているか不明ですが、
きちんと組まれている(※)プログラムであれば問題ないはずですが・・
※10年間運用して問題なし!というプログラムでも
環境を変えると動かなくなるものは「きちんと」とは言いません。
たまたまそのPCでは動いていた、ということですね。
で、私もPCを取り替えたら制御が上手くいかなくなったことがあります。
その時は新旧PCとも WindowsXP でしたが、メーカーや性能が異なっていました。
その時の現象は
旧PC・・・データ要求コマンドを送信後、直ぐにレスポンスあり
新PC・・・データ要求コマンドを送信後、1秒弱経過するとレスポンスあり
でした。きちんとプログラムは組まれていなかったですね(反省)
1つ1つのポートの動作確認がOKであれば、
プログラム側の問題かと思いますが・・・
コードを提示していただかないとアドバイスのしようがないですね。
> 再起動後は取得できないなど正常な通信が出来ていないようです。
再起動したとき、ポート自体が認識しなくなるということでは
無いですよね?
> たまたまそのPCでは動いていた、ということですね。
そのとおりだと思います。
>再起動したとき、ポート自体が認識しなくなるということでは無いですよね?
アプリの再起動のことでして、デバイスのは正常認識です。
ソースは手元にはないですが、
フォームロード時にMScommのポート設定及びオープン
oncommイベントでデータ受信(16進データ※)しasciiコードに変換後、DBに登録
※バイナリは誤り
と簡単な作りだと思います。
ちなみにですが
① テキストボックスのデータをRS-232C送信
② RS-232Cで受信したデータをテキストボックスに表示
③ ②のソースを問題のアプリに追加
①-② 正常にデータを送信、受信出来ていることをテキストボックスで確認
①-③ 送信した瞬間に「なぜか」両方のテキストボックスの文字列が変わった
①-③のテストでお手上げ状態になっていました。
なんなのでしょうね(笑)
すいません。間違えてたので修正します。
もし答えてくれる方がいた場合に不正確な情報を伝えたことになりますので。
①〜③を下記に変えてください。
これらは1台のPC上で送受信しています。
① RS-232Cで受信したデータをwinsockで送信 (テキストボックスに受信データを表示)
② winsockで受信したデータをテキストボックスに表示
③ ②のソースを問題のアプリに追加