交換命令を用いることにより、指定した2ヶのデバイス値を交換することができます。(そのままですが…)
この記事では、三菱電機製シーケンサQシリーズにおける交換命令の指令方法とラダープログラム例について解説します。
目次
1. 交換命令の指令方法
交換命令には、4種類の指令方法があります。
- XCH:16ビット連続実行形
- XCHP:16ビットパルス実行形
- DXCH:32ビット連続実行形
- DXCHP:32ビットパルス実行形
XCHは、交換(Exchange)からきています。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
XCH:16ビット連続実行形(基本の形)
16ビット連続実行形の交換命令は”XCH”と指令します。
こちらがXCH命令を使用したラダープログラム例です。
このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1の値を交換するものです。
XCH命令は「連続実行形」であるため、良くも悪くもX0がONしている間、D0とD1の値は毎スキャン交換し続けます。X0がONし続けるとD0は以下のようになります。事前にD0には1000を格納してあります。
デバイスデータを1度だけ交換させたい場合、後述するパルス実行形の命令を使用するか、もしくは入力条件を1スキャンパルスにする等の施策が必要です。
XCHP:16ビットパルス実行形
16ビットパルス実行形の交換命令は”XCHP”と指令します。
こちらがXCHP命令を使用したラダープログラム例です。
連続実行形(XCH命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0した瞬間にD0とD1の値を交換します。
DXCH・DXCHP:32ビット実行形
32ビット連続実行形の交換命令は”DXCH”と指令します。
32ビットパルス実行形の交換命令は”DXCHP”と指令します。
こちらがDXCH・DXCHP命令のラダープログラム例です。
32ビット実行形の場合、2ワード(32ビット)長のデータを交換するものです。
上のラダープログラムでは、データレジスタD0,D1の2ワード長の値をD2,D3と交換します。
2. 【例題①】1ワード長のデータレジスタ値を交換する
下記仕様のデータレジスタ値を交換するラダープログラム例について解説します。
※各データレジスタは1ワード長として扱う。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
使用していないデバイスが多々ありますがご了承ください。
スイッチ(X0)が押されると、その時のデータレジスタD0とD1の値を交換します。
ラダープログラム
ラダープログラムは以下のようになります。
前述で解説した16ビットパルス実行形をそのまま使用しています。
スイッチ(X0)を押したとき、データレジスタD0とD1の値を交換するためXCHP命令を使用しています。
仮に16ビット連続実行形であるXCH命令を用いると、スイッチ(X0)を押している間に毎スキャン符号が反転し続けてしまいます。
3. 【例題②】2ワード長のデータレジスタ値を交換する
下記仕様のデータレジスタ値を交換するラダープログラム例について解説します。
スイッチ(X1)を押したとき、データレジスタD0,D1に定数”0″を格納する。
※各データレジスタは2ワード長として扱う。
交換命令とは別に「転送命令」を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すと、データレジスタD0,D1とD2,D3の値を交換します。
スイッチ(X1)を押したとき、データレジスタD0,D1に定数”0″を格納します。
ラダープログラム
ラダープログラムは以下のようになります。
データレジスタは2ワード長として扱うため、32ビットパルス実行形であるDXCHP命令を使用します。例題①と同じ理由で連続実行形ではなくパルス実行形を使用しています。
X1を入力条件とする転送命令を用いて、定数”0”を転送します。こちらも32ビット実行形であるDMOV命令を使用しています。
転送命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例4. おわりに
交換命令について解説しました。
正直、私はあまり使う機会が思いつきません…
以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。
本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。
シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。
ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。