XML

PorLogicbus

Jul 22, 2019

XML es cada vez más importante en el mundo de la automatización industrial, es una “tormenta perfecta” de funcionalidad y requisitos, al mismo tiempo, a medida que hay más y más dispositivos inteligentes capaces de producir datos, existe una creciente demanda de esos datos en aplicaciones de base de datos, analíticas, de archivo y otras aplicaciones similares a las de TI.

Este artículo describe el lenguaje de marcado extensible; cómo y por qué se utiliza para impulsar estas aplicaciones de datos en la industria.

En los primeros días de la computación hubo una especie de guerra informática, había dos grandes gorilas haciéndolo desaparecer; Intel y Motorola, el campo de batalla era cómo representar datos de 16 bits en la memoria de una computadora.

Hemos avanzado bastante desde esos primeros días, pero en ese momento no había ninguna red, no había HMI (interfaces de máquina humana) y no había muchos tipos de dispositivos de entrada, en algunas de esas computadoras tempranas, las personas intercambiaban los programas con la computadora.

MT4532TE, pantalla HMI de 10.1″ 64K colores TFT, resolución de 800×480.
MT4532TE, pantalla HMI de 10.1″ 64K colores TFT, resolución de 800×480.

El movimiento de 8 bits a 16 bits fue trascendental, un salto cuántico en la tecnología, Pero las dos compañías diferían en cómo representar esos datos en la memoria, los datos de 8 bits fueron organizados por 8 líneas de datos, una línea fue el primer bit y la octava fue el octavo bit, Todos estuvieron de acuerdo en eso, pero qué hacer con los datos de 16 bits, ¿fue el primer grupo de 8 bits la parte alta del valor de 16 bits o el segundo grupo de 8 bits la parte alta del valor de 16 bits? en los primeros días de los microprocesadores, esto fue realmente trascendental.

Por supuesto, no pudieron estar de acuerdo y los sistemas construidos con componentes de Motorola usaron los primeros 8 bits como la parte alta del valor de 16 bits, mientras que los sistemas construidos con Intel usaron los segundos 8 bits, y a medida que pasaba el tiempo, hubo más desacuerdos sobre otros tipos de datos, cuántos bits comprendían un número de punto flotante, cuántos bits en un número real y cómo ordenar caracteres ASCII en la memoria, la palabra “HOLA” todavía está codificada en algunos sistemas como EHLL _O, donde el subrayado representa el carácter de espacio ASCII.

A medida que crecía la necesidad de mover datos de un sistema a otro, las personas comenzaron a escribir traductores, si supiera cómo el sistema 1 trató los puntos flotantes usando 64 bits con tantos bits para la mantisa y demás, y si los otros sistemas usaban 32 bits con su formato, podría escribir un traductor, ¿costoso? sí, ¿pérdida de tiempo? absolutamente, ¿eficaz? una especie de ¿eficiente? de ninguna manera.

Obviamente eso no iba a funcionar por mucho tiempo, entonces surgió la idea de que todos reconocen los caracteres ASCII, cuando camino al banco con mi cheque de pago y tiene los seis caracteres “$ 10.27”, el cajero reconoce esos personajes y deposita mis diez dólares y veintisiete centavos.

Así que la idea era usar ASCII ya que todos entienden los caracteres ASCII, si solo enviamos una secuencia de caracteres ASCII como este de un sistema a otro, todos pueden entender lo que estamos tratando de comunicar, un punto flotante de 64 bits en un sistema con el valor “125.8904” se envía como ocho caracteres ASCII y el sistema receptor lo almacena correctamente como un punto flotante de 32 bits, su formato de punto flotante nativo.

Y el lenguaje de datos para enviar estos caracteres ASCII de un sistema a otro se conoce como eXtensible Markup Language, ¡Y nació XML!

¿Por qué XML en la automatización?

Seamos realistas: si tuvieramos la opción no elegiríamos XML, sé lo que estás pensando, ¿No podemos encontrar otro uso que no sea ASCII?

