Sezione: VarArray
Il parametro VarArrays permette di creare array con dimensioni configurabili.
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_SECI dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.
La definizione
Variableè un percorso dell'istanza di ingresso relativo al blocco funzione del modulo. Il tipo di dati èPOINTER TO <ELEMTYPE>.<ELEMTYPE>può essere qualsiasi tipo di dati.L'obiettivo di una sezione
VarArraydeve identificare l'array di variabili in modo univoco.Var_Countdefinisce il percorso dell'istanza di input di un numero interoVariabledel blocco funzione del modulo. Per essere disponibile nell'editor per la configurazione questa variabile deve essere definita come parametro. In alternativa la variabileVar_Countdi Slot_Multi o InstRef_Multi possono essere utilizzati per definire questa variabile. Più VarArray possono utilizzare lo stessoVar_Countvariabile. Se la dimensione dell'array è 0, non verrà generato alcun array e il puntatore dell'array verrà impostato su 0.Inst_Namedefinisce il nome della variabile di array creata. Il segnaposto%Instancename%E%VariablePath%(l'ortografia maiuscola o minuscola non è rilevante) verrà sostituito dal nome dell'istanza del modulo risp. il percorso dell'istanza della variabile puntatore. I punti verranno sostituiti da sottolineature. Se la definizione viene omessa, verrà utilizzato il valore predefinitoAC_ARRAY_%VariablePath%. si usa.Verrà creato un errore se due diversi VarArray di un modulo hanno lo stesso
Inst_Name, che non include il segnaposto%VariablePath%.Pragmascontiene un elenco di pragma del compilatore, che verranno inseriti prima della variabile di array generata.Var_Decl_Flagspuò essere utilizzato per specificare il tipo di variabile dell'array creato. I possibili flag sonoNONE,RETAIN, EPERSISTENT. Questi flag vengono aggiunti alla sezione variabileVAR_INPUT, in cui viene creato l'array. (esempio: per la bandieraRETAIN,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_SECTra le altre dichiarazioni, la parte dichiarazione del blocco funzione deve contenere: uiArraySize: UINT := 7; psNameList: POINTER TO STRING;.