こちらは新しいシリーズで、OTeeというVirtual PLCを使用し様々な記事を展開します。第4話ではOTee Platform上でFunctionを作成します。Functionを使用することによって、コードを再利用でき、プログラムの可読性アップに繋がります。
さ、FAを楽しもう。

Reference Link
http://soup01.com/ja/category/otee/
プロジェクト複製
現在のプロジェクトを複製したい場合は、Project Listの画面に…のボタンをクリックし→Duplicateクリックします。

プロジェクトの新しい名前を設定してください。

Global変数定義
Global変数を作成することによって、異なるプログラムにも同じ変数にアクセスできます。下図の”Add Variable Group”ボタンをクリックし新しい変数グループを作成します。

Done!下図のように新しい変数グループが作成されました。

Global変数グループの名を変更し、Add Variableボタンで新しい変数をGlobal変数グループに追加します。

Done!最後はGlobal変数にも適切な名前を変更します。

今回の記事ではGVLというGlobal 変数グループを作成し、中にrDataという実数タイプの変数を宣言しました。

Function
次はプロジェクト内にFunctionを追加します。Tool barにある+ボタンをクリックします。

Create an entityの画面が表示され、TypeをFunctionに設定してください。

次はName欄でFunction名を設定し、Saveボタンで設定を保存します。

Done!Functionが追加されました。

VAR
画面の右側にFunctionの入出力パラメータなどを定義します。

今回の記事ではScalingプログラムを関数化したいので、以下の入力パラメータを定義します。

こちらはLocal変数の定義エリアです。

Return Type
Return TypeはFunction実行完了したあとの演算結果を返すことができます。

今回の記事ではScalingの関数のReturn値が実数タイプになります。

Program
こちらは関数の中身です。
rTemp:=rRawUpper-rRawLower;
if rTemp <= 0.0 then
rTemp:= 10.0;
end_if;
FCScaling:=(rInput-rRawLower)*((rEngUnitUpper-rEngUnitLower)/rRawUpper-rRawLower)+rEngUnitLower;
MAIN Program
最後はMAINプログラムで先程作成した関数を呼び出しましょう。下図では0-32767の値を4-20にScalingするプログラムです。

Access Global変数
先程登録したGlobal変数をMAINぷろプログラムからアクセスしたいので、Externalの隣にある+ボタンをクリックします。

新しい変数グループが追加されました。

下図の”Import a Global”ボタンをクリックします。

ここで先ほど定義したGlobal変数を選択できます。

Done!これで登録完了。


Result
Done!下図のように関数が成功しました。

Global変数rDataにもScaling値が格納されました。