Bueno, estoy de acuerdo contigo, ASCII ciertamente no sería mi primera opción, es caro para los dispositivos de automatización de muchas maneras, típicamente, las aplicaciones de automatización son de bajo costo, como muy bajo costo, los vendedores de I/O luchan entre sí por centavos, es despiadado y feroz, enviar datos ASCII significa que debe tener un montón de RAM para mantener todas esas cadenas ASCII, no puedes enviarlos hasta que los construyas y cuando los construyes debes tener un lugar para almacenarlos, y la memoria RAM cuesta dinero; piezas, dimensiones y montaje.

Y está el costo adicional del código para generar los archivos XML y la capacidad de procesamiento para mover todos esos caracteres ASCII, Es una especie de pesadilla para un dispositivo de automatización, pero aún así, te estoy advirtiendo que XML es lo que debes planear usar, ¿Por qué?

GW-7552, convertidor maestro/esclavo de ProfiBus a Modbus RTU, está especialmente diseñado para dispositivos esclavos del protocolo PROFIBUS DP.
GW-7552, convertidor maestro/esclavo de ProfiBus a Modbus RTU, está especialmente diseñado para dispositivos esclavos del protocolo PROFIBUS DP.

Es sencillo, nos guste o no, XML es el estándar utilizado por la gente de TI en todo el mundo, y es la gente de TI y su estándar lo que está siendo empujado hacia la industria, la gente de TI usa XML porque no les importa la RAM, no les importa el ancho de banda del procesador, solo se actualizan a otra plataforma cuando uno se queda sin gasolina.

Todas sus ofertas estándar de Microsoft, por ejemplo, como Word, Excel y el resto, están centradas en XML, Open Office XML (también conocido informalmente como OOXML o OpenXML) es un formato de archivo basado en XML desarrollado por Microsoft para representar hojas de cálculo, cuadros, presentaciones y documentos de procesamiento de textos, a partir de Microsoft Office 2007, los formatos de archivo de Open Office XML se han convertido en el formato de archivo de destino predeterminado para todos los productos de Microsoft Office.

Dado que la gran preponderancia de las aplicaciones de Microsoft, los motores de base de datos y los programas de análisis utilizan XML para enviar y recibir datos, nosotros, los automatistas, no tenemos más remedio que jugar con los grandes, especialmente en un área donde tenemos mucho que ganar.

Entonces, ¿qué es XML? Visión general rápida de XML

XML es un lenguaje de metamarkup, eso significa que los datos en un documento XML están rodeados por un marcado de texto que asigna etiquetas a los valores de los datos, cada valor de datos junto con su nombre distintivo de etiqueta es un elemento XML, la unidad básica y definitoria de un documento XML, la colección completa de elementos forma el documento XML.

A diferencia de cualquier otro número de estándares de documentos, un documento XML no tiene un conjunto específico de etiquetas requeridas, en su lugar, las etiquetas están definidas por el creador del documento, un químico puede crear elementos XML para nombres químicos, mientras que un abogado puede crear elementos XML relacionados con un caso judicial, los creadores de documentos XML los inventan a medida que los necesitan.

Si bien los nombres de los Elementos XML tienen pocas restricciones, los documentos XML se componen de una gramática muy específica, La gramática especifica dónde se pueden colocar los elementos XML, cómo se especifican los elementos secundarios, cómo se asocian los elementos secundarios con los elementos principales y cómo se asocian los atributos a los elementos, la gramática se puede resumir así:

Los documentos XML deben especificarse con suficiente precisión para que sea posible desarrollar analizadores que puedan interpretar un documento XML estándar bien formado y representar los valores de los datos que se transmiten en el documento, un documento XML bien formado es un documento que cumple con la especificación XML y puede ser interpretado por un analizador, los documentos que no cumplen con la norma son rechazados por los analizadores.

Los elementos XML se pueden restringir a un conjunto de elementos predefinido si el documento es parte de una aplicación, por ejemplo, los químicos que intercambian fórmulas químicas pueden predefinir un conjunto específico de etiquetas que comunican la composición química, los documentos que tienen elementos no asociados con esa aplicación en particular no están bien formados y serían rechazados por los analizadores utilizados por los químicos en su aplicación.

Una manera sencilla de aplicar XML en software SCADA es empleando INDUSOFT:

 

Las marcas (Elementos) permitidas en una aplicación en particular se definen en un esquema XML, un esquema define todos los elementos válidos de un documento y permite que un analizador genérico determine si un documento XML está bien formado para una aplicación en particular, un documento puede estar bien formado para una aplicación (composición química) e inválido para otra aplicación (caso judicial).

