Что записывается в блок параметров сетевого сокета PMP20?
Блок занимает девять регистров подряд, начиная с адреса, указанного четвёртым операндом инструкции открытия сокета. Состав полей одинаков, а вот какие из них работают — зависит от роли контроллера в этом соединении.
Поля блока: локальный порт, адрес целевого устройства, порт целевого устройства, тип буфера, тайм-аут, признак поддержания соединения, число принятых байт и код ошибки.
Что используется в каждой роли:
- Клиент — адрес и порт целевого устройства, тип буфера, тайм-аут, число принятых байт, код ошибки. Локальный порт не задаётся.
- Сервер — локальный порт, тип буфера, тайм-аут, число принятых байт, код ошибки. Адрес и порт удалённой стороны не задаются: их приносит подключающийся клиент.
- Режим без установления соединения — работают все поля сразу.
Ограничения по значениям:
- локальный порт от 1 до 60000, причём порты 502 и 531 заняты системой и использовать их нельзя;
- порт целевого устройства от 1 до 65535; для сетевого варианта протокола обмена он обязан быть равен 502;
- адрес целевого устройства должен лежать в той же подсети, что и адрес контроллера;
- тип буфера: нулевое значение — восьмибитный режим, любое ненулевое — шестнадцатибитный.
Два поля блок заполняет сам: число фактически принятых байт и код ошибки обмена. Их читает программа, а не наладчик — по числу байт удобно проверять, что прибор ответил посылкой ожидаемой длины.
Помните: изменения в блоке применяются после перезапуска контроллера по питанию.
Прикреплённая документация
Георгий Жуков
Ведущий инженер