• ベストアンサー

プログラマブルコントローラについて

PLCはC-200Hを使用しています。現在ターンテーブルという時計のように針が回転する装置でエレベータのシミュレーションをしています。押しボタンスイッチA(10000)を押すと針が回転しAの位置に止まりランプA(11000)が点灯し表示器は0001を表示する。押しボタンスイッチB(10004)を押すと針が回転しBの位置に止まりランプB(11004)が点灯し表示器は0002を表示する。押しボタンスイッチC(10008)を押すと針が回転しCの位置に止まりランプC(11008)が点灯し表示器は0003を表示する。押しボタンスイッチD(10012)を押すと針が回転しDの位置に止まりランプD(11012)が点灯し表示器は0004を表示する。針は止まっている位置により時計または反時計方向に回転するがDからAには回転しない。A,B,C,Dはそれぞれ時計12,3,6,9の位置にあり、それぞれの位置に感知センサが付いています。比較(CMP)を使って回転方向を制御しようとしたのですがどちらにもはりは振れませんでした。表示は転送(MOV)を用いてできました。どのようにラダー図を組めば針が止まっている位置により回転方向を制御できるのか教えて頂けないでしょうか、シーケンスについての本を読んでも分からず困っています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LCR707
  • ベストアンサー率70% (95/135)
回答No.3

 エレベータの現在位置をどのように表すかが異なると、プログラムもまるで違ってくるので、1つの例として見て下さい。  LSA,LSB,LSC,LSD をエレベータの位置検出リミットスイッチの信号名とします。同様に  RYA・・・RYD をエレベータの位置記憶リレー  PLA・・・PLD をエレベータの位置表示ランプ  PBA・・・PBD を呼び出しスイッチ  CALLA・・・CALLD をその保持リレー  FWD,REV はモータの正転、逆転指令とします。FWDのとき、A→B→C→D の向きに動きます。 ラダー図を描くのは非常に面倒なので、リスト形式で書きたいのですが、それも長くなるので、論理式形式で表現します。 論理和は+、論理積は*、反転は信号の前に/を付けることで表します。演算子の優先順位は、/>*>+です。 RYA = LSA + RYA RYB = (LSB + RYB) * RYA * /LSA RYC = (LSC + RYC) * RYB * /LSB RYD = (LSD + RYD) * RYC * /LSC PLA = RYA * /RYB PLB = RYB * /RYC PLC = RYC * /RYD PLD = RYD CALLA = (PBA + CALLA) * /PLA CALLB = (PBB + CALLB) * /PLB CALLC = (PBC + CALLC) * /PLC CALLD = (PBD + CALLD) * /PLD FWD = CALLB * /RYB + CALLC * /RYC + CALLD * /RYD REV = /RYA + CALLA * RYB + CALLB * RYC + CALLC * RYD RYA・・・RYDとエレベータ位置の対応は下記のようになります。 位置 A B C D RYA 1 1 1 1 RYB 0 1 1 1 RYC 0 0 1 1 RYD 0 0 0 1 RYAは常に1になっていますが、電源を入れたときは0なので、このときLSAを検出するまでREV方向に回転し、状態を初期化するようにしています。 PBA・・・PBDは同時に複数押しても一応動作しますが、押し方によってはFWD,REVが両方同時に1になるので、装置に合わせて適切にインターロックを入れて下さい。どちらかを優先させれば良いでしょう。 なお、蛇足かも知れませんが、論理式形式からリストへの変換は、以下のようになります。例えば RYB = (LSB + RYB) * RYA * /LSA の場合、 LD LSB OR RYB AND RYA AND NOT LSA OUT RYB です。信号名はPLCに従って番号に置き換えて下さい。 リストとラダー図の変換は、ツールのボタン1つで行えると思うので、省略します。

destinatio
質問者

お礼

返事が遅くなりましてすみません。大変丁寧にお答え頂きましてありがとうございました。参考にさせていただき実際に動作確認もできました。何度やってもうまくいかず苦しんでいましたので助かりました。本当にありがとうございました。

その他の回答 (2)

  • GTAC
  • ベストアンサー率69% (316/454)
回答No.2

センサがあるが、センサを通過した場合など(検知していない状態)を考慮する必要がある。 基本的に2階にいてAを押せば1階に下がるという動作は条件回路(AND,OR)で組むことが出来る。 「2階にいる=センサ検知」はスタート条件であり、一旦スタートしたらそれ以降見る必要がない。1階に到着=センサ検知で停止するようにする。 SetReset(自己保持)回路を使って階と階とのあいだの動きをさせ、非定常状態(階と階のあいだなど)を判断するとよい。 実際の回路は I-----II--II---------I I 10000 10004    I I-----II-------------I---/II/-----O---I   1nnn          11000  1nnn (1nnnは下降指令、OはコイルIIはA接点、/II/はB接点を示す)

destinatio
質問者

お礼

ラダー図を書いて頂きありがとうございます。センサ検知についてよく分かりました。

回答No.1

C-200Hはさっぱりわかりませんが、(^^; 停止位置を一度数値(表示器に表示する値1~4)に直し、その大小判別により回転方向を制御してやればイイんじゃないですかね? 三菱のPLCであればもう少し詳しくお教えできたのですが(^^;

destinatio
質問者

お礼

確かに大小判別により回転方向を制御できそうです。やはりオムロンと三菱ではかなり違うのでしょうか?

関連するQ&A