F172_PulseOutput_Jog

Operación de JOG

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.

Parámetros

Entrada

s_dutDataTable

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

  • FP-S, FP-X:

    F172_PulseOutput_Jog_Type0_DUT_0

    F172_PulseOutput_Jog_Type1_DUT_0

  • FP0R:

    F172_PulseOutput_Jog_Type0_DUT_1

    F172_PulseOutput_Jog_Type1_DUT_1

n_iPulseOutputChannel* (constante decimal)

Canal de salida de pulsos:

FP-XH C30 T/P: 0–3

FP-XH C60 T/P: 0–5

FP-S: 0,2

FP-X R: 0,1

FP-XC14T: 0,1,2

FP-X C30T/C60T: 0,1,2,3

FP0R: 0,1,2,3

Descripción para el FP-Sigma, FP-X

Utilizar la siguiente DUT predefinida: F172_PulseOutput_Jog_Type0_DUT_0 (Modo "sin valor de preselección) oF172_PulseOutput_Jog_Type1_DUT_0 (Modo "parada al alcanzar el valor de preselección")

Se pueden especificar los siguientes parámetros en la DUT:
  • Código de control
  • Frecuencia
  • Valor de preselección:

Diagrama de la salida de pulsos

La frecuencia y el valor de preselección se pueden modificar en cada ciclo de scan. El código de control, sin embargo, no se pueden modificar durante la ejecución de la instrucción.Seleccionar uno de los dos modos de operación:

  • Modo "sin valor de preselección (tipo 0):

    Se envían pulsos según las condiciones establecidas en la DUT siempre que la condición de ejecución sea TRUE.
    1.  (1) Condición de ejecución
    2.  (2) Salida de pulsos CW
  • Modo "parada al alcanzar el valor de preselección" (tipo 1):

    La salida de pulsos se detiene cuando se alcanza el valor de preselección. Establecer este modo en el código de control, y especificar el valor de preselección (un valor absoluto) en la DUT. (FPSV1.4 o superior, FP-X)

    1.  (1) Condición de ejecución
    2.  (2) Salida de pulsos CW
    3.  (3) Se ha alcanzado el valor de preselección (detiene la salida de pulsos)

Información de programación general

AVISO

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.

  • FP-X: 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

  • FPS: La bandera de control del contador de alta velocidad (por ejemplo sys_bIsHscChannel0ControlActive) y la bandera de control de la salida de pulsos (por ejemplo sys_bIsPulseChannel0Active) están asignadas al mismo relé interno especial (R903A). Por lo tanto, cuando se ejecuta una instrucción del contador de alta velocidad o de salida de pulsos, tanto la bandera de control de contador de alta velocidad (por ejemplo sys_bIsHscChannel0ControlActive) como la bandera de control de la salida de pulsos (por ejemplo sys_bIsPulseChannel0Active) para el canal especificado, están a TRUE. No se puede ejecutar ninguna otra instrucción del contador de alta velocidad o de salida de pulsos mientras que está bandera esté a TRUE.

  • FPS: Al ejecutar la instrucción de interpolación circular F176_PulseOutput_Center la bandera de control de interpolación circular (sys_bIsCircularInterpolationActive) pasa a TRUE. Se mantiene el estado de la bandera hasta que se alcanza el valor de preselección (incluso si la condición de ejecución ya no es TRUE). En este intervalo, no se puede ejecutar otra función de salida de pulsos.

  • FPS: En los registros del sistema seleccionar como "No usado" cualquier contador de alta velocidad asignado a un canal de salida de pulsos.

  • FP-X: Seleccionar en los registros del sistema, "Salida de pulsos " para el canal deseado.

  • Si la ejecución de la instrucción comienza con un valor de frecuencia no válido, se produce un error de operación. Si la frecuencia toma un valor no válido durante la ejecución de la instrucción, la frecuencia de salida se ajustará al valor mínimo o al máximo del rango permisible

  • Los cambios realizados en el código de control durante la ejecución de la instrucción no tienen efecto.
  • 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.

Descripción para el FP0R

Utilizar la siguiente DUT predefinida: F172_PulseOutput_Jog_Type0_DUT_1 (Modo "sin valor de preselección) o F172_PulseOutput_Jog_Type1_DUT_1 (Modo "parada al alcanzar el valor de preselección")

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:

Diagrama de la salida de pulsos

  1.  (1) Velocidad máxima1
  2.  (2) Velocidad máxima2
  3.  (3) Bandera de control de la salida de pulsos
  4.  (4) Condición de ejecución
  • 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 máxima de 50kHz y la velocidad inicial determina la pendiente de la rampa de aceleración.
  • La diferencia entre la velocidad máxima de 50kHz y la velocidad final determina la pendiente de la rampa de deceleración.
  • Si la condición de ejecución pasa a FALSE una vez iniciada la instrucción, se lleva a cabo una parada decelerada.
  • Si la condición de ejecución pasa aTRUE durante la deceleración, se realiza de nuevo una aceleración.
  • La velocidad máxima puede ser modificada durante la salida de pulsos.
  • Se envían pulsos con un rendimiento del 25%.
  • Con el método de salida de pulsos "pulso/dirección", los pulsos se envía aproximadamente 300ms después de enviar la señal de dirección, donde se tienen en cuenta la curva característica del driver del motor.
  • 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.
  • El tiempo de aceleración y el tiempo de deceleración tienen prioridad sobre la velocidad inicial y la velocidad final. Esto significa que los valores para el tiempo de aceleración y para el tiempo de deceleración no se modificarán. Los valores de la velocidad inicial y final pueden ser corregidos por la instrucción de salida de pulsos para mantener el tiempo de aceleración y deceleración dentro de los valores especificados. Los valores modificados se escriben en registros de datos a los que se tiene acceso utilizando las variables del sistema sys_iPulseChannelxCorrectedInitialSpeed y sys_iPulseChannelxCorrectedFinalSpeed (donde x=número del canal

Seleccionar uno de los dos modos de operación:

  • Modo "sin valor de preselección (tipo 0):

    Se envían pulsos según las condiciones establecidas en la DUT siempre que la condición de ejecución sea TRUE.Siempre que la condición de ejecución sea FALSE comienza una parada decelerada.

    1.  (1) Velocidad inicial y final
    2.  (2) Modificación de la velocidad de preselección
    3.  (3) Condición de ejecución
    4.  (4) Bandera de control de la salida de pulsos
    5.  (5) Parada decelerada
  • Modo "parada al alcanzar el valor de preselección" (tipo 1):

    La salida de pulsos se detiene cuando se alcanza el valor de preselección. Establecer este modo en el código de control, y especificar el valor de preselección (un valor absoluto) en la DUT.Se realiza una parada decelerada cuando se alcanza el valor de preselección. La deceleración se realiza dentro del tiempo de deceleración especificado.

    1.  (1) Velocidad inicial y final
    2.  (2) Modificación de la velocidad de preselección
    3.  (3) Condición de ejecución
    4.  (4) Bandera de control de la salida de pulsos
    5.  (5) Valor de preselección:
    6.  (6) Tiempo de deceleración

Modificación de la velocidad de preselección durante la salida de pulsos

  • 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.

Información de programación general

AVISO

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
  • Los cambios realizados en el código de control durante la ejecución de la instrucción no tienen efecto.
  • 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_EXTERNAL
		bActivateJog: BOOL:=FALSE;
	END_VAR
	VAR 
		dutJog: F172_PulseOutput_Jog_Type0_DUT_0:=dwControlCode := 16#1110;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 1=Frequency range 48Hz-100kHz
Digit 1: 1=Incremental counting
Digit 0: 0=CW*)
		diSpeed: DINT:=300;
		@'': @'';
	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 := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_F,E_MOVE!,Instance,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,diSpeed,14,2,16,4,);
B(B_VAROUT,,dutJog.diSpeed,22,2,24,4,);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_VARIN,,dutJog,14,2,16,4,);
B(B_VARIN,,0,14,3,16,5,);
B(B_F,F172_PulseOutput_Jog!,Instance,16,0,29,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

 (bActivateJog) then
  dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
  F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;

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