Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование автоматизированных систем управления технологическим процессом.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.84 Mб
Скачать

Лекция №7.

Тема: “Механизм обмена данными между приложениями DDE. Спецификация технологии DDE. Описание режимов обмена данными. Понятия сервиса, раздела и объекта. Механизм сетевого DDE.”

Одним из механизмов обмена данными приложений WINDOWS является DDE (Dynamic Data Exchange). МРВ может выступать как в качестве DDE-сервера, так и DDE-клиента и поддерживает три режима обмена: ADVISE, POKE, REQUEST.

Выступая DDE-сервером, МРВ выполняет следующие операции:

  • посылает реальные значения каналов приложению по своей инициативе (режим ADVISE);

  • изменяет значения атрибутов каналов по команде другого приложения (режим POKE);

  • посылает значения любых атрибутов каналов по запросу другого приложения (режим REQUEST).

Чтобы обмениваться данными с МРВ, используя механизм DDE, надо посылать ему запросы в следующем формате:

<server>|<topic>!<item> <data>,

где:

<server> – имя DDE-сервера в формате RTM<nnn>, где <nnn> - номер узла, к которому адресован запрос;

<topic> – тема запроса. В режиме ADVISE указывается GET, а в режимах POKE и REQUEST – обозначения атрибутов каналов;

< item> – имя канала;

<data> – посылаемое значение в формате числа с плавающей запятой. Оно присутствует только в режиме POKE.

При запросе реального значения в режиме REQUEST в качестве темы надо указать GET. Для посылки значения из приложения в атрибут ВХОД канала Трейс Моуд (режим POKE) надо задать тему PUT или GET.

Для связи МРВ с другими приложениями, запущенными на удаленных компьютерах, можно использовать механизм NetDDE. Формат запроса в этом случае остается таким же, как описано выше. Однако элементы server и topic формируются иначе.

Имя сервера формируется следующим образом:

\\<NAME>\NDDE$

где

<NAME> - имя компьютера, где работает МРВ.

В качестве темы надо записать RTM<nnn>$, где <nnn> - номер узла, к которому адресован запрос, а в качестве item - имя канала.

Управление обменом по DDE осуществляется каналами подтипа СИСТЕМНЫЙ с дополнением “сеть, DDE”. Для этого используются биты c 6-го по 11-й (считая с 0). Контроль текущего состояния обмена по DDE осуществляется с помощью канала ДИАГНОСТИКА с дополнением к подтипу DDE. Эти каналы подробно описаны ниже.

Дополнение к типу Системный – “Сеть, DDE” – предназначен для управления обменом по сети и DDE и контроль заблокированных функций узлов, находящихся в состоянии резерв. Биты канала показывают отключение следующих функций (при типе канала INPUT):

  • 0 – запрет сетевых рассылок;

  • 1 – запрет запроса данных каналами подтипа СВЯЗЬ с дополнением к подтипу IN NET;

  • 2 – запрет передачи данных каналами подтипа СВЯЗЬ с дополнением к подтипу OUT NET;

  • 3 – запрет приема сетевых рассылок;

  • 4 – запрет приема от себя;

  • 5 – запрет скользящего блока (досылка не изменяющихся значений каналов);

  • 6 – запрет передачи данных по DDE от МРВ;

  • 7 – запрет приема данных по DDE от внешних приложений;

  • 8 – запрет изменения входов каналов по DDE;

  • 9 – запрет изменения границ каналов по DDE;

  • 10 – запрет изменения шкал каналов по DDE;

  • 11 – запрет изменения остальных изменяемых атрибутов каналов по DDE;

  • 12 – запрет отсылки времени синхронизации;

  • 13 – запрет коррекции по синхронизации;

  • 14 – запрет ответа на запросы по IN NET;

  • 15 – запрет новых подключений по OPC и графических консолей.

Значения перечисленных битов каналов определяют следующие состояния: 0 – разрешить; 1 – запретить.

