Ingeniero de Automatización · IIoT · Visión Artificial
Conecto la planta (PLCs, sensores, robots) con el software que la explota: datos, IA y plataformas en producción.
Más de 9 años entre el cuadro eléctrico y el servidor. Empecé programando y poniendo en marcha PLCs en líneas de producción por medio mundo, seguí como especialista en automatización, y hoy diseño de extremo a extremo plataformas que operan flotas de robots de inspección autónoma en refinerías.
Ese recorrido me da algo poco común: entiendo el proceso, el PLC y la red OT y también el backend, el contenedor y el modelo de visión que los explotan. Hablo el idioma del jefe de mantenimiento y el del equipo de software.
Qué me puedes pedir:
- 🏭 Automatización industrial — programación de PLC (Siemens, Rockwell, Omron, Schneider), puesta en marcha, retrofit y conectividad de parques de PLC heterogéneos y legacy.
- 📡 IIoT / Edge — captura de datos de planta (S7, EtherNet/IP, OPC UA, Modbus), pasarelas y brokers (MQTT, RabbitMQ), pipelines a base de datos y dashboards, todo dockerizado.
- 🐍 Python a medida — librerías propias de adquisición, procesamiento y automatización; servicios FastAPI; integración con sistemas existentes.
- 👁️ Visión artificial aplicada — detección de objetos (YOLO / OpenCV), lectura de instrumentos, clasificación de obstáculos, modelos multimodales en producción.
- 🔗 Integración low-code — Node-RED y n8n para orquestar flujos entre planta, IT y servicios cloud cuando no hace falta reinventar la rueda.
- 🤖 Robótica móvil autónoma — plataformas de scheduling, monitorización, KPIs/OEE e informes con IA para flotas en entornos oil & gas.
| Capa | Tecnologías |
|---|---|
| OT / Control | Siemens (TIA Portal, S7-300/1200/1500) · Rockwell (Studio 5000, CompactLogix) · Omron · Schneider · Profinet / Profibus / EtherNet/IP · OPC UA · Modbus |
| IIoT / Mensajería | MQTT (Mosquitto) · RabbitMQ · Node-RED · n8n · Kepware · ThingWorx |
| Lenguajes | Python (principal) · TypeScript / JavaScript · SQL · Structured Text / Ladder |
| Backend & Datos | FastAPI · SQLAlchemy · PostgreSQL (+ PostGIS) · Redis · GraphQL · MySQL |
| Visión / IA | YOLO · OpenCV · dlib · modelos multimodales (Gemini) · pipelines de inferencia en edge |
| Frontend | React 18 · TypeScript · Vite · TailwindCSS · Leaflet · Recharts |
| Infra / DevOps | Docker & Docker Compose · Caddy / Nginx · GitHub Actions (CI/CD) · AWS S3 · Sentry · Linux |
Sistemas reales que he diseñado y que están operando en plantas industriales. El código es confidencial, así que cada repositorio documenta el problema, la arquitectura, las piezas, cómo se conjuntan y cómo trabajo con cada tecnología.
| Caso | Qué resuelve | Tecnologías clave |
|---|---|---|
| 🤖 Robot Mission Scheduler & Monitoring | Planificar y monitorizar misiones de flotas de robots de inspección: tiempo real, KPIs/OEE, informes PDF con IA, obstáculos por visión, multi-planta | FastAPI · React · PostgreSQL · Redis · Docker · Gemini Vision · CI/CD |
| 👁️ Level Gauge Vision | Lectura automática de medidores de nivel en fotos de robots: detector YOLO11 entrenado a medida + LLM multimodal solo sobre el recorte | YOLO11 · Gemini · FastAPI · Celery · Redis · Docker |
| 🛡️ Robot Fleet Watchdogs | Microservicios que reanudan misiones pausadas, vigilan presión ATEX y batería 24/7 sin operador | Python · GraphQL · SQLite · SMTP · Docker |
| 📡 MQTT Traceability Dashboard | Trazabilidad en vivo de una celda de fabricación: PLCs → MQTT → FastAPI → WebSocket con JWT | MQTT · FastAPI · WebSocket · JWT |
Dos implementaciones del mismo patrón IIoT — leer un DB del PLC, detectar cambios y publicar solo lo que cambia — en los dos lenguajes que uso en el edge:
- snap7_PLC_adquisition — Python + Snap7 + asyncio → RabbitMQ. Lectura tipada de bools, bytes, int16, int32 y float sobre offsets del DB.
- nodes7_js — Node.js + nodes7 → MQTT, con web service Express para configurar el PLC (IP, rack/slot, DB, variables) desde el navegador. Ciclo de lectura de 30 ms.
Servicio público en vivo que integra tres fuentes oficiales de la DGT, persiste incidencias con geodatos en PostgreSQL y calcula un índice de vulnerabilidad (aislamiento, exposición temporal, horario, tipo de vía) para detectar conductores en riesgo. Backend + frontend + Nginx en Docker Compose.
TypeScript PostgreSQL/PostGIS Docker Leaflet
Visión artificial en tiempo real sobre cámara: landmarks faciales, detección de parpadeo, bostezo y ojos cerrados con alerta.
Python OpenCV dlib
🧰 MyTools
Caja de herramientas Python que uso en proyectos reales: cliente OPC UA, servidor Snap7 simulado, consumidores RabbitMQ → CSV, escáneres ARP/ICMP de red OT, generación automática de informes, dashboards, transcripción y traducción de audio…
- Primero el proceso, luego el código. Antes de conectar nada, entiendo qué hace la máquina y qué NO se puede tocar. Regla de oro en planta: no penalizar la producción.
- Patrón DB única. En proyectos nuevos, todo lo que el PLC debe comunicar se copia a un único DB; el mundo exterior solo toca ese DB. Menos riesgo, más mantenible.
- Publicar por cambio, no por ciclo. Los sistemas IIoT que diseño detectan cambios en origen y publican solo lo que varía: menos tráfico, menos carga en el broker, histórico limpio.
- Producción de verdad. Seguridad (RBAC, secretos, cabeceras), observabilidad (Sentry end-to-end), CI/CD y backups no son extras: van en la primera entrega.
¿Tienes un parque de PLCs que quieres conectar, una planta que necesita datos en tiempo real, un caso de visión artificial en línea de producción o una flota de robots que operar? Escríbeme.



