Leer temperatura usando software ModBus RTU desde Windows

  • 1 Respuestas
  • 975 Vistas

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2330
  • Soporte Técnico
Leer temperatura usando software ModBus RTU desde Windows
« : julio 24, 2023, 20:15:23 pm »
El siguiente ejemplo muestra como leer un registro de temperatura del módulo conectado a ModBus RTU por RS485 a una computadora con Windows (10/11).

Para este ejemplo asumimos:

  • Módulo PD3060-PT100 configurado con dirección ModBusRTU #1, velocidad 9600 bps 8N1.
  • Conversor USB a RS485 con driver instalado en Windows. Debe conocer el puerto COM donde está instalado, para ello puede ver el Administrador de Dispositivos en Windows.

El software ModBus RTU que utilizaremos es "CAS ModBus Scanner" que se puede bajar gratis desde el siguiente link:

https://store.chipkin.com/products/tools/cas-modbus-scanner

Una vez instalado el software, configurar como muestra la siguiente captura de pantalla, seguir los pasos 1) a 5) en los comentarios impresos en la imagen:



(descargar imagen si necesita hacer zoom)

El hardware utilizado es el siguiente:



¡Éxitos!

« Última Modificación: julio 24, 2023, 20:23:52 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 4 de enero al 31 de enero de 2024, cerramos por vacaciones. Tenga en cuenta para sus pedidos y/o consultas.

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2330
  • Soporte Técnico
Re:Leer temperatura usando software ModBus RTU desde Windows
« Respuesta #1 : julio 24, 2023, 20:42:11 pm »
Otra alternativa, para usuarios más avanzados o desarrolladores, es enviar un string hexadecimal construyendo la petición ModBus RTU.

Para leer Holding Registers de un dispositivo, usamos la función ModBus RTU #3.

El formato de los bytes a enviar para una petición de Holding Registrers (#3) es el siguiente:

Byte 0 Modbus Device Address
Byte 1 Function Code / Message Type (0x03)
Byte 2 Number of bytes returned (specified in bytes, 1 register x 2 bytes = 2)
Byte 3 Data0
Byte 4 Data1
Byte 5 CRC of bytes 1 to 5 (high byte)
Byte 6 CRC of bytes 1 to 5 (low byte)

Entonces, armamos el siguiente string en hexadecimal, cada valor hexa es un byte (cuya descripción la vimos arriba):

01 03 00 20 00 01 85 C0

Notemos como "00 20" es el número de registro a leer,  en decimal el 32, donde está la temperatura.
El primer byte (01) es la dirección ModBus RTU del dispositivo esclavo el segundo byte es el tipo de función ModBus, es decir, la número 3.

Para enviar la cadena hexadecimal podemos utilizar el software "Coolterm":

También si querés enviar una serie de bytes en hexa (construís la petición manualmente) y ver la repuesta, podés utilizar "Coolterm":

Breve explicación:
https://learn.sparkfun.com/tutorials/terminal-basics/coolterm-windows-mac-linux

Descarga:
http://freeware.the-meiers.org/

Al abrir el software, configurar primero que nada el puerto serie dónde tenemos el conversor USB-RS485 y la velocidad 9600 BPS, 8N1.
Luego conectar el puerto con "Connect".

Desde menú View seleccionar Hex para ver la respuesta en hexadecimal.

Luego en menú "Connection" seleccionar "Send string..."  para enviar la siguiente cadena hexa que vimos arriba:



Y la respuesta del módulo visualizada en Coolterm es:



¡Éxitos!






« Última Modificación: julio 25, 2023, 17:11:47 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 4 de enero al 31 de enero de 2024, cerramos por vacaciones. Tenga en cuenta para sus pedidos y/o consultas.