Что делает инструкция открытия сокета в PMP20?
Любой обмен по сети в программе контроллера начинается с инструкции открытия сокета — в среде программирования она называется S_OPEN. Она создаёт задачу связи — соединение по протоколу с установлением соединения либо прослушивание порта по протоколу без установления соединения — и привязывает к этой задаче номер сокета, по которому потом работают все остальные сетевые инструкции.
Инструкция выполняется по нарастающему фронту и имеет пять операндов:
| Операнд | Что задаёт | Значения |
|---|---|---|
| Первый | номер сокета | от K0 до K63 |
| Второй | тип связи | K0 — без установления соединения, K1 — с установлением |
| Третий | роль контроллера | K0 — сервер, K1 — клиент |
| Четвёртый | начало блока параметров | занимает 9 регистров подряд |
| Пятый | начало области флагов | занимает 10 катушек подряд |
Практическая схема строки: условием ставят признак завершения инициализации сети, признак подключения сетевого устройства и инверсный флаг «подключено» — тогда инструкция сработает один раз при появлении сети и не будет дёргать соединение в каждом цикле.
Требования к версии. Сетевые инструкции работают на контроллерах с прошивкой не ниже 3.5.3, и среда программирования тоже должна быть не ниже 3.5.3. На более ранних прошивках инструкция в проекте просто не появится.
Важная особенность: параметры из блока регистров вступают в силу после повторного включения питания контроллера. Изменить их «на лету» из программы и сразу получить новое соединение не получится — правильная последовательность такая: закрыть сокет, изменить параметры, открыть сокет заново.
Прикреплённая документация
Георгий Жуков
Ведущий инженер