37 lines
4.7 KiB
Markdown
37 lines
4.7 KiB
Markdown
#### FB5151 FB5151_RampGenerator
|
|
***
|
|
|
|
1. **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.
|
|
2. **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.
|
|
3. **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.
|
|
4. **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.
|
|
5. **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.
|
|
6. **Cálculo de distancias**: Se calcula la distancia actual hasta el destino y la distancia requerida para el movimiento.
|
|
7. **Control de la dirección del motor**: Se establecen comandos para el movimiento del motor en función de la posición deseada.
|
|
8. **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).
|
|
9. **Manejo de la desaceleración**: Si se activa el comando de rampa de desaceleración, se ajusta la velocidad de referencia en consecuencia.
|
|
10. **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.
|
|
11. **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:
|
|
***
|
|
1. **Conversión de DINT a REAL**: Prepara las variables para cálculos de precisión en punto flotante.
|
|
2. **Inicialización de Variables**: Se establecen valores iniciales y límites para las velocidades y deceleraciones.
|
|
3. **Verificación de Límites**: Asegura que las velocidades no excedan los máximos o mínimos definidos.
|
|
4. **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`).
|
|
5. **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.
|
|
6. **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. |