Подписаться

Настройка Modbus TCP Master на роутерах Teltonika

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

mceclip0.png

Во-первых, давайте настроим наш второй маршрутизатор, который будет работать как подчиненное устройство.

Конфигурирование ведомого устройства Modbus TCP
В этом примере мы будем настраивать наше ведомое устройство на внутренний IP-адрес 192.168.1.2. Это можно сделать, изменив параметр IP-адреса на странице Network-> LAN:

mceclip1.png

Теперь нам нужно включить службу Modbus для этого ведомого устройства, так как мы откроем определенный порт для пропуска через TCP-соединения (также возможно «Разрешить удаленный доступ», если мы хотим получить доступ к этому маршрутизатору из внешней глобальной сети, используя его общедоступный IP-адрес). Это делается на странице services -> Modbus:

mceclip2.png

Настройка главного устройства Modbus TCP
Добавление нового ведомого устройства
На главном устройстве (в этом примере главное устройство имеет внутренний IP-адрес 192.168.1.1) откройте Service-> Modbus-> Мастер Modbus TCP. Чтобы добавить нового ведомого, введите произвольное имя, идентификатор ведомого, IP-адрес и порт и нажмите кнопку «Add»:

mceclip3.png

Примечание. Идентификатор, IP-адрес и порт ведомого устройства должны совпадать с настройками на странице «Службы» ведомого устройства -> Modbus.


После нажатия кнопки «Добавить» вы будете перенаправлены на страницу конфигурации расширенного ведомого:

mceclip5.png

Field Value Description
Enabled yes | no; default: no Turns communication with the slave device on or off.
Name string; default: none Slave device's name, used for easier management purposes.
Slave ID integer [0..255]; default: none Slave ID. Each slave in a network is assigned a unique identifier ranging from 1 to 255. When the master requests data from a slave, the first byte it sends is the Slave ID. When set to 0, the slave will respond to requests addressed to any ID.
IP address ip; default: none Slave device's IP address.
Port integer [0..65535]; default: none Slave device's Modbus TCP port.
Period integer [1..6400]; default: none Interval at which requests are sent to the slave device.
Timeout integer [1..30]; default: none Maximum response wait time.

Включите конфигурацию этого ведомого, установив флажок и введите время ожидания в секундах. Нажмите Сохранить.

Теперь ведомое устройство добавлено в раздел Modbus TCP Master, но нам нужно проверить, работает ли оно.

mceclip6.png

 

Для проверки работоспособности функционала мы можем настроить запрос. Запрос Modbus - это способ получения данных от подчиненных устройств Modbus. Ведущий отправляет запрос подчиненному с указанием кода функции, который необходимо выполнить. Затем ведомое устройство отправляет запрошенные данные обратно на ведущее устройство Modbus. Вы можете создать максимум 64 конфигурации запроса для каждого подчиненного устройства.

Нажимаем кнопку «Редактировать» в конфигурации ведомого устройства.

mceclip7.png

Нажав кнопку «Добавить» в разделе конфигурации запросов, мы сможем настроить новый запрос. Скажем, в нашем случае нас интересует параметр System Uptime, который находится в первых двух регистрах нашего устройства (подробнее о параметрах и их регистрах мы можем получить или установить с помощью сервиса Modbus: RUT955 Modbus). Вот как должен выглядеть наш запрос для этой цели:

mceclip8.png

Field Value Description
Name string; default: Unnamed Parameter Request name. Used for easier management purposes.
Data type 8bit INT | 8bit UINT | 16bit INT, high byte first | 16bit INT, low byte first | 16bit UINT, high byte first | 16bit UINT, low byte first | 32bit float, Byte order 1,2,3,4 | 32bit float, Byte order 4,3,2,1 | 32bit float, Byte order 2,1,4,3 | 32bit float, Byte order 3,4,1,2; default: 16bit INT, high byte first How read data will be stored.
Function 1 | 2 | 3 | 4 | 5 | 6 | 15 | 16; default: 3 A function code specifies the type of register being addressed by a Modbus request. The codes represent these functions:
  • 1 - read Coil Status
  • 2 - read Input Status
  • 3 - read Holding Registers
  • 4 - read Input Registers
  • 5 - force Single Coil
  • 6 - preset Single Register
  • 15 - force Multiple Coils
  • 16 - force Multiple Registers
