- •Оглавление
- •Введение
- •1.Проверка на достоверность сигналов с усо
- •2.Структура алгоблока. Организация связи между алгоблоками
- •3.Программная реализация защиты по дискретному каналу
- •3.1.1 Таймер
- •3.1.2Триггер
- •3.1.3Программа защиты от «дребезга»
- •3.2.Программа защиты по дискретному каналу
- •3.3.Первая программа защиты по аналоговому каналу
- •3.3.1Конфигурационная таблица программы 1
- •3.4.Вторая программа защиты по аналоговому каналу
- •3.4.1Конфигурационная таблица программы 2
- •3.5.Оценка величины гистерезиса в нуль-органе
- •3.6.Алгоритм расчёта среднего значения в асутп
- •3.7.Защита от выброса или провала аналогового сигнала
- •3.8.Контрольные вопросы
- •4.Алгоритм простого блока мажоритарного выбора два из трёх
- •4.1.Программа простого блока мажоритарного выбора
- •5. Алгоритм мажоритарного выбора три из пяти
- •5.1.Программа
- •5.2.Конфигурационная таблица
- •6.Программа выбора исправного канала из двух каналов
- •6.1.Конфигурационная таблица
- •6.2.Контрольные вопросы
- •7.Управление по циклограмме
- •8.Алгоритм синтеза циклического управления
- •8.1.Циклограмма 1. Типовая циклограмма
- •8.2.Циклограмма 2. Управление в зависимости от параметра.
- •8.3.Циклограмма 3. Программа с повторяющимися ситуациями
- •8.4.Циклограмма 4. Задание числа циклов с лп контроллера
- •8.5.Циклограмма 5. Пуск циклограммы по команде оператора
- •8.6.Контрольные вопросы
- •9.Синтез дискретных систем управления
- •9.1.Классический алгоритм синтеза дискретного автомата
- •9.1.1Автомат с памятью и с защитой по каналам
- •9.2.Автомат с контролем последовательности ситуаций
- •9.3.Описание программы управления электрозадвижкой
- •9.4.Контрольные вопросы
- •10.Организация связи с верхним уровнем16
- •11.Управление задвижкой по циклограмме
- •12.Практические особенности реализации циклограмм
- •13.Перевод программы c языка fbd в dxf-формат
- •14.Порядок получения конфигурационной таблицы
- •15.Спецификация представленных в пособии программ
- •16.Варианты заданий
- •Литература
- •Приложение а
- •1.Элементарные функции алгебры логики
- •2.Свойства элементарных функций
- •3.Принцип двойственности
- •4. Разложение булевой функции по переменным
- •5. Полнота системы
- •5.1.Полином Жегалкина
- •5.2.Теорема Жегалкина
- •1.Минимизация булевых функций
- •1.1.Минимизация нормальных форм
- •1.2.Алгоритм Квайна построения сокращенной днф
- •1.3.Метод Блейка
- •1.4. Построение сокращенной днф с помощью кнф
- •1.5.Построение всех тупиковых днф.
- •Алгоритм минимизации функций в классе днф
- •Алгоритм минимизации функций в классе кнф
- •Алгоритм минимизации функций в классе нормальных форм
- •1.6.Минимизация частично определенных функций
- •1.7. Минимизация с использованием карт Карно
- •1.8.Код Грея
- •Приложение б Краткая биография Жегалкина и.И.
- •Приложение в Языки программирования промышленных контроллеров
- •Приложение г Имитаторы аналоговых и дискретных сигналов
- •Приложение д25 Программы для овен плк-150 и плк-154
- •Реализация дискретных систем управления на контроллерах
- •400131 Волгоград, пр. Ленина, 28, корп. 1.
- •400131, Г. Волгоград, пр. Ленина, 28, корп. 7.
9.4.Контрольные вопросы
Что такое дискретный автомат? Что такое комбинационная схема?
Приведите алгоритм синтеза дискретного автомата.
Как реализуется память в дискретном автомате?
Что означает автомат с жёсткой последовательностью ситуаций?
Поясните программу управления задвижкой.
Основные назначения, основные функции блока управления задвижкой.
Какие блокировки ставятся на входе алгоритма?
Какие защиты требуется обеспечить? Поясните их программную реализацию.
Что такое антиреверсная защита и как она реализуется программно?
Как контролируется сход с нижнего или верхнего конечного выключателя?
Какие аварийные ситуации заложены в алгоритм управления задвижкой? Перечислить.
Как в программе реализуется распознавание аварийных ситуаций?
Какая информация выдается на лицевую панель логической модели.
Особенности реализации алгоритма управления группой задвижек.
Как в алгоритме обеспечивается защита от недопустимого по условиям технологии открытия или закрытия одной из группы задвижек?
В чем заключается особенность управления пневмозадвижкой?
Поясните реализацию автоматического открытия или закрытия задвижки в зависимости от значения технологического параметра.
Вопросы по программе: назначение каждого алгоритма, почему установлены инверсии на входах некоторых алгоблоков?
Что будет (т.е. как измениться работа программы), если ту или иную инверсию забыть установить?
Почему рекомендуется при нажатии на конечный выключать цепь должна разрываться и в программу должен поступать ноль, а не единица?
Какую защиту необходимо ставить по входным каналам в дискретном автомате?
Чем отличается алгоритм простого дискретного автомата от дискретного автомата с памятью?
Как реализуется дискретный автомат с памятью?
Как реализуется защита от несинхронного появления состояний для одной ситуации?
Как реализовать контроль за жёстким появлением очередного состояния?
Минимизация: классическая, структурная.
Как осуществляется привязка полученной структуры дискретного автомата к конкретным аппаратным и программным средствам? Например, к контроллеру Р-130 или ПЛК-154.
Перечислите режимы работы при реализации системы управления центробежными насосами.
Какие параметры, состояния необходимо контролировать перед пуском и во время работы системы (насос – напорная задвижка)?
Перечислите функции управления.
Перечислите блокировки.
Поясните суть защит от несвоевременного пуска или останова насоса.
К каким последствиям может привести отсутствие защиты от несинхронного появления запросов?
Какие защиты должны стоять по входным дискретным каналам?
Как избежать гидравлических ударов в системе насос и напорная задвижка?
Как избежать кавитации при пуске насоса?
В каком случае и как реализуется аварийный останов насоса?
Реализация систем автоматического пуска и останова центробежных насосов даётся на лекциях и частично представлена в следующих публикациях[65, 71, 74].
10.Организация связи с верхним уровнем16
Инструментальная система SCADA17 TRACE MODE позволяет создавать проект автоматизированной системы управления технологическим процессом (АСУТП) в идеологии единой линии программирования, когда все задачи проекта на верхнем уровне решаются единым инструментом, а все данные хранятся в единой системе управления базами данных (СУБД) распределенного проекта. В SCADA TRACE MODE поддерживается технология автопостроения проекта. Инструментальные средства включают в себя Редактор представления данных (РПД), Редактор базы каналов (РБК) и Редактор шаблонов отчетов (РШ).
Описание TRACE MODE взято с сайта разработчика http://www.adastra.ru/[1].
Редактор представления данных (РПД) - инструмент разработки экранных форм операторского интерфейса SCADA/HMI18. В РПД для каждого узла проекта АСУТП создаются графические экраны, формируются статичные мнемосхемы процесса, осуществляется их динамизация путем векторной и AVI-анимации. Создаются виртуальные органы управления, тренды реального времени (графическое представление изменения значений параметров во времени), формируются архивы отчетов нарушений технологического режима ( формируются отчеты тревог). Осуществляется встраивание в проект ActiveX - компонентов.
Редактор представления данных (РПД) SCADA TRACE MODE содержит графические библиотеки с более чем 600-ю технологическими объектами АСУТП (как статичными, так и анимированными), готовыми к использованию в прикладных проектах. Среди них: панели управления, приборы, теплообменники, емкости, сепараторы, колонны, насосы, клапаны, электрические элементы и т.д. Общее количество готовых графических объектов SCADA TRACE MODE превышает 1000.
Все проекты, разработанные в РПД, могут быть экспортированы в формат XML для создания web-консолей SCADA, работающих через Internet.
Редактор базы каналов (РБК) - инструмент разработки распределенной базы данных реального времени проекта АСУТП. В РБК производятся следующие настройки:
- создаются узлы проекта TRACE MODE - операторские станции и контроллеры;
- производится настройка на платы ввода/вывода и контроллеры (DLL, DDE, OPC);
- задаются технологические границы и алармы19, производится визуальное программирование алгоритмов управления на языках Techno FBD TechnoLD и Techno IL (IEC 61131-3);
- программируются функции горячего резервирования серверов SCADA, настраивается сетевой обмен, связь с базами данных и приложениями;
- создается система архивирования данных.
В состав РБК входит библиотека встроенные драйвера PLC и платы УСО.
Приведём расшифровку некоторых используемых сокращений.
Data Definition Language (DDL) (язык описания данных) — это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.
Dynamic Data Exchange (DDE) — механизм взаимодействия приложений в операционных системах Microsoft Windows и OS/2.
OPC (OLE for Process Control) — семейство программных технологий, предоставляющих единый интерфейс для управления объектами автоматизации и технологическими процессами.
OLE (англ. Object Linking and Embedding, произносится как oh-lay [олэй]) — технология связывания и внедрения объектов в другие документы и объекты, разработанные корпорацией Майкрософт.
При создании системы с горячим резервированием в TRACE MODE 5 указывают, что ПК или контроллер должен иметь дубль и SCADA-система сама сгенерирует и настроит необходимую базу данных (базу каналов). При изменении конфигурации основных узлов, TRACE MODE автоматически обновит узлы-дубли.
РБК производит автоматическое генерирование отчетной документации по проекту АСУТП.
В данном пособии рассмотрим пример организации связи с верхним уровнем контроллера Ремиконт Р-130 (регулирующая модель), имеющего логический номер 02 в сети «Транзит»(сетевой адрес 02) и подключенного к ЭВМ с помощью COM порта.
Для организации связи SCADA – системы с контроллером создают проект. Для создания нового проекта следует выполнить операцию Файл -> Создать. После этого откроется окно Свойства проекта, в котором задается имя проекта(максимальная длина имени 18 символов). Далее необходимо создать Узел, Для этого необходимо выполнить операцию Узел -> Создать. После чего появляется окно Имя и тип узла( рис. 56), в котором назначается имя и выбирается тип нового узла.
Рис. 56 Имя и тип узла
Настройка узла и редактирование его параметров осуществляется через окно диалога Параметры узла(см. рис. 57), которое вызывается нажатием правой кнопки мыши на его изображение.
Рис. 57 Параметры узла
В закладке Связь по последовательным интерфейсам осуществляют следующие настройки(см. рис. 57).
Рис. 58 Параметры узла
В каждом конкретном случае уточняют, через какой COM – порт осуществляется связь локальной сетию контроллеров с ПЭВМ. Сетевой адрес контроллера может отличаться от номера COM-порта.
В закладке Параметры последовательных портов(см. рис. 58) настраивают COM-порт (в нашем случае COM1):
Рис. 59 Параметры узла
Если установили другой COM-порт, то изменится и базовый адрес.
Настройки завершены, нажимаем ОК. Далее нажимаем на NODE1 два раза левой кнопкой мыши и в появившемся окне нажимаем ОК. После чего появляется следующая панель (см. рис. 59):
Рис. 60 Редактор базы каналов
Для связи контроллера с верхним уровнем необходимо в TRACE MODE создать каналы, а в программе контроллера Р-130 необходимые выхода алгоблоков сделать внешними. Рассмотрим выше указанные операции на примере реализации циклограммы (см. рис. 60):
Рис. 61 Циклограмма
Моменты времени, обозначенные на рис.60, t1, t2, t3, t4, t5, t6 назовём реперными точками. Эта циклограмма и программа были приведены в основном тексте пособия (рис.36 и рис.37). Сюда они скопированы для удобства чтения и понимания сути. Здесь программа приводится без пояснений. Для этой циклограммы программа выглядит следующим образом:
Рис. 62 Программа циклограммы на языке FBD
В данной программе (рис.61) есть ошибка, которая была сделана намеренно и будет проанализирована и исправлена в дальнейшем.
Перед нами стоит следующая задача: С ПЭВМ должны формироваться команды: Стоп, Сброс. Кроме того, с ПЭВМ следует предусмотреть задание значений реперных точек, в которых осуществляется изменение состояния команд. С ПЭВМ необходимо предусмотреть установку заданного количества циклов. На ПЭВМ синхронно с контроллером необходимо отображать следующие параметры: текущее время от начала цикла, количество прошедших циклов и состояние команд.
Рассмотрим реализацию команды Стоп.
Для остановки циклограммы с верхнего уровня необходимо послать логическую 1 на первую ножку одновибратора (ОДВ, 15 алгоблок). Для того чтобы эта «1» была принята программой, необходимо на первом входе ОДВ установить признак типа переменной: коэффициент ( рис. 62):
Рис. 63 Настройки одновибратора
Циклограмма останавливается после повторения заданного количества циклов. В процессе работы её можно остановить, нажимая первую кнопку или тумблера имитатора аналоговых и дискретных сигналов (см. Приложение Г).
Рассмотрим реализацию команды Пуск.
Для запуска циклограммы с верхнего уровня необходимо послать логическую 1 на третью ножку многовходового ИЛИ(МИЛ 8 блок). Для этого необходимо сделать следующие настройки(см. рис. 63), аналогичные настройке ОДВ:
Рис. 64 Настройки многовходового ИЛИ
Циклограмму можно запустить нажатием второй кнопки на стенде (имитаторе аналоговых и дискретных сигналов) или с лицевой панели контроллера.
Задание реперных точек с ПЭВМ.
Для изменения значения реперных точек, необходимо сделать следующие настройки в таймере ( 9 алгоблок) ( рис. 64-72):
Рис. 65 Настройки таймера
Рис. 66 Настройки таймера
Рис. 67 Настройки таймера
Рис. 68 Настройки таймера
Рис. 69 Настройки таймера
Рис. 70 Настройки таймера
Рис. 71 Настройки таймера
Задание количества циклов.
Для возможности изменения количества циклов с ПЭВМ, необходимо сделать следующие настройки в счетчике (12 алгоблок, рис. 69):
Рис. 72 Настройки счетчика
Отображение текущего времени циклограммы.
Для того чтобы контролировать текущее время от начала работы по циклограмме на верхнем уровне, необходимо сделать следующие настройки в таймере ( 9 алгоблок, рис. 72).
Рис. 73 Настройки таймера
Отображение количества прошедших циклов.
Для того чтобы мы могли видеть количество прошедших циклов на верхнем уровне, необходимо сделать следующие настройки в счетчике(СЧТ 12 алгоблок, рис. 73).
Рис. 74 Настройки счетчика
Отображение сигналов С1,С2 и С3:
Для отображения сигналов С1,С2 и С3 на верхнем уровне, необходимы следующие настройки в блоке логической операции ИЛИ (11 алгоблок, рис. 74-76).
Рис. 75 Настройки блока логической операции ИЛИ
Рис. 76 Настройки блока логической операции ИЛИ
Рис. 77 Настройки блока логической операции ИЛИ
Для создания и настройки каналов в TRACE MODE открывают окно Каналы объекта : _БАЗА, для этого надо нажать 2 раза левой кнопкой мыши на БАЗА(NODE1). Далее нажимаем Канал -> Создать (рис. 78).
Рис. 78 Редактор базы каналов
Рис. 79 Каналы объекта
Затем в реквизитах созданного канала ставим галочку Доступ(рис. 80).
Рис. 80 Реквизиты канала
В данной программе нам необходимо 15 каналов. Для этого выделяем созданный канал и нажимаем Канал -> Создать по образцу(рис. 80):
Рис. 81 Каналы объекта
Для всех 15 каналов необходимо поставить галочку Доступ. Для удобства переименуем их в соответствии с программой для контроллера(рис. 81):
Рис. 82 Каналы объекта
Настройка каждого канала включает следующие операции:
Канал Сп(рис. 82).
Рис. 83 Каналы объекта
Канал Р(рис. 83).
Рис. 84 Каналы объекта
Канал Т1( рис. 84). Задание первого временного порога в ТМР.
Рис. 85 Каналы объекта
Канал Т2(рис. 85).
Рис. 86 Каналы объекта
Канал Т3( рис. 86).
Рис. 87 Каналы объекта
Канал Т4( рис. 87).
Рис. 88 Каналы объекта
Канал Т5(рис. 88).
Рис. 89 Каналы объекта
Канал Т6(рис. 89).
Рис. 90 Каналы объекта
Канал Т7( рис. 90).
Рис. 91 Каналы объекта
Канал Т( рис. 91).
Рис. 92 Каналы объекта
Канал N1(рис. 92).
Рис. 93 Каналы объекта
Канал N( рис. 93).
Рис. 94 Каналы объекта
Канал С1( рис. 94).
Рис. 95 Каналы объекта
Канал С2( рис. 95).
Рис. 96 Каналы объекта
Канал С3( рис. 96).
Рис. 97 Каналы объекта
Настройка каналов завершена. После этого создаётся экран в редакторе представления данных для отображения всей информации на верхнем уровне. В редакторе представления данных открываем наш проект и слева нажимаем на NODE1 два раза левой кнопкой мыши. Затем, когда иконка монитора стала синей, нажимаем на нее правой кнопкой мыши -> Добавить группу. Затем нажимаем правой кнопкой мыши на созданную группу -> Добавить экран( рис. 97).
Рис. 98 Редактор представления данных
На экране создаётся интерфейс для отображения информации.
Кнопка Стоп(см. рис. 98). Кнопка Пуск(см. рис. 99).
|
|
Рис. 99 Настройки кнопки стоп
|
Рис. 100 Настройки кнопки пуск |
|
|
Рис. 101 Настройка кнопки изменения значения Т1 |
Рис. 102 Настройки динамического текста. Вывод значения Т1. |
Аналогично действия производятся для каналов Т2-Т7.
Вывод текущего времени( рис. 102).
Рис. 103 Настройки динамического текста
Ввод количества циклов( рис. 103).
Рис. 104 Настройка кнопки ввода количества циклов
Отображение количества прошедших циклов(см. рис. 104).
Рис. 105 Настройки динамического текста
Для отображения сигналов С1,С2 и С3 создадим на экране 3 статических объекта – круг ( рис. 105).
Рис. 106 Статические элементы
Далее выберем Цветовой индикатор на равенство(см. рис. 106).
Рис. 107 Цветовой индикатор на равенство
И сделаем ему следующие настройки(рис. 107-109).
Рис. 108 Настройки цветового индикатора на равенство
Рис. 109 Настройки цветового индикатора на равенство
И добавим его на статический объект – круг С1. Аналогично с С2 и С3.
Отображение сигналов С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.
