【三菱FXシリーズ】ONビット数(SUM)命令の指令方法とラダープログラム例

00_【三菱FXシリーズ】ONビット数(SUM)命令の指令方法とラダープログラム例

三菱電機製シーケンサFXシリーズにおける「ONビット数」命令とは、指定したデバイス中にONしている(1である)ビットがいくつあるか数える命令です。

ONビット数命令を用いることにより、現在ONしている出力リレーなどのビットデバイスの数をデータレジスタなどに格納してモニタすることができます。

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

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

三菱電機製シーケンサFXシリーズにおいて、ONビット数命令は以下のシーケンサ・バージョンで使用することが可能です。

FX3S:Ver1.00以降
FX3G:Ver1.00以降
FX3GC:Ver1.40以降
FX3U:Ver2.20以降
FX3UC:Ver1.00以降

1. ONビット数命令の指令方法

ONビット数命令には、4種類の指令方法があります。

SUM:16ビット連続実行形
SUMP:16ビットパルス実行形
DSUM:32ビット連続実行形
DSUMP:32ビットパルス実行形

SUMは、合計・総和(sum)からきています。

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

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

16ビット連続実行形のONビット数命令は”SUM”と指令します。

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

10_SUM命令

このラダープログラムは、データレジスタD10(16ビット)のデータ中のONしている(1である)ビット数をD20に格納します。

例えばD10の値が「0001 1000 1010 1111」の場合、ONしている(1である)ビット数は8ヶです。よってD20には「1000」 (十進数の8)が格納されます。

10_デバイスモニタ

“SUM”命令は連続実行形のため、入力条件がON中にソースの値が変わるとデスティネーションの値が追従して変わります。

↑のラダープログラムいうと、X0がON中にD10の値が変わるとD20の値が追従して変わる。という意味になります。


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

10_命令挿入

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

16ビットパルス実行形のONビット数命令は”SUMP”と指令します。

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

11_SUMP命令

連続実行形(SUM命令)との違いは、入力条件X0がON中にD10の値が変わってもD20の値は追従して変化しないことです。

X0がONした瞬間のD10のONしているビット数をD20に格納します。

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

DSUM・DSUMP:32ビット実行形

32ビット連続実行形のONビット数命令は”DSUM”と指令します。

32ビットパルス実行形のONビット数命令は”DSUMP”と指令します。

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

12_DSUM命令
13_DSUMP命令

32ビット形の場合、2ワード(32ビット)長のONしているビット数を数えます。

↑のラダープログラムでは、データレジスタD10とD11(計32ビット)のデータ中のONしているビット数をD20に格納します。

例えばD10の値が「0001 0010 0011 0100」で、D11の値が「1010 1011 1111 1111」の場合、ONしている(1である)ビットは18ヶです。よってD20には「10010」 (十進数の18)が格納されます。

12_デバイスモニタ

2.【例題】点灯しているランプの数を数える

下記仕様のラダープログラムをONビット数命令を用いて解説します。

仕様
スイッチ(X0)を押すと、ランプ(Y0)が点灯し続ける。
スイッチ(X1)を押すと、ランプ(Y1)が点灯し続ける。
スイッチ(X2)を押すと、ランプ(Y2)が点灯し続ける。
スイッチ(X3)を押すと、ランプ(Y3)が点灯し続ける。
スイッチ(X7)を押すと、全ランプは消灯する。
ランプが転送している数をデータレジスタD0に格納してGOTに表示させる。

スイッチを押すと、ランプが点灯し続けるラダープログラムは自己保持回路を用いて作成します。

GOTの動作イメージ

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

スイッチ(X0)~(X3)を押すと、対応したランプが点灯し続けます。スイッチ(X7)を押すとランプはすべて消灯します。点灯しているランプの数をデータレジスタD0に格納します。

ラダープログラム

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

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

X0~X3を入力条件とする自己保持回路でランプY0~Y3を点灯させます。自己保持回路をOFFする条件はすべてX7です。

M8000はFXシリーズの特殊デバイスで「PLCがRUN中は常にONする」内部リレーです。

ONビット数命令で「K1Y000」は、Y0~Y3の4ビットのONしているビット数を数える意味になります。

つまり、Y0~Y3のONしているビット数をD0に格納する。という意味になります。

メモ
各種命令で「K1」と指令すると、ビットデバイスの4点分が命令対象になります。

自己保持回路については以下のページで解説しておりますので、宜しければご覧ください。

00_【ラダープログラム回路】自己保持回路のラダープログラム例【三菱FX】 【ラダープログラム回路】自己保持回路のラダープログラム例【三菱FX】


3. おわりに

三菱電機製シーケンサFXシリーズにおけるONビット数命令について解説しました。

エクセルで「SUM」は数値の合計値を求める関数のため、ラダープログラムでは加算命令と勘違いしやすい命令です。

三菱電機製シーケンサFXシリーズでは加算命令は”ADD”と指令します。

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

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

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

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

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

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

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

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

コメントを残す

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