Diferencia entre revisiones de «MODBUS TD-500»

De Base de datos Escort
Sin resumen de edición
Sin resumen de edición
 
Línea 1: Línea 1:
[[RU:MODBUS_ТД-500| Русская версия]]
[[RU:MODBUS_ТД-500| Русская версия]]
[[en:MODBUS_TD-500| English version]]
[[en:MODBUS_TD-500| English version]]
Описание регистров MODBUS ТД-500   
Descripción de los registros Modbus ТD-500   


= '''Настройки порта''' =
= '''Características del puerto''' =
Baud rate: 19200 kbps
Baud rate: 19200 kbps


Línea 12: Línea 12:
Parity: None
Parity: None


= '''Структура запроса и ответа''' =
= '''Estructura de solicitud y respuesta''' =
'''ЗАПРОС''':
'''SOLICITUD''':


*        (u8) Сетевой номер
*        (u8) Dirección de red
*        (u8) 0х03 --> Команда чтения
*        (u8) 0х03 -->Comando de lectura
*        (u8) Младший байт рег. чтения (значение игнорируется)
*        (u8) Byte final de registro lectura (valor ignorado)
*        (u8) Старший байт рег. чтения (значение игнорируется)
*        (u8) Byte inicial de registro lectura (valor ignorado)
*        (u8) Младший байт количества -|-|-|-|
*        (u8) Byte final de cantidad -|-|-|-|
*        (u8) Старший байт количества -|-|-|-|
*        (u8) Byte inicial de cantidad -|-|-|-|
*        (u8) CRC16 - младший байт
*        (u8) CRC16 - byte final
*        (u8) CRC16 - старший байт
*        (u8) CRC16 - byte inicial


'''ОТВЕТ''':
'''RESPUESTA''':


*        (u8) Сетевой номер
*        (u8) Dirección de red
*        (u8) Подтверждение команды (всегда 0х03)
*        (u8) Aprobación de comando (siempre 0х03)
*        (u8) Количество выгружаемых байт (всегда 8)
*        (u8) Cantidad de bytes descargados (siempre 8)
* s8    (s8) температура
* s8    (s8) Temperatura
*        (u8) Старший байт уровня
*        (u8) Byte inicial de nivel
*        (u8) Младший байт уровня
*        (u8) Byte final de nivel
*        (u8) Всегда 0
*        (u8) Siempre 0
*        (u8) Всегда 0
*        (u8) Siempre 0
*        (u8) Всегда 0
*        (u8) Siempre 0
*        (u8) Всегда 0
*        (u8) Siempre 0
*        (u8) Всегда 0
*        (u8) Siempre 0
*        (u8) младший байт CRC16
*        (u8) Byte final CRC16
*        (u8) Старший байт CRC16
*        (u8) Byte inicial CRC16


s8 означает, что значение является знаковым целым, u8 - беззнаковое целое.
s8 significa que el valor es entero con signo, u8 es un valor entero sin signo


Пронумерованные адреса байтов ответа:
Direcciones numeradas de los bytes de respuesta:
{| class="wikitable"
{| class="wikitable"
|Порядковый номер байта
|Número de byte
|Порядковый номер байта начиная с 0
|Número de byte a partir de 0
|Значение
|Valor
|-
|-
|1
|1
|0
|0
|Температура
|Temperatura
|-
|-
|2
|2
|1
|1
|Старший (первый) байт уровня
|Byte inicial de nivel
|-
|-
|3
|3
|2
|2
|Младший (последний) байт уровня
|Byte final de nivel
|-
|-
|4
|4
|3
|3
|Всегда 0
|Siempre 0
|-
|-
|5
|5
|4
|4
|Всегда 0
|Siempre 0
|-
|-
|6
|6
|5
|5
|Всегда 0
|Siempre 0
|-
|-
|7
|7
|6
|6
|Всегда 0
|Siempre 0
|-
|-
|8
|8
|7
|7
|Всегда 0
|Siempre 0
|}
|}
Baudrate не изменяется.
Baudrate no cambia


