Diferencia entre revisiones de «MODBUS TD-500»

1813 bytes eliminados ,  hace 2 años
sin resumen de edición
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)
1337

ediciones