Ir al contenido

← Todas las funcionalidades

Monitorización textil (tejeduría)ESP32 PLCHTTPEthernetAdquisición

Leer el XML de estado de una tricotosa con un PLC ESP32

Un cliente HTTP que lee el XML de la máquina suele ser la integración más barata de la planta: muchos controladores de máquina ya exponen su estado como recurso web. Las tricotosas circulares Terrot publican statusErw.xml con revoluciones, RPM y estado de máquina. Este ejemplo sondea ese fichero por Ethernet desde un PLC ESP32, extrae los valores y los reempaqueta como JSON — el enfoque exacto usado en un despliegue real de monitorización de máquinas textiles.

Usa la interfaz que la máquina ya tiene

Sin programar el PLC de la máquina, sin pasarela de bus de campo — solo una petición GET al servidor web embebido del controlador en la misma subred de planta. El PLC conecta, envía "GET /statusErw.xml HTTP/1.1" con Connection close y lee el cuerpo. Para fabricantes de máquina que exponen páginas de estado XML o JSON, esto gana a instalar sensores para datos que puedes simplemente pedir.

Un parser XML de 20 líneas es suficiente

La respuesta es XML plano sin anidamiento, así que una librería completa de parseo sería flash desperdiciada. getTagValue() simplemente encuentra el texto entre una etiqueta de apertura y una de cierre con dos llamadas a indexOf — más que suficiente para extraer revolutions, rpm y machstat con fiabilidad. Un timeout de lectura de 500 ms con ventana deslizante hace que una máquina apagada cueste medio segundo por sondeo, nunca un loop colgado.

Normalizar a JSON en el edge

Los valores extraídos se reempaquetan de inmediato en el mismo esquema JSON que el resto de la flota publica por MQTT, con un campo source que marca de dónde salió el dato. Aguas abajo — broker, concentrador Node-RED, base de datos, dashboards — nada necesita saber si un valor nació en un sensor de pulsos, en un registro Modbus o en la propia página XML de la máquina. Las etiquetas ausentes o vacías se mapean a null en lugar de a ceros falsos, de modo que un hueco de parseo nunca puede hacerse pasar por una máquina parada.

Un fragmento de la implementación

Tal cual del ejemplo desplegado en el ESP32 PLC — cópialo libremente:

void setup() {
  Serial.begin(115200);
  Ethernet.begin(mac, plcIP);
  delay(1000);
  Serial.println("Ethernet ready. PLC: " + plcIP.toString());
}

El ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.

Preguntas frecuentes

¿Cómo averiguo si mi máquina expone una página de estado?

Apunta un navegador a la dirección IP del controlador de la máquina desde la red de planta. Muchos controladores traen un servidor web embebido; consulta el manual o captura el tráfico de la herramienta de monitorización del propio fabricante para encontrar URL como statusErw.xml.

¿Por qué sondear cada 10 segundos y no más rápido?

El estado de máquina y las RPM cambian despacio comparados con el coste de red, y los controladores embebidos pueden ser frágiles bajo carga. Diez segundos dan tendencias suaves sin estresar el servidor web de la máquina; ajústalo a tu gusto.

¿Y si la estructura del XML cambia con una actualización de firmware de la máquina?

La extracción por etiquetas falla de forma suave — las etiquetas ausentes producen campos null en el JSON en lugar de cuelgues. Combínalo con actualizaciones OTA en el PLC para poder adaptar el parser a toda la flota en minutos.

Funcionalidades relacionadas