【キーエンスKV-X】常用対数演算(LOG)FUNの指令方法とラダープログラム/ST例

00_【キーエンスKV-X】常用対数演算(LOG)FUNの指令方法とラダープログラムST例

キーエンスKV-Xシリーズにおける「常用対数演算(LOG)」は、指定した値の常用対数を求めるファンクションです。

常用対数とは、底を10とする対数のことです。例えば、\(10^2=100\)なので100の常用対数は2、\(10^3=1000\)なので1000の常用対数は3となります。

常用対数演算(LOG)は「変化量を倍率に変換する」「ばらつきが大きい値を正規化する」といった用途に用いることがあります。また、常用対数の特性を生かしてデバイスや変数が何桁であるか求めることが出来ます。

この記事では、キーエンスKV-X500/X300シリーズにおける常用対数演算(LOG)の指令方法ラダープログラム、ST言語の例について解説します。

注意
この記事中のラダープログラムはKV STUDIO Ver.12で作成しており、対応機種はKV-X500に設定してあります。
当サイトは現場の技術者を応援するスポンサー様のご支援により運営されています。
スポンサー様一覧ページはこちら>>

1. 常用対数演算の指令方法

常用対数演算(LOG)はLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

10_LD表現
ラダープログラム
ST言語
Result := LOG(In);

常用対数演算(LOG)は↓の引数で構成されています。

引数タイプデータ型初期値コメント
ENINBOOLイネーブル入力
ENOOUTBOOLイネーブル出力
In※IN演算データ
Result※RETURN演算結果

※ラダープログラム上でデバイスを指定した場合、REAL(単精度浮動小数点)型として扱われます。

LD表現

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

10_LD使用例
メモ
常用対数演算(LOG)はFUN(ファンクション)のため、インスタンス名を指令する必要はありません。

このラダープログラムでは、演算データである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)ファンクションブロックについては以下のページで解説しております。

00_【キーエンスKV-X】立ち上がり検出(R_TRIG)FBの指令方法とラダープログラムST例 【キーエンスKV-X】立ち上がり検出(R_TRIG)FBの指令方法とラダープログラム/ST例

微分指定する場合、命令の引数設定ダイアログで微分(E)にチェックを入れます。

12_微分指定

ST表現

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

ST言語
IF InFlag THEN
	OutData := LOG(InData);
END_IF;
メモ
引数タイプがIN、IN-OUTの場合は、「:=」で引数に値を引き渡します。引数タイプが「OUT」の場合は、「=>」で引数の値を変数に格納します。

このSTでは、演算データであるInDataの常用対数をOutDataに格納します。※前述のLD表現と同じ動作です。

2.【例題】変数の常用対数を求める

下記仕様のラダープログラム、STを常用対数演算(LOG)を用いて解説します。

仕様
スイッチ緑を押すと、変数Data00の常用対数をData01に格納する。
スイッチ黄を押すと、変数Data01に定数0を格納する。
変数は全て単精度浮動小数点(REAL)型として扱う。

常用対数を求める処理に常用対数演算(LOG)FUNを使用します。

変数Data01に定数0を格納するため、今回は転送(MOVE)を使用します。キーエンスKV-X500/X300シリーズの転送(MOVE)ファンクションについては以下のページで解説しております。

00_【キーエンスKV-X】転送(MOVE)FUNの指令方法とラダープログラムST例 【キーエンスKV-X】転送(MOVE)FUNの指令方法とラダープログラム/ST例

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

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

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

スイッチ緑を押すと、変数Data00の常用対数をData01に格納します。

スイッチ黄を押すと、変数Data01に定数0を格納します。

使用する変数

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

変数データ型コメント
Data00REALデータ00
Data01REALデータ01

ラダープログラム

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

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

常用対数演算(LOG)FUNのイネーブル入力にSwGreen(スイッチ緑)、演算データにData00、演算結果にData01を指令することで、スイッチ緑を押すとData00の常用対数をData01に格納します。(1行目)

転送(MOVE)FUNの転送元にREAL#0(単精度浮動小数点型の0)、転送先にData01を指令することで、スイッチ黄を押すとData01に単精度浮動小数点型の定数0を格納します。(2行目)

ST言語

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

ST言語
//スイッチ緑押下でData01にData00の常用対数を格納
IF SwGreen THEN
	Data01 := LOG(Data00);
END_IF;

//スイッチ黄押下でData01に定数0を格納
IF SwYellow THEN
	Data01 := 0;
END_IF;

3. おわりに

キーエンスKV-X500/X300シリーズにおける常用対数演算(LOG)について解説しました。

コメントを残す

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