Skip to main content

Section : InstRefs

La section InstRefs définit les références aux instances FB ou aux instances de structure.

SEC InstRefs                                     //optional: yes, modifier: [UPDATE]
    SEC InstRef : <identifier>                   //target: yes, optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;             //optional: no, type: InstancePath
            Desc := <description>;                   //optional: no, type: text
            Optional := TRUE/FALSE;                  //optional: yes, type: BoolFlag
    END_SEC
...
    SEC InstRef_Multi : <identifier>              //optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;             //optional: no, type: InstancePath
            Var_Count := <variable for count>;       //optional: no, type: InstancePath
            Desc := <description>;                   //optional: no, type: text
            Cardinality := [<minimum> .. <maximum>]; //optional: no, type: Cardinality
    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.

. Spécification:
  • Inst_Ref.Variable définit le chemin de l'instance d'entrée d'une variable de type POINTER TO <T> ou de type <interface>. (<T> est n'importe quelle structure ou type de FB)

  • InstRef_Multi.Variable définit le chemin de l'instance d'entrée de type POINTER TO POINTER TO <T> ou de type POINTER TO <interface>. (<T> est n'importe quelle structure ou type de FB)

  • Deux entrées InstRef ou InstRef-Multi différentes ne doivent pas utiliser la même variable.

  • La cible doit identifier de manière unique la référence d'instance. Cela signifie qu'il ne doit pas exister deux déclarations de référence d'instance différentes (section InstRef et InstRef_Multi) avec la même cible (l'orthographe des majuscules ou des minuscules n'a pas d'importance).

  • La variable entière d'entrée définie par Var_Count ne peut être utilisé qu'une seule fois VarCounts de Slot_Multi ou InstRef_Multi. Seules les variables entières définies par Var_Count de VarArray peut être utilisé en parallèle avec Var_Counts de Slot_Multi ou InstRef_Multi.

Exemple 28. Exemple
SEC InstRef_Multi : Elements
        Variable    := piElems ;
        Var_Count   := uiArraySize ;
        Desc        := TL.Elems_Desc ;
        Cardinality := [1 .. 10] ;
END_SEC

Entre autres déclarations, la partie déclaration du bloc fonctionnel doit contenir : uiArraySize : UINT; piElems : POINTER TO Interface;

piElems pointe vers un créé globalement, correctement initialisé ARRAY[0..uiArraySize-1] OF interface ou OF POINTER TO <T>, qui pointe vers les instances individuelles. Par conséquent, le i-ème objet est accessible au moyen de piElems[i].