Glosario de Automatización • Colisión de nombres

¿Qué es una colisión de nombres de tag en SCADA?

Ingeniería Merobix • • 9 min de lectura

Un nombre de tag debe ser un asa única sobre un punto físico, de modo que siempre que el sistema lea o escriba ese nombre, todos sepan exactamente cuál medición se quiere. Una colisión de nombres es lo que ocurre cuando esa promesa se rompe: dos puntos genuinamente distintos terminan cargando el mismo nombre, o resolviendo a la misma ruta, y el sistema ya no los puede distinguir. Cuando eso pasa, un punto sobrescribe u oculta en silencio al otro, y los datos se corrompen sin que se levante ningún error. Esta guía explica cómo surgen las colisiones, por qué los espacios de nombres planos y jerárquicos difieren en su exposición a ellas, y cómo se hace cumplir la unicidad y se detectan las colisiones durante fusiones y despliegues.

Volver al glosario

Colisión de nombres en una línea: Una colisión de nombres de tag ocurre cuando a dos puntos físicos distintos se les da el mismo nombre de tag, o resuelven a la misma ruta, de modo que el sistema no los puede distinguir y uno sobrescribe u oculta al otro. A diferencia de un tag duplicado, donde un solo punto se define dos veces, una colisión une dos mediciones reales distintas bajo una identidad, corrompiendo los datos en silencio. Las colisiones se previenen haciendo cumplir restricciones de unicidad y son más probables durante fusiones de sistemas y despliegues de espacio de nombres unificado.

Cómo una colisión corrompe datos en silencio

Una colisión de nombres es una falla de unicidad. Todo el valor de un nombre de tag es que apunta a exactamente una cosa, de modo que cuando un valor se almacena, se lee o se alarma bajo ese nombre, no hay ambigüedad sobre cuál punto físico está involucrado. Una colisión rompe esa garantía al atar un nombre a dos puntos reales distintos. Ahora el nombre ya no identifica una medición, identifica dos, y el sistema no tiene manera confiable de saber sobre cuál es una lectura o escritura dada. La identidad de la que depende todo el modelo de datos se ha vuelto en silencio no única.

La consecuencia suele ser que un punto sobrescriba u oculte al otro. Si dos puntos mapean al mismo nombre en un almacén indexado por ese nombre, el que actualice último gana, así que el valor almacenado parpadea entre dos mediciones no relacionadas o los datos de un punto simplemente se pierden bajo los del otro. Si en cambio la resolución oculta, un punto se vuelve invisible porque toda referencia al nombre compartido resuelve al otro. En cualquier caso la corrupción es silenciosa: ningún error de tipo, ninguna violación de rango, ninguna alarma, solo un valor que a veces es un punto y a veces otro, o un punto cuyos datos han desaparecido sin un mensaje que diga por qué.

Ese silencio es lo que hace tan perniciosas a las colisiones. Una conexión caída o una bandera de mala calidad se anuncian, pero una colisión produce valores de aspecto plausible que simplemente se atribuyen al punto equivocado, y la falla puede persistir inadvertida hasta que alguien cuestiona por qué una tendencia se comporta raro o por qué un punto que debería tener datos no los tiene. Como los datos siguen fluyendo y los números se ven razonables, una colisión puede corromper registros por mucho tiempo antes de que alguien note que el nombre en el que confiaban apuntaba a dos cosas distintas todo el tiempo.

Colisiones frente a duplicados, y espacios de nombres planos frente a jerárquicos

Vale la pena separar una colisión de un tag duplicado, porque son fallas distintas con arreglos distintos. Un duplicado es el mismo punto físico definido más de una vez, así que las definiciones redundantes describen la misma medición y el remedio es quitar las de más y quedarse con una. Una colisión es lo opuesto: dos puntos genuinamente distintos forzados bajo un nombre, así que no hay copia redundante que borrar, y el arreglo es darle a uno de los puntos una identidad nueva y distinta. Confundir una colisión con un duplicado y borrar una entrada simplemente tiraría los datos de un punto real, así que distinguirlos importa.

La forma del espacio de nombres afecta fuertemente qué tan seguido ocurren las colisiones. Un espacio de nombres plano, donde cada nombre de tag debe ser único en todo el sistema sin estructura que los separe, obliga a cada punto de un patrimonio grande a competir por nombres en un solo grupo global. A medida que crece la cantidad de puntos y a medida que distintas áreas, sitios o equipos eligen nombres de forma independiente, las probabilidades de que dos puntos no relacionados caigan en la misma cadena suben rápido, sobre todo con patrones comunes como nombrar los puntos por una función genérica. Un espacio de nombres plano no ofrece barrera natural entre los nombres de un área y los de otra.

