Ir al contenido principal

Configurar DA10D/DA30D: datos Modbus a la nube por MQTT

Lee un equipo Modbus RTU con un DA10D o DA30D de Red Lion en Crimson 3.2 y publica sus registros en Ubidots con el conector Ubidots MQTT integrado.

Escrito por Sergio M

El DA10D y el DA30D de Red Lion son convertidores de protocolo que se programan con Crimson 3.2. Consultan equipos seriales y Ethernet, como un medidor de flujo Modbus RTU, y publican las lecturas en Ubidots con el conector Ubidots MQTT integrado en Crimson. Esta guía lee cuatro valores de un equipo Modbus RTU por RS-485 y los envía a un solo dispositivo de Ubidots, con una variable por tag.

El dispositivo DA30D en Ubidots con las variables leídas por Modbus RTU: flowrate, pressure, totalizer, pumprun y connected

DA10D o DA30D: qué cambia

El DA10D y el DA30D siguen los mismos pasos de base de datos en Crimson 3.2 y usan el mismo conector de Ubidots. El DA30D agrega puertos, servidor web y registrador de datos, y su grupo de software es fijo en Group 3; el del DA10D es fijo en Group 2. Ambos grupos incluyen los conectores a la nube, así que el DA10D publica en Ubidots de la misma forma.

DA10D

DA30D

Número de parte

DA10D0C000000000

DA30D0F000000000

Ethernet

1 × 10/100

1 × 10/100

Serial

1 × RS-232, 1 × RS-232/RS-485

2 × RS-232 (uno es el puerto de programación), 1 × RS-485/422

USB

Tipo B

Tipo B y tipo A

Grupo de software

Group 2

Group 3

Conector Ubidots MQTT

Sí

Sí

Servidor web y registrador de datos

No

Sí

Fuentes: las páginas de producto de HMS Networks del DA10D y del DA30D, y las preguntas frecuentes del Unified Release de Crimson 3.2.

Requisitos

  • Un DA10D o DA30D de Red Lion.

  • Crimson 3.2, Gold Build 3.2.0064.0 o posterior, desde la página de descarga de Crimson 3.2 de HMS.

  • Un cable USB A-B para la primera descarga. El DA10D y el DA30D no tienen dirección IP por defecto, y su puerto Ethernet queda deshabilitado hasta que una base de datos lo habilite (preguntas frecuentes de Crimson de HMS).

  • Un equipo Modbus RTU en RS-485, con su ID de esclavo, su configuración serial y su mapa de registros.

  • Una cuenta de Ubidots y tu token de Ubidots, y una red que llegue a industrial.api.ubidots.com por el puerto 8883.

1. Crea la base de datos de Crimson para el DA10D o DA30D

Una base de datos de Crimson es el archivo de proyecto que Crimson arma en tu computador y descarga al DA10D o DA30D. En Crimson 3.2, haz clic en File → New y elige DA10 o DA30 en Models; el grupo de software es fijo en ambos. Con la unidad conectada, Auto-Detect en el mismo cuadro de diálogo elige el modelo por ti.

  1. Ve a Device Configuration → System Configuration → Network → Interfaces → Ethernet 1. Pon Port Mode en Configured via DHCP, o en Manual Configuration con dirección IP, máscara de red, gateway y servidores DNS. Sin gateway y DNS, la unidad no llega a Ubidots.

  2. Haz clic en Link → Options y selecciona USB para la primera descarga. Las siguientes descargas pueden ir por TCP/IP; en ese caso Crimson pide el usuario y la contraseña de la unidad, admin y password por defecto.

2. Lee el equipo Modbus RTU por RS-485

Crimson lee equipos Modbus RTU con su driver Modbus Universal Master, configurado en el puerto serial donde está cableado el equipo. Cada esclavo del puerto tiene su propia entrada con un Drop Number, que es el ID de esclavo Modbus del equipo. La nota de HMS sobre el driver Modbus Universal Master por RS-485 describe la misma configuración.

  1. Abre Communications y selecciona el puerto RS-485: el puerto RS-485/422 en un DA30D, o el puerto RS-232/RS-485 en un DA10D.

  2. Haz clic en Pick junto a Driver y elige Modbus → Universal Master.

  3. Ajusta Baud Rate, Data Bits, Stop Bits y Parity a los del equipo. Crimson parte de los valores por defecto del protocolo.

  4. Crimson agrega un dispositivo llamado PLC1 bajo el puerto. Presiona F2 para renombrarlo, por ejemplo a FlowMeter, y pon en Drop Number el ID de esclavo del equipo.

  5. Crimson comprueba que el equipo responde leyendo el registro de retención 400001 (Ping Holding Register = 1). Si el equipo no tiene registros de retención, pon Ping Holding Register en 0.

Asigna los registros Modbus a tags

Cada valor que envías a Ubidots es un tag de datos de Crimson asignado a un registro Modbus. Crimson usa direcciones Modbus de seis dígitos que empiezan en 1, así que el registro de retención 1 es el 400001. Asigna los tags así, con el mapa de registros de tu equipo en lugar del ejemplo.

  1. Abre Data Tags, haz clic en New y crea un tag numérico, por ejemplo FlowRate.

  2. En la pestaña Data del tag, pon en Source el dispositivo (FlowMeter). En Select Address, elige el Data Item, por ejemplo 4 Holding Registers, y el Element, por ejemplo 00001 para el 400001.

  3. Elige el tipo de dato: Word as Word para un registro de 16 bits, Word as Long para un entero de 32 bits o Word as Real para un flotante de 32 bits en dos registros.

  4. Si el registro trae cuentas sin escalar, escala el tag con Data From/To y Display From/To.

