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

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

三菱電機製シーケンサQシリーズにおける「転送」命令とは、デバイスの値や定数値を他のデバイスに転送(コピー)するラダープログラム命令です。

ラダープログラムでデータレジスタやファイルレジスタといったワードデバイスを使用する場合、頻繁に使用する重要なラダープログラム命令になります。

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

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。

三菱電機製シーケンサQシリーズにおいて、転送命令は以下のCPUで使用することが可能です。

Basic:ベーシックモデルQCPU
High performance:ハイパフォーマンスモデルQCPU
Process:プロセスCPU
Redundant:二重化CPU
Universal:ユニバーサルモデルQCPU
LCPU:LCPU

※MELSEC-Lシリーズも含まれていますがご了承ください。

三菱電機製シーケンサFXシリーズにおける転送命令は以下のページで解説しております。※Qシリーズと同様の使い勝手で指令できるため、類似した記事になります。

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

1. 転送命令の指令方法

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

MOV:16ビット連続実行形
MOVP:16ビットパルス実行形
DMOV:32ビット連続実行形
DMOVP:32ビットパルス実行形

MOVは、動かす・移す(Move)の略です。

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

転送命令には、一括転送や多点転送・否定転送など色々なバリエーションが存在しますが、この記事では基本的な転送命令のみ解説します。

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

16ビット連続実行形の転送命令は”MOV”と指令します。

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

10_MOV命令

このラダープログラムは、X0がONするとデータレジスタD0に定数”5”が転送され、X1がONするとD0に定数”0”が転送されます。

↓ラダープログラムを実行している様子です。

10_MOV命令解説1

このラダープログラムは、D0に対して転送(MOV)命令を2ヶ使用しています。このように転送命令は同じデバイスに何度でも使用することが可能です。

ただし、転送命令の入力条件が同時にONした場合「後に指令(ラダープログラム下側)した方が優先」されます。

10_MOV命令解説1
メモ
「K5」とは10進数の定数5を表します。(因みに16進数の定数はHと表記します。)


先ほどのラダープログラムはGX Works2の回路上で MOV K5 D0 と入力してEnterキーを押すと命令が挿入されます。 (小文字でもOKです。)

10_命令挿入

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

16ビットパルス実行形の転送命令は”MOVP”と指令します。

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

11_MOVP命令

連続実行形(MOV命令)との違いは「入力条件がONした瞬間のみ転送命令が実行される」ことです。

X0とX1が両方ONした場合、後に入力された方が優先されます。

メモ
入力条件がOFF→ONしたときに転送命令を1スキャンだけ実行します。

DMOV・DMOVP:32ビット実行形

32ビット連続実行形の転送命令は”DMOV”と指令します。

32ビットパルス実行形の転送命令は”DMOVP”と指令します。

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

12_DMOV命令
13_DMOVP命令

32ビット実行形の場合、各デバイスは指定されたデバイスを下位とする2ワードとして扱われます。

各デバイスの値が大きく、16ビットではオーバフローする場合に32ビット実行形を使用します。

注意
上のラダープログラム例では、D1を上位として使用されるため、他の用途で使用できなくなります。
メモ
データレジスタ1点(16ビット)では、-32,768~32,767の数値を扱うことができます。
データレジスタ2点(32ビット)では、-2,147,483,648~2,147,483,647の数値を扱うことができます。

2.【例題①】1ワード長のデバイス値を転送する

下記仕様のラダープログラムを転送命令を用いて解説します。

仕様
スイッチ(X0)を押すと、データレジスタD0に定数5を転送する。
スイッチ(X1)を押すと、データレジスタD0に定数0を転送する。
スイッチ(X0)と(X1)が両方ONした場合、後にONした方を優先する。
スイッチ(X2)を押すと、データレジスタD0の値をD2に転送する。
データレジスタはずべて1ワード長として扱う。

データレジスタは1ワード長として扱うため、16ビット実行形を使用します。

GOTの動作イメージ

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

例題①_GOT

スイッチ(X0)を押すとデータレジスタD0に定数5を転送して、スイッチ(X1)を押すとD0に定数0を転送します。

スイッチ(X0)と(X1)が押された場合、後に押された方を優先します。

スイッチ(X2)を押すと、その時のデータレジスタD0の値をD2に転送します。

ラダープログラム

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

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

X0とX1を入力条件とする16ビットパルス実行形のMOVP命令を使用して、D0に定数を転送します。

この部分を16ビット連続実行形であるMOV命令にすると、X0とX1の両方がONしたとき、ラダープログラム下側にある定数0の転送が優先されてしまいます。

パルス実行形は入力条件がOFF→ONになった瞬間の1スキャンだけ実行されるため、後から押されたスイッチの処理が優先されます。

例題①_ラダープログラム解説1

3.【例題②】2ワード長のデバイス値を転送する

下記仕様のラダープログラムを転送命令を用いて解説します。

仕様
スイッチ(X0)を押すと、データレジスタD0に定数100,000を転送する。
データレジスタはD0を下位とする2ワード(32ビット)として扱う。

データレジスタを2ワード長として扱うため、32ビット実行形の転送命令を使用します。

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)を押すと、データレジスタD0に定数100,000を転送します。(厳密にはD0を下位とするD0,D1)

ラダープログラム

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

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

データレジスタ1点(16ビット)では、-32,768~32,767の数値を扱うことができます。今回の例題は100,000なので、1点では足りません。

データレジスタ2点(32ビット)では、-2,147,483,648~2,147,483,647の数値を扱うことができるため100,000でも問題なく転送することができます。

データレジスタを2点(32ビット)として扱うために、32ビット実行形であるDMOV命令を使用します。

4. おわりに

三菱電機製シーケンサQシリーズにおける転送命令について解説しました。

転送命令はラダープログラムで使用する頻度は高くなる場合が多いため、使いこなせるようになって頂ければと思います。

以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。

ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。

各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。

ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。

doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。

「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。

コメントを残す

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