Как мастер определяет, кто открывает соединение

Когда вы нажимаете Next на шаге маски подсети и шлюза для DS #2, мастер располагает достаточными данными, чтобы определить, какая сторона связи «DS - DS» будет отвечать за установку соединений для передачи данных с другой стороной.

При этом мастер определяет будущие значения настроек режима маршрутизации (RM) и режима соединения (CM) обоих Device Server.

В общем случае мастер старается следовать естественному направлению потока данных между Device Server. На шаге инициатора обмена данными вы уже указали, какая сторона отправляет данные первой, поэтому мастер заставит эту сторону открыть соединение для передачи данных с другой стороной, как только первые данные понадобится отправить.

Например, если первые данные должны поступать со стороны DS #1, мастер задаст режим маршрутизации DS #1 равным 2 (клиент), а режим маршрутизации DS #2 равным 0 (сервер).

В строках 1-3 следующей таблицы показано то, что только что описано. Обратите внимание, что настройка режима соединения (CM) всегда равна «on data». Когда первые данные получает одна сторона связи, это запускает попытку открыть соединение для передачи данных с другой стороной:


Какая сторона может «видеть» другую сторону соединения
Какая сторона отправляет первые данные
Режим маршрутизации на DS #1
Режим соединения на DS #1
Режим маршрутизации на DS #2
Режим соединения на DS #2
1
Обе стороны видят друг друга
DS #1
Клиент
По данным
Сервер
---
2
Обе стороны видят друг друга
DS #2
Сервер
---
Клиент
(сервер/клиент)
По данным
3
Обе стороны видят друг друга
Любая сторона
Сервер/клиент
По данным
Сервер/клиент
По данным
4
Только DS #1 видит DS #2
DS #1

Клиент
По данным
Сервер
---
5
Только DS #1 видит DS #2
DS #2

Клиент
Немедленно
Сервер
---
6
Только DS #1 видит DS #2
Любая сторона
Клиент
Немедленно
Сервер
---
7
Только DS #2 видит DS #1
DS #1
Сервер
---
Клиент
Немедленно
8
Только DS #2 видит DS #1
DS #2
Сервер
---
Клиент
По данным
9
Только DS #2 видит DS #1
Любая сторона
Сервер
---
Клиент
Немедленно

Ситуация усложняется, когда только одна сторона соединения может «видеть» другую*. Рассмотрим случай из строки 5 таблицы. DS #2 должен отправить данные первым, но не может «видеть» DS #1. Поэтому даже когда DS #2 получит первые данные на свой последовательный порт, он не сможет установить соединение с DS #1 и отправить эти данные!

Выход в том, чтобы DS #1 подключался к DS #2 сразу после подачи питания (то есть настройка режима соединения (CM) этого DS равна 0 (немедленно)). Тогда к моменту, когда DS #2 понадобится отправить первые данные DS #1, соединение уже установлено. Такие соединения называются «обратными» (reverse).

Отдельно стоит пояснить строку 2 таблицы, где режим маршрутизации на DS #2 назначен как «клиент» или «сервер/клиент». Мастер выбирает «клиент», если программирование DS #2 выполняется с использованием внеполосного метода доступа (вы выбрали его на шаге DS #2 мастера). Если был выбран внутриполосный метод доступа, мастер задаст режим «сервер/клиент». Причина в том, что при выборе «клиент» DS в дальнейшем отклонял бы все входящие соединения, и тогда вы не смогли бы программировать DS внутриполосным методом!

* Это случай, когда на шаге DS #2 вы указали, что «Device Server недоступен из этого сегмента сети», или когда на шаге маски подсети и шлюза для DS #2 мастера вы указали, что «DS #1 недоступен с DS #2».