XML se confunde a veces con HTML, el lenguaje descriptivo utilizado para mostrar páginas web, los dos están relacionados y en la superficie parecen muy similares, aunque tienen una sintaxis similar, cada uno tiene propósitos muy diferentes, un documento HTML siempre se utiliza para comunicar cómo se deben mostrar los elementos de datos, se trata de la ubicación de la pantalla, el formato y la presentación de datos, XML es simplemente para mover datos de un sistema a otro, no comunica información sobre cómo mostrar los datos.

XML también es a veces pensado como un lenguaje de programación, no lo es, no existe un compilador XML que pueda leer un documento XML y generar código ejecutable, un documento XML por sí mismo no hace nada.

XML no es ciertamente una base de datos o una forma de almacenar datos, un dispositivo XML puede formar un documento y enviar datos, pero esos datos no se almacenan a menos que el remitente o el receptor almacenen los datos, un medidor que monitorea el uso de energía puede proporcionar un documento XML a un solicitante con los datos de energía actuales, pero esos datos se pierden cuando se genera la siguiente iteración de datos; a menos que el solicitante o el remitente guarden cada iteración particular de los datos.

A veces la gente piensa en XML como un protocolo de comunicación, no lo es, un protocolo de comunicación es un conjunto específico de caracteres que realiza el movimiento de una serie de bytes de datos de un sistema a otro, XML no facilita la transferencia de información entre dos sistemas, una vez que haya un enlace con un protocolo de comunicación apropiado, se puede enviar un documento XML a través de ese enlace, XML es simplemente el contenido enviado en ese enlace y no tiene nada que ver con los detalles de cómo estos dos sistemas gestionan el movimiento de contenido desde el remitente al receptor.

Cómo utilizar archivos XML

Los documentos XML son documentos de texto estándar que se pueden crear y editar con cualquier editor de texto o un programa de procesamiento de texto como MSWORD, hay editores de XML que entienden la creación de un documento, pero si bien son útiles, no son necesarios para crear un documento XML válido y bien formado, estos editores lo ayudan a identificar elementos inválidos y estructurados incorrectamente.

En lugar de usar su navegador y registrar manualmente los valores de datos XML a mano, podría hacer referencia a esa URL (archivo XML) desde una serie de aplicaciones comunes, en Windows, puede usar Microsoft Word o Excel para mostrar los datos en un formato tabular, muchos otros programas o incluso aplicaciones que desarrollas pueden recibir y procesar fácilmente un documento XML, realmente es una forma universal de intercambiar datos.

XML a mano, podría hacer referencia a esa URL (archivo XML) desde una serie de aplicaciones comunes

Otro mecanismo que se usa a menudo para transferir documentos XML es el FTP (Protocolo de transferencia de archivos), algunos dispositivos almacenan una serie de archivos de datos como XML en su almacenamiento local y hacen que esos documentos estén disponibles a través de FTP, FTP es fácil de usar y comúnmente está disponible en muchos sistemas diferentes.

Lo básico sobre XML para novatos

Los documentos XML siguen una gramática muy específica, la unidad básica de XML es un elemento, un elemento está formado por una etiqueta de inicio, una cadena ASCII y una etiqueta final, todas las etiquetas están encerradas entre paréntesis angulares como <etiqueta>, las etiquetas finales significan que son etiquetas finales al preceder el nombre de la etiqueta con una barra inclinada como </etiqueta>, algunos elementos XML bien formados siguen:

<name> Emily Wild </name>
<sentence> ¿Dónde está el perro de la familia? </sentence>
<temperature> 22.53 </temperature>

Lo básico sobre XML para novatos

Todos estos son elementos XML bien formados con una etiqueta inicial, un valor y una etiqueta final, tenga en cuenta que el espacio en blanco que lo rodea, antes, después y entre las palabras forma parte del campo de datos, el receptor puede elegir recortar espacios en blanco iniciales, finales o incrustados o mantenerlos, en un sistema muy simple, cualquiera de estos podría ser la transmisión completa del documento XML de un remitente a un receptor, no es necesario que se transfieran muchos datos.

