Diferencia entre revisiones de «MODBUS TD-500»

De Base de datos Escort
(Página creada con « Русская версия English version TEST»)
 
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 


TEST
= '''Настройки порта''' =
Baud rate: 19200 kbps
 
Data size: 8
 
Stop-bits: 1
 
Parity: None
 
= '''Структура запроса и ответа''' =
'''ЗАПРОС''':
 
*        (u8) Сетевой номер
*        (u8) 0х03 --> Команда чтения
*        (u8) Младший байт рег. чтения (значение игнорируется)
*        (u8) Старший байт рег. чтения (значение игнорируется)
*        (u8) Младший байт количества -|-|-|-|
*        (u8) Старший байт количества -|-|-|-|
*        (u8) CRC16 - младший байт
*        (u8) CRC16 - старший байт
 
'''ОТВЕТ''':
 
*        (u8) Сетевой номер
*        (u8) Подтверждение команды (всегда 0х03)
*        (u8) Количество выгружаемых байт (всегда 8)
* s8    (s8) температура
*        (u8) Старший байт уровня
*        (u8) Младший байт уровня
*        (u8) Всегда 0
*        (u8) Всегда 0
*        (u8) Всегда 0
*        (u8) Всегда 0
*        (u8) Всегда 0
*        (u8) младший байт CRC16
*        (u8) Старший байт CRC16
 
s8 означает, что значение является знаковым целым, u8 - беззнаковое целое.
 
Пронумерованные адреса байтов ответа:
{| class="wikitable"
|Порядковый номер байта
|Порядковый номер байта начиная с 0
|Значение
|-
|1
|0
|Температура
|-
|2
|1
|Старший (первый) байт уровня
|-
|3
|2
|Младший (последний) байт уровня
|-
|4
|3
|Всегда 0
|-
|5
|4
|Всегда 0
|-
|6
|5
|Всегда 0
|-
|7
|6
|Всегда 0
|-
|8
|7
|Всегда 0
|}
Baudrate не изменяется.
 
'''19200, 8, n, 1'''
 
Количество бит в посылке 12х8 т.е около 96 шт
 
В запросе не важно какой указан сетевой номер, а также неважно количество запрашиваемых регистров. Главное, чтобы совпадала контрольная сумма. Расчет контрольной суммы приведен ниже.
 
= '''Пример опроса датчика ТД-500 в программе Terminal''' =
1 ответ (желтый) - ответ на запрос по протоколу LLS
 
2 ответ (красный) - ответ на запрос  по протоколу ModBUS RTU
 
Опрос ТД-500 в программе Terminal
 
'''$01$03$00$00$00$04$44$09''' Команда на опрос датчика по протоколу Modbus RTU (в красной рамке)
 
* 01 Сетевой адрес датчика
* 03 запрашиваемая команда на чтение регистров
* 00 00 регистр, начиная с которого запрашиваются данные
* 00 04 количество запрашиваемых регистров
* 44 09 контрольная сумма CRC-16 MODBUS
 
Если указать другой сетевой адрес, то нужно пересчитать контрольную сумму. Но менять сетевой адрес смысла нет, т.к. датчик будет отвечать на любой сетевой адрес.
 
== '''Расчет контрольной суммы''' ==
Для того, чтобы посчитать контрольную сумму, вы можете перейти на сайт '''<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 - температура HEX (20°C в DEC)
* 04 67 - байты уровня Big Endian HEX (в прямом порядке) (или 1127 единиц в DEC)
* 00 00 00 00 00 - резерв 5 байтов, не используется
* D8 FF - CRC-16 ModBUS контрольная сумма Little Endian HEX (Обратный порядок, т.е. FF D8)

Revisión del 17:20 7 may 2024

Описание регистров MODBUS ТД-500

Настройки порта

Baud rate: 19200 kbps

Data size: 8

Stop-bits: 1

Parity: None

Структура запроса и ответа

ЗАПРОС:

  •        (u8) Сетевой номер
  •        (u8) 0х03 --> Команда чтения
  •        (u8) Младший байт рег. чтения (значение игнорируется)
  •        (u8) Старший байт рег. чтения (значение игнорируется)
  •        (u8) Младший байт количества -|-|-|-|
  •        (u8) Старший байт количества -|-|-|-|
  •        (u8) CRC16 - младший байт
  •        (u8) CRC16 - старший байт

ОТВЕТ:

  •        (u8) Сетевой номер
  •        (u8) Подтверждение команды (всегда 0х03)
  •        (u8) Количество выгружаемых байт (всегда 8)
  • s8    (s8) температура
  •        (u8) Старший байт уровня
  •        (u8) Младший байт уровня
  •        (u8) Всегда 0
  •        (u8) Всегда 0
  •        (u8) Всегда 0
  •        (u8) Всегда 0
  •        (u8) Всегда 0
  •        (u8) младший байт CRC16
  •        (u8) Старший байт CRC16

s8 означает, что значение является знаковым целым, u8 - беззнаковое целое.

Пронумерованные адреса байтов ответа:

Порядковый номер байта Порядковый номер байта начиная с 0 Значение
1 0 Температура
2 1 Старший (первый) байт уровня
3 2 Младший (последний) байт уровня
4 3 Всегда 0
5 4 Всегда 0
6 5 Всегда 0
7 6 Всегда 0
8 7 Всегда 0

Baudrate не изменяется.

19200, 8, n, 1

Количество бит в посылке 12х8 т.е около 96 шт

В запросе не важно какой указан сетевой номер, а также неважно количество запрашиваемых регистров. Главное, чтобы совпадала контрольная сумма. Расчет контрольной суммы приведен ниже.

Пример опроса датчика ТД-500 в программе Terminal

1 ответ (желтый) - ответ на запрос по протоколу LLS

2 ответ (красный) - ответ на запрос  по протоколу ModBUS RTU

Опрос ТД-500 в программе Terminal

$01$03$00$00$00$04$44$09 Команда на опрос датчика по протоколу Modbus RTU (в красной рамке)

  • 01 Сетевой адрес датчика
  • 03 запрашиваемая команда на чтение регистров
  • 00 00 регистр, начиная с которого запрашиваются данные
  • 00 04 количество запрашиваемых регистров
  • 44 09 контрольная сумма CRC-16 MODBUS

Если указать другой сетевой адрес, то нужно пересчитать контрольную сумму. Но менять сетевой адрес смысла нет, т.к. датчик будет отвечать на любой сетевой адрес.

Расчет контрольной суммы

Для того, чтобы посчитать контрольную сумму, вы можете перейти на сайт https://crccalc.com и ввести ваш запрос без знака $, выбрать HEX, CRC-16 ModBUS и нажать Calc CRC-16

Расчет контрольной суммы на сайте crccalc

Полученной значение надо записать в отправляемую команду. При этом полученное при расчете значение 0C 44 следует записать в команду как 44 0C. Обратите внимание на раскладку вашей клавиатуры. Набирать команду следует латиницей.

Ответ от датчика:

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

  • 01 - сетевой адрес
  • 03 - команда, на которую датчик отвечает
  • 08 - количество байтов в ответе
  • 14 - температура HEX (20°C в DEC)
  • 04 67 - байты уровня Big Endian HEX (в прямом порядке) (или 1127 единиц в DEC)
  • 00 00 00 00 00 - резерв 5 байтов, не используется
  • D8 FF - CRC-16 ModBUS контрольная сумма Little Endian HEX (Обратный порядок, т.е. FF D8)