セクション: VarArray
パラメータ VarArrays 構成可能なサイズで配列を作成できます。
SEC VarArrays //optional: yes, modifier: [UPDATE]]
SEC VarArray : <slot identifier> //optional: yes, modifier []
Variable := <variable name>; //optional: no, type: InstancePath
Var_Count := <variable count>; //optional: no, type: InstancePath
Inst_Name := <instance name>; //optional: yes, type: StringLiteral
Pragmas := [<pragma1>, <pragma2>,...]; //optional: yes, type: Pragmalist
Var_Decl_Flags := <Flag1> | <Flag2> | ... ; //optional: yes, type: Flags
END_SEC
END_SEC定義タイプの構文の詳細については、「 モジュール宣言の構文 説明された。
定義
Variableモジュール関数ブロックに対する相対的な入力インスタンス パスです。その男はPOINTER TO <ELEMTYPE>。<ELEMTYPE>任意のタイプにすることができます。セクションのターゲット
VarArray構成可能なサイズの配列を一意に識別する必要があります。Var_Count整数入力変数の入力インスタンス パスです。Variableファンクションブロックの。この変数を構成用にエディターに表示するには、パラメーターとして宣言する必要があります。あるいは、次のこともできますVar_CountマルチスロットまたはマルチinstRefの変数が使用可能です。複数の VarArray が同じである可能性がありますVar_Count-変数を使用します。配列のサイズが 0 の場合、配列は作成されませんが、配列ポインターは 0 に設定されます。Inst_Name作成する配列変数の名前を指定します。プレースホルダー%Instancename%そして%VariablePath%(大文字/小文字は関係ありません) は、モジュール インスタンスのインスタンス名またはポインター変数のインスタンス パス (ドットはアンダースコアに置き換えられます) に置き換えられます。定義を省略した場合はデフォルト値が適用されます。AC_ARRAY_%VariablePath%。モジュールの 2 つの異なる VarArray に同一の VarArray がある場合、エラーになります。
Inst_Nameそれはプレースホルダーではありません%VariablePath%が含まれています。Pragmasコンパイラ プラグマのリストが含まれており、生成された配列変数の前に挿入されます。Var_Decl_Flags作成された配列の変数の型をより正確に指定できるようになります。許可されるフラグは次のとおりです。NONE、RETAINそしてPERSISTENT。これらのフラグにより、セクションに移動します。VAR_INPUT、配列が作成される場所を追加できます(たとえば、フラグ用)RETAIN、VAR_INPUT RETAIN)。
SEC VAR_ARRAYS
SEC VAR_ARRAY : NameList
Variable := psNameList;
Var_Count := uiArraySize;
END_SEC
...
SEC PARAM : ArraySize
Variable := uiArraySize;
Name := TL.ArraySize_Name;
Desc := TL.ArraySize_Desc;
END_SEC
END_SEC関数ブロックの宣言部分には次の宣言が含まれている必要があります。 uiArraySize: UINT := 7; psNameList: POINTER TO STRING;。