アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
現在Pc対Plcの通信にシリアルケーブルを使用したプログラムを作成しております。
以前このカテゴリでUSBを使用した通信制御の方法を拝見したのですが、Pc側はUSBのTYPE-Aで、Plc(相手側)がD-Sub9ピン仕様のシリアルケーブルを使用しても、通信は可能かご存知の方はいらっしゃいますでしょうか?また、そのときのデバイスへの処理などは、Commコントロールを使用するのか、それともロジックで行うのか、またこの手法の短所などご存知でしたら教えてください。
開発環境:WindowsXPProfessional
    :VisualBasic6.0
実行環境:WindowsXPHome

A 回答 (4件)

三菱の通信実績もあります。


でも三菱のPLCって通信遅いんですよね。
FX・FX3でしかやってませんが、CPUがメインと通信が兼用なので
プログラム負荷に影響されて通信がメチャメチャ遅くなるので
三菱PLCは嫌いです。

で、三菱だけじゃないですが
PLC側の問題として通信バッファーがいっぱいになると
通信が止まる現象があります。

ですから、弊社では特殊なプロトコルを作って回避してます。
(うちのSEが経験上見つけた方法です)

で本題に戻ると
参照されているUSBを汎用的なシリアルデバイスとしてハンドリングする
ドライバーのようですが、使える可能性がありますが
仕事には使いたくないところです。
フリーのドライバーを使うと責任の範疇があいまいになるので。

USBなんか使わなくても「PCIシリアル増設」使うほうが安心ですよ。
最近弊社でもUSBはやめて、PCI増設に変えてます。
http://www.iodata.jp/prod/mobile/serial/2004/rsa …
http://www3.contec.co.jp/B2B/ConIWCatProductPage …

距離が遠い場合はイーサ経由の仮想COMが可能な物使ったり。
http://www3.contec.co.jp/B2B/ConIWCatProductPage …

通信関係ではここがなかなかいいもの出してます
http://www.moxa-jp.com/
    • good
    • 0
この回答へのお礼

Pesukoさん、いつもご回答ありがとうございます。
仰るとおり、業務上の不具合対応を考えるとフリーのドライバはアフターメンテで痛い目に遭いそうですね・・・
やはり当面はシリアルイメージでの通信を継続するしかないようですね・・・
Contecのサイトはよく閲覧していて、Comボードも実は実装経験があります。イーサ経由の仮想Comは面白そうで、予算に余裕があれば試してみたいですね。
MOXAのサイトもご紹介くださってありがとうございました。
いろいろアドバイス頂き、本当に感謝致します。

お礼日時:2006/03/08 13:21

>実は以前組んだプログラムで、オープンしているにも関わらずCommコントロールからデータの授受が全くできなくなる現象を経験してから



弊社でもVisualBasic6.0+XPでIOデータのUSB-RSA**を使ってPLCと
Commコントロール通信をするシステムを5台ぐらい作りましたが
数年たった現在でも問題発生は聞いてません。

>データの授受が全くできなくなる現象
別の要因ではないですか?

PLC側の問題がたまにあります。
プログラムの作り方でフリーズしたようになります。
    • good
    • 0
この回答へのお礼

Pesukoさん、またのご回答ありがとうございます。
PLC開発実績があるんですか~。私も普段PLCのロジック転送でUSB-RSAを使用してますが、PCとの通信実績がなかったので、機会があればやってみたいと思います。通常はPC-PLC間通信はオンボードのCOMポートを使用していたので、その差分もあるかもしれません。
ちなみにですが、
使用PLC:三菱電機製Q00CPU
プロトコル:MELSECコミュニケーションプロトコル
です。
無手順の方がいいのでしょうか・・・

お礼日時:2006/03/07 20:42

>デバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたらいいなと思っているのですが



ということはデバイスドライバーを自作するということと同じですよね。
シリアルのハンドラ部分を作らずに自作のネイティブなハンドラを作るということで
できないことは無いでしょうけど、ドライバー作るだけのスキルが無いと無理なことと、VBではかなり難しいように思います。

この回答への補足

他のスレッドで提示されていた参考サイトです。
http://www.picfun.com/usb07.html
宜しくお願いします。

補足日時:2006/03/02 09:51
    • good
    • 0
この回答へのお礼

Pesukoさん、再度ご回答ありがとうございます。
正確に言うと、他の方が作成された汎用USBドライバなるものを使用してAPIを介してコーディングするようなのです。確かVisualBasicカテゴリで過去スレに回答された方だったと思うのですが、その方の提示された参考サイトを補足でお伝えします。もしお時間がありましたら、ご覧いただけますでしょうか?
恐らく既製品のUSBシリアルケーブルは、PnPでデバイスドライバは自動的にインストールされてしまうと思われますが、インストール済みドライバを無効にした状態で、汎用USBドライバをインストールして動作させられるか、などの実績がないかなぁと思っております。若干質問の主旨から外れていないか心配ですが、解決できれば幸いです。

お礼日時:2006/03/02 09:51

>Pc側はUSBのTYPE-Aで、Plc(相手側)がD-Sub9ピン仕様のシリアルケーブル



USBシリアル変換ケーブルのことだと思いますが、
この場合ドライバーがUSBではなく仮想シリアルポートとして
割り当てますから、プログラムからは通常のシリアルとして操作します。
留意点はCOMポートアサインが何かの拍子(異常終了等)で変わることがあり
そのときにはドライバーのCOMナンバーを手動で変更しないといけないことがあります。

この回答への補足

余談になりますが、
実は以前組んだプログラムで、オープンしているにも関わらずCommコントロールからデータの授受が全くできなくなる現象を経験してから、USB通信に非常に興味を持っております。但し相手方のインタフェースはD-Subしかないので、このような変換ケーブルを使用することを予想しております。
メーカー配布のデバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたら、Commコントロールを使用せずに冒頭のトラブルも起きないと考えています。

補足日時:2006/03/01 17:27
    • good
    • 0
この回答へのお礼

Pesukoさん、ご回答ありがとうございます。
仰られるとおり、変換ケーブルになります。別の業務でI-O DATA製の変換を使用したことがあるのですが、この時は仮想ComポートとしてPnP認識してて、VisualBasic的にはComポートの制御になりました。
ちょっと質問内容に言葉が足りなかったのですが、メーカー配布のデバイスドライバを使用せずに、純粋なUSBデバイスとしてシリアル通信を行えたらいいなと思っているのですが、可能かどうかご存知でしょうか・・・?

お礼日時:2006/03/01 17:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!