Working with WB devices without a controller: различия между версиями

м
→‎Подключение к счетчику через Modbus Poll: Действия в повелительном наклонении
м (→‎Подготовка к работе: Добавил полезной информации)
м (→‎Подключение к счетчику через Modbus Poll: Действия в повелительном наклонении)
Строка 52: Строка 52:
Для примера считаем из устройства значение одного Holding-регистра. В табличной части окна опроса выберите первую строку, кликните правой кнопкой мыши и в контекстном меню выберите '''Read/Write Definition'''.
Для примера считаем из устройства значение одного Holding-регистра. В табличной части окна опроса выберите первую строку, кликните правой кнопкой мыши и в контекстном меню выберите '''Read/Write Definition'''.


Заполняем параметры опроса регистра:
Заполните параметры опроса регистра:
* '''Slave id''' — modbus адрес устройства, напечатан на наклейке и имеет вид «Addr: XX».
* '''Slave id''' — modbus адрес устройства, напечатан на наклейке и имеет вид «Addr: XX».
* '''Function''' — мы хотим считать holding-регистр, поэтому выбираем '''03: Read Holding Registers (4x)'''. Тип регистра берем из таблицы в документации на устройство.
* '''Function''' — мы хотим считать holding-регистр, поэтому выберите '''03: Read Holding Registers (4x)'''. Тип регистра можно узнать из таблицы в документации на устройство.
* '''Address mode''' — формат адреса регистра. Зависит от того, в каком виде представлен адрес регистра в документации на устройство.
* '''Address mode''' — формат адреса регистра. Зависит от того, в каком виде представлен адрес регистра в документации на устройство.
* '''Address''' — адрес регистра можно взять из таблицы регистров устройства. Мы считаем общий для всех наших устройств регистр — 110. Список общих регистров можно посмотреть на странице [[Common_Modbus_Registers|Общие Modbus регистры]]. Обратите внимание на формат адреса — в нашем случае он десятичный. Если формат будет в шестнадцатеричном формате, то измените значение настройки '''Address mode'''.
* '''Address''' — адрес регистра можно взять из таблицы регистров устройства. Мы считаем общий для всех наших устройств регистр — 110. Список общих регистров можно посмотреть на странице [[Common_Modbus_Registers|Общие Modbus регистры]]. Обратите внимание на формат адреса — в нашем случае он десятичный. Если формат будет в шестнадцатеричном формате, то измените значение настройки '''Address mode'''.
* '''Quantity''' — количество считываемых последовательно регистров, начиная с регистра, указанного в поле '''Address'''. Мы будем считывать один регистр — устанавливаем значение «1».
* '''Quantity''' — количество считываемых последовательно регистров, начиная с регистра, указанного в поле '''Address'''. Мы будем считывать один регистр — установите значение «1».
* '''Scan Rate''' — период опроса регистра. Оставляем по умолчанию.
* '''Scan Rate''' — период опроса регистра. Оставьте по умолчанию.
* '''Address in Cell''' — если вы хотите вывести адрес регистра в ячейку рядом со значением — отметьте этот флажок.
* '''Address in Cell''' — если вы хотите вывести адрес регистра в ячейку рядом со значением — отметьте этот флажок.


Остальные значения оставляем по умолчанию. Нажимаем кнопку '''OK'''.
Остальные значения оставьте по умолчанию. Нажмите кнопку '''OK'''.


[[File:Modbys poll 03-test3.png|450px|thumb|none|Считанное значение общего регистра с адресом «100»]]
[[File:Modbys poll 03-test3.png|450px|thumb|none|Считанное значение общего регистра с адресом «100»]]
Строка 69: Строка 69:
Считаем значение параметра «Прямая активная энергия для фазы L1». Находим его в [[WB-MAP3E_Data_Registers|таблице регистров WM-MAP3E]]: тип параметра — Input, разрядность — u64 (занимает 4 регистра), адрес первого регистра — 0x1204.
Считаем значение параметра «Прямая активная энергия для фазы L1». Находим его в [[WB-MAP3E_Data_Registers|таблице регистров WM-MAP3E]]: тип параметра — Input, разрядность — u64 (занимает 4 регистра), адрес первого регистра — 0x1204.


Заполняем параметры опроса регистров:
Заполните параметры опроса регистров:
* '''Slave id''' — 38.
* '''Slave id''' — 38.
* '''Function''' — мы хотим считать input-регистр, поэтому выбираем '''04: Read Input Registers (3x)'''.
* '''Function''' — мы хотим считать input-регистр, поэтому выберите '''04: Read Input Registers (3x)'''.
* '''Address mode''' — так как адрес первого регистра в шестнадцатеричном формате, выбираем '''Hex'''.
* '''Address mode''' — так как адрес первого регистра в шестнадцатеричном формате, выберите '''Hex'''.
* '''Address''' — 1204. Адрес вводится без «0x».
* '''Address''' — 1204. Адрес вводится без «0x».
* '''Quantity''' — значение хранится в четырех регистрах, поэтому устанавливаем «4».
* '''Quantity''' — значение хранится в четырех регистрах, поэтому установите «4».
* '''Address in Cell''' — установим флажок, чтобы вывести адреса регистров в ячейки.
* '''Address in Cell''' — установим флажок, чтобы вывести адреса регистров в ячейки.


Остальные значения оставляем по умолчанию. Нажимаем кнопку '''OK'''.
Остальные значения оставьте по умолчанию. Нажимаем кнопку '''OK'''.


Так как значение хранится в нескольких регистрах, то конечный результат нужно вычислить. Вы можете [[WB-MAP12H_Data_Registers|вычислить значение вручную]] или автоматически конвертировать. Чтобы конвертировать значение регистров в десятичный вид, перейдите в меню '''View''' → выберите '''64 Bit Unsigned''' → '''Little-endian'''. Теперь десятичное значение будет отображено в первом регистре последовательности.
Так как значение хранится в нескольких регистрах, то конечный результат нужно вычислить. Вы можете [[WB-MAP12H_Data_Registers|вычислить значение вручную]] или автоматически конвертировать. Чтобы конвертировать значение регистров в десятичный вид, перейдите в меню '''View''' → выберите '''64 Bit Unsigned''' → '''Little-endian'''. Теперь десятичное значение будет отображено в первом регистре последовательности.
Строка 90: Строка 90:
Для демонстрации записи в регистр, изменим адрес modbus-устройства.
Для демонстрации записи в регистр, изменим адрес modbus-устройства.


Откроем окно опроса устройства и вызовем окно записи данных:
Откройте окно опроса устройства и вызовите окно записи данных:
* откройте новое окно опроса устройства: меню '''File''' → '''New''';
* откройте новое окно опроса устройства: меню '''File''' → '''New''';
* выберите в главном меню '''Functions''' → '''Write Single Register'''.
* выберите в главном меню '''Functions''' → '''Write Single Register'''.


В открывшемся окне заполним поля:
В открывшемся окне заполните поля:
* '''Slave id''' — введите текущий адрес устройства;
* '''Slave id''' — введите текущий адрес устройства;
* '''Address''' — введите регистр, где хранится адрес modbus — 128 (десятичный);
* '''Address''' — введите регистр, где хранится адрес modbus — 128 (десятичный);