【三菱Qシリーズ】ブロック減算(BK-)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】ブロック減算(BK-)命令の指令方法とラダープログラム例

三菱電機製シーケンサQシリーズにおける「ブロック減算」命令とは、指定した複数の連続したデバイス値をまとめて減算するラダープログラム命令です。

ブロック減算命令を用いることにより、複数の減算命令を1ヶにまとめることができ、ラダープログラムを短縮することが可能です。

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

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

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

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

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

三菱電機製シーケンサQシリーズにおける減算命令は以下のページで解説しております。

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

1. ブロック減算命令の指令方法

ブロック減算命令には、4種類の指令方法があります。

BK-:16ビット連続実行形
BK-P:16ビットパルス実行形
DBK-:32ビット連続実行形
DBK-P:32ビットパルス実行形

BK-は、block – の略です。

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

32ビット実行形である「DBK-」「DBK-P」命令は三菱電機製シーケンサQシリーズ内でも以下のように使用できないものがあります。

Basic:使えない
High performance:使えない
Process:使えない
Redundant:使えない
Universal:条件付きで使える
LCPU:使える
  • UniversalはシリアルNo.の上5桁が”10102”以降のQnU(D)(H)CPUおよびQnUDE(H)CPUで使用可能
  • Q00UJCPU・Q00UCPU・Q01UCPU・QnUDVCPU・QnUDPVCPUで使用可能

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

16ビット連続実行形のブロック減算命令は”BK-“と指令します。

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

10_BK-命令

このラダープログラムは、入力条件であるX0がONしている間、D0~D9からD10~D19の各デバイスを減算した結果をD20~D29に格納するものです。

X0がONしている間に実行される演算は以下のようになります。

10_演算内容

仮に、D0~D19のデバイス値に20~1が格納されていると、減算結果であるD20~D29は以下のようになります。

10_デバイスモニタ

例えば、D25のデバイス値は10ですが、D25にはD5からD15を引いた結果が格納されます。「D5には15」「D15には5」が格納されているので、その減算値である10がD25に格納されます。

注意
↑のラダープログラムでは、ブロック減算命令で「演算元となるD0~D19」と「減算結果を格納する先であるD20~D29」を占有しますので、他の用途で使用できなくなります。

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

10_命令挿入

BK-P:16ビットパルス実行形

16ビットパルス実行形のブロック減算命令は”BK-P”と指令します。

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

11_BK-P命令

連続実行形(BK-命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0がONした瞬間にD0~D9とD10~D19のブロック減算結果をD20~D29に転送します。

メモ
入力条件がOFF→ONしたときにブロック減算命令が1スキャンだけ実行します。

DBK-・DBK-P:32ビット実行形

32ビット連続実行形のブロック減算命令は”DBK-“と指令します。

32ビットパルス実行形のブロック減算命令は”DBK-P”と指令します。

こちらがDBK-・DBK-P命令のラダープログラム例です。

12_DBK-命令
13_DBK-P命令

32ビット実行形の場合、2ワード(32ビット)長のデータを対象とします。

↑のラダープログラムの場合、対象デバイス点数は10点(K10)を指定していますが、32ビット実行形の場合は1点が2ワードとして扱うため、以下のような減算が実行されます。

12_演算内容

各デバイスはデバイス番号が若い側を下位とする2ワード長として扱われます。32ビット実行形は16ビット実行形の倍のデバイス点数を占有するので、デバイスの重複にはご注意ください。

2.【例題①】データレジスタのブロック減算結果を求める(連続実行形)

下記仕様のラダープログラムをブロック減算命令を用いて解説します。

仕様
スイッチ(X0)を押している間、以下データレジスタの減算演算を行う。
D0 – D5 = D10
D1 – D6 = D11
D2 – D7 = D12
D3 – D8 = D13
D4 – D9 = D14
スイッチ(X0)が押されている間にD0~D9のデバイス値が変化すると、減算結果であるD10~D14も追従して変化する。

減算命令を5ヶ用いることでも作成することができますが、今回はブロック減算命令を用いて作成します。

GOTの動作イメージ

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

例題①_GOT

スイッチ(X0)が押されている間、D0~D4からD5~D9を減算した結果をD10~D14に格納します。

スイッチ(X0)が押されている間にD0~D9の値が変化するとD10~D14の値も追従して変化します。

ラダープログラム

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

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

D0~D4からD5~D9を減算した結果を求めてD10~D14に転送するためのブロック減算(BK-)命令を使用します。

連続実行形を用いることにより、スイッチ(X0)が押されている間にD0~D9の値が変化するとD10~D14の値も追従して変化します。

3.【例題②】データレジスタのブロック減算結果を求める(パルス実行形

下記仕様のラダープログラムをブロック減算命令を用いて解説します。

仕様
スイッチ(X0)を押したとき、以下データレジスタの減算演算を行う。
D0 – D5 = D10
D1 – D6 = D11
D2 – D7 = D12
D3 – D8 = D13
D4 – D9 = D14
スイッチ(X0)が押されている間にD0~D9のデバイス値が変化しても、減算結果であるD10~D14は追従しない。

【例題①】との違いは、スイッチ(X0)が押されている間にD0~D9のデバイス値が変化しても、D10~D14は追従しないことです。

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)が押されている間にD0~D9のデバイス値が変化しても、D10~D14は追従しません。

スイッチ(X0)が押されている間に変化した内容は、再度スイッチ(X0)を押されたタイミングで減算処理が行われます。

ラダープログラム

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

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

入力条件がONした瞬間のみ実行する「パルス実行形」のBK-P命令を使用することにより、スイッチ(X0)が押された時のみブロック減算が実行されます。

4. おわりに

三菱電機製シーケンサQシリーズにおけるブロック減算命令について解説しました。

Qシリーズでは、対になるブロック加算(BK+)命令が用意されています。以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱Qシリーズ】ブロック加算(BK+)命令の指令方法とラダープログラム例【三菱Qシリーズ】ブロック加算(BK+)命令の指令方法とラダープログラム例

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

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

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

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

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

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

コメントを残す

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