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.
Entrada
Dirección de inicio del área que contiene la tabla de datos
F171_PulseOutput_Jog_Positioning_Type0_DUT o F171_PulseOutput_Jog_Positioning_Type1_DUTCanal de salida de pulsos:0–3
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
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.
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);
).
Durante la parada, desactivar todas las funciones de salida de pulsos para el canal utilizado en el programa.
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: |
Velocidad inicial y final
Velocidad máxima
Valor de preselección:
Tiempo de aceleración
Tiempo de deceleración
Condición de ejecución
Condición de ejecución del control de posición
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.
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: |
Velocidad inicial y final
Velocidad máxima
Velocidad máxima
Valor de preselección:
Tiempo de aceleración
Modificar el tiempo
Tiempo de deceleración
Condición de ejecución
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.
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.
F171_PulseOutput_Jog_Positioning_Type0_DUT
F171_PulseOutput_Jog_Positioning_Type1_DUT
Modificar el código de control de la salida de pulsos
PulseOutput_Jog_Positioning0_FB Operación de JOG y posicionamiento
PulseOutput_Jog_Positioning1_FB Operación de JOG y posicionamiento
PulseControl_JogPositionControl Inicia el control de posición
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
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
IF (Start) then
dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;