Modernización de Molino de Arena
Este proyecto consistió en la sustitución de un sistema de control obsoleto basado en un PC 486 por una solución moderna utilizando un PLC Raspberry 57AAR de Industrial Shields.
Descripción Técnica
El sistema fue programado desde cero en Python, utilizando la librería librpiplc para la interacción con el hardware del PLC. El programa gestiona de forma autónoma todo el proceso de batido de arena, ajustando en tiempo real la dosificación de agua en función de la humedad y temperatura, datos leídos desde un Arduino conectado por USB.
Arquitectura del Software
El corazón del sistema es una aplicación Python robusta y multihilo, diseñada para funcionar de manera ininterrumpida 24/7. La interfaz de usuario, desarrollada con Tkinter, permite la monitorización y configuración de parámetros en tiempo real.
- Control de PLC: Se utiliza la librería
librpiplcpara una comunicación de bajo nivel y alta fiabilidad con todas las entradas y salidas del PLC de Industrial Shields. - Gestión de Sensores: Un hilo de ejecución independiente se dedica a la comunicación serie con un Arduino, que actúa como conversor para el sensor de temperatura, garantizando lecturas constantes sin bloquear el proceso principal.
- Lógica de Control: El programa implementa una máquina de estados finitos para gestionar las distintas fases del ciclo del molino (carga, premezcla, batido, descarga), asegurando un funcionamiento predecible y seguro.
- Seguridad y Persistencia: La configuración se guarda en formato JSON, permitiendo ajustes persistentes. Además, se implementa un sistema de logs para registrar cada molinada y facilitar la trazabilidad.