При переводе узла в состояние резерв данный канал принимает значение 0х8027. Это означает установку в 1 битов 0, 1, 2, 5, 15 и запрет соответствующих функций. При необходимости изменить набор отключаемых функций надо использовать такие же каналы, но установить для них тип OUTPUT. Чтобы при старте МРВ иметь требуемый набор функций, надо для этих каналов установить требуемое начальное значение и установить флаг Отработать.

Дополнение к типу Диагностика “DDE” – предназначено для контроля состояния обмена по DDE. Значение этого канала определяет следующие ситуации в обмене:

  • 0 – нормальная работа;

  • 3 – ошибка записи;

  • 4 – ошибка чтения;

  • 5 – ошибка работы с памятью;

  • 7 – ошибка формата;

  • 10 – были запрошены несуществующие данные;

  • 32 – ошибка времени выполнения операции по причине задержек.

Выступая DDE-клиентом, МРВ выполняет следующие операции:

  • принимает данные, посылаемые DDE-серверами, по мере их изменения (режим ADVISE);

  • управляет переменными в DDE-серверах (режим POKE);

  • запрашивает данные у DDE-серверов (режим REQUEST).

Для обмена данными с DDE-серверами предусмотрен подтип каналов DDE. Его дополнение к подтипу указывает файл конфигурации обмена. Такие файлы должны располагаться в директории проекта. Их имена формируются следующим образом:

DDECNF<n>.CNF

где

<n> – номер от 0 до 7. Он соответствует значению дополнения к подтипу (если дополнение к подтипу DDE0, то n должно быть равно 0, если DDE1, то 1 и т. д.).

Настройки каналов подтипа DDE определяют режим обмена, а также метод и режим формирования запросов у DDE-сервера.

Формат файла конфигурации DDE-обмена имеет текстовый формат и содержит следующую информацию:

server topic0 [format_item]

topic1

….

где

server – имя DDE-сервера;

topic<n> – название темы (до 256 тем, которые выбираются настройкой канала D (см. ниже));

format_item – формат элемента item.

Формат item может отсутствовать. В этом случае для канала надо выбрать режим использования в качестве item его имени.

Строка описания элемента item может содержать тексты и форматы вывода чисел в нотации языка Си. При формировании DDE запроса item будет состоять из текстов и вставленных в него чисел в указанном формате. Величины чисел определяются значением настроек канала. Например, в запросе данных от OLE/DDE менеджера фирмы SIEMENS при связи по PROFIBUS DP формат элемента item выглядит следующим образом:

Slave<aaa>EB<bbb>

где

<aaa> - три цифры определяющие номер устройства в сети PROFIBUS;

<bbb>- три цифры определяющие номер запрашиваемой переменной на указанном устройстве;

Формат элемента item при этом выглядит следующим образом: Slave%.3dEB%.3d

Каналы подтипа DDE имеют шесть настроек. Следующий рисунок демонстрирует настройку каналов данного подтипа.

Первая настройка называется режим. Она используется для задания режима обмена. Он выбирается из списка, содержащего следующие пункты:

REQ/POKE[data] – обмен в режиме REQUEST для каналов типа INPUT и POKE для каналов типа OUTPUT;

REQ/POKE[data/r] – обмен в режиме REQUEST для каналов типа INPUT и POKE для каналов типа OUTPUT с добавлением в конце передачи данных символа /r;

REQ/POKE[data/n] – обмен в режиме REQUEST для каналов типа INPUT и POKE для каналов типа OUTPUT с добавлением в конце передачи данных символа /n;

ADVISE – обмен в режиме ADVISE (только для каналов типа INPUT).

Следующая настройка (формат) определяет метод формирования элемента item в запросе. Метод выбирается из списка, содержащего следующие пункты:

имя – в качестве item используется имя канала;

2 параметра – в строке описания формата элемента item может присутствовать до двух полей вставки чисел. Значение первого числа определяется величинами настроек A и B (младший и старший байт соответственно), а второго – C;

3 параметра – в строке описания формата элемента item может присутствовать до трех полей вставки чисел. Значения первого, второго и третьего чисел определяются величинами настроек A, B и C соответственно.