F175_PulseOutput_Linear

Interpolación lineal

Se envían pulsos desde dos canales según los parámetros especificados en la DUT, de forma que el recorrido a la posición destino forma una línea recta. 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

n_iPulseOutputChannelconstante

Canal de salida de pulsos:

FP-XH C30 T/P: 0–3

FP-XH C60 T/P: 0–5

FPS: 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

Para la interpolación, utilizar el canal 0 y el canal 1 o el canal 2 y 3 emparejados. Solo se debe especificar 0 o 2 (para el C14T: solo 0).

Entrada/salida

s_dutDataTable (DUT)

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

FPS, FP-X: F175_PulseOutput_Linear_DUT_0

FP0R: F175_PulseOutput_Linear_DUT_1

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

Utilizar la siguiente DUT predefinida: F175_PulseOutput_Linear_DUT_0

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/deceleración
  • valor de preselección eje X
  • Valor de preselección eje Y

Los siguientes parámetros para cada eje, se calculan a partir de la ejecución de la instrucción y se almacenan en el área del resultado de la operación de la DUT.

  • Velocidad inicial y final eje X
  • Velocidad de preselección eje X
  • Velocidad inicial y final eje Y
  • Velocidad de preselección eje Y
  • rango de frecuencia eje X
  • rango de frecuencia eje Y
  • número de pasos de aceleración/deceleración eje X
  • número de pasos de aceleración/deceleración eje Y

Diagrama de la salida de pulsos

valor de preselección eje X (canal 0): 5000

Valor de preselección eje Y (canal 2) (FP-X: canal 1): 2000

Los dos ejes se controlan de forma que la posición de preselección sigue un recorrido lineal.

  • La posición destino de cada eje debe estar dentro del rango de -8388608–8388607. Cuando se usa esta instrucción en combinación con otras funciones de salida de pulsos, como por ejemplo, F171_PulseOutput_Trapezoidal, el valor de preselección de estas instrucciones debe estar dentro del mismo rango.
  • Cuando se usa en aplicaciones que requieren precisión, es necesario realizar un test de prueba con la máquina real.
  • 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 se edita en modo RUN durante la salida de pulsos, se detiene la salida de pulsos una vez descargados los cambio del programa.
  • 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: F175_PulseOutput_Linear_DUT_1

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 eje X
  • Valor de preselección eje Y

Los siguientes parámetros para cada eje, se calculan a partir de la ejecución de la instrucción y se almacenan en el área del resultado de la operación de la DUT.

  • Velocidad inicial y final eje X
  • Velocidad de preselección eje X
  • Velocidad inicial y final eje Y
  • Velocidad de preselección eje Y

Diagrama de la salida de pulsos

valor de preselección eje X (canal 0): 5000

Valor de preselección eje Y (canal 1): 2000

Se envían pulsos desde el eje X (canal 0) y el eje Y (canal 1), de esta forma la velocidad inicial es 500Hz, la velocidad máxima es 5kHz, y el tiempo de aceleración/deceleración es 300ms. Los dos ejes se controlan de forma que la posición de preselección sigue un recorrido lineal.

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.

  • La salida de pulsos se detiene cuando se alcanza el valor de preselección.

  • La posición destino de cada eje debe estar dentro del rango de -8388608–8388607. Cuando se usa esta instrucción en combinación con otras funciones de salida de pulsos, como por ejemplo, F171_PulseOutput_Trapezoidal, el valor de preselección de estas instrucciones debe estar dentro del mismo rango.
  • Cuando se usa en aplicaciones que requieren precisión, es necesario realizar un test de prueba con la máquina real.
  • 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
  • Si se edita en modo RUN durante la salida de pulsos, se detiene la salida de pulsos una vez descargados los cambio del programa.
  • 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
		bTrigger: BOOL:=FALSE;
		dutLinearData: F175_PulseOutput_Linear_DUT_0:=dwControlCode := 16#1000,
diInitialAndFinalSpeed := 500,
diMaximumSpeed := 5000,
diAccelerationAndDecelerationTime := 300,
diTargetValue_X := 5000,
diTargetValue_Y := 2000;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 0=Fixed
Digit 1: 0=Relative value control 
Digit 0: 0=CW/CCW
*)
		@'': @'';
	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 := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bTrigger,4,2,6,4,R);
B(B_VARIN,,dutLinearData,11,4,13,6,);
B(B_VARIN,,0,11,3,13,5,);
B(B_F,F175_PulseOutput_Linear!,Instance,13,1,28,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF DF(bTrigger) then
    F175_PulseOutput_Linear(n_iPulseOutputChannel := 0, 
      s_dutDataTable := dutLinearData);
END_IF;

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