オムロンNJ/NXシリーズにおける「領域比較(ZoneCmp)FUN」は、比較データ(In)の値が上限値と下限値の領域内であるか(下限値≦比較データ≦上限値であるか)を求めるファンクションです。
この記事では、オムロンNJ/NXシリーズにおける領域比較(ZoneCmp)FUNの指令方法とラダープログラム、ST言語の例について解説します。
オムロンNJ/NXシリーズでは、他の比較(=,<>,<,<=,>,>=)ファンクションが用意されています。比較(=,<>,<,<=,>,>=)ファンクションについては以下のページで解説しております。

目次
1. 領域比較FUNの指令方法
領域比較(ZoneCmp)FUNはLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

Result := ZoneCmp(MN, In, MX);
領域比較(ZoneCmp)FUNは↓の引数で構成されています。
引数 | タイプ | データ型 | 初期値 | コメント |
---|---|---|---|---|
EN | IN | BOOL | – | イネーブル入力 |
MN | IN | – | 0 | 下限値 |
In | IN | – | – | 比較データ |
MX | IN | – | 0 | 上限値 |
Result | RETURN | BOOL | – | 比較結果 |
LD表現
↓がLD表現で使用したラダープログラム例です。

このラダープログラムでは、比較データであるInDataの値が「上限値以下」かつ「下限値以上」の場合、OutFlag(出力フラグ)がTRUEになります。それ以外の場合、OutFlag(出力フラグ)がFALSEになります。
ST表現
↓がST表現で使用したST言語例です。
OutFlag := ZoneCmp(MN := InMin, In := InData, MX := InMax);
このSTでは、比較データであるInDataの値が「上限値以下」かつ「下限値以上」の場合、OutFlag(出力フラグ)がTRUEになります。それ以外の場合、OutFlag(出力フラグ)がFALSEになります。※前述のLD表現と同じ動作です。
2.【例題】変数の値を範囲比較する
下記仕様のラダープログラム、STを領域比較(ZoneCmp)FUNを用いて解説します。
(Data02≦Data00≦Data01)
変数は全て1ワード符号あり整数(INT)型として扱う。
Data00の値がData01(上限)~Data02(下限)の範囲内であるか判定する処理に領域比較(ZoneCmp)FUNを使用します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

変数Data00の値がData01(上限)~Data02(下限)の範囲内のとき、ランプ緑が点灯します。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
Data00 | INT | データ00(In) |
Data01 | INT | データ01(Max) |
Data02 | INT | データ02(Min) |
LpGreen | BOOL | ランプ緑 |
ラダープログラム
ラダープログラムは以下のようになります。

比較データにData00、上限値(Max)にData01、下限値(Min)にData02を指令した領域比較(ZoneCmp)FUNで、Data00がData01~Data02の範囲内であるか判定します。
範囲内であれば比較結果がTRUEとなり、ランプ緑が点灯します。
ST言語
ST言語は以下のようになります。
//Data02≦Data00≦Data01であればランプ緑が点灯
LpGreen := ZoneCmp(MN := Data02, In := Data00, MX := Data01);
3. おわりに
オムロンNJ/NXシリーズにおける領域比較(ZoneCmp)FUNについて解説しました。
電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。