F171_PulseOutput_Jog_Positioning

Operación de JOG y posicionamiento

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.

Parámetros

Entrada

s_DUT_DataTable (DUT)

Dirección de inicio del área que contiene la tabla de datos

F171_PulseOutput_Jog_Positioning_Type0_DUT o F171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel (constante decimal)

Canal de salida de pulsos:0–3

Observaciones

Seleccionar uno de los dos modos de operación:

  • Tipo 0: La velocidad puede ser modificada dentro del rango especificado para la de velocidad máxima.

  • Tipo 1: La velocidad de preselección se puede modificar una vez que la condición de ejecución del control de posición pasa a TRUE.

Diagrama de la salida de pulsos

  1.  (1) Velocidad inicial y final
  2.  (2) Velocidad máxima
  3.  (3) Valor de preselección:
  4.  (4) Tiempo de aceleración
  5.  (5) Tiempo de deceleración
  6.  (6) Condición de ejecución
  7.  (7) Condición de ejecución del control de posición
  8.  (8) Bandera de control de la salida de pulsos
  • La frecuencia de los pulsos de salida varía según el tiempo de aceleración y el tiempo de deceleración especificado.

  • La diferencia entre la velocidad inicial y la velocidad máxima determina la pendiente de la rampa de aceleración.

  • La diferencia entre la velocidad máxima y la velocidad final determina la pendiente de la rampa de deceleración.

  • Cuando la entrada de trigger de control de posición pasa a TRUE, la salida de pulsos continua, después decelera y se detiene cuando alcanza el valor de preselección.

Detener la salida de pulsos

La salida de pulsos se puede detener por medio de una de las siguientes operaciones:

  • Poniendo a TRUE la entrada de trigger del control de posición (la salida de pulsos continúa hasta que se alcanza el valor de preselección y finaliza la deceleración): El control de posición se puede activar poniendo a TRUE la entrada de trigger o conmutando de FALSE a TRUE el bit 6 del registro de datos que almacena el código de control de la salida de pulsos, (por ejemplo, MOVE(16#140, sys_wHscOrPulseControlCode);).

  • Petición de parada decelerada: Para realizar una parada decelerada, pasar de FALSE a TRUE el bit 5 de los registros de datos que almacenan el código de control de la salida de pulsos (por ejemplo MOVE(16#120, sys_wHscOrPulseControlCode);).Cuando se solicita una parada decelerada durante la aceleración, la deceleración se realiza con la misma pendiente que la deceleración desde la velocidad de preselección.

  • Ejecución de una parada de emergencia: Para realizar una parada de emergencia, pasar de FALSE a TRUE, el bit 3 del registro de datos que almacena el código de control de la salida de pulsos (por ejemplo, MOVE(16#108, sys_wHscOrPulseControlCode);).

NOTA

Durante la parada, desactivar todas las funciones de salida de pulsos para el canal utilizado en el programa.

Operación de JOG Tipo 0

Utilizar la siguiente DUT predefinida: F171_PulseOutput_Jog_Positioning_Type0_DUT

Se pueden especificar los siguientes parámetros en la DUT:

  • Código de control

  • Velocidad inicial y final

  • Velocidad máxima

  • Tiempo de aceleración

  • Tiempo de deceleración

  • Valor de preselección:

La velocidad máxima puede ser modificada durante la salida de pulsos.Modificación de la velocidad de preselección durante la salida de pulsos

Sin cambiar la velocidad de preselección:

Cambiando la velocidad de preselección:

  1. Velocidad inicial y final

  2. Velocidad máxima

  3. Valor de preselección:

  4. Tiempo de aceleración

  5. Tiempo de deceleración

  6. Condición de ejecución

  7. Condición de ejecución del control de posición

  8. Bandera de control de la salida de pulsos

  • Para modificar la velocidad, mantener la condición de ejecución a TRUE.

  • Si la velocidad de preselección tiene un valor mayor de 50kHz, este se ajustará a 50kHz.

  • Si el valor actual sobrepasa el posición inicial del área de aceleración prohibida (por ejemplo, sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition) durante la aceleración, no se puede ejecutar la aceleración.

  • La velocidad de deceleración no puede ser inferior a la velocidad final corregida.

  • No se puede modificar la velocidad de preselección si la intrucción se ejecuta en un programa de interrupción.

Operación de JOG Tipo 1

Utilizar la siguiente DUT predefinida: F171_PulseOutput_Jog_Positioning_Type1_DUT

Se pueden especificar los siguientes parámetros en la DUT:

  • Código de control

  • Velocidad inicial y final

  • Velocidad máxima1

  • Tiempo de aceleración

  • Velocidad máxima2

  • Modificar el tiempo

  • Tiempo de deceleración

  • Valor de preselección:

Velocidad de preselección 1 < velocidad de preselección 2:

Velocidad de preselección 1 > velocidad de preselección 2:

  1. Velocidad inicial y final

  2. Velocidad máxima

  3. Velocidad máxima

  4. Valor de preselección:

  5. Tiempo de aceleración

  6. Modificar el tiempo

  7. Tiempo de deceleración

  8. Condición de ejecución

  9. Condición de ejecución del control de posición

Cuando la entrada de trigger de control de posición pasa a TRUE, la frecuencia de salida de pulsos se modifica, acelerando o decelerando, hasta alcanzar la velocidad de preselección 2. No se pueden realizar más cambios de velocidad de preselección. La entrada de trigger de control de posición no se tendrá en cuenta si se activa durante la aceleración.

Información de programación general

  • Tan pronto como comience a editar online (es decir, en modo RUN) un programa que utiliza esta instrucción, se detendrá la salida de pulsos.

  • Si tanto el programa principal como el programa de interrupción contienen código para el mismo canal, asegurarse de que no se ejecutan simultáneamente.

  • Durante la salida de pulsos, la bandera de control (por ejemplo sys_bIsPulseChannel0Active) del canal correspondiente está a TRUE. No se puede ejecutar ninguna otra instrucción de salida de pulsos mientras esta bandera sea TRUE

  • Configurar las entradas de trigger del control de posición (X0, X1, X2, X3) en los registros del sistema 402.

  • Solo se detecta el flanco de subida (TRUE) de la entrada de trigger de control de posición.

  • La instrucción no se puede reiniciar cuando se ha producido una petición de parada decelerada.

  • Para reiniciar después de detener la operación, pasar la condición de ejecución a FALSE y después de nuevo a TRUE.

  • Se recomienda encarecidamente proporcionar la posibilidad de una parada forzada en cualquier programa de posicionamiento.

  • El estado de la bandera de control del contador de alta velocidad o de la bandera de control de la salida de pulsos puede cambiar dentro del ciclo de scan.

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
		Start: BOOL:=FALSE;
		dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
			(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
		diInitialAndFinalSpeed: DINT:=1000;
		@'': @'';
	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 := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

Modificado el: 2023-03-16Comentarios sobre esta páginaPanasonic hotline