【三菱Qシリーズ】合計値算出(WSUM)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】合計値算出(WSUM)命令の指令方法とラダープログラム例

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

合計値算出命令を用いることにより、連続した複数のデバイスの合計値を命令1ヶで求めることができます。

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

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

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

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

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

1. 合計値算出命令の指令方法

合計値算出命令には、4種類の指令方法があります。

WSUM:16ビット連続実行形
WSUMP:16ビットパルス実行形
DWSUM:32ビット連続実行形
DWSUMP:32ビットパルス実行形

WSUMは、Word sumの略です。

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

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

16ビット連続実行形の合計値算出命令は”WSUM”と指令します。

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

10_WSUM命令

このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0~D3(4ワード)の合計値をD10・D11に格納します。

10_命令解説

例えば↑のラダープログラムで、D0~D3に10~40の数値が格納された状態でX0をONすると、D10・D11には合計値である100が格納されます。

10_デバイスモニタ

16ビット実行形の合計値算出命令の演算先は32ビット(2ワード)を占有します。

↑のラダープログラムではD11が合計値の上位ワードとして扱われているため、合計値の大小に関わらず他の用途では使用できなくなります。

一度合計値が格納されたデバイス(↑のD10・D11)は、入力条件がOFFしても新たに数値を書き込まなければ合計値が保持されます。


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

10_命令挿入

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

16ビットパルス実行形の合計値算出命令は”WSUMP”と指令します。

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

11_WSUMP命令

連続実行形(WSUMP命令)との違いは、入力条件である入力リレーX0がOFF→ONになった瞬間に1回だけ合計値を求めることです。

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

DWSUM・DWSUMP:32ビット実行形

32ビット連続実行形の合計値算出命令は”DWSUM”と指令します。

32ビットパルス実行形の合計値算出命令は”DWSUMP”と指令します。

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

12_DWSUM命令
13_DWSUMP命令

32ビット実行形の場合、合計値を求めるデバイスは2ワード(32ビット)長として扱われ、合計値の演算先は4ワード(64ビット)長として扱われます。

↑のラダープログラムは、D0~D7(2ワード×4の8ワード)のデバイスの合計値をD10~D13の4ワードに格納します。

2.【例題①】常時デバイス値の合計値を求める

下記仕様のラダープログラムを合計値算出命令を用いて解説します。

仕様
データレジスタD0~D9の合計値をD10・D11に常時格納する。

合計値算出命令を用いて、データレジスタD0~D9の合計値を命令1ヶで算出します。

GOTの動作イメージ

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

例題①_GOT

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

データレジスタD0~D9の合計値をD10・D11に常時格納します。

ラダープログラム

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

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

SM400を入力条件とする合計値算出命令を用いて、D0~D9の合計値をD10・D11に格納します。

SM400は、PLCがRUN中に常時ONする特殊デバイスのため、合計値算出命令は常時実行されます。

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

3.【例題②】スイッチONでデバイス値の合計値を求める

下記仕様のラダープログラムを合計値算出命令を用いて解説します。

仕様
スイッチ(X0)を押すと、その時のデータレジスタD0~D9の合計値をD10・D11に格納する。
スイッチ(X1)を押すと、データレジスタD10・D11に”0”を転送する。

【例題①】では合計値を”常時”算出していましたが、今回はスイッチ(X0)が押されたときのみ算出します。

データレジスタに”0”を転送するため、今回はリセット(RST)命令を使用します。リセット命令については以下のページで解説しております。

00_【三菱Qシリーズ】セット・リセット(SET・RST)命令の指令方法とラダープログラム例【三菱Qシリーズ】セット・リセット(SET・RST)命令の指令方法とラダープログラム例

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)を押すと、その時のデータレジスタD0~D9の合計値をD10・D11に格納します。

スイッチ(X1)を押すと、データレジスタD10・D11に”0”を転送します。

ラダープログラム

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

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

入力条件をX0とする16ビットパルス実行形の合計値算出(WSUMP)命令を用いて、スイッチ(X0)が押された瞬間のみ合計値を算出してD10・D11に格納します。

入力条件をX1とするリセット(RST)命令を用いて、スイッチ(X1)が押されるとデータレジスタD10・D11に”0”を転送します。

今回はリセット(RST)命令を用いて”0”を転送しましたが、転送(MOV)命令等でも同じことが可能です。

4. おわりに

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

よく似た命令でSUM命令が存在しますが、これはビットチェック命令と呼ばれる指定したデバイス中にONしている(1である)ビットがいくつあるか数える命令です。紛らわしいのでご注意ください。

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

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

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

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

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

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

コメントを残す

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