scada 2000 пособие. SCADA КРУГ-2000_ Быстрый старт. Руководство Пользователя. Модульная интегрированная scada круг2000 б ы с т р ы й с та
Скачать 5.44 Mb.
|
Пишем КРУГОЛ-программуРазработка программы осуществляется в интегрированной среде разработки «КРУГОЛ». Выполняет программу модуль «Ядро КРУГОЛа» среды исполнения SCADA «КРУГ-2000». Для того чтобы модуль «Ядро КРУГОЛа» «понял», какие программы он должен исполнять, необходимо в базу данных АСУ ТП добавить информацию о выполняемых КРУГОЛ- программах. В начале загружаем интегрированную среду разработки «КРУГОЛ» (рисунок 4.3.1) |
| Ваши действия 🡆 | Где выбрать 🡆 | Что выбрать/ Задать значение | Комментарий |
1 | Создайте новый проект | меню «Файл» | Новый проект | Откроется окно «Создание проекта» |
2 | Задайте свойства проекта (рисунок 4.3.2) | окно «Создание проекта» | Файл проекта – Учебный _1 Папка – задайте путь (там же, где и база данных!) Платформа – Среда исполнения КРУГОЛ 2.2 Windows | После задания параметров нажмите «ОК» |
3 | Создайте новую программу | меню «Файл» | Новый | Откроется окно «Создать…» |
4 | Задайте свойства программы (рисунок 4.3.3) | окно «Создать…» | Тип программы – СТ Имя файла – Учебная | После задания параметров нажмите «ОК» |
Конфигурируем станцию оператора 59
Рисунок 4.3.2 – Создание проекта ИСР «КРУГОЛ»
Рисунок 4.3.3 – Создание новой учебной программы на языке СТ
60 Глава 4. Первые шаги
Теперь все готово для реализации алгоритма имитации технологического процесса на языке СТ.
Программа«Учебная»
В соответствие с функционированием разрабатываемой АСУ ТП обмен между станцией оператора и УСО осуществляется данными, значения которых характеризуют состояние насоса, задвижки, уровень жидкости и температуру в резервуаре, давление в трубопроводе, а также определяют команды оператора («Включить насос», «Открыть задвижку» и другие).
Этим данным соответствуют технологические переменные базы данных. Изменяя их значения, мы, тем самым, меняем состояние технологического процесса и описываем реакцию системы на действия оператора.
Таким образом, алгоритм программы «Учебная» – имитатора технологического процесса – сводится к изменению значений переменных БД при наступлении определенных событий.
ВсамомначалепрограммыКруголдолженузнатьтекущеевремяидату
Текст программы | Комментарий |
Программа Учебная Начало (пц1,пц2,пц3)=stime() (пц11,пц12,пц13)=sdate() | Время и дата используются в программе Кругол для формирования Времени и даты возникновения аварии. получаем текущее время (час: мин: сек) получаем текущую дату (год: месяц: день) |
Алгоритмуправленияработойнасоса
Текст программы | Комментарий |
:Состояние насоса | |
Если дв1=1 | Если команда «Включить» |
{ | |
вд1=1 | Включить насос – установить состояние насоса |
} | «Включен» |
Иначе | В противном случае |
{ | |
вд1=0 | Отключить насос – установить состояние «Отключен» |
} | |
Алгоритмуправленияработойзадвижки
Текст программы | Комментарий |
:Состояние задвижки | |
Если дв2=1 { вд3=0 вкл тс1 Если тс1>3 { вд2=1 дв2=0 выкл тс1 тс1=0 | Если команда «Открыть задвижку»: Состояние задвижки «Закрыта» = ложь Включить таймер – задвижка мгновенно не открывается! Если прошло время, необходимое для открытия задвижки Состояние задвижки «Открыта» = истина «Сбросить» команду «Открыть задвижку» Выключить таймер Обнулить таймер |
Конфигурируем станцию оператора 61
} } | |
Если дв3=1 { вд2=0 вкл тс2 Если тс2>3 { вд3=1 дв3=0 выкл тс2 тс2=0 } } | Если команда «Закрыть задвижку»: Состояние задвижки «Открыта» = ложь Включить таймер – задвижка мгновенно не закрывается! Если прошло время, необходимое для закрытия задвижки Состояние задвижки «Закрыта» = истина «Сбросить» команду «Закрыть задвижку» Выключить таймер Обнулить таймер |
Алгоритмизмененияуровняврезервуаре
Текст программы | Комментарий |
:Уровень в резервуаре | |
Если вд1=1 | Если состояние насоса «Включен» |
{ | значение атрибута а28 («Текущее значение до |
ва1.a28=ва1.а28+1 | обработки в контроллере») увеличивается – |
} | уровень растёт |
Если вд2=1 | Если состояние задвижки «Открыта» |
{ | |
ва1.a28=ва1.а28-2 | Уровень падает |
} | |
Алгоритмимитациитемпературы
Текст программы | Комментарий |
:Температура в резервуаре ва2=20+cos(ва2) | Имитация значения температуры в резервуаре |
Алгоритмимитациидавления
Текст программы | Комментарий |
:Давление на выходе насоса | |
Если вд1=1 | Если насос включен |
{ | |
ва3=cos(ва3) | давление есть |
} | |
Иначе | В противном случае |
{ | |
ва3=0 | давления нет |
} | |
Конецпрограммы«Учебная»
Текст программы | Комментарий |
Защиты Выход Конец | Вызов процедуры «Защиты» |
62 Глава 4. Первые шаги
Процедура«Защиты»
Процедура «Защиты» должна обрабатывать предупредительные и предаварийные ситуации в состоянии технологического процесса.
В рамках учебной АСУ ТП процедура должна выполнять следующее:
При достижении уровня жидкости в резервуаре верхней предупредительной границы (ВПГ) или нижней предупредительной границы (НПГ) цвет барграфа становится желтым
При достижении уровня жидкости в резервуаре верхней предаварийной границы (ВАГ) насос выключается и задвижка открывается. Цвет барграфа – красный
При достижении уровня жидкости в резервуаре нижней предаварийной границы (НАГ) задвижка закрывается и насос включается. Цвет барграфа – красный.
В самом начале процедуры «Защиты» текущее время и дату преобразовываем в вещественный формат. Время и дата используются в программе Кругол для формирования Времени и даты возникновения аварии.
Алгоритмпроцедуры«Защиты»
Текст программы | Комментарий |
Процедура Защиты Начало пв1=цв(пц1) пв2=цв(пц2) пв3=цв(пц3) пв11=цв(пц11-2000) пв12=цв(пц12) пв13=цв(пц13) | Текущее время и дату преобразовываем в вещественный формат Час Минуты Секунды Год Месяц День |
Если ва1>ва1.а16 { дв1=0 дв2=1 Если тс11<1 { рв2 =пв1*10000+ пв2*100+ пв3 рв2.a9=пв13*10000+пв12*100+ пв11 } вкл тс11 } | Если уровень больше верхней предаварийной границы (атрибут а16), отключить насос и открыть задвижку: «Даем» команду «Отключить» (насос) «Даем» команду «Открыть задвижку» Включить таймер: Для однократной обработки аварийной ситуации фиксируем время аварии в формате: «ЧЧММСС» «ДДММГГ» Включаем таймер |
Если ва1<ва1.а15 { дв1=1 дв3=1 Если тс11<1 { рв2 =пв1*10000+пв2*100+ пв3 рв2.a9=пв13*10000+пв12*100 +пв11 } | Если уровень меньше нижней предаварийной границы (атрибут а15), включить насос и закрыть задвижку «Даем» команду «Включить» (насос) «Даем» команду «Закрыть задвижку» Для однократной обработки аварийной ситуации: Фиксируем время аварии в формате: «ЧЧММСС» «ДДММГГ» |
Конфигурируем станцию оператора 63
Текст программы | Комментарий |
вкл тс11 } Если тс11>10 { выкл тс11 тс11=0 пц5=ппд(3) Если пц5=0 { message("Сформирован протокол пред- и послеаварийной ситуации") } Иначе { message("Ошибка формирования протокола пред- и послеаварийной ситуации") } } | Включаем таймер Через 10 секунд после аварии формируем протокол: Выключаем таймер Обнуляем таймер «Даем» команду «Сформировать протокол предаварийных ситуаций» |
Если вд1=1 { рв1=рв1+1 } | Подсчет наработки насоса Если насос включен – увеличить наработку насоса |
Иначе { рв1=0 } Выход Конец | В противном случае – обнулить наработку насоса |
Полный программный текст проекта «Учебный_1» приведен в приложении В «Программа учебная».
После создания программы сохраните ее исходный текст в том же каталоге, где находиться база данных!
Выполните трансляцию проекта. На рисунке 4.3.4 показана структура проекта «Учебный_1» и результат его трансляции.
64 Глава 4. Первые шаги
Рисунок 4.3.4 – Проект «Учебный_1»
Процедура ПД (формирование печатных документов) будет рассмотрена далее, в разделе 5.2.3.
Формирование списка программ в базе данных
Открываем Генератор базы данных и загружаем базу данных учебной АСУТП.
В дереве объектов выбираем меню «Система», в открывшейся форме в блоке «Ядро КРУГОЛа» с помощью кнопки добавляем программу в таблицу и задаем атрибуты программы: Номер – 1, Имя – Учебная. (рисунок 4.3.5). Затем сохраняем базу данных.
Конфигурируем станцию оператора 65
Рисунок 4.3.5 – Задаем название программы