Отображение сигналов С1,С2 и С3 на тренде.
Выберем дискретный тренд(см. рис. 107).
Рис. 110 Дискретный тренд
И сделаем ему следующие настройки(см. рис. 110).
Рис. 111 Настройки дискретного тренда
Настройки для С2 и С3 аналогичны.
Журнал действий оператора.
Рассмотрим на примере задания количества циклов оператором. Чтобы задаваемое оператором количество циклов записывалось в архивы, в канале N1 надо установить соответствующие флаги. Войдем в диалог Каналы объектадля объекта _БАЗА. Для этого дважды нажмем левой кнопкой мыши на его изображении.
Войдем в диалог Реквизитыдля канала N1. Для этого дважды нажмем левой кнопкой мыши на его имени в списке диалога Каналы объекта. В бланке Основныедиалога Реквизитыследует установить флаги СПАДи Отчет тревограздела Архивация, как это показано на рисунке ( рис. 111).
Рис. 112 Реквизиты канала
В закладке Границы и обработка определим допустимые количества циклов, которые может задавать оператор(см. рис. 112).
Рис. 113 Реквизиты канала
Помимо установки флагов для каналов необходимо указать параметры соответствующих архивов, которые будет вести узел. Эти параметры настраиваются в бланке Архивациядиалога Параметры узла. Чтобы войти в него, перейдем в окно структуры проекта и нажмем правой кнопкой мыши на графическом изображении узла (см. рис. 113).
Рис. 114 Параметры узла
Параметры локального архива настраиваются в разделе СПАД. Здесь в поле Имяследует ввести имя файла локального архива, а в поле Объем– размер этого файла в мегабайтах. Зададим имя ARC.rep, а размер, равным 10Мбайтам. При превышении этого объема происходит циклическая перезапись данных.
Для отчета тревог также нужно указать в соответствующем поле имя файла и, если это требуется, путь к нему.
Настройки архивов демонстрируются на следующем рисунке(см. рис. 114).
Рис. 115 Параметры узла
На этом настройка архивирования в редакторе базы каналов закончена. Сохраним проект и выйдем из редактора.
Далее в редакторе представления данных добавить на экран ActiveX элемент Trace Mode Alarm Viewer(см. рис. 115).
Рис. 116 Выбор ActiveX компонентов
После этого в Trace Mode Alarm Viewer будут отображаться задания, которые вводил оператор.
В итоге мы получаем(см. рис. 116).
Рис. 117 Визуализация и управление циклограммой на верхнем уровне
В начале было сказано, что в программе (рис.37, с.80) для контроллера была допущена ошибка. Ошибка заключается в следующем: т.к. все блоки программы обрабатываются по порядку в соответствии со своим номером, то при обработке данной программы таймер(ТМР, 9 алгоблок) будет обработан раньше, чем одновибратор(ОДВ 15 алгоблок) и триггер(ТРИ 16 блок). Это значит что сигнал, который останавливает таймер придет после того, как таймер будет обработан и запущен. Следовательно, сигнал С31 успеет выработать логическую единицу на время одного такта контроллера. Для того, чтобы такая ситуация не произошла, необходимо изменить номера алгоблоков следующих алгоритмов: одновибратора(ОДВ 15 блок) и триггера(ТРИ 16 блок) на меньшие, чем у таймера ( 9 алгоблок) или изменить номер алгоблока таймера на больший, чем у одновибратора (ОДВ, 15 алгоблок) и триггера (ТРИ, 16 алгоблок). Программа после изменения нумерации указанных алгоблоков, т.е. без ошибки, представлена ниже ( рис. 117).
Рис. 118 Программа циклограммы шесть без ошибки
Однако, на практике такую программу(cikl117.rem) применять нельзя. Рассмотрим ситуацию на примере управления тремя задвижками соответственно командами С1,С2 и С3. Логическому нулю соответствует закрытое состояние задвижки, а логической единице – открытое состояние задвижки. Допустим, для открытия и закрытия первой задвижки необходимо 5 секунд, для открытия и закрытия второй задвижки необходимо 3 секунды, а для открытия и закрытия третьей задвижки необходимо 4 секунды. Рассмотрим первые пять секунд нашей циклограммы. С первых же секунд работы программы мы имеем С1=0, С2=0, С3=1, т.е. первые две задвижки остаются закрытыми, а третья задвижка должна быть открыта. Но так как время открытия третьей задвижки составляет 4 секунды, а таймер(ТМР 20 блок), который отсчитывает время для изменения команд С1,С2 и С3, не был остановлен на время открытия третьей задвижки, то спустя 1 секунду после открытия третьей задвижки будет сформирована команда по ее закрытию. В итоге мы получим, что технический процесс, которым мы управляем, продлился всего 1 секунду, вместо заданных 5 секунд, что недопустимо. Чтобы избежать этой проблемы, необходимо останавливать таймер(ТМР 20 блок) на время открытия и закрытия задвижек. Основная идея заключается в добавлении таймеров в программу, которые будут отсчитывать время открытия и закрытия каждой задвижки, а также останавливать таймер (ТМР 20 блок) на время открытия и закрытия задвижек. Улучшенная версия программы с остановкой таймера на время отработки команд представлена на рисунке 118.