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

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

При этом Wizard определяет будущие значения настроек Routing Mode (RM) и Connection Mode (CM) у DS, а также свойств Routing Mode и Connection Mode у VSP.

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

Например, если вы имеете дело с «ведомым терминалом», то первые данные всегда отправляет приложение (и VSP). Поэтому Wizard установит свойство Routing Mode у VSP в значение «client», а настройку Routing Mode (RM) у DS в значение «slave».

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


Какая сторона «видит» другую сторону соединения
Какая сторона отправляет первые данные
Routing Mode на VSP
Connection Mode на VSP
Routing Mode на DS
Connection Mode на DS
1
Обе стороны видят друг друга
Приложение
Client
On data
Server
---
2
Обе стороны видят друг друга
Последовательное устройство
Server
---
Client
(server/client)
On data
3
Обе стороны видят друг друга
Любая сторона
Server/client
On data
Server/client
On data
4
Только ПК видит DS
Приложение

Client
On data
Server
---
5
Только ПК видит DS
Последовательное устройство

Client
Immediately
Server
---
6
Только ПК видит DS
Любая сторона
Client
Immediately
Server
---
7
Только DS видит ПК
Приложение
Server
---
Client
Immediately
8
Только DS видит ПК
Последовательное устройство
Server
---
Client
On data
9
Только DS видит ПК
Любая сторона
Server
---
Client
Immediately

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

Выход - заставить VSP подключаться к DS сразу после открытия VSP, то есть установить режим соединения VSP в значение «immediately». Тогда к моменту, когда DS понадобится отправить первые данные VSP, соединение уже будет установлено. Такие соединения называются «обратными» (reverse).

Отдельно стоит сказать о строке 2 таблицы, где режим маршрутизации на DS задаётся как «client» или «server/client». Wizard выбирает «client», если программирование DS выполняется способом out-of-band (вы выбрали его на шаге целевого DS Wizard). Если выбран способ inband, Wizard установит режим «server/client». Дело в том, что выбор «client» заставил бы DS отклонять все входящие соединения в будущем, и тогда программировать DS способом inband было бы невозможно!

* Так бывает, когда на шаге целевого DS вы указали, что «Device Server is not accessible from this PC», или когда на шаге маски подсети и шлюза для DS Wizard вы указали, что «PC is not accessible from this Device Server».