【三菱Qシリーズ】データ最大値検索(MAX)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】データ最大値検索(MAX)命令の指令方法とラダープログラム例

「データ最大値検索」命令とは、三菱電機製シーケンサQシリーズにおける指定したデバイスから、最大値を検索するラダープログラム命令です。

データ最大値検索命令を用いることにより、指定したデバイスの中から最大値とその位置・個数を検索して「最大値はどのデバイスで最大の値は幾つなのか」明確にすることができます。

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

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。
注意
同じ三菱電機製シーケンサFXシリーズでは「データ最大値検索」命令は指令することができませんでした。

1. データ最大値検索命令の指令方法

データ最大値検索命令には、4種類の指令方法があります。

  • MAX:16ビット連続実行形
  • MAXP:16ビットパルス実行形
  • DMAX:32ビット連続実行形
  • DMAXP:32ビットパルス実行形

MAXはその名の通り「最大」からきています。

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

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

16ビット連続実行形のデータ最大値検索命令は”MAX”と指令します。

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

10_MAX命令

このラダープログラムでは、X0がONしたときにD0~D4の5ワードに対して、最大値検索を行います。

検索した結果、最大値をD10・最大値の位置をD11・最大値の個数をD12に格納します。位置と個数については例題①で詳しく解説します。

16ビット実行形の場合、検索結果の格納先は3ワードを占有します。(今回はD10~D12) MAX命令は「連続実行形」であるため、X0がON中は毎スキャン処理が実行されます。入力条件がONしたときの1回のみ処理を行いたい場合、後述するパルス実行形を用いるか、入力条件を1スキャンパルスのものにします。
メモ
GX Works2では、回路上で MAX D0 D10 K5 と入力してEnterキーを押すと、上の命令文が挿入されます。

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

16ビットパルス実行形のデータ最大値検索命令は”MAXP”と指令します。

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

11_MAXP命令

連続実行形(MAX命令)との違いは「入力条件X0がONしたときに1回だけ処理が実行される。」ことです。

DMAX・DMAXP:32ビット実行形

32ビット連続実行形のデータ最大値検索命令は”DMAX”と指令します。

32ビットパルス実行形のデータ最大値検索命令は”DMAXP”と指令します。

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

12_DMAX命令
13_DMAXP命令

このラダープログラムでは、D0~D9の5ヶのダブルワードに対して、最大値検索を行います。 ※ダブルワードは2ヶのワードデバイスを1ヶの32ビットデバイスとして扱うことです。

検索した結果、最大値をD10/D11・最大値の位置をD12・最大値の個数をD13に格納します。

注意
32ビット実行形の場合、検索した結果は4ワード占有します。

2. 【例題①】常に最大値を検索する

下記仕様のラダープログラム例について解説します。

仕様
データレジスタD0からD5までの最大値と最大値の場所・個数を常時D10~D12に格納する。

常時ONさせるために、Qシリーズの特殊デバイスである”SM400”のa接点を使用します。SM400は常時ONするデバイスです。

GOTの動作イメージ

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

例題①_GOT動作イメージ

GOTからD0~D4を入力することができ、常に最大値をD10~D12に格納します。

D10にはD0~D4の実際の最大値を格納します。 D11には何番目のデバイスが最大値であるかを格納します。 D12には最大値が幾つあるかを格納します。上記のgifでは一時的にD1とD2が共に最大値になり、この時D12は2になります。

ラダープログラム

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

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

入力条件は常時ONする特殊デバイスのSM400を使用します。

最大値の検索元の先頭デバイスのD0を指定して、対象がD0~D4の5ワードのためK5としています。

最大値の格納先にD10を指定することにより、D10~D12に最大値とその位置・個数を格納します。

3. 【例題②】スイッチが押されたときのみ最大値を検索する

下記仕様のラダープログラム例について解説します。

仕様
スイッチ(X0)が押された時、データレジスタD0からD5までの最大値と最大値の場所・個数をD10~D12に格納する。

GOTの動作イメージ

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

例題②_GOT動作イメージ

スイッチ(X0)が押された時のみ最大値を検索します。

ラダープログラム

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

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

【例題①】との違いは入力条件をスイッチ(X0)にしたことです。

4. おわりに

データ最大値検索命令について解説しました。

命令としてはそこまで頻繁に使用する機会はないかもしれません。

活用方法は例えば「加工品の計測結果を格納して最大値は何個目に発生したか?」「発生する頻度が最大のアラームは何か?」といったものが思いつきます。

対を成すデータ最大値命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱Qシリーズ】データ最小値検索(MIN)命令の指令方法とラダープログラム例【三菱Qシリーズ】データ最小値検索(MIN)命令の指令方法とラダープログラム例

以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。

本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。

シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。

ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。

コメントを残す

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