Skip to main content

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.

. Specifica:
  • 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 intero Variable del blocco funzione del modulo. Per essere disponibile nell'editor per la configurazione questa variabile deve essere definita come parametro. In alternativa la variabile Var_Count di Slot_Multi o InstRef_Multi possono essere utilizzati per definire questa variabile. Più VarArray possono utilizzare lo stesso Var_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 predefinito AC_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 sono NONE, RETAIN, E PERSISTENT. Questi flag vengono aggiunti alla sezione variabile VAR_INPUT, in cui viene creato l'array. (esempio: per la bandiera RETAIN, VAR_INPUT RETAIN).

Esempio 26. Esempio
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;.