'''19200, 8, n, 1'''
'''19200, 8, n, 1'''


Количество бит в посылке 12х8 т.е около 96 шт
Cantidad de los bits en un paquete es 12x8, es decir aprox 96


В запросе не важно какой указан сетевой номер, а также неважно количество запрашиваемых регистров. Главное, чтобы совпадала контрольная сумма. Расчет контрольной суммы приведен ниже.
En la solicitud no son importantes la dirección de red ni cantidad de los registros solicitados. Es importante que la suma de comprobación sea calculada correctamente.


= '''Пример опроса датчика ТД-500 в программе Terminal''' =
= '''Ejemplo de sondear TD-500 en programa Terminal''' =
1 ответ (желтый) - ответ на запрос по протоколу LLS
'''$01$03$00$00$00$04$44$09''' Comando para sondear el sensor mediante el protocolo Modbus RTU


2 ответ (красный) - ответ на запрос  по протоколу ModBUS RTU
* 01 es la dirección de red del sensor
* 03 es el comando para leer registros
* 00 00 es el registro con el que empieza la solicitud de datos
* 00 04 es la cantidad de los registros solicitados
* 44 09 es la suma de comprobación CRC-16 MODBUS


Опрос ТД-500 в программе Terminal
Si se introduce una dirección de red diferente, es necesario recalcular la suma de comprobación. No obstante, esto no tiene sentido ya que el sensor responde a cualquiera dirección de red.


'''$01$03$00$00$00$04$44$09''' Команда на опрос датчика по протоколу Modbus RTU (в красной рамке)
== '''Calcular la suma de comprobación''' ==
Para calcular la suma de compobación puede ir al sitio web '''<nowiki>https://crccalc.com</nowiki>''', introducir su solicitud '''sin el símbolo $''', elegir '''HEX''', '''CRC-16 Modbus''' y hacer click en '''Calc CRC-16'''.


* 01 Сетевой адрес датчика
Calculación de la suma de comprobación en '''[https://crccalc.com crccalc]'''
* 03 запрашиваемая команда на чтение регистров
* 00 00 регистр, начиная с которого запрашиваются данные
* 00 04 количество запрашиваемых регистров
* 44 09 контрольная сумма CRC-16 MODBUS


Если указать другой сетевой адрес, то нужно пересчитать контрольную сумму. Но менять сетевой адрес смысла нет, т.к. датчик будет отвечать на любой сетевой адрес.
El valor calculado debe ser añadido al comando final. Tenga en cuenta que el valor 0C 44 obtenido después de calculación se añade al comando como 44 0C.


== '''Расчет контрольной суммы''' ==
= '''Respuesta del sensor:''' =
Для того, чтобы посчитать контрольную сумму, вы можете перейти на сайт '''<nowiki>https://crccalc.com</nowiki>''' и ввести ваш запрос '''без знака''' '''$''', выбрать '''HEX''', '''CRC-16 ModBUS''' и нажать Calc CRC-16
 
Расчет контрольной суммы на сайте '''[https://crccalc.com crccalc]'''
 
Полученной значение надо записать в отправляемую команду. При этом полученное при расчете значение 0C 44 следует записать в команду как 44 0C. Обратите внимание на раскладку вашей клавиатуры. Набирать команду следует латиницей.
 
= '''Ответ от датчика:''' =
'''01 03 08 14 04 67 00 00 00 00 00 D8 FF'''  
'''01 03 08 14 04 67 00 00 00 00 00 D8 FF'''  


* 01 - сетевой адрес
* 01 es la dirección de red
* 03 - команда, на которую датчик отвечает
* 03 es el comando al que sensor responde
* 08 - количество байтов в ответе
* 08 es la cantidad de los bytes en respuesta
* 14 - температура HEX (20°C в DEC)
* 14 es la temperatura en HEX (20°C en decimal)
* 04 67 - байты уровня Big Endian HEX (в прямом порядке) (или 1127 единиц в DEC)
* 04 67 son los bytes de nivel; Big Endian HEX (orden normal) (1127 unidades convencionales en decimal)
* 00 00 00 00 00 - резерв 5 байтов, не используется
* 00 00 00 00 00 es la reserva de 5 bytes que no se utiliza
* D8 FF - CRC-16 ModBUS контрольная сумма Little Endian HEX (Обратный порядок, т.е. FF D8)
* D8 FF es la suma de comprobación CRC-16 Modbus; Little Endian HEX (orden inverso, es decir FF D8)

