【オムロンNJ/NX】比較(=,<>,<,<=,>,>=)FUNの指令方法とラダープログラム/ST例

00_【オムロンNJNX】比較FUNの指令方法とラダープログラムST例

オムロンNJ/NXシリーズにおける「比較FUN」は、定数やデバイス、変数の値を比較して条件に合致していればResultがTRUEになるファンクションです。

比較FUNを用いることにより「変数の大小を比較して分岐するプログラム」や「変数の一致・不一致を判定するプログラム」を作ることができます。

この記事では、オムロンNJ/NXシリーズにおける比較FUNの指令方法ラダープログラム、ST言語の例について解説します。

注意
この記事中のプログラムはSysmac Studio Ver.1.62で作成しており、CPUはNJ501-1500に設定してあります。
注意
オムロンNJ/NXシリーズでは、2ヶの数値を比較して=,>,>=,<>,<,<=の各フラグを1ヶのFUNで出力できる比較(CMP)FUNがあります。本記事では比較(=,<>,<,<=,>,>=)FUNを対象としているため、比較(CMP)FUNは対象外としています。
また、本記事中で比較FUNと表現されているものは比較(=,<>,<,<=,>,>=)FUNを指します。

比較FUNの1種として、比較データがMax~Minの範囲内にあるか判定する領域比較(ZoneCmp)FUNがあります。この記事では領域比較(ZoneCmp)FUNは対象外としています。

領域比較(ZoneCmp)FUNについては以下のページで解説しております。

00_【オムロンNJNX】領域比較(ZoneCmp)FUNの指令方法とラダープログラムST例 【オムロンNJ/NX】領域比較(ZoneCmp)FUNの指令方法とラダープログラム/ST例
当サイトは現場の技術者を応援するスポンサー様のご支援により運営されています。
スポンサー様一覧ページはこちら>>

1. 比較FUNの指令方法

比較FUNは下記種類のFUNがあります。

LT (<)In1 < In2In1がIn2より小さい
LE (<=)In1 <= In2In1がIn2以下
GT (>)In1 > In2In1がIn2より大きい
GE (>=)In1 >= In2In1がIn2以上
EQ (=)In1 = In2In1とIn2が等しい
NE (<>)In1 ≠ In2In1とIn2が等しくない
注意
比較データIn1~はNE(<>)FUNが2ヶ、その他のFUNは2~5ヶを指令することが出来ます。↑は比較データが2ヶの場合の表です。

比較FUNはLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。詳細はFUN別に後ほど解説します。

比較FUNは↓の引数で構成されています。

引数タイプデータ型初期値コメント
ENINBOOLイネーブル入力
In1~InNIN0比較データ※
ResultRETURNBOOL比較結果

※比較データはNE(<>)FUNが2ヶ、その他のFUNは2~5ヶを指令することが出来ます。

比較データの初期値はIn1とIn2の2ヶになっています。追加/削除する場合、対象のファンクションを右クリックして「入力を追加(A)/削除(I)」にて比較データを追加、削除します。

10-1_引数追加

LT(<):In1がIn2より小さい

LD表現の場合、<またはLTで使用します。

10_1_<
ラダープログラム(<)
10_2_LT
ラダープログラム(LT)
ST言語
Result := (In1 < In2) & (In2 < In3) & …;

LE(<=):In1がIn2以下

LD表現の場合、<=またはLEで使用します。

11_1_<=
ラダープログラム(<=)
11_2_LE
ラダープログラム(LE)
ST言語
Result := (In1 <= In2) & (In2 <= In3) & …;

GT(>):In1がIn2より大きい

LD表現の場合、>またはGTで使用します。

12_1_>
ラダープログラム(>)
12_2_GT
ラダープログラム(GT)
ST言語
Result := (In1 > In2) & (In2 > In3) & …;

GE(>=):In1がIn2以上

LD表現の場合、>=またはGEで使用します。

13_1_>=
ラダープログラム(>=)
13_2_GE
ラダープログラム(GE)
ST言語
Result := (In1 >= In2) & (In2 >= In3) & …;

EQ(=):In1とIn2が等しい

LD表現の場合、=またはEQで使用します。

14_1_=
ラダープログラム(=)
14_2_EQ
ラダープログラム(EQ)
ST言語
Result := (In1 = In2) & (In2 = In3) & …;

NE(<>):In1とIn2が等しくない

LD表現の場合、<>またはNEで使用します。

15_1_<>
ラダープログラム(<>)
15_2_NE
ラダープログラム(NE)
ST言語
Result := (In1 <> In2);

LD表現

↓がLD表現で使用したラダープログラム例です。

16_LD使用例
メモ
比較(LT,LE,GT,GE,EQ,NE)はFUN(ファンクション)のため、インスタンス名を指令する必要はありません。

このラダープログラムでは、InData(比較データ)の値が「10以上かつ20以下」の時、OutFlag(出力フラグ)がTRUEになります。

ST表現

↓がST表現で使用したST言語例です。

