三菱電機製シーケンサFXシリーズにおける「平均値」命令とは、指定したデータ範囲の平均値を求めるラダープログラム命令です。
平均値命令を用いることにより、指定した範囲のデバイスに格納されているデータ量(数値)の平均値を求めることができます。
この記事では、三菱電機製シーケンサFXシリーズにおける平均値命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、平均値命令は以下のシーケンサ・バージョンで使用することが可能です。
FX3S | :Ver1.00以降 |
FX3G | :Ver1.00以降 |
FX3GC | :Ver1.40以降 |
FX3U | :Ver2.20以降 |
FX3UC | :Ver1.00以降 |
目次
1. 平均値命令の指令方法
平均値命令には、4種類の指令方法があります。
MEAN | :16ビット連続実行形 |
MEANP | :16ビットパルス実行形 |
DMEAN | :32ビット連続実行形 |
DMEANP | :32ビットパルス実行形 |
MEANは、平均(mean)からきています。
この平均値命令で求められた平均値は整数になり、余り(剰余)は切り捨てられます。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
MEAN:16ビット連続実行形(基本の形)
16ビット連続実行形の平均値命令は”MEAN”と指令します。
こちらがMEAN命令を使用したラダープログラム例です。
![10_MEAN命令](https://denkisekkeijin.com/wp-content/uploads/2020/06/10_MEAN命令-1024x125.png)
このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0を先頭とする5点(D0~D4)の平均値をD10に格納するものです。
![10_命令イメージ](https://denkisekkeijin.com/wp-content/uploads/2020/06/10_MEAN命令命令イメージ.png)
MEAN命令内で指令しているK5は「D0から5ワード長の平均値を求める」意味になります。
例えば、D0=10・D1=20・D2=30・D3=40・D4=50がそれぞれ格納されている場合、D10にはこれらの平均値である30が格納されます。
その時のデバイス一括モニタは以下のようになります。
![10_デバイスモニタ](https://denkisekkeijin.com/wp-content/uploads/2019/08/MEAN命令_デバイスモニタ.png)
MEAN命令は「連続実行形」であるため、X0がON中にD0~D4の値が変わるとD10の値も追従して変わります。
先ほどのラダープログラムはGX Works2の回路上で MEAN D0 D10 K5 と入力してEnterキーを押すと命令が挿入されます。(小文字でもOKです。)
![10_命令挿入](https://denkisekkeijin.com/wp-content/uploads/2020/06/10_命令挿入-4.gif)
MEANP:16ビットパルス実行形
16ビットパルス実行形の平均値命令は”MEANP”と指令します。
こちらがMEANP命令を使用したラダープログラム例です。
![11_MEANP命令](https://denkisekkeijin.com/wp-content/uploads/2020/06/11_MEANP命令-1024x126.png)
連続実行形(MEAN命令)との違いは、入力条件X0がON中にD0~D4の値が変わってもD10の値は追従して変化しないことです。
X0がONした瞬間のD0~D4の平均値をD10に格納します。
DMEAN・DMEANP:32ビット実行形
32ビット連続実行形の平均値命令は”DMEAN”と指令します。
32ビットパルス実行形の平均値命令は”DMEANP”と指令します。
こちらがDMEAN・DMEANP命令のラダープログラム例です。
![12_DMEAN命令](https://denkisekkeijin.com/wp-content/uploads/2020/06/12_DMEAN命令-1024x124.png)
![13_DMEANP命令](https://denkisekkeijin.com/wp-content/uploads/2020/06/13_DMEANP命令-1024x126.png)
32ビット実行形の場合、2ワード(32ビット)長の平均値を求めます。
↑のラダープログラムの場合、データレジスタD0~D9(2ワード長が5点)の平均値をD10・D11に格納します。
2.【例題①】データレジスタの平均値を求める
下記仕様のラダープログラムを平均値命令を用いて解説します。
スイッチ(X0)を押している間にデータレジスタD0~D4の値が変化してもD10の値は変化しない。
スイッチ(X0)が押している間、データレジスタD0~D4の値が変化してもD10の値は変化しないようにするためパルス実行形を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
![例題①_GOT動作イメージ](https://denkisekkeijin.com/wp-content/uploads/2019/08/例題①_GOT動作イメージ.gif)
スイッチ(X0)が押されると、その時のデータレジスタD0~D4の平均値をD10に格納します。
スイッチ(X0)が押されている間にデータレジスタの値が変化してもD10の値は変化しません。D10を変化させる場合、再度スイッチ(X0)を押す必要があります。
ラダープログラム
ラダープログラムは以下のようになります。
![例題①_ラダープログラム](https://denkisekkeijin.com/wp-content/uploads/2019/08/例題①_ラダープログラム-1024x104.png)
平均値を求めるため、16ビットパルス実行形のMEANP命令を使用します。
仮に16ビット連続実行形であるMEAN命令を用いると「スイッチ(X0)を押している間にデータレジスタD0~D4の値が変化するとD10の値も追従して変化する。」動作になります。
↑のGOTの動作イメージではD0に10を入力しました。この時、D0~D4の数値は、10・2・3・4・5となり代数的な平均値は4.8となります。平均値命令は余り(剰余)は切り捨てられるため、D10には4が格納されます。
3.【例題②】タイマの平均値を求める
下記仕様のラダープログラムを平均値命令を用いて解説します。
スイッチ(X1)を押している間、タイマT1がカウントする。
スイッチ(X2)を押している間、タイマT2がカウントする。
スイッチ(X3)を押している間、タイマT3がカウントする。
タイマT0~T3の平均値を常時D10に格納する。
「こんな仕様のものどこで使うねん…」と私自身が思ってしまいました。応用すると工程の連続運転において”一巡に要した時間”(サイクルタイム)の平均値を求めることができそうです。
三菱電機製シーケンサFXシリーズにおけるタイマの機能と動作例については以下のページで解説しておりますので、宜しければご覧ください。
![00_【三菱FXシリーズ】タイマ(T)の使用方法とラダープログラム例](https://denkisekkeijin.com/wp-content/uploads/2020/02/00_【三菱FXシリーズ】タイマTの使用方法とラダープログラム例-160x160.png)
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
![例題②_GOT動作イメージ](https://denkisekkeijin.com/wp-content/uploads/2019/08/30_例題②_GOT動作イメージ.gif)
各スイッチを押している間、対応するタイマがカウントアップします。そして、データレジスタD10にタイマの平均値が常時格納されます。
ラダープログラム
ラダープログラムは以下のようになります。
![例題②_ラダープログラム](https://denkisekkeijin.com/wp-content/uploads/2019/08/30_例題②_ラダープログラム.png)
各スイッチを入力条件とするタイマを用意します。今回はこのタイマの接点を使用する訳ではないので、設定値はK9999としています。
補助リレーM8000は三菱電機製シーケンサFXシリーズの特殊デバイスでRUN中は常にONするデバイスです。
平均値は常時D10に格納する必要があるため、連続実行形であるMEAN命令を使用しています。
4. おわりに
三菱電機製シーケンサFXシリーズにおける平均値命令について解説しました。
デバイスの平均値は加算命令と除算命令を用いることで求めることが可能ですが、デバイス点数が多くなるとラダープログラムが膨大になってしまいます。
平均値命令は簡単なラダープログラムで、(時には膨大な)平均値を求めることが出来る便利な命令です。
参考までに、三菱電機製シーケンサFXシリーズにおける加算命令の除算命令の指令方法については以下のページで解説しておりますので、宜しければご覧ください。
![00_【三菱FXシリーズ】加算(ADD)命令の指令方法とラダープログラム例](https://denkisekkeijin.com/wp-content/uploads/2019/03/00_【三菱FXシリーズ】加算ADD命令の指令方法とラダープログラム例-160x160.png)
![00_【三菱FXシリーズ】除算(DIV)命令の指令方法とラダープログラム例](https://denkisekkeijin.com/wp-content/uploads/2019/03/00_【三菱FXシリーズ】除算DIV命令の指令方法とラダープログラム例-160x160.png)
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。