Desarrolladores/Fundamentos
Arquitectura
Capas, módulos y fronteras del motor para contribuir o extender abSCADA.
2 min de lectura
abSCADA es un monolito modular en Python. Una sola aplicación, pero con un núcleo que no conoce la interfaz: proyecto, runtime, alarmas y almacenamiento funcionan sin Qt.
Capas
Studio (Qt) ──► Project (carga y validación) ◄──► Archivos JSON
│
└──► RuntimeWindow ──► Runtime (almacén de muestras)
├── Cola de escrituras
├── Trabajador por conexión ──► Connector ──► S7 / Modbus
├── OperationsService ──► SQLite (alarmas, registros)
└── ScriptService ──► proceso Python aislado
Módulos principales
| Módulo | Responsabilidad | No conoce |
|---|---|---|
project.py |
Carga, validación, estructuras y faceplates | Qt, sockets |
connectors.py |
Contrato Connector, registro y S7 |
Widgets |
protocol_definition.py |
Esquemas de conexión y enlace | Qt, red |
modbus.py |
Cliente Modbus TCP | Pantallas |
runtime.py |
Valores, calidad, cola, adquisición | Edición gráfica |
alarms.py |
Máquina de estados de alarmas | Transporte |
storage.py |
SQLite, consultas, retención | Clientes PLC |
scripting.py |
Coordinador de scripts y tareas | Widgets |
graphics.py |
Lienzo y primitivas de dibujo | Clientes PLC |
ui.py |
Studio | Lecturas en vivo |
runtime_window.py |
Ventana de operación | Estado editable |
Principios
- Studio nunca consume muestras. Runtime trabaja sobre una copia profunda del proyecto.
- Las escrituras son órdenes. Se validan antes de encolarse y no se reproducen tras reconectar.
- Un trabajador por conexión. Un equipo lento no retrasa a otro.
- Un único escritor SQLite. Los trabajadores PLC solo entregan muestras a una cola.
- Formatos abiertos. No se serializan objetos Qt ni binarios opacos.
Modelo de muestra
Sample(value=72.4, quality="good", timestamp=1759651200.123, error=None)
quality es good, uncertain o bad. timestamp es la hora de actualización en el runtime, no una marca del PLC.
Límites conocidos
Las lecturas dentro de una conexión son individuales. Para miles de variables harán falta lecturas agrupadas, métricas y calidad stale. No se ha medido todavía la capacidad máxima.