オムロンNJ/NXシリーズにおける「常用対数演算(LOG)」は、指定した値の常用対数を求めるファンクションです。
常用対数とは、底を10とする対数のことです。例えば、\(10^2=100\)なので100の常用対数は2、\(10^3=1000\)なので1000の常用対数は3となります。
常用対数演算(LOG)は「変化量を倍率に変換する」「ばらつきが大きい値を正規化する」といった用途に用いることがあります。また、常用対数の特性を生かしてデバイスや変数が何桁であるか求めることが出来ます。
この記事では、オムロンNJ/NXシリーズにおける常用対数演算(LOG)の指令方法とラダープログラム、ST言語の例について解説します。
目次
1. 常用対数演算の指令方法
常用対数演算(LOG)はLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

Out := LOG(In);常用対数演算(LOG)は↓の引数で構成されています。
| 引数 | タイプ | データ型 | 初期値 | コメント |
|---|---|---|---|---|
| EN | IN | BOOL | – | イネーブル入力 |
| ENO | OUT | BOOL | – | イネーブル出力 |
| In | IN | REALまたはLREAL | – | 演算対象 |
| Out | RETURN | REALまたはLREAL | – | 演算結果 |
LD表現
↓がLD表現で使用したラダープログラム例です。

このラダープログラムでは、演算対象であるInDataの常用対数をOutDataに格納します。
例えば、InDataの値が1000の場合、OutDataは3となります。\((Log_{10}1000=3)\)
InFlag(入力フラグ)がON(TRUE)中に演算対象(上記だとInData)の値が変化すると、OutData(演算結果)の結果も追従して変化します。
InFlag(入力フラグ)がON(TRUE)した瞬間のみ常用対数を求める場合、「InFlag(入力フラグ)を立ち上がり微分(R_TRIG)ファンクションブロック等で微分化する」または「常用対数演算(LOG)FUNに微分型(@)を指定する」方法があります。
立ち上がり微分(R_TRIG)ファンクションブロックについては以下のページで解説しております。
微分型(@)を指定する場合、FUN(ファンクション)入力時、頭文字に@を付けます。

ST表現
↓がST表現で使用したST言語例です。
IF InFlag THEN
OutData := LOG(InData);
END_IF;このSTでは、演算対象であるInDataの常用対数をOutDataに格納します。※前述のLD表現と同じ動作です。
2.【例題】変数の常用対数を求める
下記仕様のラダープログラム、STを常用対数演算(LOG)を用いて解説します。
スイッチ黄を押すと、変数Data01に定数0を格納する。
変数は全て32ビット実数(REAL)型として扱う。
常用対数を求める処理に常用対数演算(LOG)FUNを使用します。
変数Data01に定数0を格納するため、今回は転送(MOVE)を使用します。オムロンNJ/NXシリーズの転送(MOVE)ファンクションについては以下のページで解説しております。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を押すと、変数Data00の常用対数をData01に格納します。
スイッチ黄を押すと、変数Data01に定数0を格納します。
使用する変数
使用する変数は以下になります。
| 変数 | データ型 | コメント |
|---|---|---|
| Data00 | REAL | データ00 |
| Data01 | REAL | データ01 |
ラダープログラム
ラダープログラムは以下のようになります。

常用対数演算(LOG)FUNのイネーブル入力にSwGreen(スイッチ緑)、演算対象にData00、演算結果にData01を指令することで、スイッチ緑を押すとData00の常用対数をData01に格納します。(1行目)
転送(MOVE)FUNの転送元にREAL#0(32ビット実数の0)、転送先にData01を指令することで、スイッチ黄を押すとData01に32ビット実数型の定数0を格納します。(2行目)
ST言語
ST言語は下記のようになります。
//スイッチ緑押下でData01にData00の常用対数を格納
IF SwGreen THEN
Data01 := LOG(Data00);
END_IF;
//スイッチ黄押下でData01に定数0を格納
IF SwYellow THEN
Data01 := 0;
END_IF;3. おわりに
オムロンNJ/NXシリーズにおける常用対数演算(LOG)について解説しました。

