Данные для подключения
IP-адрес | 45.8.248.56 |
---|---|
Порт Modbus | 502 |
Slave ID | 1 - 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 | Формат | Описание |
---|---|---|
1 | UINT16 |
Беззнаковое 16-битное целое, порядок байтов: A B Регистры: 1,2,3,…,1024 (1 регистр на значение, 2 байта) |
2 | UINT32_ABCD |
Беззнаковое 32-битное целое, порядок байтов: A B C D Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
3 | UINT32_CDAB |
Беззнаковое 32-битное целое, порядок байтов: C D A B Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
4 | UINT32_BADC |
Беззнаковое 32-битное целое, порядок байтов: B A D C Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
5 | UINT32_DCBA |
Беззнаковое 32-битное целое, порядок байтов: D C B A Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
6 | FLOAT_ABCD |
32-битное число с плавающей точкой, порядок байтов: A B C D Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
7 | FLOAT_CDAB |
32-битное число с плавающей точкой, порядок байтов: C D A B Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
8 | FLOAT_BADC |
32-битное число с плавающей точкой, порядок байтов: B A D C Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
9 | FLOAT_DCBA |
32-битное число с плавающей точкой, порядок байтов: D C B A Регистры: 1,3,5,…,1023 (2 регистра на значение, 4 байта) |
10 | UINT16 |
Беззнаковое 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)
- Значения в дискретных выходах (CL) и регистрaх хранения (HR) доступны для записи командами 5, 6 и 16.
Не полагайтесь на записанные значения, т. к. они могут быть перезаписаны другими пользователями! - Значения в дискретных входах (DI) и входных регистрах (IR) генерируются автоматически (инкрементируются 1 раз в секунду)
Программа для опроса регистров
Для работы с Modbus-сервером можно использовать утилиту PultModbusTester.На скриншоте - пример получения метрик времени для часового пояса Москвы (UTC+03:00):
