【三菱Qシリーズ】データ交換(XCH)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】データ交換(XCH)命令の指令方法とラダープログラム例

「交換」命令とは、三菱電機製シーケンサQシリーズにおける指定した2ヶのデバイス値を交換するラダープログラム命令です。

交換命令を用いることにより、指定した2ヶのデバイス値を交換することができます。(そのままですが…)

この記事では、三菱電機製シーケンサQシリーズにおける交換命令の指令方法とラダープログラム例について解説します。

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。
注意
同じ三菱電機製シーケンサFXシリーズでは「交換」命令はFX3U/FX3UCのみ指令することが出来ます。

1. 交換命令の指令方法

交換命令には、4種類の指令方法があります。

  • XCH:16ビット連続実行形
  • XCHP:16ビットパルス実行形
  • DXCH:32ビット連続実行形
  • DXCHP:32ビットパルス実行形

XCHは、交換(Exchange)からきています。

メモ
連続実行形は、入力条件がONしている間、毎スキャン実行される命令です。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。

XCH:16ビット連続実行形(基本の形)

16ビット連続実行形の交換命令は”XCH”と指令します。

こちらがXCH命令を使用したラダープログラム例です。

10_XCH命令

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1の値を交換するものです。

XCH命令は「連続実行形」であるため、良くも悪くもX0がONしている間、D0とD1の値は毎スキャン交換し続けます。

X0がONし続けるとD0は以下のようになります。事前にD0には1000を格納してあります。

10_ラダープログラムモニタ

デバイスデータを1度だけ交換させたい場合、後述するパルス実行形の命令を使用するか、もしくは入力条件を1スキャンパルスにする等の施策が必要です。

メモ
GX Works2では、回路上で XCH D0 D1 と入力してEnterキーを押すと、上の命令文が挿入されます。

XCHP:16ビットパルス実行形

16ビットパルス実行形の交換命令は”XCHP”と指令します。

こちらがXCHP命令を使用したラダープログラム例です。

11_XCHP命令

連続実行形(XCH命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0した瞬間にD0とD1の値を交換します。

DXCH・DXCHP:32ビット実行形

32ビット連続実行形の交換命令は”DXCH”と指令します。

32ビットパルス実行形の交換命令は”DXCHP”と指令します。

こちらがDXCH・DXCHP命令のラダープログラム例です。

12_DXCH命令
13_DXCHP命令

32ビット実行形の場合、2ワード(32ビット)長のデータを交換するものです。

上のラダープログラムでは、データレジスタD0,D1の2ワード長の値をD2,D3と交換します。

2. 【例題①】1ワード長のデータレジスタ値を交換する

下記仕様のデータレジスタ値を交換するラダープログラム例について解説します。

仕様
スイッチ(X0)を押したとき、データレジスタD0とD1の値を交換する。
※各データレジスタは1ワード長として扱う。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題①_GOT

使用していないデバイスが多々ありますがご了承ください。

スイッチ(X0)が押されると、その時のデータレジスタD0とD1の値を交換します。

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

前述で解説した16ビットパルス実行形をそのまま使用しています。

スイッチ(X0)を押したとき、データレジスタD0とD1の値を交換するためXCHP命令を使用しています。

仮に16ビット連続実行形であるXCH命令を用いると、スイッチ(X0)を押している間に毎スキャン符号が反転し続けてしまいます。

3. 【例題②】2ワード長のデータレジスタ値を交換する

下記仕様のデータレジスタ値を交換するラダープログラム例について解説します。

仕様
スイッチ(X0)を押したとき、データレジスタD0,D1とD2,D3の値を交換する。
スイッチ(X1)を押したとき、データレジスタD0,D1に定数”0″を格納する。
※各データレジスタは2ワード長として扱う。

交換命令とは別に「転送命令」を使用します。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題②_GOT

スイッチ(X0)を押すと、データレジスタD0,D1とD2,D3の値を交換します。

スイッチ(X1)を押したとき、データレジスタD0,D1に定数”0″を格納します。

ラダープログラム

ラダープログラムは以下のようになります。

例題②_ラダープログラム

データレジスタは2ワード長として扱うため、32ビットパルス実行形であるDXCHP命令を使用します。例題①と同じ理由で連続実行形ではなくパルス実行形を使用しています。

X1を入力条件とする転送命令を用いて、定数”0”を転送します。こちらも32ビット実行形であるDMOV命令を使用しています。

転送命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例

4. おわりに

交換命令について解説しました。

正直、私はあまり使う機会が思いつきません…

以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。

本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。

シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。

ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です