ST言語
OutFlag := (InData >= UINT#10) & (InData <= UINT#20);

このSTでは、InData(比較データ)の値が「10以上かつ20以下」の時、OutData(出力フラグ)がTRUEになります。※前述のLD表現と同じ動作です。

2.【例題①】変数と定数を比較

下記仕様のラダープログラム、STを比較(LT,LE,GT,GE,EQ,NE)FUNを用いて解説します。

仕様
変数Data00の値を定数5を比較して、下記条件に合致したら対象のランプを点灯させる。
・Data00が定数5と等しいとき、ランプ緑が点灯する。
・Data00が定数5と等しくないとき、ランプ黄が点灯する。
・Data00が定数5より大きい(超過)とき、ランプ赤が点灯する。
・Data00が定数5より小さい(未満)とき、ランプ青が点灯する。
・Data00が定数5以上のとき、ランプ橙が点灯する。
・Data00が定数5以下のとき、ランプ紫が点灯する。
変数は1ワード符号なし整数(UINT)型として扱う。

Data00と定数5の比較に比較(LT,LE,GT,GE,EQ,NE)FUNを使用します。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題①_タッチパネルイメージ

変数Data00の値を定数5を比較して、下記条件に合致したら対象のランプを点灯させます。

使用する変数

使用する変数は以下になります。

変数データ型コメント
LpGreenBOOLランプ緑
LpYellowBOOLランプ黄
LpRedBOOLランプ赤
LpBlueBOOLランプ青
LpOrangeBOOLランプ橙
LpPurpleBOOLランプ紫
Data00UINTデータ00

ラダープログラム

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

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

比較(LT,LE,GT,GE,EQ,NE)FUNの比較データに変数Data00とUINT#5(1ワード符号なし整数の5)を指定することで、FUNに応じた比較を行い、条件が合致した時にResultがTRUEになりランプが点灯します。

ST言語

ST言語は以下のようになります。

ST言語
//Data00 = 定数5 → ランプ緑が点灯
LpGreen := (Data00 = UINT#5);

//Data00 <> 定数5 → ランプ黄が点灯
LpYellow := (Data00 <> UINT#5);

//Data00 > 定数5 → ランプ赤が点灯
LpRed := (Data00 > UINT#5);

//Data00 < 定数5 → ランプ青が点灯
LpBlue := (Data00 < UINT#5);

//Data00 >= 定数5 → ランプ橙が点灯
LpOrange := (Data00 >= UINT#5);

//Data00 <= 定数5 → ランプ紫が点灯
LpPurple := (Data00 <= UINT#5);

3.【例題②】複数の変数を比較

下記仕様のラダープログラム、STを比較(LT,GT,EQ)FUNを用いて解説します。

仕様
変数Data00~Data04の値を比較して、下記条件に合致したら対象のランプを点灯させる。
・Data00>Data01>Data02>Data03>Data04のとき、ランプ緑が点灯する。
・Data00<Data01<Data02<Data03<Data04のとき、ランプ黄が点灯する。
・Data00=Data01=Data02=Data03=Data04のとき、ランプ赤が点灯する。
変数は1ワード符号なし整数(UINT)型として扱う。

変数Data00~Data04の比較に比較(LT,GT,EQ)FUNを使用します。比較データはData00~Data04の5ヶのため、命令の引数設定ダイアログで5ヶに設定します。※ラダープログラムの場合

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題②_タッチパネルイメージ

変数Data00~Data04の値を比較して、下記条件に合致したら対象のランプを点灯させます。

使用する変数

使用する変数は以下になります。

変数データ型コメント
LpGreenBOOLランプ緑
LpYellowBOOLランプ黄
LpRedBOOLランプ赤
Data00UINTデータ00
Data01UINTデータ01
Data02UINTデータ02
Data03UINTデータ03
Data04UINTデータ04

ラダープログラム

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

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

命令の引数設定ダイアログにて比較データを5ヶに増やして、比較データにData00~Data04を指定します。

Data00>Data01>Data02>Data03>Data04の場合、GT(>)FUNのResultがTRUEになりランプ緑が点灯します。(1行目)

Data00<Data01<Data02<Data03<Data04の場合、LT(<)FUNのResultがTRUEになりランプ黄が点灯します。(2行目)

Data00=Data01=Data02=Data03=Data04の場合、EQ(=)FUNのResultがTRUEになりランプ赤が点灯します。(3行目)

ST言語

ST言語は以下のようになります。

ST言語
//Data00 > Data01 > Data02 > Data03 > Data04 → ランプ緑が点灯
LpGreen := (Data00 > Data01) & (Data01 > Data02) & (Data02 > Data03) & (Data03 > Data04);

//Data00 < Data01 < Data02 < Data03 < Data04 → ランプ黄が点灯
LpYellow := (Data00 < Data01) & (Data01 < Data02) & (Data02 < Data03) & (Data03 < Data04);

//Data00 = Data01 = Data02 = Data03 = Data04 → ランプ赤が点灯
LpRed := (Data00 = Data01) & (Data01 = Data02) & (Data02 = Data03) & (Data03 = Data04);

4. おわりに

オムロンNJ/NXシリーズにおける比較FUNについて解説しました。

電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。

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

コメントを残す

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