- ベストアンサー
USBシリアルケーブル仕様の通信について
- USBシリアルケーブルの通信制御方法とは?
- USBのTYPE-AとD-Sub9ピン仕様のシリアルケーブルを使用した通信は可能か?
- 開発環境と実行環境はWindowsXP
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
三菱の通信実績もあります。 でも三菱のPLCって通信遅いんですよね。 FX・FX3でしかやってませんが、CPUがメインと通信が兼用なので プログラム負荷に影響されて通信がメチャメチャ遅くなるので 三菱PLCは嫌いです。 で、三菱だけじゃないですが PLC側の問題として通信バッファーがいっぱいになると 通信が止まる現象があります。 ですから、弊社では特殊なプロトコルを作って回避してます。 (うちのSEが経験上見つけた方法です) で本題に戻ると 参照されているUSBを汎用的なシリアルデバイスとしてハンドリングする ドライバーのようですが、使える可能性がありますが 仕事には使いたくないところです。 フリーのドライバーを使うと責任の範疇があいまいになるので。 USBなんか使わなくても「PCIシリアル増設」使うほうが安心ですよ。 最近弊社でもUSBはやめて、PCI増設に変えてます。 http://www.iodata.jp/prod/mobile/serial/2004/rsa-pcil/index.htm http://www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&Section_Id=6&Product_Id=431&Catalog_Id=6&Selected_CatalogMaster_Id=10&showcase=t 距離が遠い場合はイーサ経由の仮想COMが可能な物使ったり。 http://www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&Section_Id=6&Product_Id=1527&Catalog_Id=6&Selected_CatalogMaster_Id=10&showcase=t 通信関係ではここがなかなかいいもの出してます http://www.moxa-jp.com/
その他の回答 (3)
- Pesuko
- ベストアンサー率30% (2017/6702)
>実は以前組んだプログラムで、オープンしているにも関わらずCommコントロールからデータの授受が全くできなくなる現象を経験してから 弊社でもVisualBasic6.0+XPでIOデータのUSB-RSA**を使ってPLCと Commコントロール通信をするシステムを5台ぐらい作りましたが 数年たった現在でも問題発生は聞いてません。 >データの授受が全くできなくなる現象 別の要因ではないですか? PLC側の問題がたまにあります。 プログラムの作り方でフリーズしたようになります。
お礼
Pesukoさん、またのご回答ありがとうございます。 PLC開発実績があるんですか~。私も普段PLCのロジック転送でUSB-RSAを使用してますが、PCとの通信実績がなかったので、機会があればやってみたいと思います。通常はPC-PLC間通信はオンボードのCOMポートを使用していたので、その差分もあるかもしれません。 ちなみにですが、 使用PLC:三菱電機製Q00CPU プロトコル:MELSECコミュニケーションプロトコル です。 無手順の方がいいのでしょうか・・・
- Pesuko
- ベストアンサー率30% (2017/6702)
>デバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたらいいなと思っているのですが ということはデバイスドライバーを自作するということと同じですよね。 シリアルのハンドラ部分を作らずに自作のネイティブなハンドラを作るということで できないことは無いでしょうけど、ドライバー作るだけのスキルが無いと無理なことと、VBではかなり難しいように思います。
お礼
Pesukoさん、再度ご回答ありがとうございます。 正確に言うと、他の方が作成された汎用USBドライバなるものを使用してAPIを介してコーディングするようなのです。確かVisualBasicカテゴリで過去スレに回答された方だったと思うのですが、その方の提示された参考サイトを補足でお伝えします。もしお時間がありましたら、ご覧いただけますでしょうか? 恐らく既製品のUSBシリアルケーブルは、PnPでデバイスドライバは自動的にインストールされてしまうと思われますが、インストール済みドライバを無効にした状態で、汎用USBドライバをインストールして動作させられるか、などの実績がないかなぁと思っております。若干質問の主旨から外れていないか心配ですが、解決できれば幸いです。
補足
他のスレッドで提示されていた参考サイトです。 http://www.picfun.com/usb07.html 宜しくお願いします。
- Pesuko
- ベストアンサー率30% (2017/6702)
>Pc側はUSBのTYPE-Aで、Plc(相手側)がD-Sub9ピン仕様のシリアルケーブル USBシリアル変換ケーブルのことだと思いますが、 この場合ドライバーがUSBではなく仮想シリアルポートとして 割り当てますから、プログラムからは通常のシリアルとして操作します。 留意点はCOMポートアサインが何かの拍子(異常終了等)で変わることがあり そのときにはドライバーのCOMナンバーを手動で変更しないといけないことがあります。
お礼
Pesukoさん、ご回答ありがとうございます。 仰られるとおり、変換ケーブルになります。別の業務でI-O DATA製の変換を使用したことがあるのですが、この時は仮想ComポートとしてPnP認識してて、VisualBasic的にはComポートの制御になりました。 ちょっと質問内容に言葉が足りなかったのですが、メーカー配布のデバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたらいいなと思っているのですが、可能かどうかご存知でしょうか・・・?
補足
余談になりますが、 実は以前組んだプログラムで、オープンしているにも関わらずCommコントロールからデータの授受が全くできなくなる現象を経験してから、USB通信に非常に興味を持っております。但し相手方のインタフェースはD-Subしかないので、このような変換ケーブルを使用することを予想しております。 メーカー配布のデバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたら、Commコントロールを使用せずに冒頭のトラブルも起きないと考えています。
お礼
Pesukoさん、いつもご回答ありがとうございます。 仰るとおり、業務上の不具合対応を考えるとフリーのドライバはアフターメンテで痛い目に遭いそうですね・・・ やはり当面はシリアルイメージでの通信を継続するしかないようですね・・・ Contecのサイトはよく閲覧していて、Comボードも実は実装経験があります。イーサ経由の仮想Comは面白そうで、予算に余裕があれば試してみたいですね。 MOXAのサイトもご紹介くださってありがとうございました。 いろいろアドバイス頂き、本当に感謝致します。