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_SEC
I 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
VarArray
deve identificare l'array di variabili in modo univoco.Var_Count
definisce il percorso dell'istanza di input di un numero interoVariable
del blocco funzione del modulo. Per essere disponibile nell'editor per la configurazione questa variabile deve essere definita come parametro. In alternativa la variabileVar_Count
di Slot_Multi o InstRef_Multi possono essere utilizzati per definire questa variabile. Più VarArray possono utilizzare lo stessoVar_Count
variabile. Se la dimensione dell'array è 0, non verrà generato alcun array e il puntatore dell'array verrà impostato su 0.Inst_Name
definisce 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%
.Pragmas
contiene un elenco di pragma del compilatore, che verranno inseriti prima della variabile di array generata.Var_Decl_Flags
può 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_SEC
Tra le altre dichiarazioni, la parte dichiarazione del blocco funzione deve contenere: uiArraySize: UINT := 7; psNameList: POINTER TO STRING;
.