XML no impone restricciones en los nombres de los elementos que no sean los obvios, los nombres de los elementos distinguen entre mayúsculas y minúsculas y no se pueden utilizar caracteres especiales o espacios en blanco, además, no puede comenzar los nombres de sus elementos con un número o las letras “xml”.

Una característica muy importante de los elementos XML es que pueden incrustar otros elementos:

<oven_status>
<temperature> 22. 5 </temperature>
<mode> Enfriamiento </mode>
<error_code> 0 </error_code>
</oven_status>

Al anidar elementos, puede crear relaciones muy poderosas y comunicar mucha información tabular.

Todos los documentos XML contienen una declaración XML opcional y un elemento raíz requerido, la declaración XML, si se incluye, debe ser la primera línea del archivo XML, la declaración XML no hace nada más que identificar el archivo como un documento XML y el número de versión de XML admitido, el tipo de codificación de caracteres en el archivo y si se puede procesar como un documento independiente, la declaración debe seguir un formato muy específico:

<? xml version = “1, 0” encoding = “ASCII” standalone = “yes”?>

El elemento raíz es “el padre” de todos los demás elementos del documento, puedes pensar en un documento XML como un árbol de elementos, el árbol comienza en el elemento raíz y se ramifica al nivel más bajo del árbol, cualquier elemento puede tener subelementos, por lo que el árbol es teóricamente infinitamente largo.

<root>
<child>
<subchild>… , </subchild>
</child>
</root>

Los términos padre, hijo y hermano se utilizan para describir las relaciones entre los elementos, los elementos padres tienen hijos, los niños en el mismo nivel se llaman hermanos (hermanos o hermanas).

Un concepto que a menudo obstaculiza a los nuevos en XML es atributos, los atributos son información adicional que se puede agregar a un elemento, los atributos usan el mismo par de nombre/valor que se usa para los Elementos, los atributos se colocan dentro del campo de la etiqueta de inicio para el Elemento.

¿Por qué necesitamos atributos que podrías preguntar? ¿No es adecuado el documento XML anterior?

Ambos logran lo mismo, ¿no? la respuesta está más en las preferencias personales que en cualquier otra cosa, ¿Atributos o elementos hijo? depende de usted y de cómo desea codificar sus datos, hay pocas reglas en XML.

Conceptos avanzados de XML

Para aquellos de ustedes que realmente quieren saber más que XML básico, hay algunos conceptos avanzados que realmente necesitan comprender.

Esquemas

Un receptor que envía un archivo XML sin ninguna información adicional significa que el receptor debe asumir que cada valor es texto, no hay forma de saber interpretar y almacenar un valor de datos, los esquemas resuelven este problema.

Los esquemas son la guía para un archivo XML, Al igual que una buena guía en Madrid puede decirle lo que encontrará cuando llegue allí, un esquema XML lo guiará a través de lo que encontrará cuando abra el archivo XML.

Los esquemas describen todas las relaciones de elementos padre-hijo y lo más importante, los tipos de datos de todos los elementos, en la mayoría de los casos, deseará almacenar los datos de un elemento XML en el mismo tipo de datos que usó el creador del archivo, al usar el esquema, sabrá que la temperatura del horno es un valor de punto flotante, mientras que necesitará un número entero doble para almacenar el recuento de ciclos.

Un esquema permite que un archivo XML sea “validado”, la buena formación es diferente de la validación, un archivo XML está bien formado si cumple con todas las reglas básicas de XML para la sintaxis, la validación cumple con eso mientras que no solo está bien formada, cumple con la relación y las restricciones de tipo de datos impuestas por un esquema, un archivo XML puede estar bien formado pero no es válido.

Este es un esquema relativamente simple como los esquemas XSD, Los esquemas más sofisticados pueden tener anotaciones, definir un número mínimo de apariciones de elementos, agrupar elementos para formar tipos complejos y especificar secuencias de elementos, la tabla 1 especifica algunas de estas características XSD.

Además del lenguaje de definición de esquemas XML descrito anteriormente, hay otros dos lenguajes de definición de esquemas comúnmente utilizados; definiciones de tipo de documento (DTD) y Relax NG.

Espacios de nombres

A diferencia de los lenguajes de programación, los esquemas XML no tienen muchas palabras clave restringidas y no ponen muchas restricciones en las etiquetas de elementos, dado que los nombres están definidos por el desarrollador del archivo XML, los nombres de los elementos pueden confundir a un analizador, por ejemplo:

