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_SECLes détails concernant la syntaxe des types de définition sont décrits dans la section Déclaration des modules.
La définition
Variableest 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
VarArraydoit identifier le tableau de variables de manière unique.Var_Countdéfinit le chemin de l'instance d'entrée d'un entierVariabledu 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_Countde Slot_Multi ou InstRef_Multi peut être utilisé pour définir cette variable. Plusieurs VarArrays peuvent utiliser le mêmeVar_Countvariable. 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_Namedé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%.Pragmascontient une liste de pragmas de compilateur, qui seront insérés avant la variable de tableau générée.Var_Decl_Flagspeut ê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_SECEntre autres déclarations, la partie déclaration du bloc fonctionnel doit contenir : uiArraySize: UINT := 7; psNameList: POINTER TO STRING;.