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.
Entrada
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
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
Utilizar la siguiente DUT predefinida: F175_PulseOutput_Linear_DUT_0
Se pueden especificar los siguientes parámetros en la DUT:
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.
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.
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.
Se recomienda encarecidamente proporcionar la posibilidad de una parada forzada en cualquier programa de posicionamiento.
Utilizar la siguiente DUT predefinida: F175_PulseOutput_Linear_DUT_1
Se pueden especificar los siguientes parámetros en la DUT:
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.
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.
Se recomienda encarecidamente proporcionar la posibilidad de una parada forzada en cualquier programa de posicionamiento.
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
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
IF DF(bTrigger) then
F175_PulseOutput_Linear(n_iPulseOutputChannel := 0,
s_dutDataTable := dutLinearData);
END_IF;