Cómo una alarma SCADA se convierte en un aviso de SAP PM
Captura, disparo, contexto y creación: las cuatro decisiones que convierten una alarma de SCADA/DCS en un aviso de mantenimiento en SAP PM.
En una planta de compresión de gas con SCADA maduro, la alarma por alta vibración de un compresor aparece en la consola, el operador la reconoce y el turno sigue. Lo que casi nunca ocurre es que esa misma alarma abra, por sí sola, un aviso de mantenimiento en SAP PM con el equipo correcto, la prioridad adecuada y un texto que el planificador pueda usar. En la pieza anterior de esta serie vimos que un dashboard sin conexión al mantenimiento no cambia nada. Aquí bajamos al mecanismo: qué tiene que pasar, técnicamente, para que una alarma se convierta en un aviso.
La respuesta más directa viene de la propia comunidad SAP. Un consultor que implementó esta integración la resumió así: las alarmas de SCADA/DCS se interconectan con los avisos de SAP, el equipo de proyecto construye su propia lógica y SAP MII se encarga de traducir las alarmas en avisos (SAP Community, 2014). Lo decisivo está en la mitad de esa frase: la lógica la pone cada proyecto. La traducción no viene de fábrica; se diseña.
Una alarma y un aviso no hablan el mismo idioma
Una alarma es un evento de proceso: un tag, un valor, un instante y un estado. Un aviso de mantenimiento es un objeto de negocio: un equipo o ubicación técnica, una clase de aviso, una prioridad, un texto y un responsable. A esa diferencia de naturaleza se suma una de granularidad: en el SCADA o en el historiador de planta los datos de proceso se registran en intervalos de milisegundos, segundos o minutos, mientras que en el MES y el ERP los horizontes son de horas, semanas o meses (Saha, SAPinsider, 2015).
De ahí que conectar «directo» no baste. Enviar notificaciones desde SAP Plant Connectivity (PCo) a los sistemas de negocio es técnicamente posible, pero no siempre tiene sentido entregarles la información cruda del tag sin la máquina, los parámetros o el proceso al que pertenece (Saha, SAPinsider, 2015).
El mecanismo en cuatro pasos
La traducción se resuelve en cuatro tramos encadenados. Cada uno responde una pregunta distinta:
| Paso | Qué resuelve | Cómo funciona |
|---|---|---|
| 1. Captura | De qué señales parte el aviso | PCo, componente complementario de SAP MII, se conecta de forma bidireccional con SCADA, DCS o historiadores de planta; entre sus conectores figuran OPC Alarms & Events, OPC DA, OPC UA y conectores para historiadores de distintos fabricantes (Saha, SAPinsider, 2015). |
| 2. Disparo | Qué separa el ruido de un evento | PCo se suscribe a uno o varios tags y, cuando un valor cambia y cumple una condición definida, envía un mensaje al sistema destino (Saha, SAPinsider, 2015). Es la primera línea de defensa contra la avalancha de avisos. |
| 3. Contexto | De qué equipo es el tag | El mensaje de PCo puede traer solo la información del tag (Saha, SAPinsider, 2015). La lógica en MII agrega el equipo con un mapeo en una tabla de base de datos, en un Manufacturing Data Object o en el Plant Information Catalog (PIC), que relaciona equipos de PM y puestos de trabajo de SAP ERP con los tags (Saha, SAPinsider, 2015). |
| 4. Creación | El aviso nace en SAP | Con el equipo identificado, la transacción de MII crea el aviso; conectar en tiempo real los sistemas de control con los de negocio permite disparar de forma automática las acciones de seguimiento, incluido el aviso de mantenimiento (Saha, SAPinsider, 2015). |
Dos lecturas salen de esta secuencia. En una planta de O&G de la región, el SCADA suele exponer ya un servidor OPC: el trabajo no consiste en instalar instrumentación nueva, sino en decidir a qué señales suscribirse. Y el paso que más pesa es el tercero: ahí ocurre la traducción real.
El filtro anti-rebote que nadie dibuja en el diagrama
Hay una pieza que rara vez aparece en las arquitecturas de preventa. La transacción que procesa la notificación puede programarse para esperar un intervalo breve y comprobar si llega una notificación inversa; si llega, la original se anula, porque el valor solo cruzó el umbral un instante (Saha, SAPinsider, 2015). Cuando ese filtro falta, el costo lo paga el planificador: recibe avisos duplicados y aprende a ignorarlos.
---
config:
theme: base
fontFamily: 'Inter Variable, system-ui, sans-serif'
themeVariables:
darkMode: true
fontFamily: 'Inter Variable, system-ui, sans-serif'
fontSize: '15px'
background: '#111113'
primaryColor: '#1A1A1D'
primaryTextColor: '#F4F5F8'
primaryBorderColor: '#8B5CF6'
secondaryColor: '#242428'
tertiaryColor: '#1A1A1D'
mainBkg: '#1A1A1D'
secondBkg: '#242428'
tertiaryBkg: '#2E2E33'
lineColor: '#8B5CF6'
textColor: '#F4F5F8'
titleColor: '#F4F5F8'
nodeBorder: '#8B5CF6'
clusterBkg: '#1A1A1D'
clusterBorder: '#2E2E33'
edgeLabelBackground: '#242428'
pie1: '#8B5CF6'
pie2: '#f59e0b'
pie3: '#22c55e'
pie4: '#b495f9'
pie5: '#f97316'
pie6: '#ef4444'
pieTitleTextColor: '#F4F5F8'
pieSectionTextColor: '#F4F5F8'
pieLegendTextColor: '#F4F5F8'
pieStrokeColor: '#111113'
pieOuterStrokeColor: '#111113'
---
flowchart TD
A([Llega la notificación de PCo]) --> B[La transacción espera un intervalo breve]
B --> C{¿Llega una notificación inversa?}
C -->|Sí| D([La original se anula])
class A inicio
class B proceso
class C decision
class D neutro
classDef inicio fill:#30274d,stroke:#8B5CF6,color:#ffffff
classDef decision fill:#473519,stroke:#f59e0b,color:#ffffff
classDef proceso fill:#33363c,stroke:#9aa0aa,color:#ffffff
classDef neutro fill:#33363c,stroke:#9aa0aa,color:#ffffff
El mismo criterio de selección vale para las mediciones. Desde la comunidad se recomienda copiar a SAP solo una lectura selectiva o filtrada de los valores que viven en el historiador, no el flujo completo (SAP Community, 2014).
Dos rutas documentadas para el último tramo
La traducción vía MII no es la única opción. En el mismo hilo, la solución aceptada describe otra ruta: un software de terceros, un middleware de integración (en ese caso SAP PI/XI) y las BAPI de avisos y documentos de medición de SAP PM para crear ambos objetos (SAP Community, 2013).
En SAP S/4HANA, el tramo final también puede resolverse con los servicios OData V2 estándar del sistema: plataformas industriales de terceros documentan la creación de avisos de mantenimiento por esa vía (Cognite, s. f.), con un mapeo explícito de campos como texto corto, prioridad y clase de aviso (Cognite, s. f.), y con envío asíncrono cuyo estado se consulta después (Cognite, s. f.).
Cada ruta involucra productos con licenciamiento y ciclo de vida propios —MII, PCo, middleware o plataformas de terceros—, así que conviene confirmarlos con SAP o con el fabricante antes de elegir, en particular el horizonte de mantenimiento de MII y PCo.
---
config:
theme: base
fontFamily: 'Inter Variable, system-ui, sans-serif'
themeVariables:
darkMode: true
fontFamily: 'Inter Variable, system-ui, sans-serif'
fontSize: '15px'
background: '#111113'
primaryColor: '#1A1A1D'
primaryTextColor: '#F4F5F8'
primaryBorderColor: '#8B5CF6'
secondaryColor: '#242428'
tertiaryColor: '#1A1A1D'
mainBkg: '#1A1A1D'
secondBkg: '#242428'
tertiaryBkg: '#2E2E33'
lineColor: '#8B5CF6'
textColor: '#F4F5F8'
titleColor: '#F4F5F8'
nodeBorder: '#8B5CF6'
clusterBkg: '#1A1A1D'
clusterBorder: '#2E2E33'
edgeLabelBackground: '#242428'
pie1: '#8B5CF6'
pie2: '#f59e0b'
pie3: '#22c55e'
pie4: '#b495f9'
pie5: '#f97316'
pie6: '#ef4444'
pieTitleTextColor: '#F4F5F8'
pieSectionTextColor: '#F4F5F8'
pieLegendTextColor: '#F4F5F8'
pieStrokeColor: '#111113'
pieOuterStrokeColor: '#111113'
---
flowchart TD
A([Alarma del SCADA/DCS]) --> B{Ruta del último tramo}
B -->|MII| C[Lógica propia en SAP MII]
B -->|Middleware| D[Software de terceros y SAP PI/XI]
D --> E[BAPI de avisos y documentos de medición]
B -->|OData| F[Servicios OData V2 estándar de S/4HANA]
F --> G[Mapeo de campos y envío asíncrono]
C --> H([Aviso de mantenimiento en SAP PM])
E --> H
G --> H
class A inicio
class B decision
class C,D,E,F,G proceso
class H bueno
classDef inicio fill:#30274d,stroke:#8B5CF6,color:#ffffff
classDef decision fill:#473519,stroke:#f59e0b,color:#ffffff
classDef proceso fill:#33363c,stroke:#9aa0aa,color:#ffffff
classDef bueno fill:#193e2b,stroke:#22c55e,color:#ffffff
Qué decidir antes de conectar la sala de control con SAP PM
Especializados en IS-U y en mantenimiento de activos, en Consultoría Venezuela vemos que el éxito de esta integración se define antes de escribir la primera interfaz, y estas cinco decisiones son las que más pesan.
Resuelto el mecanismo, queda la pregunta más delicada: qué condición decide que un dato de sensor merece una alerta. Esa regla, y cómo configurarla sin ahogar al planificador, es el tema de la próxima pieza de esta guía.
Lecturas relacionadas
Fuentes
- SAP Community (2013-2014). SCADA-PM Integration (hilo de preguntas y respuestas). https://community.sap.com/t5/enterprise-resource-planning-q-a/scada-pm-integration/qaq-p/9619407
- Saha, D. (2015). Enable Real-Time Integration with Manufacturing Automation Using SAP MII. SAPinsider. https://sapinsider.org/enable-real-time-integration-with-manufacturing-automation-using-sap-mii/
- Cognite (s. f.). SAP writeback service. Documentación de Cognite Data Fusion. https://docs.cognite.com/cdf/integration/guides/interfaces/sap_writeback.md
- Cognite (s. f.). Set up the SAP writeback service. Documentación de Cognite Data Fusion. https://docs.cognite.com/cdf/integration/guides/interfaces/sap_writeback_setup.md
Artículo de Edward Camacho Guerra, elaborado con apoyo de herramientas de inteligencia artificial y revisado y aprobado por el autor.
¿Este análisis describe un mercado donde ya opera o que está evaluando?
Revisamos su caso, mapeamos los riesgos que aplican y le decimos con franqueza si es una oportunidad para usted —sin presentación comercial, solo una conversación técnica y estratégica.