Codesys#Util.LIN_TRAFO関数を使って信号を線形変換しよう

今回の記事ではCodesysのUtilライブラリにあるLIN_TRAFO Function Blockを使用し、アナログ信号を線形変換を行います。

さ、FAを楽しもう。

Reference Link

Codesys#Util.BLINK関数とTrace機能を使ってみよう

Util.LIN_TRAFO

Util.LIN_TRAFOを使用すれば、線形変換を行うことができます。またその変換は、入力の最小値と最大値を用いて出力値を線形近似することになります。

例えば、温度センサーは入力値を提供し、これらは摂氏温度の値(出力OUT)に変換されます。その入力値の範囲はIN_MIN=0とIN_MAX=10で定義されます。出力(摂氏)値の範囲はOUT_MIN=20とOUT_MAX=40で定義されます。従って、5Vの入力の場合、摂氏温度は10度と変換します。

VAR_INPUT

INREAL入力値
IN_MINREAL最小入力値
IN_MAXREAL最大入力値
OUT_MINREAL最小出力値
OUT_MAXREAL最大出力値

VAR_OUTPUT

OUTREAL出力値
ERRORBOOLTRUE: IN_MIN = IN_MAX または IN が入力範囲外

Implementation

Add library

Library ManagerからBLINK ライブラリを追加します。

Add Libraryをクリックします。

Utilライブラリを追加しましょう。

Program

今回の記事でもLD2を使用します。ToolboxからBlockをRung1に追加しましょう。

Add Util.LIN_TRAFO

Editor上で数のようなEmpty Blockが追加されました。

???のところにUtil.LIN_TRAFOを入力します。

Done!Util.LIN_TRAFO Blockが追加されました。

次はUtil.LIN_TRAFOのFB上にある???をクリックし、VARエリアで定義したUtil.LIN_TRAFOインスタンスを選択してください。

Done!

最後はすべてのパラメータを変数と紐つけましょう。

Add ST Block

LD2のプログラム中にもST コードを直接実行できます。ToolbarにST BlockをEmptyのRungに追加しましょう。

Done!

次は先程追加したEmpty Rungをクリックします。

テキストEditorが表示されるので、このエリアでSTコードを書きましょう。

Done!

Result

Util.LIN_TRAFOの関数がエラーなく実行できました、またrSensorINの入力値に沿ってOutがScalingできます。

Traceでもデータ変換の波形を確認することができます。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする