Примеры преобразования из протоколов Modbus RTU/ASCII в Modbus TCP

Пример преобразования из протоколов Modbus RTU/ASCII в Modbus TCP

Master-устройство находится в сети RS-485, Slave-устройство находится в сети Ethernet.

Graphic
Схема подключения
Сетевые настройки подключенных к шлюзу устройств
MasterSlave
ПараметрЗначениеПараметрЗначение
ИнтерфейсRS-485ИнтерфейсEthernet
ПротоколModbus RTU/ASCIIПротоколModbus TCP

Скорость

9600 кбит/с

Адрес устройства (ID)

1 (Hex – 0x01)

Размер данных

8 бит

IP-адрес

10.2.25.210 (Hex – 0A0219D2)

Количество стоп-битов

1TCP-порт

502 (Hex – 1F6)

Контроль четностиНет

Шлюз

10.2.1.1

Маска сети

255.255.0.0

Сетевые настройки шлюза

Интерфейс RS-485 (код интерфейса – 0x40)

Интерфейс Ethernet

ПараметрЗначениеПараметрЗначение
ПротоколАвтоопределение (RTU/ASCII)ПротоколModbus TCP (код протокола – P)

Скорость

9600 кбит/с

Адрес устройства (ID)

1 (Hex – 0x01)

Размер данных

8 бит

IP-адрес

10.2.25.211

Количество стоп-битов

1TCP-порт

502 (Hex – 1F6)

Контроль четностиНет

Шлюз

10.2.1.1

Режим порта RS-485

Slave

Маска сети

255.255.0.0

Запись правила маршрутизации имеет вид 40:0:10:0A0219D2:1F6:1:P и раскрыта в таблице:

Раскрытие записи правила маршрутизации
Входящий пакетИсходящий пакетПротокол
Код интерфейса/IP-адресПорт (не используется)Slave IDКод интерфейса/IP-адресПорт (опционально)Slave ID
0x400x00 (не используется)0x100x0A0219D20x1F60x01P

Slave ID входящего пакета однозначно указывает на Slave-устройство в сети Ethernet с определенным IP-адресом, TCP-портом и собственным Slave ID. Пакеты, отправленные Master-устройством на адрес 16 (Hex – 0x10) в сети RS-485, будут перенаправлены на IP-адрес 10.2.25.210 (Hex – 0x0A0219D2), TCP-порт 502 (Hex – 0x1F6) и Slave ID 1 (Hex – 0x01) устройства в сети Ethernet. Протокол Modbus RTU/ASCII будет сконвертирован в протокол Modbus TCP (код протокола – P).

Примечание
В качестве кода интерфейса исходящего пакета используется Hex-представление IP-адреса, а не код интерфейса Ethernet (Hex – 0x06).

Примечание
Для перенаправления всех пакетов на указанное Slave-устройство следует установить в поле Slave ID входящего пакета значение G (обрабатывать пакеты с любым Slave ID). Стоит учитывать, что правила маршрутизации, написанные ниже правила с кодом G, обработаны не будут, в соответствии с порядком разбора таблицы маршрутизации.

Пример преобразования из протокола Modbus TCP в Modbus RTU/ASCII

Master-устройство находится в сети Ethernet, Slave-устройство находится в сети RS-485.

Graphic
Схема подключения
Сетевые настройки подключенных к шлюзу устройств
MasterSlave
ПараметрЗначениеПараметрЗначение
ИнтерфейсEthernetИнтерфейсRS-485
ПротоколModbus TCPПротоколModbus RTU

IP-адрес

10.2.25.210 (Hex – 0A0219D2)УстройствоSlave 1Slave 2

Шлюз

10.2.1.1

Адрес23

Маска сети

255.255.0.0

Скорость9600 кбит/с
Размер данных8 бит
Количество стоп-битов1
Контроль четностиНет
Сетевые настройки шлюза

Интерфейс Ethernet (код интерфейса – 0x06)

Интерфейс RS-485 (код интерфейса – 0x40)

ПараметрЗначениеПараметрЗначение
ПротоколModbus TCPПротоколModbus RTU (код протокола – R)

Адрес устройства (ID)

1*Скорость9600 кбит/с

IP-адрес

10.2.25.211

Размер данных8 бит
TCP-порт502*Количество стоп-битов1

Шлюз

10.2.1.1

Контроль четностиНет

Маска сети

255.255.0.0

Режим порта RS-485Master
Примечание
* Значение не изменяется для интерфейса Ethernet.

Запись правила маршрутизации имеет вид 6:0:G:40:0:S:R и раскрыта в таблице:

Раскрытие записи правила маршрутизации
Входящий пакетИсходящий пакетПротокол
Код интерфейса/IP-адресПорт (не используется)Slave IDКод интерфейса/IP-адресПорт (опционально)Slave ID
0x060x00 (не используется)G0x400x00 (не задействован)SR

Если в поле Slave ID входящего пакета установлено значение G, шлюз пересылает все пакеты из сети Ethernet (Hex – 0x06) в сеть RS-485 (Hex – 0x40), кроме входящих пакетов со Slave ID, равным 1.

Примечание
Устройства в сети RS-485 не могут иметь адрес, равный 1, если в Slave ID входящего пакета установлено значение G , потому что данный адрес зарезервирован за шлюзом и не может быть изменен. Таким образом, все входящие пакеты со значением Slave ID = 1 будут попадать под системное правило маршрутизации 27:0:1:0:0:S:P. Если изменить адрес Slave-устройства невозможно, то можно применить следующее правило маршрутизации: 6:0:DE:40:0:1:R (пакеты направленные на адрес 0xDE (Dec – 222) будут перенаправлены на Slave-устройство с адресом 1). Данное правило маршрутизации следует поставить выше правила со значением G в соответствии с порядком разбора таблицы маршрутизации.

Исходящий пакет будет иметь такой же Slave ID, как и у входящего пакета, так как поле Slave ID исходящего пакета имеет значение S. Протокол Modbus TCP будет сконвертирован в протокол Modbus RTU (код протокола – R).

Примечание
Для конвертации протокола Modbus TCP в протокол Modbus ASCII следует установить в поле Код протокола значение A.