<table>
<style> Wood Grain Table </style>
<size> 8 Foot </size>
</table>
<table>
<tr>
<td> Fabricación celular 1 </td>
<td> Fabricación celular 2 </td>
<td> Celda de fabricación 3 </td>
</tr>
</table>

En dos aplicaciones diferentes, estos fragmentos de archivos XML no presentan ningún problema, pero combinarlos en el mismo archivo confundiría terriblemente un analizador, una forma de resolver esto es adjuntar un prefijo a los elementos como este:

<e: table>
<e: style> Wood Grain Table </e: style>
<e: size> 8 Foot </e: size>
</e: table>

<w: tabla>
<w: tr>
<w: td> Celda de fabricación 1 </w: td>
<w: td> Celda de fabricación 2 </w: td>
<w: td> Celda de fabricación 3 </w: td>
</w: tr>
</w: tabla>

Un espacio de nombres define el prefijo, Los espacios de nombres están definidos por:

<w: table padding-left: 30px; ”> <table padding-left: 30px;”> Documento XML sin un archivo CSS: http://www.w3schools.com/xml/cd_catalog.xml
Documento XML con un archivo CSS : http://www.w3schools.com/xml/cd_catalog_with_css.xml

Use un programa de MS Office: fue una revelación para mí hace unos años, pero Microsoft Office utiliza ampliamente XML para almacenar documentos, de hecho, puede hacer referencia fácilmente a un documento XML en una hoja de cálculo de Excel y agregar una nueva fila a esa hoja de cálculo a la tasa de datos que desee, Es una forma realmente fácil de archivar datos desde un dispositivo integrado habilitado para XML.

Cargar una base de datos: muchas bases de datos, incluyendo SQL Server, Oracle y otras, pueden cargar documentos XML, los procedimientos específicos varían con la base de datos, pero en general la base de datos “activa” el dispositivo para enviar un archivo XML al hacer referencia a una URL particular (página web) en el dispositivo de destino.

Cree una aplicación patentada: muchos integradores simplemente crean programas de aplicación en Java, C++ u otro idioma para recibir y decodificar el archivo XML, luego lo muestran, lo manipulan, lo acumulan o lo almacenan o parte de él en una base de datos.

Documentos XML FTP desde un dispositivo: algunos de los dispositivos de automatización más nuevos para monitorear y archivar datos de automatización utilizan el almacenamiento local para guardar los datos del dispositivo en archivos, estos archivos pueden ser archivos de valores separados por comas (CSV) o archivos XML, Si tiene un dispositivo con ese tipo de almacenamiento local, puede transferir datos desde el dispositivo remoto con los datos a su servidor mediante el Protocolo de transferencia de archivos (FTP), una vez que tenga esos datos en su servidor, puede abrir los archivos con una aplicación estándar como un programa de Microsoft Office, un programa de base de datos o una aplicación personalizada, y procesar los datos.

Habilitar XML para dispositivos no habilitados para XML

En el mundo de la automatización usamos las cosas durante mucho tiempo, tenemos muchas ganas de siempre pero tardaremos 20 o 30 años, por lo tanto, hay muchas cosas en la fábrica que no están habilitadas para XML, Pero podría tener datos que usted necesita.

Para empezar, hay un montón de controladores que tienen datos que tal vez desee mostrar en una hoja de cálculo o ingresar a una base de datos, nuestra compañía, tiene un producto para mover las etiquetas especificadas por el usuario de los PLC de Rockwell y enviarlas como documentos XML, Esos documentos se pueden entregar a Excel, bases de datos, navegadores o cualquier otro lugar capaz de analizar un documento XML.

460ETCWI-N2E-DW, Interfaz web para Allen-Bradley PLCs Gateway. Acceda a los datos de su PLC Allen-Bradley (máximo 5) desde un cliente web (a través de JSON o XML). Plataforma N2E: 1 terminal de tornillo de 7 pines (RS-232,485,422), 2 puertos Ethernet RJ45, 2 pines para alimentación. Incluye fuente de alimentación.
460ETCWI-N2E-DW, Interfaz web para Allen-Bradley PLCs Gateway.

