Выполним настройку архива и отчета тревог в АРМ.
Для помещения реальных значений каналов в архив SIAD/SQL 6 и ведения отчета тревог по таким событиям, как пересечение заданных для канала уставок и границ, необходимо для узла проекта предварительно задать ряд общих параметров, в дальнейшем индивидуально или групповым способом установить для каналов соответствующие атрибуты СПАД и/или Отчет тревог. Так, вызвав на редактирование узел RTM_1, определим файлы архива, отчета тревог и зададим настройки для сетевого обмена.
Во вкладке Отчет тревог/Дамп/Параметры определим следующие параметры:
В бланке Основные задают IP-адрес АРМ (в нашем случае нет необходимости) и направления обмена данными по сети.
Закроем бланк редактирования узла RTM_1. Для получения возможности просмотра в отладчике сведенных в группы каналов, откроем свойства группы «Участок_Термообработки» и установим во вкладке Флаги флаг Загрузить группу. Подобным образом поступим в отношении других групп.
Для помещения каналов группы «Участок_Хранения» в архив и отчет тревог вызовем на редактирование данную группу.
В открывшемся окне щелчком ПК на строке атрибутов каналов вызовем настроечное меню отображения атрибутов и в правом окне сформируем список отображаемых в таблице атрибутов.
Для выделенных каналов будет определена запись их реальных значений в архив Тип1. Для группы «Участок_Хранения» атрибуты будут установлены следующим образом:
Для «Участка_Дозирования»:
Для аналоговых параметров группы каналов «Участок_Хранения» зададим сообщения в отчет тревог. С этой целью создадим для узла RTM_1 новую группу Словари сообщений.
В данной группе создадим новый компонент – Словарь сообщений для канала класса Float.
Двойным щелчком ЛК откроем его для редактирования и создадим сообщения для помещения в отчет тревог.
Для подключения созданного словаря к каналам класса Float группы «Участок_Хранения» либо откроем последовательно каналы на редактирование двойным щелчком ЛК и на вкладке Архивация укажем индекс аварийного словаря, либо используя редактор групповой правки:
Для каналов группы «Участок_Хранения», принимающих от PLC дискретные сигналы, также создадим словари для помещения сообщений в отчет тревог, но уже выбрав за основу словарь для каналов класса HEX16. В нем определим сообщения для нулевого бита:
Для Вентиляции:
Для пожарной сигнализации:
Подключим созданные словари к каналам таким же образом, как и в рассмотренном выше случае. Сохраним выполненную работу.
Для фиксации событий по изменению состояния дискретных сигналов участка хранения - открытия/закрытия двери в хранилище, состояния системы вентиляции и пожарной сигнализации, а также для их отображения на экране и квитирования создадим в группе «Участок_хранения» узла АРМ три канала класса Событие. Переименуем их («Событие_Дверь», «Событие_Вентиляция», «Событие_Пожарная_Сигнализация») и, открыв дополнительное окно Навигатора проекта на той же группе, свяжем каналы класса Событие (пункт Свойства – Привязка) с помощью мыши с соответствующими каналами класса HEX16 Дверь, Вентиляция и «Пожарная_сигнализация» (атрибут – реальное значение).
Двойным щелчком ЛК мыши откроем на редактирование канал Событие_Дверь и установим атрибут Размер стека аварий равным 20. Таким же образом поступим в отношении других двух каналов.
Так как предварительно нами уже был подготовлен ГЭ События на шаблоне экрана «Участок_хранения», выполним привязку атрибутов (реальное значение) вновь созданных каналов класса Событие к аргументам канала класса Вызов Участок_хранения.
Сохраним выполненную работу, и осуществим связь с СУБД MS Access.
Предварительно в панели управления MS Windows в разделе Язык и региональные стандарты во вкладке Региональные параметры необходимо настроить в качестве разделителя целой и дробной части числа точку.
По сформулированному выше ТЗ, необходимо данные, получаемые по участку хранения, записывать в таблицу реляционной базы данных. Структура таблицы Storage1 базы данных MS Access Storage.mdb для накопления значений технологических параметров, поступающих в реальном времени от АРМ будет такой как показано выше. |
В навигаторе проекта откроем слой шаблонов связей с СУБД и создадим новый компонент База данных#1. Откроем свойства шаблона и зададим ему аргументы:
Двойным щелчком ЛК откроем шаблон на редактирование. По щелчку ЛК на экранной кнопке «Администратор ODBC» во вкладке Пользовательский DSN c помощью клавиши «Добавить» создадим новый источник данных – STORE, выбрав Microsoft Access Driver. | |
Настроим его следующим образом, |
выбрав в этом бланке файл БД MS Access – Storage.mdb данных по участку хранения и нажмем «ОК». В числе пользовательских DSN появится новый – STORE.
В строке «DSN/«Строка подключений» укажем – STORE и нажмем клавишу «Проверка», осуществим таким образом правильность подключения источника данных в окне «Отчет»:
Далее или с помощью мастера запросов, либо непосредственно создадим на языке SQL запрос, помещающий связанные с аргументами шаблона атрибуты каналов в таблицу Storage1 файла Storage.mdb с созданием новых записей:
Откроем дополнительное окно Навигатора проекта, настроив его на отображение группы «Участок_Хранения» узла АРМ. Выделим ЛК шаблон База данных#1 и, удерживая ЛК нажатой, перетащим шаблон в группу «Участок_Хранения». В группе «Участок_Хранения» будет создан канал класса Вызов База данных#1, щелчком ПК откроем его для редактирования.
Для связывания аргументов созданного запроса с атрибутами каналов перейдем с помощью иконки в табличный редактор аргументов и выполним привязку к каналам группы «Участок_Хранения»:
Для того чтобы при запущенном на АРМ МРВ каждые пять минут в файл БД Storage.mdb производилась запись данных по участку хранения, необходимо во входное значение канала класса Вызов «База_данных#1» подавать номер выполняемого запроса, в нашем случае 1. Сделать это можно, например, с помощью программы или ГЭ «Кнопка». Создадим в слое Шаблонов программ новую программу
«Запись_в_БД»
Реализуем ее следующим образом:
Откомпилируем ее и перетащим в группу «Участок_хранения» узла RTM_1. Откроем на редактирование канал класса Вызов «Запись_в_БД» и установим в основном бланке период, например, 5 циклов.
Перейдем с помощью иконки к аргументам канала и произведем привязку следующим образом:
Изменяя период пересчета данного канала можно регулировать темп записи значений параметров участка хранения в файл БД MS Access. Сохраним выполненную работу, нажав ЛК .
Поскольку все данные о значениях технологических параметров записываются в архив «SIAD/SQL 6», то, например, для получения статистических характеристик такого параметра как «Температура_рабочая» в аппарате участка термообработки воспользуемся реализованным в «TRACE MODE» механизмом обработки данных, накапливаемых в локальном архиве. Создадим в группе «Участок_Термообработки» узла RTM_1 канал класса Вызов и двойным щелчком ЛК откроем его основной бланк редактирования свойств. Изменим его атрибуты – Имя, Тип и Тип вызова:
Заданный Тип вызова «LocalStatistic» предназначен для проведения статистической обработки данных локального архива по каналу. Так как процесс термообработки осуществляется в течение нескольких часов, атрибут Глубина выборки оставляем по умолчанию для оценки изменения температуры в аппарате за текущий час. Тип канала «Статистика_по_Т» зададим «OUTPUT».
Перейдем с помощью иконки в табличный редактор аргументов канала. Создадим 12 аргументов, переименуем два последних, а к ARG_000 выполним привязку к каналу «Температура_рабочая».
В аргумент «STD_Error» будет записываться среднеквадратическое отклонение, а в «MEAN» – среднее значение по указанному в аргументе ARG_000 каналу.
Для вывода среднего значения и среднеквадратического отклонения на графическом экране откроем в слое Шаблонов экрана шаблон Участок_термообработки и разместим на нем три ГЭ Текст и один ГЭ Кнопка – для инициации обработки канала «Статистика_по_Т».
Для ГЭ Текст откажемся от рамок и от заливок. Создадим три новых аргумента шаблона экрана и привяжем их к ГЭ:
Для ГЭ Кнопка определим прямую посылку значения 1 по нажатию на нем ЛК мыши.
Затем откроем свойства канала класса Вызов «Участок_термообработки узла RTM_1» и произведем привязку вновь созданных аргументов.
Аргументы шаблона экрана «STD_Err и Mean» будут привязаны к соответствующим аргументам канала класса Вызов «Статистика_по_Т», а аргумент шаблона экрана «STATISTICS» к атрибуту Входное значение этого же канала. Таким образом, при работе в реальном времени при нажатии ЛК мыши на ГЭ Кнопка будет производиться статистическая обработка накапливаемых в локальном архиве за текущий час реальных значений канала Температура_рабочая и на графическом экране выводиться среднее значение и его среднеквадратическое отклонение.
Сохраним созданный проект, используя иконку .
Для проверки работоспособности созданного проекта прибегнем к имитации сигналов, передаваемых от участка хранения, и расходомером готового продукта участка дозирования.
Для имитации расхода продукта создадим шаблон программы «Имитатор_Расход_Продукта» и также воспользуемся языком Техно FBD.
Аргументы программы определим как:
Случайную составляющую расхода будем формировать, используя центральную предельную теорему из комбинации четырех генераторов случайных чисел в диапазоне (0,1) с равномерным распределением. Номинальное значение расхода зададим равным 50, а для плавного изменения в моменты включения/выключения дозирующего насоса применим функциональный блок переключения с динамической балансировкой – SSWT. Не забудем с помощью блока X*Y привести выходное значение программы к диапазону 12-ти разрядного АЦП.
Откомпилируем программу. В дополнительном окне навигатора проекта выделим группу «Участок_Дозирования» и перетащим в него шаблон программы. Для созданного таким образом канала класса Вызов «Имитатор_Расход_Продукта» выполним привязку атрибутов каналов к аргументам.
Так как от датчиков поступают данные как аналоговые, так и дискретные, то для их имитации на АРМ создадим две соответствующие программы.
Причем для каждого типа параметров создадим по одной программе, а, варьируя значения аргументов, задаваемых как константы – в поле Значение по умолчанию табличного редактора аргументов, будем устанавливать величины параметров и их «случайные» флуктуации.
Создадим в слое Шаблоны программ новую программу – «Имитатор_УХ_Аналог». Объявим для нее аргументы:
Программу разработаем на языке программирования Техно FBD.
Изменяющийся по синусоидальному закону «случайный» компонент в диапазоне (-1,1) будем масштабировать, задавая параметр Флуктуация, и добавлять к параметру Базис, определяющему установившееся значение. Откомпилируем программу нажатием функциональной клавиши F7.
Для привязки разработанной программы выделим в окне навигатора проекта группу «Участок_Хранения узла RTM_1». Выделим канал Уровень и откроем его свойства. Во вкладке Информация определим свойство канала Вызов путем указания в диалоге шаблона программы «Имитатор_УХ_Аналог».
Перейдя в появившуюся после этого действия вкладку Аргументы, привяжем аргументы программы к атрибуту канала и зададим константы.
Подобным образом поступим в отношении каналов Температура, Давление и Влажность, указав для них соответственно параметры Флуктуация и Базис как (0.25, 24), (0.025, 0.98) и (0.2, 70).
Для имитации дискретных сигналов создадим шаблон программы «Имитатор_УХ_Дискрет» со следующими аргументами:
Разработанная на Техно FBD программа будет выглядеть так:
Данная программа будет периодически имитировать срабатывание дискретного датчика. Задавая входным аргументом «Счетчик_тактов» количество тактов, поступающих от генератора G01, до момента срабатывания датчика (установки триггера TP), при его достижении выходной аргумент Сигнал будет удерживаться в состоянии «1» в течение последующих 20 тактов, затем произойдет сброс его в состояние «0», а далее картина будет повторяться. После компиляции программы выделим канал Дверь в группе «Участок_Хранения» узла RTM_1 и в его свойствах определим свойство Вызов следующим образом:
Во вкладке Аргументы свяжем выходной аргумент программы с атрибутом Реальное значение текущего канала и зададим период «срабатывания» датчика:
Для канала «Пожарная_сигнализация» поступим аналогичным образом, определив для него периодичность срабатывания как 1000. В отношении канала Вентиляция поступим несколько иначе – зададим ему постоянное значение, соответствующее включенному состоянии системы вентиляции (Вентиляция – Редактировать, и в бланке Основные установить флаг в окне Отработать, и 1 – в окне «На старте»).
Таким образом, разработанный в предыдущих главах проект системы автоматизации, доступен для запуска и отладки, причем все внешние сигналы заменены имитаторами.
С целью пресечения несанкционированного доступа к разрабатываемой системе автоматизации необходимо определить круг пользователей системы и назначить им права доступа, назначить идентификаторы для входа в систему и пароли. С этой целью в узле АРМ создадим новую группу Пользователи TM.
Войдем в нее и создадим два новых компонента – Пользователя. Откроем их последовательно для редактирования, изменяя названия и назначая права, идентификаторы и пароли. Цель, преследуемая при этом, заключается в наделении пользователя admin (разработчика) максимальными правами по доступу к системе с возможностью внесения изменений, а пользователя oper (оператора) – лишь необходимыми для текущей работы с системой.
Для пользователя admin в бланке установим все флаги в позициях страниц Система, Пользователи, SCADA, T-Factory, а также введем логин – admin без указания пароля.
Для пользователя oper установим флаги в позициях: Запуск, Останов, Изменение, Квитирование, Запрет одновременного входа и Авто-logout. Укажем логин – oper и пароль.
Сохраним созданный проект на диск, используя иконку , а затем, с помощью щелчка ЛК мыши на иконке создадим файлы для загрузки на целевые платформы для проведения отладки выполненного проекта.
Содержание отчета
1. Цель исследований.
2. Текст программы Розлив#2 с пояснениями.
3. Текст программы Имитатор_Расход_Продукта с пояснениями.
4. Выводы по работе.
Контрольные вопросы и задания
1. С какой целью вводят функцию архивирования в SCADA системы?
2. С какой целью вводят журнал тревог в SCADA системы?
3. Какие показатели оценивают качественно и количественно потребляемую электрическую мощность?
Приложение 1
(к лабораторной работе № 1)