First Register integer [0..65535]; default: 1 First Modbus register from which data will be read.
Number of Registers integer [1..2000]; default: none Number of Modbus registers that will be read during the request.
Enabled yes | no; default: no Turns the request on or off.
Test - (interactive button) Generates a Modbus request according to given parameters in order to test the request configuration. You must first save the configuration before you can use the Test button.
Delete - (interactive button) Deletes the request.
Add - (interactive button) Adds a new request configuration.

 

Примечание. Во время написания этой статьи нам нужно сначала «сохранить» конфигурацию, прежде чем нажать кнопку «Тест». Это перенаправит вас на главную страницу Modbus TCP, и вам нужно будет снова нажать кнопку «Редактировать», чтобы попытаться проверить функциональность этого запроса.


Теперь, нажав кнопку «Тест», мы можем получить значение времени работы системы из первых двух регистров:

mceclip9.png

Мы видим, что подчиненное устройство возвращает запрошенное ведущее устройство регистров.

сигнализация
Тревоги - это способ настройки автоматических действий, когда некоторые значения Modbus удовлетворяют заданным пользователем условиям. Для настройки этих сигналов мы нажимаем кнопку «Сигналы тревоги»:

mceclip10.png

Выберите подходящую функцию и нажмите «Добавить».

mceclip11.png

 

Скажем, в этом простом примере мы хотим запустить выход (в частности, релейный выход), когда значение времени безотказной работы нашей системы будет больше 0 (это всегда верно, поскольку второй регистр, в котором хранится информация, хранит время безотказной работы системы маршрутизатора в секундах). После сохранения конфигурации каждую минуту (поскольку период для отправки запросов на ведомое устройство установлен на 60 секунд), релейный выход будет инвертироваться, и если вы находитесь рядом с устройством, вы должны услышать его. Следующая конфигурация будильника будет выглядеть так:

mceclip12.png

Field Value Description
Enabled yes | no; default: no Turns the alarm on or off
Function code Read Coil Status (1) | Read Input Status (2) | Read Holding Registers (3) | Read Input Registers (4); default: Read Coil Status (1) Modbus function used in Modbus request.
Register integer [0..65535]; default: none Number of the Modbus coil/input/holding register/input register that will be read.
Condition More than | Less than | Equal to | Not Equal to; default: Equal to When a value is obtained it will be compared against the value specified in the following field. The comparison will be made in accordance with the condition specified in this field.
Value various; default: none The value against which the read data will be compared.
Action SMS | Trigger output | Modbus Request; default: SMS Action that will be taken if the condition is met. Possible actions:
  • SMS - sends and SMS message to a specified recipient(s).
  • Trigger output - changes the state of a specified output(s).
  • Modbus Request - sends a Modbus request to a specified slave.
SMS: Message string; default: none SMS message text.
SMS: Phone number phone number; default: none Recipient's phone number.
Trigger output: Output Open collector output | Relay output | Both; default: Open collector output Which output(s) will be triggered.
Trigger output: I/O Action Turn On | Turn Off | Invert; default: Turn On Action that will taken on the specified output.
Modbus Request: IP address ip | host; default: none Modbus slave's IP address.
Modbus Request: Port integer [0..65535]; default: none Modbus slave's port.
Modbus Request: Timeout integer [1..30]; default: 5 Maximum time to wait for a response.
Modbus Request: ID integer [1..255]; default: none Modbus slave ID.
Modbus Request: Modbus function Read Coil Status (1) | Read Input Status (2) | Read Holding Registers (3) | Read Input Registers (4) | Force Single Coil (5) | Preset Single Register (6) | Force Multiple Coils (15) | Force Multiple Registers (16); default: Force Single Coil (5) A function code specifies the type of register being addressed by a Modbus request.
Modbus Request: First register integer [0..65535]; default: none Begins reading from the register specified in this field.
Modbus Request: Number of registers integer [0..65535]; default: none The number of registers that will be read from the first register.

0 Комментарии

Войдите в службу, чтобы оставить комментарий.
На базе технологии Zendesk