「条件ジャンプ」命令とは、三菱電機製シーケンサFXシリーズにおける命令で指定したポインタ(P)までジャンプさせ、その間のラダープログラムを実行しないようにするラダープログラム命令です。
条件ジャンプ命令を用いることにより『不要なラダープログラムを飛ばしてスキャンタイムを短縮させる』ことや『一連の工程を一時停止』させることができます。
条件ジャンプ命令は別名”コンディショナルジャンプ命令”とも呼ばれています。
この記事では、三菱電機製シーケンサFXシリーズにおける条件ジャンプ命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、条件ジャンプ命令は以下のシーケンサ・バージョンで使用することが可能です。
FX3S | :Ver1.00以降 |
FX3G | :Ver1.00以降 |
FX3GC | :Ver1.40以降 |
FX3U | :Ver2.20以降 |
FX3UC | :Ver1.00以降 |
目次
1. 条件ジャンプ命令の指令方法
条件ジャンプ命令には、2種類の指令方法があります。
CJ | :連続実行形 |
CJP | :パルス実行形 |
CJは、コンディショナルジャンプ(Conditional jump)の略です。
パルス実行形は、入力条件がOFF→ONしたときの1スキャンのみ実行される命令です。
CJ:連続実行形(基本の形)
連続実行形の条件ジャンプ命令は”CJ”と指令します。
こちらがCJ命令を使用したラダープログラム例です。
このラダープログラムは、CJ命令の入力条件であるX0がONしている間、ポインタP50にラダープログラムがジャンプします。
X0がONしている間、つまりCJ命令によりP50にジャンプしている間は、CJ命令から指定されたポインタに挟まれたラダープログラムは実行されない状態になります。
↑のラダープログラムでは、X0がONしている間にX1がONしてもY1はONしません。
CJ命令で指定されたポインタの右側にあるラダープログラムはジャンプ先であるため、CJ命令の状態に関わらず必ず実行されます。↑のラダープログラムではX2の部分です。
↑のラダープログラムをまとめると「X1がON中はY1がONする。X2がON中はY2がONする。ただしX0がON中はY1の状態は変化しない。」動作となります。
大きな注意点として、Y1がONしている状態でX0がONすると、X1がOFFしてもY1はOFFしません。(新たに”0”が書き込まれないため)
先ほどのラダープログラムはGX Works2の回路上で CJ P50 と入力してEnterキーを押すと命令が挿入されます。(小文字でもOKです。)
ジャンプ先のポインタは母線の左側にカーソルを合わせてポインタのアドレスを入力します。
CJP:パルス実行形
パルス実行形の条件ジャンプ命令は”CJP”と指令します。
こちらがCJP命令を使用したラダープログラム例です。
連続実行形(CJ命令)との違いは、入力条件である入力リレーX0がOFF→ONになった瞬間に1スキャンだけP50にジャンプします。次スキャン以降はX0していてもジャンプされません。
条件ジャンプ命令の注意点
ポインタはサブルーチンコール(CALL)命令等でも使用する場合がありますが、ポインタ番号は重複して使用できません。重複した場合は文法エラーとなります。
2.【例題①】条件ジャンプによる無効化
下記仕様のラダープログラムを条件ジャンプ命令を用いて解説します。
スイッチ(X2)を押すとランプ(Y0)は消灯する。
スイッチ(X0)を押している間、スイッチ(X1)または(X2)が押されてもランプ(Y0)の状態は変わらない。
まず『X1でON』『X2でOFF』するY0の自己保持回路を作ります。X0がONしている間はこの自己保持回路をジャンプして実行しないように無効化します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X1)を押すとランプ(Y0)が点灯し、スイッチ(X2)を押すと消灯します
スイッチ(X0)を押している間、スイッチ(X1)または(X2)が押されてもランプ(Y0)の状態は変わりません。
ラダープログラム
ラダープログラムは以下のようになります。
ONする条件がX1、OFFする条件がX2のY0の自己保持回路を作ります。その自己保持回路をCJ命令とラベルP50で囲います。CJ命令の入力条件であるX0がONするとCJ命令が実行されP50にジャンプします。
X0がON中はY0の自己保持回路がジャンプされ実行しないため、X1がONしてもY0はONしません。同様にX2がONしてもY0はOFFしません。
3.【例題②】条件ジャンプによる一連動作の一時停止
下記仕様のラダープログラムを条件ジャンプ命令を用いて解説します。
①スイッチ(X0)を押すとランプ(Y0)が点灯し続ける。(自己保持)
②スイッチ(X1)を押すとランプ(Y1)が点灯し続ける。(自己保持)
②スイッチ(X2)を押すとランプ(Y2)が点灯し続ける。(自己保持)
④スイッチ(X3)を押すとランプ(Y0)~(Y2)は消灯する。
この一連動作は①から順々に実行するもので、例えば①の状態でスイッチ(X3)を押してもランプは消灯せず無効となる。
セレクタスイッチ(X10)がONしている間、この一連動作は”一時停止中”としてどのスイッチが押されてもランプの状態は変わらない。
【例題①】と比べると複雑な仕様となっています。まずはX10を考えずに一連動作を作成した後に、ラダープログラム全体を『X10を入力条件とするCJ命令』で囲います。
一連動作は①~④の順でなければスイッチを押されても無効化されます。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。今回は2ヶに分けて解説します。
【セレクタスイッチ(X10)がOFFのとき】
以下①~④の一連動作を行います。
①スイッチ(X0)を押すとランプ(Y0)が点灯し続ける。(自己保持)
②スイッチ(X1)を押すとランプ(Y1)が点灯し続ける。(自己保持)
③スイッチ(X2)を押すとランプ(Y2)が点灯し続ける。(自己保持)
④スイッチ(X3)を押すとランプ(Y0)~(Y2)は消灯する。
この一連動作は①から順々に実行するものです。順番通りでないスイッチが押されても処理は無効となります。
【セレクタスイッチ(x10)をON/OFFする】
セレクタスイッチ(X10)がONすると(右側になると)、一連動作は一時停止中となりその状態をキープします。
ラダープログラム
ラダープログラムは以下のようになります。
一連動作の組み方は作成した方の個性が出るので、↑の形が必ずしもベストな回路とは限りません。
今回は出力リレーをa接点で自己保持回路の保持する条件にしています。
一時停止させる部分をCJ命令とジャンプ先のポインタで囲うことにより『入力条件が入っても処理を無効として状態をキープする』動作になります。
4. おわりに
三菱電機製シーケンサFXシリーズにおける条件ジャンプ命令について解説しました。
似た動作で、マスタコントロール命令という命令がありますが、これは命令を実行すると一斉にON/OFFを制御する命令です。便利な反面、OFFさせたくない出力コイルもOFFしてしまう欠点があります。(OUT命令でコイルをONさせている場合)
条件ジャンプ命令は、コイルのON/OFF状態は維持されるので【例題②】のように一連動作を一時停止させる用途に効果的です。
マスタコントロール命令については別記事で紹介していますので、宜しければご覧ください。
【三菱FXシリーズ】マスタコントロール(MC・MCR)命令の指令方法とラダープログラム例以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。