- - PR -
USBのRS232通信
1
投票結果総投票数:13 | |||
---|---|---|---|
Windows | 2票 | 15.38% | |
RS232 | 8票 | 61.54% | |
COMException | 3票 | 23.08% | |
|
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-23 20:09
I-O DATAのUSBタイプのRS232変換器USB-RSAQ2を使ってRS232の通信をしています。
このとき、不用意にUSBハブを使ってつなぎ直すと、COMの番号が勝手に変更され、 その番号にMSCommのポート番号を割り振直しても「COMException」がスローされ、 HRESULTが0x800A1F42のエラーが返されます。 これを回避する方法はありませんでしょうか? また、0x800A1F42のエラーの意味は何でしょうか? ちなみに、USB-RSAQ2のデバイスドライバを入れなおしてもダメでした。 |
|
投稿日時: 2005-03-23 22:15
USB機器の場合、異なるポートに接続された場合は同一機種でも別のハードウェアとして扱われます。これは別にCOMポートに限った話ではありません。また別のハードウェアとして認識してくれなくては、同一のハードウェアを複数つなぐことが出来なくなります。
MSCommのポート番号を割り当てなおしても・・・と言うことですがどの様な手順で行っているのでしょうか? COMExceptionのMessageプロパティにもエラー内容は入っていないですか? |
|
投稿日時: 2005-03-24 08:27
甕星さん、ご返信ありがとうございました。
>USB機器の場合、異なるポートに接続された場合は同一機種でも別のハードウェアと >して扱われます。これは別にCOMポートに限った話ではありません。また別のハード >ウェアとして認識してくれなくては、同一のハードウェアを複数つなぐことが出来 >なくなります。 COMを使った通信ソフトを作るとわかるのですが、COM番号が変更されるとその部分の ソフトを作り直すか、パラメータ化して変更できるようにする必要があります。 今回、6台のCOMをつないでいるので、USBとは言え配線が面倒で、デバック環境と運用 環境が異なるため、今動いていても現場で動かない危険性があり不安があります。 したがって、COMが変更されても再割り当てできればよいのですが、COM番号も256までしか振れないため、どんどん使えないCOMが出来てしまい、問題となります。 >MSCommのポート番号を割り当てなおしても・・・と言うことですがどの様な手順 >で行っているのでしょうか? ドライバで未使用のCOMに変更ができます。ただし、一旦設定されてしまったCOMは接続する機器が無くてもドライバかレジストリがそのCOMを咥えていて開放してくれません。 >COMExceptionのMessageプロパティにもエラー内容は入っていないですか 出てくるコメントはHRESULTが0x800A1F42だけで、調べましたがわかりませんでした。 たぶん、使用中のCOMに設定しようとしたと言うことではないかと推測しています。 |
|
投稿日時: 2005-03-24 13:23
>このとき、不用意にUSBハブを使ってつなぎ直すと、COMの番号が勝手に変更され、
この辺りの詳しい手順と、運用環境について書かれていると、解決策を 提案しやすくなるのですが、どうでしょうか? もっとも、運用環境でも、USBタイプのRS232変換器を使用しているなら、 解決は非常に難しいのですが(COMの番号が、変わる方が普通です) |
|
投稿日時: 2005-03-24 14:46
今日は
昔、MSComm、USBハブ、USB-RSAQ2を使って複数ポートのアプリケーションを作ったことがあります。 はっきりは覚えていませんが、ハブ経由で複数ポートを再接続するとポート番号が変わったかも知れません。 これは、空いている資源を順番に割り当てる為仕方がないと思います。 現在、USB変換を1個しかない為これで、ハブ無しで確認するとポートは変わりません。 昔の対応は、ア゜リケーション側で通信を試し、自分のポートをサーチさせる機能を実装しました。 現在はMSCommは使っていませんのでエラーは分かりません。 |
|
投稿日時: 2005-03-24 15:05
Lichtensteinさん、rvmxさん、回答ありがとうございました。
メーカにも問い合わせましたが、当たり障りのない回答しかもらえませんでした。 USBでCOMをコントロールするにはデバッグ環境をそのまま現場に持ち込まなくては だめのようです。 せめて、レジストリの修正方法がわかればたすかるのですが・・・・ USBの仕様とは言え、使いづらいですね。 .NET2005でシリアルコントロールが追加されるらしいので、こちらに期待してみます。 |
1