Публичный тестовый сервер Modbus-TCP

Бесплатная среда для тестирования связи по Modbus-TCP

SCADA Пульт.Онлайн Утилита PultModbusTester English version

Данные для подключения

IP-адрес45.8.248.56
Порт Modbus502
Slave ID1 - 10 (слейвы представляют разные форматы данных)

Поддерживаемые команды

КодНазвание
 1 (0x01)Чтение дискретных выходов (Coils, CL)
 2 (0x02)Чтение дискретных входов (Digital Inputs, DI)
 3 (0x03)Чтение регистров хранения (Holding Registers, HR)
 4 (0x04)Чтение входных регистров (Input Registers, IR)
 5 (0x05)Запись одного дискретного выхода CL
 6 (0x06)Запись одного регистра хранения HR
16 (0x10)Запись нескольких регистров хранения HR (макс. 2 регистра)

Поддерживаемые форматы HR/IR

Тестовый сервер предоставляет несколько форматов данных для регистров хранения (HR) и входных регистров (IR). Они отличаются типом данных и порядком байтов/слов (A - старший). Каждый Slave предоставляет данные в своем формате:

SlaveФорматОписание
1UINT16 Беззнаковое 16-битное целое, порядок байтов: A B
Регистры: 1,2,3,…,1024 (1 регистр на значение, 2 байта)
2UINT32_ABCD Беззнаковое 32-битное целое, порядок байтов: A B C D
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
3UINT32_CDAB Беззнаковое 32-битное целое, порядок байтов: C D A B
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
4UINT32_BADC Беззнаковое 32-битное целое, порядок байтов: B A D C
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
5UINT32_DCBA Беззнаковое 32-битное целое, порядок байтов: D C B A
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
6FLOAT_ABCD 32-битное число с плавающей точкой, порядок байтов: A B C D
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
7FLOAT_CDAB 32-битное число с плавающей точкой, порядок байтов: C D A B
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
8FLOAT_BADC 32-битное число с плавающей точкой, порядок байтов: B A D C
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
9FLOAT_DCBA 32-битное число с плавающей точкой, порядок байтов: D C B A
Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта)
10UINT16 Беззнаковое 16-битное целое, порядок байтов: A B
Регистры IR: 1,2,3,…,268 (1 регистр на значение, 2 байта)
Регистры IR: 300,301 (2 регистра на значение, 4 байта)

В данном слейве представлены только IR-регистры, которые содержат метрики текущего времени для разных часовых поясов. Регистры для разных поясов разнесены со смещением 10:

1 + 10 x Z - Год
2 + 10 x Z - Месяц
3 + 10 x Z - День месяца
4 + 10 x Z - Час
5 + 10 x Z - Минута
6 + 10 x Z - Секунда
7 + 10 x Z - День недели
8 + 10 x Z - Временная зона (в часах от UTC)

где Z - индекс временной зоны, от 0 до 26

Зоны с индексом от 0 до 14 соотвествуют часовым поясам к востоку от Гринвича (Z==0: UTC+00:00, Z==14: UTC+14:00)
Зоны с индексом от 15 до 26 соотвествуют часовым поясам к западу от Гринвича в обратном порядке (Z==15: UTC-01:00, Z==26: UTC-12:00)

Пример расчета адреса регистра для Гринвича:
Зона UTC+00:00, отсюда Z = 0
Адрес регистра Час = 4 + 10 x 0 = 4

Пример расчета адреса регистра для часового пояса Москвы:
Зона UTC+03:00, отсюда Z = 3
Адрес регистра Час = 4 + 10 x 3 = 34

Регистр IR 300: Unix Timestamp (UINT32_ABCD)
Данные представлены с точностью ±0.5 секунды.

Значения (для слейвов 1 - 9)

Программа для опроса регистров

Для работы с Modbus-сервером можно использовать утилиту PultModbusTester.
На скриншоте - пример получения метрик времени: