Какие флаги показывают ход сетевого обмена в PMP20?
Инструкция открытия сокета занимает десять катушек подряд, начиная с адреса, заданного пятым операндом. Это и есть вся диагностика соединения: по ним программа понимает, что происходит с сокетом прямо сейчас.
| Смещение | Флаг | Когда включён |
|---|---|---|
| 0 | подключение | идёт создание связи |
| 1 | подключено | соединение установлено |
| 2 | отправка | данные передаются |
| 3 | отправлено | передача завершена |
| 4 | получение | данные принимаются |
| 5 | получено | приём завершён |
| 6 | закрытие | соединение закрывается |
| 7 | обмен по протоколу | выполняется сетевой обмен по протоколу |
| 8 | нештатная ситуация | соединение нарушено |
| 9 | ошибка связи | ошибка обмена |
Как ими пользоваться. Флаг «подключено» ставят условием на все инструкции отправки, приёма и обмена по протоколу — обращаться к сокету, пока он не поднят, бессмысленно. Флаги «отправка» и «получение» удерживают очередь: следующий запрос уходит только после того, как предыдущий отработал.
Флаги «нештатная ситуация» и «закрытие» используются в цепочке восстановления связи. Типовое решение из руководства выглядит так: инструкция закрытия сокета выполняется, когда поднят флаг нештатной ситуации и не поднят флаг закрытия, а инструкция открытия — когда сокет уже не подключён. Получается автоматический перезапуск соединения после обрыва без участия оператора.
Отдельная рекомендация: выведите флаг «подключено» на панель оператора или в верхний уровень как признак связи по каждому направлению. При отладке это экономит часы: сразу видно, какой из сокетов не поднялся, вместо общего «связи нет».
Прикреплённая документация
Георгий Жуков
Ведущий инженер