Revisión actual - 20:05 7 may 2024

Descripción de los registros Modbus ТD-500

Características del puerto

Baud rate: 19200 kbps

Data size: 8

Stop-bits: 1

Parity: None

Estructura de solicitud y respuesta

SOLICITUD:

  •        (u8) Dirección de red
  •        (u8) 0х03 -->Comando de lectura
  •        (u8) Byte final de registro lectura (valor ignorado)
  •        (u8) Byte inicial de registro lectura (valor ignorado)
  •        (u8) Byte final de cantidad -|-|-|-|
  •        (u8) Byte inicial de cantidad -|-|-|-|
  •        (u8) CRC16 - byte final
  •        (u8) CRC16 - byte inicial

RESPUESTA:

  •        (u8) Dirección de red
  •        (u8) Aprobación de comando (siempre 0х03)
  •        (u8) Cantidad de bytes descargados (siempre 8)
  • s8    (s8) Temperatura
  •        (u8) Byte inicial de nivel
  •        (u8) Byte final de nivel
  •        (u8) Siempre 0
  •        (u8) Siempre 0
  •        (u8) Siempre 0
  •        (u8) Siempre 0
  •        (u8) Siempre 0
  •        (u8) Byte final CRC16
  •        (u8) Byte inicial CRC16

s8 significa que el valor es entero con signo, u8 es un valor entero sin signo

Direcciones numeradas de los bytes de respuesta:

Número de byte Número de byte a partir de 0 Valor
1 0 Temperatura
2 1 Byte inicial de nivel
3 2 Byte final de nivel
4 3 Siempre 0
5 4 Siempre 0
6 5 Siempre 0
7 6 Siempre 0
8 7 Siempre 0

Baudrate no cambia

19200, 8, n, 1

Cantidad de los bits en un paquete es 12x8, es decir aprox 96

En la solicitud no son importantes la dirección de red ni cantidad de los registros solicitados. Es importante que la suma de comprobación sea calculada correctamente.

Ejemplo de sondear TD-500 en programa Terminal

$01$03$00$00$00$04$44$09 Comando para sondear el sensor mediante el protocolo Modbus RTU

  • 01 es la dirección de red del sensor
  • 03 es el comando para leer registros
  • 00 00 es el registro con el que empieza la solicitud de datos
  • 00 04 es la cantidad de los registros solicitados
  • 44 09 es la suma de comprobación CRC-16 MODBUS

Si se introduce una dirección de red diferente, es necesario recalcular la suma de comprobación. No obstante, esto no tiene sentido ya que el sensor responde a cualquiera dirección de red.

Calcular la suma de comprobación

Para calcular la suma de compobación puede ir al sitio web https://crccalc.com, introducir su solicitud sin el símbolo $, elegir HEX, CRC-16 Modbus y hacer click en Calc CRC-16.

Calculación de la suma de comprobación en crccalc

El valor calculado debe ser añadido al comando final. Tenga en cuenta que el valor 0C 44 obtenido después de calculación se añade al comando como 44 0C.

Respuesta del sensor:

01 03 08 14 04 67 00 00 00 00 00 D8 FF

  • 01 es la dirección de red
  • 03 es el comando al que sensor responde
  • 08 es la cantidad de los bytes en respuesta
  • 14 es la temperatura en HEX (20°C en decimal)
  • 04 67 son los bytes de nivel; Big Endian HEX (orden normal) (1127 unidades convencionales en decimal)
  • 00 00 00 00 00 es la reserva de 5 bytes que no se utiliza
  • D8 FF es la suma de comprobación CRC-16 Modbus; Little Endian HEX (orden inverso, es decir FF D8)