Section : Tableaux Var
Le paramètre VarArrays
permet de créer des tableaux de taille configurable.
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
Les détails concernant la syntaxe des types de définition sont décrits dans la section Déclaration des modules.
La définition
Variable
est un chemin d'instance d'entrée relatif au bloc fonction du module. Le type de données estPOINTER TO <ELEMTYPE>
.<ELEMTYPE>
peut être n'importe quel type de données.La cible d'une section
VarArray
doit identifier le tableau de variables de manière unique.Var_Count
définit le chemin de l'instance d'entrée d'un entierVariable
du bloc fonction du module. Pour être disponible dans l'éditeur pour la configuration, cette variable doit être définie en tant que paramètre. Alternativement la variableVar_Count
de Slot_Multi ou InstRef_Multi peut être utilisé pour définir cette variable. Plusieurs VarArrays peuvent utiliser le mêmeVar_Count
variable. Si la taille du tableau est 0, aucun tableau ne sera généré et le pointeur du tableau sera défini sur 0.Inst_Name
définit le nom de la variable tableau créée. L'espace réservé%Instancename%
et%VariablePath%
(l'orthographe en majuscules ou minuscules n'est pas pertinente) sera remplacé par le nom d'instance du module instance resp. le chemin d'instance de la variable de pointeur. Les points seront remplacés par des soulignements. Si la définition est omise, la valeur par défautAC_ARRAY_%VariablePath%
. est utilisé.Une erreur sera créée si deux VarArrays différents d'un module ont le même
Inst_Name
, qui n'inclut pas l'espace réservé%VariablePath%
.Pragmas
contient une liste de pragmas de compilateur, qui seront insérés avant la variable de tableau générée.Var_Decl_Flags
peut être utilisé pour spécifier le type de variable du tableau créé. Les drapeaux possibles sontNONE
,RETAIN
, etPERSISTENT
. Ces drapeaux sont ajoutés à la section variableVAR_INPUT
, dans lequel le tableau est créé. (exemple : pour le drapeauRETAIN
,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
Entre autres déclarations, la partie déclaration du bloc fonctionnel doit contenir : uiArraySize: UINT := 7; psNameList: POINTER TO STRING;
.