AdrFL_Of_Offs

Devuelve la dirección FL de la entrada o de la salida con un offset

A partir del valor en la entrada/salida Offs, la función genera una dirección de 16 bits en el área FL y la envía a la entrada/salida AdrFL. Esta entrada/salida tiene que estar directamente conectada a la entrada o salida de 16 bits de una función básica. El valor en la entrada/salida Offs representa la dirección offset dentro del área de datos FL. Utilizando GetPointer se puede transferir un valor del área de memoria a una función de usuario o a un bloque de función.

Parámetros

Entrada

AdrFL (INT)

Proporciona la dirección de offset FL de 16 bits en un área

Este pin debe estar conectado a la entrada o salida de una función básica para la que estén permitidos los tipos de datos INT, WORD

Salida

Offs (WORD, INT, UINT)

Offset para la dirección FL0

Observaciones

  • Recordar que la ejecución de la función básica que usa la dirección creada en el área FL, está determinada por la asignación de la función Is_AreaFL con el valor para el área de memoria de la variable a la entrada EN.

  • Esta función accede internamente a uno de los registros índice que también se usan para cálculos con arrays. Si el PLC utilizado no dispone de este área FL, se genera automáticamente la dirección DT0.

  • La función Is_AreaFL siempre devuelve FALSE y por tanto dificulta la ejecución de un comando con una dirección sin significado. De este modo, las funciones y los bloques de funciones de usuario que incorporan esta función se pueden ejecutar en PLCs que no disponen de área de memoria FL.

  • Solo para los editores LD y FBD: Para insertar la instrucción en la ventana de programación, seleccionar Instrucción de entrada o Instrucción de salida desde el panel Instrucciones.

Ejemplo

DUT

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		start: BOOL:=FALSE;
			(*activation of the function*)
		DutNonBoolean: @'Dut_NonBoolean';
			(*structured data type*)
		ActualPosition: DINT:=0;
			(*beginning position from which the data should be read to the IC card*)
	END_VAR

En este caso se declara la variable DutNonBoolean del tipo de dato DUT. No se asigna ningún valor a los elementos de la variable DutNonBoolean puesto que les valores de la variable DutNonBoolean se sobrescriben después de ejecutar la función ReadFromIcCard.

Cuerpo de la POU

Cuando la variable start pasa de FALSE a TRUE, se ejecuta la función ReadFromIcCard. La función lee los valores de la tarjeta IC a partir de la dirección ActualPosition y escribe la información en la variable DutNonBoolean. No olvidar que la tarjeta IC tiene que estar debidamente formateada a través del menú Online > Tarjeta IC... y debe contener los valores a partir de la dirección ActualPosition.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,start,6,1,8,3,);
B(B_F,ReadFromIcCard!,Instance,18,1,27,8,,?DEN?DArea?DOffset?DSize?DPosition?AENO?C);
B(B_VARIN,,2,16,4,18,6,);
B(B_VARIN,,ActualPosition,16,6,18,8,);
B(B_VAROUT,,ActualPosition,27,3,29,5,);
B(B_F,GetPointer!,Instance,11,3,18,5,,?D?C);
B(B_VARIN,,Dut_NonBoolean,7,3,9,5,);
B(B_F,Size_Of_Var!,Instance,9,5,16,7,,?D?C);
L(18,2,18,3);
L(8,2,18,2);
L(1,2,6,2);
L(9,4,11,4);
L(9,4,9,6);
L(16,6,18,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Modificado el: 2021-11-09Comentarios sobre esta páginaLínea directa de Panasonic