4.7 KiB
FB5151 FB5151_RampGenerator
- Conversión de DINT a REAL: Al principio, varias variables enteras de gran tamaño (DINT) relacionadas con la velocidad y aceleración del motor se convierten a números de punto flotante (REAL) para cálculos precisos.
- Inicialización y asignación de valores: Se establecen valores para las RPM máximas del motor, la velocidad máxima en mm/s, y se define un retraso para cuando el eje no se mueve.
- Control de límites: Se implementan condicionales para asegurar que las velocidades no superen los valores máximos establecidos ni caigan por debajo de los mínimos o cero.
- Comprobación de movimiento: Se comprueba si el motor está en movimiento y se implementan lógicas para la inversión del movimiento durante el funcionamiento.
- Sincronización de velocidad: Se gestionan los cambios de velocidad en tiempo real (sincronización) y se calculan las velocidades de rampa de inicio en proporción a la velocidad de configuración y los valores máximos de deceleración.
- Cálculo de distancias: Se calcula la distancia actual hasta el destino y la distancia requerida para el movimiento.
- Control de la dirección del motor: Se establecen comandos para el movimiento del motor en función de la posición deseada.
- Establecimiento de la velocidad de referencia: La velocidad de referencia se ajusta en función de si el motor está en modo de posicionamiento o en modo de operación manual (Jog).
- Manejo de la desaceleración: Si se activa el comando de rampa de desaceleración, se ajusta la velocidad de referencia en consecuencia.
- Reversión de vuelo: Si se requiere una inversión durante el movimiento, se inicia un retraso antes de que se permita cualquier otro movimiento.
- Manejo de errores: Si el motor no se detiene como se esperaba, se activa una alarma después de un cierto período.
Al final del programa, se actualizan las variables de seguimiento y se convierte la velocidad de referencia de vuelta a DINT para que el PLC pueda usarla.
Este código implementa un controlador que gestiona la aceleración, regulación de velocidad y desaceleración del motor, incluyendo ajustes en tiempo real basados en la posición y velocidad actual. Además, incluye medidas de seguridad para manejar situaciones anómalas cuando el motor no se comporta como se prevé.
Puntos claves:
- Conversión de DINT a REAL: Prepara las variables para cálculos de precisión en punto flotante.
- Inicialización de Variables: Se establecen valores iniciales y límites para las velocidades y deceleraciones.
- Verificación de Límites: Asegura que las velocidades no excedan los máximos o mínimos definidos.
- Cálculo de la Velocidad de Rampa: Ajusta la velocidad de referencia (
#R_SpeedRef
) en función de la distancia actual al destino y la velocidad deseada (#R_SpeedSP
). - Sincronización de Velocidad: Si se cambia la velocidad deseada mientras el motor está en movimiento, la velocidad de referencia se ajusta gradualmente hacia la nueva velocidad deseada.
- Control de la Dirección y Velocidad: Se toman decisiones basadas en si el motor debe moverse hacia adelante o hacia atrás y se aplica la lógica de la rampa de velocidad correspondiente.
La idea del método de generación de rampa utilizada aquí se basa en:
- Rampas de Aceleración: Incrementar la velocidad de referencia en pasos (definidos por
#R_SpeedStepAccCalc
) hasta que se alcance la velocidad deseada (#R_SpeedSP
), siempre que la distancia actual al destino sea mayor que la distancia requerida para comenzar a desacelerar (#R_StartDecFwSP
o#R_StartDecBwSP
). - Rampas de Desaceleración: A medida que el motor se acerca al destino, la velocidad de referencia se ajusta hacia abajo siguiendo una curva predefinida basada en la distancia restante y las velocidades de desaceleración mínimas (
#R_SpeedFwMinDec
o#R_SpeedBwMinDec
). - Velocidad Constante: Si no hay necesidad de acelerar o desacelerar (es decir, el motor ya está a la velocidad deseada y no está cerca del destino), la velocidad de referencia se mantiene constante.
- Caso de Inversión en Vuelo: Si se detecta que se debe cambiar la dirección del movimiento mientras el motor está en movimiento, se activa una lógica especial para manejar esta transición.
- Parada de Emergencia y Jog: En caso de condiciones de parada de emergencia o si el motor está en modo manual (Jog), la rampa de desaceleración se activa para llevar el motor a una parada controlada.
La lógica de rampa es esencial para aplicaciones donde el control suave del motor es crucial, y es especialmente común en aplicaciones de control de movimiento donde la precisión y la protección del equipo son importantes.