Skip to main content

Sección: InstRefs

La sección InstRefs define referencias a instancias de FB o instancias de estructura.

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

Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.

. Especificación:
  • Inst_Ref.Variable define la ruta de la instancia de entrada de una variable de tipo POINTER TO <T> o de tipo <interface>. (<T> es cualquier estructura o tipo de FB)

  • InstRef_Multi.Variable define la ruta de instancia de entrada de tipo POINTER TO POINTER TO <T> o de tipo POINTER TO <interface>. (<T> es cualquier estructura o tipo de FB)

  • Dos entradas InstRef o InstRef-Multi diferentes no deben usar la misma variable.

  • El destino debe identificar de forma exclusiva la referencia de la instancia. Esto significa que no deben existir dos declaraciones de referencia de instancia diferentes (sección InstRef y InstRef_Multi) con el mismo objetivo (la ortografía en mayúsculas o minúsculas no es relevante).

  • La variable entera de entrada definida por Var_Count solo se puede usar una vez en todo VarCounts de Slot_Multi o InstRef_Multi. Solo variables enteras definidas por Var_Count de VarArray se puede usar en paralelo Var_Counts de Slot_Multi o InstRef_Multi.

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

Entre otras declaraciones, la parte de declaración del bloque de funciones debe contener: uiArraySize : UINT; piElems : POINTER TO Interface;

piElems apunta a un creado globalmente, correctamente inicializado ARRAY[0..uiArraySize-1] OF interface o OF POINTER TO <T>, que apunta a las instancias individuales. Como resultado, se puede acceder al i-ésimo objeto por medio de piElems[i].