PulseOutput_Home_FB

Vuelta al origen

Esta instrucción ejecuta una vuelta al origen según los parámetros especificados en el bloque de función y en la DUT especificada. Se envían pulsos desde el canal especificado si la bandera de control para ese canal es FALSE y la condición de ejecución es TRUE.

Parámetros

Entrada

bExecute (BOOL)

Un flanco de subida activa el bloque de función

bReverse (BOOL)

Dirección de desplazamiento: Hacia adelante = FALSE, Hacia atrás = TRUE

diInitialSpeed, diTargetSpeed (DINT)

Velocidad inicial/Velocidad máxima: Establecer este valor conforme al rango de frecuencias seleccionado en PulseOutput_Channel_Configuration_DUT:

FPS, FP-X: 1 a 9800 (1,5Hz–9,8kHz)

48 a 100000 (48Hz–100kHz)

191 a 100000 (191–100kHz)

F171_PulseOutput_Trapezoidal: de 1 a 50000 (1Hz–50kHz)

FP0, F168_PulseOutput_Trapezoidal: 40 a 5000 (40Hz–5kHz)

diAccelerationTime (DINT)

Tiempo de aceleración/deceleración (FPS, FP-X):

En 30 intervalos: 30ms–32760ms (especificar 30 intervalos)

En 60 intervalos: 60ms–32760ms (especificar 60 intervalos)

Tiempo de aceleración/deceleración (FP0, F168_PulseOutput_Trapezoidal): 30ms–32760ms

Tiempo de aceleración (F171_PulseOutput_Trapezoidal): 1ms–32760ms

diDecelerationTime (DINT)

Tiempo de deceleración (F171_PulseOutput_Trapezoidal): 1ms–32760ms

diCreepSpeed (DINT)

Velocidad de seguimiento (F171_PulseOutput_Trapezoidal): 1 a 50000 (1Hz–50kHz)

dutChannelConfigurationDUT predefinida del sistema para la configuración del canal: PulseOutput_Channel_Configuration_DUT

Salida

bError (BOOL)

TRUE si un valor aplicado no es válido. Se detiene la ejecución del bloque de función.

Observaciones

Esta instrucción forma parte de las instrucciones Tool de salida de pulsos. Para obtener información más detallada sobre las instrucciones que utiliza internamente, consultar la:

  • FPS, FP-X: F171_PulseOutput_Home

  • FP-e, FP0: F168_PulseOutput_Home

Utilizar PulseInfo_IsActive para comprobar si la bandera de control del canal seleccionado está a FALSE. Utilizar PulseInfo_IsHomeInputTrue para comprobar que la vuelta al origen es TRUE.

NOTA

Evitar errores de operación o un mal funcionamiento :

  • Comprobar que el registro del sistema está en modo salida de pulsos cuando se utiliza la entrada de vuelta al origen.

  • La entrada de vuelta al origen no debe estar asignada a otras instrucciones como la entrada de captura de pulsos, la entrada de interrupción o el contador de alta velocidad.

Ejemplo

DUT

Con un Tipo de Datos Estructurados (DUT) se puede definir un tipo de dato compuesto por otros tipos de datos. Una DUT se define primero en el repositorio de DUTs y, seguidamente, se procesa como los tipos de datos estándar (BOOL, INT, etc.) en la lista de variables globales o la cabecera de la POU.

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.

Cuerpo de la POU

	VAR
		PulseOutput_Home: PulseOutput_Home_FB;
		bExecute: BOOL:=FALSE;
		bReverse: BOOL:=FALSE;
		bError: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bConfigureDUT: BOOL:=FALSE;
	END_VAR

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 32 ;
        NETWORK_BODY
