Что означают коды ошибок сетевого обмена PMP20 от 0 до 50?
Код ошибки обмена контроллер кладёт в последний регистр блока параметров сокета. Младшая часть таблицы — от 0 до 50 — описывает ошибки самого сокета: открытия, привязки порта, отправки и приёма.
| Код | Что означает |
|---|---|
| 0 | связь в норме |
| 1 | открывается сокет уже созданного соединения |
| 2 | ошибка при создании сокета |
| 3 | не удалась привязка назначенного порта |
| 4 | ошибка приёма подключения на стороне сервера |
| 5 | ошибка подключения на стороне клиента |
| 6 | при отправке, приёме или закрытии указанный сокет не создал соединение |
| 7 | вызов отправки не удался |
| 8 | вызов приёма не удался |
| 10 | длина отправляемых данных вне диапазона |
| 11 | длина принимаемых данных вне диапазона |
| 20 | данные пришли не с указанного адреса |
| 21 | данные пришли не с указанного порта |
| 30 | принято больше данных, чем задано |
| 31 | принято меньше данных, чем задано |
| 40 | тайм-аут приёма |
| 50 | ошибка целевого порта |
Как этим пользоваться на объекте. Код 1 означает, что инструкция открытия сработала на уже живом сокете — обычно из-за условия, которое замыкается каждый цикл вместо фронта. Код 3 — локальный порт занят другой инструкцией или попал в число запрещённых. Код 6 — отправка или приём выполняются раньше, чем поднялся флаг «подключено».
Коды 20 и 21 встречаются только при обмене без установления соединения и означают, что посылка пришла от чужого узла: проверьте адрес и порт удалённого устройства в блоке параметров.
Код 50 расшифровывается двумя причинами сразу: для сетевого варианта протокола обмена целевой порт не равен 502, либо используемый порт вышел за диапазон от 1 до 60000.
Прикреплённая документация
Георгий Жуков
Ведущий инженер