Программирование в фазе команд (TCP)

Ещё один способ программирования называется программированием в фазе команд. Как объясняется в разделе программирование по сети, он работает, только если текущий транспортный протокол (TP) [настройка /параметр ] равен 1 (TCP), а настройка Data Login (DL) равна 1 (включена). В этом режиме TCP-соединение для данных между сетевым хостом и DS делится на две фазы: фазу команд и фазу данных .

Если настройка Data Login (DL) равна 1 (включена) и TCP-соединение для данных установлено, DS переходит в фазу команд. В этой фазе DS воспринимает все данные от сетевого хоста как команды программирования. Поскольку в этой фазе данные для маршрутизации не передаются, управляющий символ (как в inband-программировании) не нужен.

Все команды и ответы в фазе команд используют следующий формат:

STXКоманда/ответCR

Таким образом, команды и ответы в фазе команд имеют тот же формат, что и при программировании через последовательный порт. Необходимую инкапсуляцию обеспечивают символы STX (код ASCII 2) и CR (код ASCII 13). Все данные до STX и после CR игнорируются. Содержимое поля Команда/ответ описано в разделе программирование.

Чтобы перевести соединение для данных из фазы команд в фазу данных, сетевой хост должен выполнить команду Logout (O). После того как эта команда отправлена* и принята, DS переходит в фазу данных. С этого момента и до разрыва TCP-соединения сетевой хост может обмениваться данными с подключённым последовательным устройством обычным образом.

Команда Logout (O) принимается только после того, как сетевой хост выполнил вход командой Login (L), а для этого нужен верный пароль (если он задан в настройке Password (PW)). Поэтому установка Data Login (DL) в 1 (включено) одновременно включает аутентификацию сетевого хоста для обмена данными с подключённым последовательным устройством (отсюда и название настройки).


Пример: обмен, переводящий DS в фазу данных. Ниже показаны данные, переданные в TCP-соединении для данных. Специальные символы обозначены так: STX - J , CR - � . Пароль для входа - «123pwd»

---TCP-соединение установлено, фаза команд---

Хост-->DS
J L123pwd� 'сетевой хост входит в систему
DS-->Хост
J A� 'OK
Хост-->DS
J O� 'переход в фазу данных (ответа нет)

---с этого момента и до закрытия TCP-соединения - фаза данных---

Программирование в фазе команд не следует путать с inband-программированием. Первое включается настройкой Data Login (DL), второе - настройкой Inband (IB). Обе можно включить одновременно! После перехода DS в фазу данных inband-команды по-прежнему можно отправлять (на этот раз с надлежащим управляющим символом), если inband-программирование включено.

Программирование в фазе команд автоматически отключается, если текущий Link Service Login (TL) [настройка /параметр ] равен 0 (отключено).

*Программирование в фазе команд - единственный способ программирования, при котором после успешного выполнения команды Logout (O) ответ не возвращается. DS просто переходит в фазу данных.