Un espacio de nombres jerárquico reduce la exposición al dar a cada nombre un contexto. Cuando la identidad completa de un punto incluye su lugar en una estructura - un sitio, un área, una pieza de equipo y luego la medición - dos puntos que comparten un nombre local corto siguen siendo distintos porque sus rutas completas difieren. Esto permite reutilizar el mismo nombre corto con seguridad en distintas ramas, lo cual es natural y conveniente, manteniendo únicas las identidades completas. La jerarquía no elimina las colisiones, sin embargo; mueve el riesgo al nivel de la ruta, donde dos ramas aún se pueden definir de modo que puntos distintos resuelvan a la misma ruta completa, así que la unicidad todavía debe hacerse cumplir, solo que sobre rutas en lugar de nombres pelados.

Hacer cumplir la unicidad y detectar colisiones en SCADA

La defensa principal contra las colisiones es una restricción de unicidad que se hace cumplir cuando se crea un tag, de modo que el sistema rechace un nombre, o una ruta completa, que ya existe en lugar de permitir en silencio la identidad duplicada. Una restricción aplicada en el momento de la definición convierte una colisión potencial en un error que el configurador debe resolver de inmediato, lo cual es mucho mejor que descubrir el choque más tarde como datos corruptos. Donde el espacio de nombres es jerárquico, la restricción tiene que ser sobre la ruta completa resuelta, no solo el nombre hoja, para que dos ramas no se puedan arreglar de modo que canalicen puntos distintos a la misma dirección.

Las colisiones son más probables en momentos en que dos espacios de nombres construidos de forma independiente se juntan, que es exactamente cuando la detección merece más atención. Fusionar dos sistemas, cada uno internamente consistente, puede poner en conflicto sus grupos de nombres, porque un nombre que era único dentro de cada uno se vuelve no único entre ambos. Lo mismo pasa durante un despliegue de espacio de nombres unificado, cuando muchos sistemas existentes se pliegan en un espacio de nombres objetivo y nombres que nunca tuvieron que coexistir de pronto deben hacerlo. Correr una verificación de colisiones sobre el conjunto combinado antes de confirmar la fusión, listando cada nombre o ruta que terminaría compartido por más de un punto, saca a la luz los conflictos mientras aún se pueden resolver por diseño en lugar de descubrirse más tarde como daño.

Para una plataforma SCADA de nube como Merobix, que consolida puntos de muchos sitios en un solo espacio de nombres central, hacer cumplir la unicidad en la ingesta es esencial precisamente porque los datos están unificados. Cuando se incorporan los puntos de un sitio nuevo, un esquema de nombres que estaba bien en aislamiento puede colisionar con nombres ya presentes en el almacén central, así que verificar cada nombre o ruta entrante contra lo que ya existe, y exigir una identidad distinta antes de aceptar el punto, evita que un sitio nuevo sobrescriba u oculte en silencio los datos de un punto existente. Como la plataforma guarda todos los puntos bajo un espacio de nombres gobernado, la verificación de unicidad se puede aplicar de forma consistente en toda la flota, y una colisión que de otro modo corrompería un histórico compartido se atrapa como un conflicto de incorporación por resolver en lugar de un problema de datos misterioso después del hecho.

Preguntas frecuentes

¿En qué se diferencia una colisión de nombres de un tag duplicado?

Un tag duplicado es el mismo punto físico definido más de una vez, así que el arreglo es quitar las definiciones redundantes y quedarse con una. Una colisión de nombres son dos puntos genuinamente distintos forzados bajo un nombre, así que no hay copia redundante que borrar y el arreglo es darle a uno de los puntos una identidad nueva y distinta. Borrar una entrada en una colisión tiraría los datos de un punto real, y por eso las dos fallas se deben distinguir.

¿Por qué los espacios de nombres planos sufren más colisiones que los jerárquicos?

En un espacio de nombres plano cada nombre de tag debe ser único en todo el sistema en un solo grupo global, así que a medida que se multiplican los puntos y distintas áreas eligen nombres de forma independiente, la probabilidad de que dos puntos no relacionados caigan en la misma cadena sube. Un espacio de nombres jerárquico da a cada nombre un contexto de sitio, área y equipo, así que el mismo nombre corto se puede reutilizar con seguridad en distintas ramas manteniendo únicas las identidades completas, aunque la unicidad debe entonces hacerse cumplir sobre la ruta completa.

¿Cuándo son más probables las colisiones de nombres?

Cuando dos espacios de nombres construidos de forma independiente se juntan. Fusionar dos sistemas que cada uno era internamente consistente puede hacer que un nombre único dentro de cada uno se vuelva no único entre ambos, y un despliegue de espacio de nombres unificado pliega muchos sistemas existentes en un objetivo donde nombres que nunca tuvieron que coexistir de pronto deben hacerlo. Correr una verificación de colisiones sobre el conjunto combinado antes de confirmar la fusión saca a la luz los conflictos mientras aún se pueden resolver.

Más en Fundamentos de SCADA
Agregar un tag en SCADA  •  Tag atorado en cero  •  Nombre de tag canónico  •  Registro dorado  •  Tag de mala calidad  •  Todo en Fundamentos de SCADA →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →