- 締切済み
シーケンサーでのバイナリ通信
- シーケンサーでRS232Cを使ってバイナリデーターの送受信を無手順で行いたいのですが、いままでアスキーでしか経験がありません
- 相手側がバイナリしか受け付けませんし、バイナリで00HFFHまで送ってきます、データー長は固定長ですがいずれにしてもまずシーケンサがバイナリでの無手順通信をやれるのかどうかが分かりません
- どなたか経験の有る方、特定の機種とかオプションでやれるという情報をお持ちではないでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
>>今回子局側を作ります、いずれ親局側も作らねばなりませんが えー!?両方作るんですかぁ?? 前の返信の >>今回20mAカレントの1:Nです が気になっていたのですが いまどき20mAカレント通信で1200bpsとはまた 私はこの業界で20年近く携わっておりますが、20mAカレント通信は 文献でしか見たことがありません (現物はおろかメーカーカタログでさえ見たことがありません) 失礼ながらこの博物館級のインターフェースを使わなければならない理由を 教えていただけますか やはり昔のプラントのオーバーホールを検討されて見えるのでしょうか それとも、他に何かこうしなければならない理由が有りますか? また、現在主流になりつつある所謂オープンネットワーク デバイスネットやフィールドバス、CC-LINKとかいったのは 使えないのでしょうか? 以前にこんなことがありました 約200台ある機械がネットワークで結ばれているが 旧式のネットワークでこれを新型に代えたいと ところが中には専用マイコンユニットでプログラムがROMに書かれていて 変更できない機械があったり、機械メーカーが無くなってしまっていたり で数十台は更新不可能だと そこでこの数十台に旧式ネットワークと新ネットワークを接続するI/F を作ったことがあります 同様な事を検討されて見えるのでしょうか? それでしたら子局だけで良いと思うのですが...
>今回20mAカレントの1:Nです、しかも全2重で先頭2バイトを >受信したところで子局が応答を始めるというシーケンサではかなり難 >しい制御を必要としています 全2重とは4線式でしょうか?まさか2線式で全2重通信をしようなどと 企てているわけではないでしょう(2線式では不可能です) もしそうであればそれほど難しく考える必要はありません 文脈から想像するとPLCはホスト局なのでしょうか? ホスト局であれば、例え子局が早く応答しすぎたとしても 子局からのデータはちゃんと受信してくれます(PLCが全2重通信対応型であれば) 前回の私の回答したPLC通信ユニットは全2重に対応してます ただ、子局への次のコマンドがPLCのスキャンタイム以上には早く出来ないだけです PLCが子局の場合こんなに早くPLCは応答してくれません たぶんホスト局が通信電文を全文出力し終わってしばらくしてからPLCが応答するでしょう (大抵の固定長の場合長くてもせいぜい10から20バイト程度) 前回の私の回答を補足します 昔のPLCでは通信バッファに溜まっているデータを強制的に読み出す機能がありませんでした (例えば固定長10バイトの時3バイト受信して止まってしまったら、3バイト読めれば良い訳です) と、言うのも1バイト読み込みをしなければならなかったのは、全てこの機能がなかったからに ほかなりません なんと通信バッファに溜まっているデータにアクセスするにはPLCをリセットしなければならなかった これは、何らかのデータが入っているのにも関わらずデータを消去すると言うことです つまりエラーコードは絶対に読み出せなかったのです メーカーに問い合わせてもまともな回答もなく(マニュアルを棒読みするだけ) 現在市販されているPLCには全部この機能があった..かな? このあたりのところはomronのプロトコルマクロでは有効に使えました
お礼
やはりそうですか、今回子局側を作ります、いずれ親局側も作らねばなりませんがキャラクタフォーマットはスタート1、データー7、パリティ偶数、ストップ1で合計10bit1200bpsですので10バイトで83msecとなります、親局の監視タイマーは1局1秒ですのでタイムオーバーになる心配は無いのですが、機械の応答速度が少々遅くなってしまいそうです、全2重に関しましてはモデムは使いませんので送信、受信は単独の線となっており、可能です。重ねがさね貴重なノウハウを公開して頂きまして御礼の申し様もありません有難う御座いました。
バイナリ通信は各社のシーケンサで出来ます 三菱電機 A1SJ71C24 オムロン C200HW-COM02 富士電機 NV1L-RS2 どこのメーカでも無手順モードでは原則的にバイナリモードです エッー?!と思われる方も見えるでしょうが少なくともこの3種では バイナリモードです バイナリとアスキーの違いはPLC自体は何ら認識しておりません 例えば"A"を受信したとするとデータレジスタに取り込まれるデータは 41hです, 送信も同様に"A"とはデータレジスタに書き込めません 0041hと書き込みます NULLコード00hやCRコード0Dhも同様です アスキー通信とはCRLFコード0D0Ahをターミネータとするか どうかの違いでしか有りません 00hからFFhまで送受信できます ただターミネータが無いので固定長データとしなければなりません 但し,この固定長が曲者で多くの場合受信するデータは必ず同バイト とは限らない事です 例えば,01020304h の4バイトが通常データとします これがエラー信号だと[NAC]の1バイトしか来ないときが有ります PLCは残りの3バイトをまじめに何時までも待ちつづけます したがって通信タイムアウト処理をラダーで作る必要があります ここの所をomronではプロトコルマクロ機能で自動処理できます melsecでも新しいバージョンでは同様の機能があります PLCでのアスキー通信とはCRLFが来るまで受信し続けるモードです バイナリ固定長モードとは4バイトなら4バイトまで受信するモードです 昔,上記のエラーコードを回避するのにえらく手間取ったことがありました その時の対処法は何と,固定長モード1バイト固定で1バイトづつ 読み込むと言う裏ワザで全てラダーを作り直しました RS232Cで1対1通信であれば問題は無いのですが RS4852線式マルチドロップバイナリ通信だとこんなハメになるかも 頑張って下さい
お礼
豊富なご経験から貴重なノウハウをお話頂きまして心より御礼申し上げます、実は今回20mAカレントの1:Nです、しかも全2重で先頭2バイトを受信したところで子局が応答を始めるというシーケンサではかなり難しい制御を必要としています、お話から1バイト読み込みしかないと分かりました大変有り難いお話でした。
私は、キーエンスのシーケンサーを使って送受信しています。 オプションのRS232Cユニットは必要です。 また、各社から出ているシーケンサーに於いて 小型のものではテキストデータしか送受信できないものが 多いようです。(と言うより聞いたことがありません) ちなみに、キーエンスの型式では 1.シーケンサー :KV-700 RS232ユニット:KV-L20 2.シーケンサー :KZ-A500 RS232ユニット:KZ-L10 3・シーケンサー :KZー350 RS232ユニット:LZ-L2 等あります。 型式の違いは、命令がオムロンや三菱に近いもの または、仕様(機能)によります。 マニュアルも分かりやすく、質問も気軽にできます。 なお、ソフトや転送ケーブルなどは別途必要です。 (交渉次第ですが・・・・) 弊社での見積りは、即日入荷のほぼ定価の半値です。 ちなみに、キーエンスのアドレス入れておきます。 キーエンスの内容でかまわないのでしたらメールにて 対応できますよ
- 参考URL:
- http://www.keyence.co.jp/
お礼
貴重な情報誠に有難う御座います、早速調べさせていただきます。
シーケンサからバイナリで 強制的に送ることは可能ですよ。シーケンサーのよるかもしれませんが。
お礼
早速のご回答有難う御座います、メーカーに自信を持って質問できます、メーカー機種など分かりましたら教えて頂けないでしょうか。
お礼
さすが鋭いご指摘おっしゃる通りなのです、システムをそっくり更新するのであれば問題ないのですが、お客様の要望は1部であることが多く、ほとんどは予算が問題です、特殊なプロトコルで大量に出回っておりまして、今考えられる一番安価な方法としてお客様の負担を軽減できるのではと採用を検討しています。I/Fを挿入する方法はすでに実施し標準化しております。当サイトは関連企業の方も大勢見ていらっしぃますので誠に恐縮ではございますが企業機密上ご相談はこれで打ち切らせて頂きたいと思います、稚拙な相談に熱心にお答え頂きましたこと厚く御礼申し上げます。