Почему регистр P2S-100 не читается по номеру из таблицы?
Почти всегда причина в смещении адресов. Номера в таблицах руководства записаны в классической нотации Modbus, где нумерация начинается с единицы, а в кадре запроса передаётся смещение, начинающееся с нуля. Разница ровно в единицу.
Пример из самого руководства: катушка 00008 — сброс ошибки — адресуется в кадре как 0x0007. Тот же принцип действует для всех блоков:
| Блок | Номера в таблице | Функции чтения и записи |
|---|---|---|
| Катушки | 00001…00008 | 01, 05, 15 |
| Дискретные входы | 10001…10008 | 02 |
| Входные регистры | 30001…30016 | 04 |
| Регистры хранения | 40001…40032 | 03, 06, 16 |
Что проверить, если ответа всё равно нет:
- Функция соответствует блоку. Уставки из блока 4хххх читаются функцией 03, данные реального времени из 3хххх — функцией 04. Перепутанная функция даёт исключение, а не значение.
- Первая цифра номера — это тип блока, а не часть адреса. В кадр она не передаётся: регистр 40002 — это смещение 0x0001 при функции 03.
- Настройки порта. Адрес устройства 1…127, скорость по регистру 40018, чётность по 40019. Число стоп-битов зависит от чётности: при отключённом контроле их два, при чётности или нечётности — один.
- Интервал опроса. Нормальный ответ приходит за 4…40 мс, при записи параметров интервал между запросами должен быть не меньше 1000 мс.
- Широковещательные запросы не поддерживаются — опрос только поадресный.
Многие драйверы и OPC-серверы делают пересчёт адресов сами, и тогда номер вводится как в таблице. Уточните это в описании вашего мастера, прежде чем править адреса вручную.
Модели серии — в разделе P2S-100.
Прикреплённая документация
Артём Оськин
Руководитель отдела приводной техники