Modbus: различия между версиями

Строка 52: Строка 52:


===Адреса и номера регистров===
===Адреса и номера регистров===
В стандарте Modbus для каждого из четырех типов регистров используются разные таблицы с номерами 0,1,3,4. Таким образом, регистр определенного типа с определенным номером (иначе его называют физическим адресом) имеет свой адрес в соответствующей таблице. Это историческое наследие протокола вносит путаницу в понимание, по какому же адресу обратиться к регистру с нужным номером. Чаще всего указываются номера регистров, как, например для устройств Wiren Board.
В стандарте Modbus для каждого из четырех типов регистров используются разные таблицы с номерами 0,1,3,4. Таким образом, регистр определенного типа с определенным номером (иначе его называют физическим адресом) имеет свой адрес в соответствующей таблице. Это историческое наследие протокола вносит путаницу в понимание, по какому же адресу обратиться к регистру с нужным номером. Более того, понятия "адрес" и "регистр" могут применяться производителем произвольно. Чаще всего указываются номера регистров, как, например для устройств Wiren Board.
{|class="wikitable" align="center"
{|class="wikitable" align="center"
! Таблица || Номер таблицы || Начальный логический адрес || Номер регистра (физический адрес) || Диапазон логических адресов
! Таблица || Номер таблицы || Начальный логический адрес || Номер регистра (физический адрес) || Диапазон логических адресов
Строка 69: Строка 69:
|}
|}


Но иногда в описаниях указываются только адреса. Например, coil-регистр 0 имеет адрес 000001, регистр ввода 4 -- 400005 и т.д.
В некоторых устройствах применяются более короткие логические адреса (.0001-.9999), и для адреса используется 5, а не 6 цифр.
 
Иногда в описаниях устройства указываются только логические адреса. Например, coil-регистр 0 имеет адрес 000001, регистр ввода 4 -- 400005 и т.д.
В готовых шаблонах устройств контроллера Wiren Board 5 есть шаблон для однофазного счетчика SDM220(/usr/share/wb-mqtt-serial/templates/config-sdm220.json). В документации от производителя "Eastron SDM
В готовых шаблонах устройств контроллера Wiren Board 5 есть шаблон для однофазного счетчика SDM220(/usr/share/wb-mqtt-serial/templates/config-sdm220.json). В документации от производителя "Eastron SDM
220 Modbus Smart Meter Modbus Protocol Implementation V1.0" перечислены регисрты и соответствующие им измеряемые параметры.
220 Modbus Smart Meter Modbus Protocol Implementation V1.0" перечислены регистры и соответствующие им измеряемые параметры, например:
 
{|class="wikitable" align="center"
! Таблица || Address (Register)|| Description || Units || Modbus Protocol Start Address Hex (Hi Byte  Lo Byte)
|-
! 30001
| Line to neutral volts. || Volts || 0 || 000001-065535
|-
! Дискретные входы (Discrete Inputs)
| 1 || 100001 || 0 || 100001-165535
|-
! Регистры хранения (Holding Registers)
| 3 || 300001 || 0 || 300001-365535
|-
! Регистры ввода (Input Registers)
| 4 || 400001 || 0 || 400001-465535
|}
5813

правок