Tag

Data Item

Element

Dirección Modbus

Tipo de dato

FlowRate

4 Holding Registers

00001

400001

Word as Real

Pressure

4 Holding Registers

00003

400003

Word as Real

Totalizer

4 Holding Registers

00005

400005

Word as Long

PumpRun

0 Coils

00001

000001

Tag de tipo flag

Para un equipo Modbus TCP, crea un protocolo en Communications → Network, elige Modbus → TCP/IP Master e ingresa la dirección IP del equipo en su configuración. Los tags se asignan de la misma forma.

3. Configura el conector Ubidots MQTT

El DA10D y el DA30D publican en Ubidots con el mismo conector Ubidots MQTT que el FlexEdge. Abre Communications → Connectors → Ubidots MQTT y configura la pestaña Service así. Antes, crea un tag numérico interno llamado Status para el diagnóstico del conector.

Campo

Valor

Enable Agent

Yes

Update Mode

Send Changes

Host Name 1

industrial.api.ubidots.com

Device Name

La etiqueta del dispositivo en Ubidots, por ejemplo da30d: minúsculas, números, guiones o guiones bajos

Access Token

Tu token de Ubidots

Status

El tag Status

Pestaña Service del conector Ubidots MQTT en Crimson 3.2, con Host Name 1 industrial.api.ubidots.com, Device Name y Access Token, en un FlexEdge

Las capturas muestran una base de datos de FlexEdge; el DA10D y el DA30D muestran las mismas pestañas. En la pestaña Network, pon Transport Protocol en TLS y Connect via Port en 8883. En Tag Set 1, deja Transfer Mode en Periodic, ajusta Update Rate, por ejemplo a 10 segundos, y arrastra los tags asignados a Contents.

Pestaña Network del conector Ubidots MQTT en Crimson, con Transport Protocol en TLS

Pestaña Tag Set 1 del conector Ubidots MQTT en Crimson, con transferencia Periodic y los tags a publicar en Contents

Conecta el cable USB y haz clic en Link → Send para descargar la base de datos completa. Después, Link → Update (F9) envía solo los cambios.

4. Revisa las lecturas y los datos en Ubidots

La Watch Window de Crimson muestra los valores de los tags en vivo desde la unidad sin servidor web, así que también funciona en el DA10D. Presiona F7 o usa el menú View para abrirla, agrega FlowRate, los demás tags asignados y Status, y haz clic en View Online. Los tags asignados muestran las lecturas del equipo, y Status marca 4 cuando el conector ya publicó en Ubidots.

En Ubidots, ve a Devices → Devices. El dispositivo con tu etiqueta muestra una variable por tag en minúsculas, como flowrate, pressure, totalizer y pumprun, más connected.

Solución de problemas: ¿por qué faltan valores Modbus o llegan mal?

  • Los tags no muestran valor en la Watch Window. Revisa la configuración serial, el Drop Number y el cableado. En RS-485, los LED rojo y verde del puerto parpadean rápido cuando el cableado está bien; rojo fijo con verde parpadeando indica que los cables A y B están invertidos.

  • Todos los valores están corridos un registro. Crimson cuenta desde 1. Si el mapa de tu equipo usa desplazamientos que empiezan en 0, suma 1 al elemento.

  • Un valor de 32 bits sale revuelto. El equipo envía sus dos palabras en el orden contrario. Pon la Manipulation del tag en Reverse Words.

  • Crimson no descarga por Ethernet. La unidad no tiene dirección IP por defecto. Descarga primero por USB, con Ethernet 1 configurado en la base de datos.

  • Status no llega a 4. Consulta la tabla de Status en la guía de configuración del FlexEdge; los valores significan lo mismo en todos los equipos.

Preguntas frecuentes

¿El DA10D soporta el conector Ubidots MQTT?

Sí. HMS incluye Ubidots entre los conectores a la nube del DA10D, y su Group 2 fijo los incluye. Group 2 no tiene servidor web de ejecución, así que revisa el DA10D en la Watch Window de Crimson o en Ubidots, en lugar de Remote View.

¿El DA10D y el DA30D funcionan con Crimson 3.1?

Sí. Crimson 3.1 los soporta desde el build 3.1.3108.002, y su conector de Ubidots requiere el build 3.1.3119.001 o posterior. Crimson 3.2 los soporta desde el Gold Build 3.2.0064.0, y el Unified Release de HMS lleva el hardware actual a Crimson 3.2.

¿Un DA30D puede leer varios equipos Modbus?

Sí. Agrega más dispositivos en el mismo puerto con Add Additional Device, cada uno con su propio Drop Number, y asigna sus registros a tags. Un conector envía todos los tags a un dispositivo de Ubidots; en Crimson 3.2 puedes agregar un conector por cada dispositivo de Ubidots.

¿Qué pasa con las lecturas mientras no hay conexión?

Con Data Buffering activo en el conector, la unidad guarda hasta 14.400 valores en memoria, o más en la tarjeta de memoria, y los envía cuando vuelve la conexión. Sin buffer, Ubidots recibe los últimos valores al reconectar.

¿Puedo enviar valores de texto, como el número de serie de un equipo?

No con el conector Ubidots MQTT, que solo envía números. Usa el conector Generic MQTT de Crimson con una función decodificadora, como explica Configurar MQTT genérico en Crimson: tags Red Lion a la nube.

Otras guías de Red Lion

¿Ha quedado contestada tu pregunta?