B(B_CONTACT,,bConfigureDUT,4,1,6,3,);
B(B_F,E_MOVE!,,15,0,21,4,,?DEN?D?AENO?C);
B(B_VARIN,,1,13,2,15,4,);
B(B_F,E_MOVE!,,15,8,21,12,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,10,15,12,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_SignReverse,21,10,23,12,);
B(B_F,E_MOVE!,,15,12,21,16,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,,15,4,21,8,,?DEN?D?AENO?C);
B(B_VARIN,,TRUE,13,6,15,8,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_SignForward,21,6,23,8,);
B(B_VARIN,,TRUE,13,14,15,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.iChannel,21,2,23,4,);
B(B_F,E_MOVE!,,15,16,21,20,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,18,15,20,);
B(B_VAROUT,,ChannelConfiguration_DUT.bDutyRatio25,21,18,23,20,);
B(B_F,E_MOVE!,,15,20,21,24,,?DEN?D?AENO?C);
B(B_VAROUT,,ChannelConfiguration_DUT.bAccelerationSteps60,21,14,23,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.bFrequencyRange_191Hz_100kHz,21,22,23,24,);
B(B_VARIN,,TRUE,13,22,15,24,);
B(B_F,E_MOVE!,,15,24,21,28,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,26,15,28,);
B(B_VAROUT,,ChannelConfiguration_DUT.Home_bEnableHomeOnlyAfterNearHomeDeceleration,21,26,23,28,);
B(B_F,E_MOVE!,,15,28,21,32,,?DEN?D?AENO?C);
B(B_VAROUT,,ChannelConfiguration_DUT.Home_iDeviationCounterClearSignalOutputTime_in_0p5ms,21,30,23,32,);
B(B_VARIN,,5,13,30,15,32,);
L(10,2,10,6);
L(10,10,10,14);
L(10,6,10,10);
L(10,14,10,18);
L(10,18,10,22);
L(10,22,10,26);
L(6,2,10,2);
L(1,2,4,2);
L(10,26,10,30);
L(10,30,15,30);
L(10,26,15,26);
L(10,22,15,22);
L(10,18,15,18);
L(10,6,15,6);
L(10,14,15,14);
L(10,10,15,10);
L(10,2,15,2);
L(1,0,1,32);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 11 ;
        NETWORK_BODY
B(B_FB,PulseOutput_Home_FB!,PulseOutput_Home,15,1,28,11,,?BbExecute?BbReverse?BdiInitialAndFinalSpeed?BdiTargetSpeed?BdiAccelerationTime?BdiDecelerationTime?BdiCreepSpeed?BdutChannelConfiguration?AbError);
B(B_VARIN,,bExecute,13,2,15,4,);
B(B_VARIN,,bReverse,13,3,15,5,);
B(B_VARIN,,1500,13,4,15,6,);
B(B_VARIN,,12000,13,5,15,7,);
B(B_VARIN,,300,13,6,15,8,);
B(B_VARIN,,600,13,7,15,9,);
B(B_VARIN,,500,13,8,15,10,);
B(B_VARIN,,ChannelConfiguration_DUT,13,9,15,11,);
B(B_VAROUT,,bError,28,2,30,4,);
L(1,0,1,11);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

(* Used DUT parameters *)
ChannelConfiguration_DUT.iChannel := 1;
ChannelConfiguration_DUT.bOutput_Pulse_ForwardTrue := TRUE;
ChannelConfiguration_DUT.bOutput_Pulse_ForwardFalse := FALSE;
ChannelConfiguration_DUT.bAccelerationSteps60 := FALSE;
ChannelConfiguration_DUT.bDutyRatio25 := TRUE;
ChannelConfiguration_DUT.bFrequencyRange_191Hz_100kHz := TRUE;
ChannelConfiguration_DUT.Home_bEnableHomeOnlyAfterNearHomeDeceleration := FALSE;
ChannelConfiguration_DUT.Home_iDeviationCounterClearSignalOutputTime_in_0p5ms := 5;
ChannelConfiguration_DUT.bExecuteInInterrupt := FALSE;
(* FB *)
PulseOutput_Home(bExecute := bExecute,
         bReverse := bReverse,
         diInitialAndFinalSpeed := 1500,
         diTargetSpeed := 12000,
         diAccelerationTime := 300,
         diDecelerationTime := 600,
         diCreepSpeed := 500,
         dutChannelConfiguration := ChannelConfiguration_DUT,
         bError => bError);

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