Что означают коды ошибок в регистре настройки сокета PMP20?
Когда соединение не создаётся, причину контроллер записывает в два системных регистра: в SD1920 попадает номер сокета, который не удалось открыть, а в SD1921 — код ошибки. Регистр с номером сокета действителен только в том случае, если соединение так и не было создано.
Расшифровка кодов:
- 1 — номер сокета вышел за пределы диапазона; допустимы значения от K0 до K63.
- 2 — запрос на связь отправлен от незарегистрированного номера сокета, то есть без предварительного открытия.
- 3 — ошибка типа связи, значение вне диапазона.
- 4 — превышено количество соединений с установлением соединения, максимум 32.
- 5 — превышено количество соединений без установления соединения, максимум 32.
- 6 — ошибка режима связи, значение вне диапазона: допустимы 0 — сервер и 1 — клиент.
Одновременно поднимается флаг ошибки сети SM1921 — он включается по любой ошибке, попавшей в регистр кода. Этот флаг удобно вывести на панель как общий признак «сеть не поднялась».
Как читать эту группу ошибок. Все шесть кодов — про настройку, а не про линию связи. Ни один из них не означает обрыв кабеля или молчащий прибор: они срабатывают на неверные операнды инструкции открытия сокета и на превышение лимитов. Если в регистре лежит код 1 или 6, ищите ошибку в константах прямо в строке программы; коды 4 и 5 означают, что в проекте открыто больше соединений, чем контроллер может держать.
Обратите внимание на расхождение в самом руководстве: в описании кода 3 соответствие дано как 0 — с установлением соединения, 1 — без него, тогда как в описании операнда инструкции открытия сокета наоборот. Проверяйте по описанию операнда.
Прикреплённая документация
Георгий Жуков
Ведущий инженер