単位変換
別の単位系のデータを調整する場合は、変換ルールを定義できます。このデータは、特定の桁数と測定単位で実行されます。
で変換ルールを定義します 単位変換 物体。 CODESYS 各変換ルールを機能ブロックとして自動的に実装します <name>_Impl
そしてそれをインスタンス化します <name>
。各変換ルールには、 Convert
と Reverse
メソッド。その結果、通常どおり機能ブロックを使用することができます。変数にアクセスする場所では、変数を変換ルールにリンクできます。入力アシスタントは、 ファンクションブロック と インスタンス呼び出し カテゴリ。実行後、結果は変換ルールに従って変換された値になります。
ビジュアライゼーションでは、要素プロパティで構成されているIEC変数を変換ルールにリンクすることもできます。
単位変換の定義
ダブルクリック 単位変換 デバイスツリー内のオブジェクト。
対応するエディタが開きます。これには、変換ルールがすでに定義されているテーブルが含まれています。でルールを編集します タイプ設定 およびそれぞれの条件 条件設定。
ダブルクリック 新しいエントリを追加する フィールドに名前を入力します。
CODESYS を実装します
<name>_Impl
関数ブロックとインスタンス化<name>
。ダブルクリック タイプ フィールドをクリックし、リストボックスからタイプをクリックします。
変換ルールを編集するための入力フィールドがテーブルの下に表示されます。入力フィールドは、選択したタイプによって異なります。
入力フィールドの変換ルールを変更します。
変更はに表示されます 設定 テーブルのカテゴリ。
ダブルクリック 調子 フィールドをクリックし、リストボックスから条件タイプをクリックします。
入力フィールドは下に表示されます 条件設定 条件を編集するためのテーブルのカテゴリ。入力フィールドは、選択したタイプによって異なります。
条件を編集します。
変更はに表示されます 条件設定 テーブルのカテゴリ。
切り替え可能な単位変換の定義
特定の言語または条件に適用される変換ルールを定義できます。
ダブルクリック 単位変換 デバイスツリー内のオブジェクト。
対応するエディタが開きます。事前定義された変換ルールを含むテーブルが含まれています。
クリック 新しいエントリを追加する フィールドに名前を入力します。
例:
Conv_A_LanguageDependent
ダブルクリック タイプ フィールドをクリックしてクリックします 切り替え可能な変換。ダブルクリック 調子 フィールドをクリックしてクリックします 言語。
メインテーブルの下に、 切り替え可能な変換 テーブルはで表示されます 条件設定。
の中に 切り替え可能な変換 テーブルで、のリストボックスから事前定義された変換ルールをダブルクリックします。 切り替え可能な変換名 たとえば、列
Conv_AInInch
。の 条件設定、に値を入力します 条件「言語」の場合 たとえば、入力フィールド
en
。CODESYS を実行します
Conv_AInInch
VisualizationManagerで設定された言語が en 。の中に 切り替え可能な変換 テーブルで、のリストボックスから事前定義された変換ルールをダブルクリックします。 切り替え可能な変換名 たとえば、列
Conv_AInMM
。の 条件設定、の値をクリックします 条件「言語」の場合 たとえば、入力フィールド
de
。CODESYS を実行します
Conv_AInMM
VisualizationManagerで設定された言語が de。適用します
Conv_A_LanguageDependent
アプリケーションまたはビジュアライゼーションの変換ルール。ビジュアライゼーションで設定された言語が英語の場合、アプリケーションビジュアライゼーションは
Conv_AInInch
変換ルール。ビジュアライゼーションで設定された言語がドイツ語の場合、アプリケーションビジュアライゼーションはConv_AInMM
変換ルール。現在の視覚化言語は、VisuElems.CurrentLanguage
変数。
変換ルールの適用
IEC変数にアクセスするオブジェクトに変換ルールを追加します。
デバイスツリーで、IEC変数にアクセスするオブジェクトをダブルクリックして、その場所の変換ルールにIEC変数をリンクします。
IEC変数の変換結果の変数を宣言します。
たとえばSTのコード:
rConvertedA : REAL;
逆変換ルールを適用します
Convert
メソッドを実行し、結果を変数に割り当てます。入力アシスタントを使用します。IEC変数を変換ルールにリンクするためのSTサンプルコード:
rConvertedA := ConvRule_A.Convert(rA);
逆変換ルールの適用
デバイスツリーで、IEC変数にアクセスするオブジェクトをダブルクリックします。
変換ルールの結果の変数を宣言します。
たとえばSTのコード:
rReverseA: REAL;
逆変換ルールを適用します
Reverse
メソッドを実行し、結果を変数に割り当てます。rReverseA := ConvRule_A.Reverse(rConvertedA);
例
要件: 変換ルールはConv_XtoY
。
PROGRAM A_PRG VAR rA : REAL; rConvertedA : REAL; rReverseToA : REAL; END_VAR rConvertedA := Conv_XtoY.Convert(rA); rReverseToA := Conv_XtoY.Reverse(rConvertedA);
CFC エディターで、ブロックを介して変換ルールのインスタンス名を定義します。ブロック内のメソッドを選択します。


単位変換を使用した変数割り当ての構成
ビジュアライゼーションで割り当てられた変数を単位変換にリンクできます。これには、変数値が事前定義されたルールに従って変換され、結果がビジュアライゼーションで処理されるという効果があります。
のエディタで変換ルールをすでに定義しています 単位変換。
変数と単位変換のリンク
要件:視覚化されたプロジェクトが開いています。さらに、アプリケーションには UnitConversion
オブジェクトと convert_A
ルール。
要素を選択します。
The プロパティ ビューが開きます。
変数の割り当てで、
iVar_A
単位変換規則への変数:convert_A.convert(iVar_A)
アプリケーションをコンパイル、ダウンロード、および起動します。
アプリケーションが実行されます。ビジュアライゼーションが開きます。単位変換が適用されます。