Estas son algunas de las capacidades funcionales clave de este dispositivo:

  • Las etiquetas de PLC para incluir en el documento XML son especificadas por el usuario.
  • Los valores de datos actuales se pueden recuperar accediendo a la dirección TCP/IP del dispositivo con la extensión actual, como “10.1.1.16current.xml”.
  • Los datos de la etiqueta de PLC se almacenan localmente en registros en una serie de archivos.
  • Se puede utilizar una etiqueta de PLC como etiqueta de activación para activar un registro almacenado o el registro se puede almacenar en un ciclo de tiempo.
  • Un usuario puede especificar cuándo se crean nuevos archivos según la cantidad de registros, la hora, la hora del día y otros medios.
  • Los archivos están disponibles para la transferencia de FTP en formato XML o CSV.

XML es un componente clave de OPC con acceso universal (OPC UA)

OPC-UA es la tecnología de reemplazo para OPC Classic, utiliza XML como uno de sus dos mecanismos de codificación, un mecanismo de codificación es la forma en que los bytes de datos individuales se formatean en el cable, antes de discutir cómo UA utiliza XML, echemos un vistazo rápido a lo que es OPC-UA.

Durante los últimos treinta años, los sistemas de negocios se construyeron en gran parte en plataformas abiertas y estandarizadas donde los datos se pueden compartir fácilmente (acoplados libremente), los sistemas de automatización se construyeron en gran parte en plataformas cerradas y patentadas donde el control del proceso de producción era la prioridad y la capacidad de compartir datos fácilmente nunca ha sido un requisito (estrechamente acoplado).

El control de proceso abierto con acceso universal (OPC UA), al que me refiero como UA, es la tecnología OPC de próxima generación, UA es un mecanismo seguro, abierto y confiable para transferir información entre los sistemas de automatización y los sistemas de negocios, UA proporciona un mecanismo muy flexible y adaptable para mover datos entre sistemas de tipo empresarial y los tipos de controles, dispositivos de monitoreo y sensores que interactúan con datos del mundo real.

¿Por qué una arquitectura de la comunicación totalmente nueva? las tecnologías actuales son limitadas y no se adaptan bien a los requisitos actuales para mover datos entre los sistemas empresariales/de Internet y los sistemas que controlan procesos reales que generan y monitorean datos en vivo, algunas de estas limitaciones incluyen:

La dependencia de la plataforma con respecto a Microsoft: la tecnología actual se basa en DCOM (Distribution COM), una tecnología de comunicación más antigua que Microsoft no está enfatizando.
Modelos de datos insuficientes: la tecnología actual carece de la capacidad de representar adecuadamente los tipos de datos, información y relaciones entre los datos Elementos y sistemas que son importantes en el mundo conectado de hoy.
Seguridad inadecuada: muchos usuarios perciben que Microsoft y DCOM carecen del tipo de seguridad necesaria en un mundo conectado con amenazas sofisticadas de virus y malware.

UA es la primera tecnología de comunicación construida específicamente para vivir en esa “tierra de nadie” donde los datos deben atravesar firewalls, plataformas especializadas y barreras de seguridad para llegar a un lugar donde esos datos puedan convertirse en información, UA está diseñado para conectar bases de datos, herramientas analíticas, sistemas de planificación de recursos empresariales (ERP) y otros sistemas empresariales con datos reales de controladores de gama baja, sensores, actuadores y dispositivos de monitoreo que interactúan con procesos reales que controlan y generan el mundo real, datos.

Cuando UA entrega información de fábrica a dispositivos de tipo IT, es conveniente en ese tipo de sistema entregar datos que la aplicación de TI pueda procesar fácilmente, Dado que XML es ese tipo de estándar universal, la Fundación OPC seleccionó a UA como uno de sus mecanismos de codificación.

Puede adquirir nuestros productos en México en la siguiente página https://www.logicbus.com.mx/, en USA y resto del mundo aquí https://www.logicbus.com.

Para contacto directo puede enviar un correo a ventas@logicbus.com o si requiere asesoría soporte@logicbus.com.

Puede llamarnos al +52 33 3854 5975 o iniciar un chat directo en la “burbuja” de la parte inferior, estamos en línea de Lunes a Viernes 08:00 a 18:00 y Sábados de 10:00 a 13:00 horario de México.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *