FP_GET_UNIT_ID

Devuelve el identificador de la unidad de expansión de un slot especificado

Estas instrucciones FP devuelven el identificador de la unidad de expansión del número de slot especificado por iSlot. El identificador de la unidad indicado en el mapa de E/S y en la configuración de la expansión se escribe en la variable de salida wUnitId y puede utilizarse para la comparación con una variable del sistema del grupo Constantes de unidad PLC.

Entrada

iSlot (WORD, INT, UINT)

Número de slot para unidad de expansión

Salida

wUnitId (WORD, INT, UINT)

Identificador de la unidad de expansión, p. ej. SYS_UNIT_AFP7X16DW

Observaciones

Antes de utilizar estas instrucciones, recompile su programa del PLC y descárguelo con Online > Descargar Código de Programa y Configuración al PLC al PLC. De este modo se evita que se devuelva un identificador de unidad incorrecto en caso de que la configuración de la expansión haya cambiado.

Ejemplo

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
		bStart: BOOL:=FALSE;
		iSlot: INT:=1;
		wModelCode: WORD:=0;
		bIsInputUnit_16Points_AttachedToSlot: BOOL:=FALSE;
		@'': @'';
	END_VAR

Cuerpo de la POU

Cuando la variable bStart se encuentra a TRUE, se ejecuta la función.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_VARIN,,iSlot,10,2,12,4,);
B(B_VAROUT,,wModelCode,21,2,23,4,);
B(B_CONTACT,,bStart,5,1,7,3,);
B(B_F,FP_GET_UNIT_ID!,,12,0,21,4,,?DEN?DiSlot?AENO?CwUnitId);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_F,@EQ-2!,,12,0,17,3,,?D?D?C);
B(B_VARIN,,wModelCode,10,0,12,2,);
B(B_VARIN,,SYS_UNIT_AFP7X16DW,10,1,12,3,);
B(B_VAROUT,,bIsInputUnit_16Points_AttachedToSlot,17,0,19,2,);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF (bStart) THEN
    FP_GET_UNIT_ID(iSlot := iSlot, wUnitId => wModelCode);
END_IF;
IF wModelCode = SYS_UNIT_AFP7X16DW  THEN
    bIsInputUnit_16Points_AttachedToSlot:= TRUE;
END_IF;

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