PulseOutput_Jog_Positioning0_FB

Operación de JOG y posicionamiento

Esta instrucción se usa para la operación de JOG. Se envía el número de pulsos especificado cuando la condición de ejecución del control de posición pasa a TRUE. Se realiza una parada decelerada antes de alcanzar el valor de preselección y detener la salida de pulsos. 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.La velocidad puede ser modificada dentro del rango especificado para la de velocidad máxima.

Parámetros

Entrada

bExecute (BOOL)

La condición de ejecución puede ser:

  • en el flanco del trigger

  • permanente, si es necesario cambiar la velocidad

bAbsoluteBOOL:=FALSE

Solamente soporta el control de valor relativo; debe ser siempre FALSE, o se producirá un error.

diInitialAndFinalSpeed (DINT)

Velocidad inicial y final (F171_PulseOutput_Trapezoidal): 1 a 50000 (1Hz–50kHz)

diTargetSpeed (DINT)

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 (F171_PulseOutput_Trapezoidal): 1ms–32760ms (hasta la velocidad máxima)

diDecelerationTime (DINT)

Tiempo de deceleración (F171_PulseOutput_Trapezoidal): 1ms–32760ms (desde la velocidad máxima)

diTargetValue (DINT)

Valor de preselección:[pulsos]: -2147483648–2147483647

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.

TRUE si el canal no está habilitado en los registros del sistema o si bAbsolute está a TRUE

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: F171_PulseOutput_Jog_Positioning Utilizar PulseInfo_IsActive para comprobar si la bandera de control del canal seleccionado está a FALSE. Utilizar PulseControl_PulseOutputStop para detener la salida de pulsos del canal especificado. Utilizar PulseControl_DeceleratedStop para realizar una parada decelerada.

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.

	VAR
		PulseOutput_Jog_Positioning0: PulseOutput_Jog_Positioning0_FB;
		bExecute: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bError: BOOL:=FALSE;
		bConfigureDUT: BOOL:=FALSE;
		bAbsolute: 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 := 24 ;
        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_ForwardFalse,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_ForwardTrue,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_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,20,21,24,,?DEN?D?AENO?C);
L(1,2,4,2);
L(6,2,15,2);
L(10,22,15,22);
L(10,18,15,18);
L(10,14,15,14);
L(10,10,15,10);
L(10,6,15,6);
L(10,18,10,22);
L(10,2,10,18);
L(1,0,1,24);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 11 ;
        NETWORK_BODY
B(B_VARIN,,600,10,4,12,6,);
B(B_VARIN,,12000,10,5,12,7,);
B(B_VARIN,,300,10,6,12,8,);
B(B_VARIN,,600,10,7,12,9,);
B(B_VARIN,,50000,10,8,12,10,);
B(B_VARIN,,ChannelConfiguration_DUT,10,9,12,11,);
B(B_VARIN,,bExecute,10,2,12,4,);
B(B_VAROUT,,bError,28,2,30,4,);
B(B_FB,PulseOutput_Jog_Positioning0_FB!,PulseOutput_Jog_Positioning0,12,1,28,11,,?BbExecute?BbAbsolute?BdiInitialAndFinalSpeed?BdiTargetSpeed?BdiAccelerationTime?BdiDecelerationTime?BdiTargetValue?BdutChannelConfiguration?AbError);
B(B_VARIN,,bAbsolute,10,3,12,5,);
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.bExecuteInInterrupt := FALSE;
(* FB *)
PulseOutput_Jog_Positioning0(bExecute := bExecute,
             bAbsolute := bAbsolute             
             diInitialAndFinalSpeed := 600,
             diTargetSpeed := 12000,
             diAccelerationTime := 300,
             diDecelerationTime := 600,
             diTargetValue := 50000,
             dutChannelConfiguration := ChannelConfiguration_DUT,
             bError => bError);

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