ExpansionUnitNumberToIOWordOffset_FPX_FP0

Función para calcular el offset de E/S de un módulo de expansión analógico conectado a la CPU mediante un adaptador.

Las direcciones de inicio de E/S varían en función de las posiciones de instalación del adaptador y del módulo de expansión. La función calcula el offset de la palabra de E/S basándose en la posición del adaptador y la posición del módulo respecto al adaptador.

Parámetros

Entrada

iFPX_ExpansionUnitNumber (INT)

Ajustar la posición del adaptador respecto a la CPU.

Valores: de 1 a 8

iFP0_ExpansionUnitNumber (INT)

Ajustar la posición del módulo de expansión FP0/FP0R respecto al adaptador.

Valores: de 1 a 3

Salida

iIOWordOffset (INT)

Devuelve el offset de la palabra de E/S (WX/WY)

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
		Inst_FP0R_A21: Unit_AnalogInOut_FP0R_A21;
		iAnalogOut0: INT:=0;
		bIO_Config_done: BOOL:=FALSE;
		iAnalogIn0: INT:=0;
		iAnalogIn1: INT:=0;
	END_VAR

Cuerpo de la POU

La función calcula el offset de la palabra de E/S de un módulo de entradas analógicas FP0/FP0R conectado a una CPU FP-X. iFPX_ExpansionUnitNumber es la posición de instalación (1 a 8) del adaptador de expansión FP0/FP0R. iFP0_ExpansionUnitNumber es la posición de instalación del módulo de entradas analógicas respecto al adaptador (1 a 3).

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,3,2,2,4,4,);
B(B_F,ExpansionUnitNumberToIOWordOffset_FPX_FP0!,,4,1,26,5,,?DiFPX_ExpansionUnitNumber?DiFP0_ExpansionUnitNumber?C);
B(B_FB,Unit_AnalogInOut_FP0R_A21!,Inst_FP0R_A21,36,1,51,8,,?BiIOWordOffset?BiOutChannel0?BiOutChannel0_Config?BiInChannel0_Config?BiInChannel1_Config?CbConfigIsDone?CiInChannel0?CiInChannel1);
B(B_VAROUT,,bIO_Config_done,51,2,53,4,);
B(B_VARIN,,2,2,3,4,5,);
B(B_VARIN,,iAnalogOut0,34,3,36,5,);
B(B_VAROUT,,iAnalogIn0,51,3,53,5,);
B(B_VARIN,,3,34,4,36,6,);
B(B_VAROUT,,iAnalogIn1,51,4,53,6,);
B(B_VARIN,,0,34,5,36,7,);
B(B_VARIN,,0,34,6,36,8,);
L(1,0,1,8);
L(26,3,36,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

Inst_FP0R_A21(iIOWordOffset := ExpansionUnitNumberToIOWordOffset_FPX_FP0(3, 2),
	iOutChannel0 := iAnalogOut0,
	iOutChannel0_Config := 3,
	iInChannel0_Config := 0,
	iInChannel1_Config := 0,
	bConfigIsDone => bIO_Config_done,
	iInChannel0 => iAnalogIn0,
	iInChannel1 => iAnalogIn1);

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