私流 ラダープログラム入門編


ラダープログラムはどんな書き方をしても、 結果的に装置が動けば良いけれど、なるべくミスが無く、 効率良く、解り易い方が良いでしょう。

私の経験から、こうした方が良いと思うプログラムの基本方法を紹介します。
あくまでも私流です。

1.例題提起
エアーシリンダを使ったプレス装置です。
スイッチを押すと起動してプレス作業をします。
プレス作業は、下降点をセンサーで監視していて、数秒待って上昇する。
非常停止スイッチを押すと、即上昇する。

2.I/Oの取り決め
入力
プレス起動スイッチ X00
非常停止スイッチ  X01
プレス上端センサー X02
プレス下端センサー X03

出力
シリンダ下降ソレノイド Y01

装置仕様
センサーはノーマルオープン。
非常停止スイッチはノーマルクローズで、押されると、メカ的にロックされて、 解除するまで戻らないタイプとする。
起動スイッチは押している間だけオン。離すとオフ。
ソレノイドは単動、出力中のみシリンダが下降するようにエアーが供給される。

3.ラダー作成
今回は、非常停止スイッチはエラーの解除にも使うようにする。
負理論では通常考えにくいので、B接点でA接点に変換する。
スイッチ入力はチャタリングを考慮して一定時間入力でオンするようにする。
I X00
I--------][--------------------------------------------[TIM 10 0.1S]
I TIM 10 I10
I--------][--------------------------------------------○
I                          プレス起動SW 
I X01
I--------]/[-------------------------------------------[TIM 11 0.1S]
I TIM 11 I11
I--------][--------------------------------------------○
I I      非常停止SW
I I
I I ----------------------[DIFD I201 ]
I エラーリセット

I X02
I--------][--------------------------------------------[TIM 12 0.1S]
I TIM 12 I12
I--------][--------------------------------------------○
I プレス上端
I X03
I--------][--------------------------------------------[TIM 13 0.1S]
I TIM 13 I13
I--------][--------------------------------------------○
I プレス下端

タイマーを入れるのは、ノイズ等による誤動作も考慮する場合で、 チャタリングを嫌うだけなら、立ち上がりの微分で受けても良い。
また、ラッチのみで使用する場合はダイレクトで使っても良い。
いずれにしても内部リレーで受けておけばつぶしが利く。

起動条件はこの場合は定位置であることだが、 念を入れて電磁弁が作動していないことも入れておこう。

I I12 Y01 I100
I--------][---------]/[-------------------------------○
I プレス上端 電磁弁 起動可

手動は無いので、自動のシーケンスを作る。

I I10 I100 I200 I150 I101
I---][-----][---------]/[----------]/[--------------------------○
I 起動SW 起動可 I 非常停止中 運転終了 I 運転中
I I101 I I
I---][-----------I I--------[DIFU I102]
                            運転開始P

起動スイッチが押され、かつ起動条件が満足されていると、 I101で自己保持され、立ち上がりの微分信号が出る。
I101が保持されている限り、スイッチが押されても、 起動パルスは出ない、自己保持を切る条件として、 作業終了と、非常停止を用意しておく。

順次シーケンスを作る。
起動パルスでシリンダが加工し、下端のセンサー入力で下降完パルスが出る。
パルスを受けて自己保持し、完了信号で、自己保持を切る、結果的に完了パルスが出る。
運転中のリレーを自己保持の条件にしているので、運転中でないとこの回路は働かない。

I I102 I101 I104 I103
I---][----------------][-------]/[--------------------------○
I 起動P I 運転中 シリンダ下降完 I シリンダ下降中
I I103 I I I13 I104
I---][-----------I I----][------------○
 シリンダ下降中              プレス下端 シリンダ下降完

下降完パルスで待機に入り、タイマ−アップで待機完。

I I104 I101 I106 I105
I---][----------------][-------]/[--------------------------○
I シリンダ下降完I 運転中   待機完 I  待機中 
I I105 I I
I---][-----------I I---------------[TIM 20 2S]
待機中 I        待機時間
I TIM 20 I106
I----][------------○
                      待機時間   待機完

待機が済んだら。シリンダ上昇し、上端センサーで、上昇完。

I I106 I101 I108 I107
I---][----------------][-------]/[--------------------------○
I 待機完 I 運転中 シリンダ上昇完 I シリンダ上昇中 
I I107 I I I12 I108
I---][-----------I I----][------------○
シリンダ上昇中              プレス上端 シリンダ上昇完

I I108 I150
I--------][--------------------------------------------------○
I シリンダ上昇完 運転終了

運転中の自己保持を切って、シーケンスは終わる。

これだけでは、アクチュエーターは動かないので。出力を作る

I I103 I101 I107 Y01
I---][----------------][-----------------]/[-----------------○
I シリンダ下降中I 運転中 シリンダ上昇中 電磁弁 
I Y01 I
I---][-----------I
電磁弁 

あるいは

I I102 I101 I106 Y01
I---][----------------][-----------------]/[-----------------○
I 起動P I 運転中 待機完 電磁弁 
I Y01 I
I---][-----------I
電磁弁 

いずれにしても、下がれのリレーで自己保持し、上がれのりレーで切れば良い。

エラーの処理
装置のステータスから異常な状態を列挙し、タイマーで監視する。

I Y01 I13
I--------][---------------]/[-----------------------------[TIM 14 5S]
I 電磁弁 プレス下端 I 内部エラー
I Y01 I12 I
I--------]/[---------------]/[-----------I
I 電磁弁 プレス上端 I
I I12 I13 I
I---------][---------------][------------I
I プレス上端 プレス下端 I
I I12 I13 I
I---------]/[--------------]/[-----------I
プレス上端 プレス下端

異常状態を自己保持でラッチし、リセットで切るようにする。

I TIM 14 I201 I202
I---][------------------------------------]/[-----------------○
I 内部エラー I エラーリセット 内部エラー
  I I202 I
I---][-----------I
内部エラー
 
スイッチ入力と合わせて非常停止中とする

I I202 I200
I---][--------------------------------------------------------○
I 内部エラー I 非常停止中
I I11 I
I---][-----------I
非常停止SW 

これで完成。

補足として
一般的なシーケンサーは、頭から最後までを数msから数十msで監視・演算する。
これを1スキャンと呼び、入力はリアルタイムで読み、 出力はスキャン後に一度に処理される。
DIFUなどの微分リレーは、命令があるところから、1スキャンの間だけオンする。
通常はラダーを書く順序というのは意識しなくて良いが、 カウンターなどがアップしたリレーを受けたり、 カウンターリセットするタイミングは、 書かれる順番(処理される順番)で左右される。
巨視的には同時に処理されるが、微視的には必ず順序が存在する。

たとえば、この回路では、 I108が成立した直後の1スキャンの間、I107, I108は、両方オンする。

I I106 I101 I108 I107
I---][----------------][-------]/[--------------------------○
I 待機完 I 運転中 シリンダ上昇完 I シリンダ上昇中 
I I107 I I I12 I108
I---][-----------I I----][------------○
シリンダ上昇中 プレス上端 シリンダ上昇完

しかし、こう書く順番を変えると、
I108が成立した直後にI107はオフする。
I107 I12 I108
I--------][----------------][--------------------------------○
I  シリンダ上昇中   プレス上端  シリンダ上昇完
I
I I106 I101 I108 I107
I---][----------------][-------]/[--------------------------○
I 待機完 I 運転中 シリンダ上昇完 シリンダ上昇中 
I I107 I
I---][-----------I
 シリンダ上昇中 
             
内部リレーの使われ方で違いが生ずる場合もある。


この項完。


戻る