Материал: Разработка модульной подсистемы контроля состояния удаленного стендового оборудования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рисунок 16 - Описание модели сигнала

Рисунок 17 - Описание тега амплитуды A

Тег AO1 служит для обозначения выходного сигнала первого канала модуля ADAM-5024. Его описание представлено на рисунке 18.

Рисунок 18 - Описание тега AO1

Для того чтобы измерительный прибор на экране отображал значение некоторого тега, необходимо вызвать окно свойств виртуального прибора (рисунок 19), в нем раскрыть список свойств и щелкнуть по свойству Dynamic Rotation. После этого в строку Tag/Expression вносят имя тега, значение которого будет отображать прибор. В окне задают также минимальное и максимальное значения тега и углы отклонения стрелки прибора от среднего положения в градусах.

Рисунок 19 - Окно свойств объекта измерительный прибор

Рядом с виртуальным прибором размещаем объект Тренд для более наглядного представления формируемого сигнала в графическом виде. Для отображения сигнала на тренде в реальном времени необходимо произвести настройки тренда. В окне свойств тренда (рисунок 20) нужно выбрать тип кривой X/t, установить переключатель On Line/History в положение On Line (режим реального времени), необходимо указать Trigger - second. Также следует задать параметры горизонтальной и вертикальной осей. Тренд должен отображать сигнал AO1, для этого необходимо нажать на кнопку Pens и в появившемся окне (рисунок 21) указать тег AO1, пределы наблюдения процесса (параметры Min и Max) и выбрать цвет и толщину линии.

Рисунок 20 - Окно свойств тренда

Рисунок 21 - Окно диалога описания пера

Настройки для горизонтальной шкалы представлены на рисунке 22.

Рисунок 22 - Окно настроек горизонтальной шкалы тренда

Настройки для вертикальной шкалы представлены на рисунке 23.

Рисунок 23 - Окно настроек вертикальной шкалы тренда

Для того чтобы на приборе и на тренде отображались реальные физические сигналы, следует связать созданный тег с одним из каналов аппаратного модуля. Работу модулей поддерживают соответствующие драйверы. Драйвер устанавливается при инсталляции среды SCADA-пакета. Для подключения установленного драйвера к аппаратным средствам приложения открывают на рабочей области вкладку Comm и выполняют команду Insert/Driver. В окне диалога Communication Drivers выбирают нужный драйвер, выделив его в списке и нажав кнопку Select (рисунок 24).

Рисунок 24 - Подключение драйвера связи

В результате имя драйвера и его описание появятся в нижней части окна. После щелчка по кнопке Ok драйвер подключается к проекту и для него автоматически создается главный лист драйвера - MAIN DRIVER SHEET. Затем открывают его и выполняют соответствующие настройки (рисунок 29). Заносят имена тегов и против каждого задают: в колонке Station - IP-адрес модуля или блока, в столбце I/O Address - адрес канала, с которым будет связан тег, в Action - действие (Read/Write) для него, в Scan - сканирование производить только при работающем экране или всегда (Screen/ Always), в Div - константу деления, когда требуется настройка масштаба (флажок для Min и Max не установлен, при этом внесенное значение будет коэффициентом деления в операции чтения и коэффициентом умножения в операции записи), в Add - константу добавления, когда требуется настройка масштаба (флажок для Min и Max не установлен, это значение будет коэффициентом добавления в операции чтения и коэффициентом вычитания в операции записи). Если же указанный флажок установлен, то две последние колонки получают имена Max и Min.

В работе параметры тега AO1 связаны с первым каналом модуля аналогового вывода ADAM-5024. Значение Div = 409.50000 найдено, исходя их разрядности цифро-аналогового преобразователя канала (ЦАП) - 12 бит. Т.к. 212 = 4096 значений, включая 0, а диапазон выходных сигналов ЦАП - от 0 до 10 В, то для вещественных аналоговых сигналов будет именно такой коэффициент деления Div.

Для операции чтения значения, полученные от оборудования, преобразуются в значение тега по формуле [9]:

<tag> = <value in the equipment> / Div + Add.

Для операции записи формула преобразования имеет следующий вид:

<value in the equipment> = (<tag> - Add) * Div.

Соответственно в главном листе драйвера связи против тега AO1 в колонке Station записываем IP-адрес базового блока, в которой установлены модули, номер порта по умолчанию (502) для протокола Modbus и номер узла в сети (1) для базового блока. В колонку I/O Address заносим номер канала модуля.

.2.2 Экран аналогового ввода

В соответствии с заданием размещаем на экране 4 виртуальных прибора (рисунок 25), каждый из которых будет отображать состояние соответствующего канала модуля ADAM-5017H. Аналогично тому как было сделано для виртуального прибора на форме тестового сигнала, настраиваем свойства тегов AI1 - AI4. В драйвере связи добавляем соответствующие строчки для связи с реальным оборудованием подсистемы (рисунок 26).


Рисунок 26 - Экран каналов аналогового ввода

.2.3 Экран аналогового вывода

На данном экране (рисунок 27) отображается состояние двух каналов модуля ADAM-5024. За процесс отображения отвечают теги AO1 и AO2. Процесс настройки свойств виртуальных приборов и значений параметров драйвера связи аналогичен тому, который был представлен для экрана аналогового ввода. Исключение составляет значение в колонке Action, где необходимо выбрать действие Write.

Рисунок 27 - Экран аналогового вывода

4.2.4 Экран контроля аналогового ввода

Данный экран предполагает, что выходной аналоговый сигнал с одного из каналов модуля ADAM-5024 подается на вход одного из каналов аналогового ввода модуля ADAM-5017H (рисунок 28). В качестве выходного аналогового сигнала используется тестовый сигнал. Следовательно, на втором (правом) виртуальном приборе при нормальном функционировании модуля аналогового ввода будет отображаться с определенной задержкой во времени исходный тестовый сигнал. Тем самым экран позволит оператору стенда убедиться в правильной работоспособности соответствующего канала модуля ADAM-5017H.

Рисунок 28 - Экран взаимодействия модулей

.2.5 Экран состояния дискретных каналов

По заданию необходимо осуществить контроль за состоянием трех каналов дискретного ввода и трех каналов дискретного вывода. Для этого разместим на форме индикаторы для каналов ввода и органы управления для каналов вывода (рисунок 29). Имена тегов совпадают с надписями над объектами индикации и управления. Осуществим настройку свойств названных компонентов (рисунок 30 - для дискретного ввода, рисунок 36 - для вывода).

Рисунок 29 - Экран состояния дискретных каналов

Рисунок 30 - Свойства тега дискретного ввода

Рисунок 31 - Свойства тега дискретного вывода

.2.6 Экран состояния тревог

Работая с оборудованием стенда, оператор с особым вниманием должен относиться к чрезвычайным ситуациям, возникающим в процессе его эксплуатации. С этой целью был создан специальный экран, призванный привлечь внимание оператора к ситуациям, когда важный параметр выходит за верхнюю (нижнюю) границу допустимых его значений. Экран показан на рисунке 32 и отображает возникновение названного ухода параметра за допустимые пределы. Отображение осуществляется с помощью специального объекта типа Alarm.

Рисунок 32 - Экран тревог

.2.7 Экран архивных данных

В случае возникновения конфликтных ситуаций в работе стенда требуется установить причину произошедшего. С этой целью используют анализ сохраняемых на диске данных по всем каналам подсистемы. На экране (рисунок 33) имеется возможность ввода исходных данных для просмотра: даты и времени. Объект Тренд аналогичен тому, который был вставлен на экран тестового сигнала, с той разницей, что тренд будет историческим, а не реального времени. В его построении есть свои особенности. Покажем их.

Рисунок 33 - Экран архивных данных

Для построения тренда исторических данных сначала создадим группу тегов, участвующих в его работе. С этой целью вставим новый класс CTrend на вкладке Database после щелчка правой кнопки мыши по папке Classes. Далее заполним таблицу тегов класса с указанием имен тегов, их типа и описаний (рисунок 34).

Рисунок 34 - Таблица тегов класса «CTrend»

После этого вставим командой Insert Tag… относящийся к созданному классу новый тег приложения Trend, выполним команду File/New… и в окне диалога выберем Trend Worksheet. Затем в появляющемся окне необходимо ввести описание тренда в поле Description, не делаем запрещающих действий в строке Disable. Открыв окно дополнительных настроек тренда кликнув по кнопке Advanced задаём в строке Histiory Life Time время жизни данных на диске в каталоге HST проекта - 100 дней.

Далее нужно установить флажок Save On Trigger и занести в позицию напротив него имя триггера - Trend.Update. В строку таблицы тегов заносим имя тега, подлежащего временному контролю, например AI1 (рисунок 35).

Рисунок 35 - Окно «Trend Worksheet»

В окне диалога Screen Math укажем имена тегов, активируемых вместе с открытием экрана trend_h (рисунок 36).

Рисунок 36 - Окно диалога «Screen Math»

Настройки горизонтальной шкалы, вертикальной шкалы и пера производим аналогично тому, как это было сделано при создании тренда реального времени.

Для задания даты и времени старта тренда исторических данных на экране под соответствующими надписями располагают текстовые компоненты со свойствами динамического текста - Text I/O. Ниже показано окно свойств тега Trend.StartDate времени старта (рисунок 41). В нем необходимо задать в поле Tag/Expression имя тега Trend.StartTime и установить флажок Input Enabled, разрешающий вводить нужное время после запуска приложения. Аналогично поступают с датой старта (имя тега Trend.StartDate). При вводе названных величин соблюдают их формат представления в среде и разделители. Для времени - <часы>:<минуты>:<секунды>, например 22:15:00. Для даты - <месяц>/<день>/<год>, например 05/25/2016.

Рисунок 37 - Окно настройки тега времени старта исторического тренда

5. Экспериментальная проверка подсистемы в составе стенда

Для проверки правильности функционирования разработанной подсистемы соберем ее на стенде.

Запускаем в среде InduSoft Web Studio созданное приложение. В результате на экране монитора появляется окно с главным меню приложения (рисунок 38).

Рисунок 3.8 - Экран главного меню

Произведем просмотр сформированного тестового сигнала, выполнив пункт меню «Тестовый сигнал» и установив в соответствующих позициях ввода нужные значения амплитуды и частоты (рисунок 39).

Рисунок 39 - Экран тестового сигнала

С помощью пункта меню «Аналоговый ввод» вызываем экран, показывающий состояние четырех каналов аналогового ввода (рисунок 40).

Рисунок 40 - Экран состояния каналов аналогового ввода

Для проверки состояния каналов аналогового вывода выполним пункт меню «Аналоговый вывод». В результате будет отображаться состояние двух каналов модуля ADAM-5024, как показано на рисунке 41.

Рисунок 41 - Экран каналов аналогового вывода

Для проверки работоспособности каналов дискретного ввода/вывода выполняем пункт меню «Дискретные каналы». Результат взаимодействия с ними представлен на рисунке 42.

Рисунок 42 - Экран дискретных каналов и их состояние на стенде

Для организации взаимодействия тестового сигнала с одним из каналов аналогового ввода выполним пункт меню «Взаимодействие каналов». Перед этим необходимо выполнить физическое соединение на стенде выхода одного из каналов модуля ADAM-5024 со входом одного из каналов модуля ADAM-5017H. Для примера соединим второй канал модуля ADAM-5024 с третьим каналом модуля ADAM-5017H. Результат взаимодействия показан на рисунке 43.

Рисунок 43 - Экран взаимодействия модулей

Из рисунка 43 видно, что процесс в модуле ADAM-5017H незначительно отстает по времени от исходного процесса, формируемого в модуле ADAM-5024, что объясняется инерционностью используемого оборудования.

Проверим работу экрана, отображающего значения исторических данных. Его вид представлен на рисунке 44. В соответствующей позицией ввода необходимо ввести дату и время контролируемого события.

Рисунок 44 - Экран исторических данных

В заключение приведем пример работы «Экрана тревог» (рисунок 45). Для примера были заданы верхний и нижний уровни тревог, равные соответственно 0.9 и 0.1 от предельно допустимого значения в канале.

Рисунок 45. - Функционирование экрана тревог

Заключение

В соответствии с заданием был осуществлен анализ поставленных задач, произведен информационный расчет каналов ввода аналоговых сигналов. По его результатам был выполнен анализ аппаратных средств фирмы Advantech, сделан выбор варианта структуры модульной подсистемы контроля состояния удаленного стендового оборудования на основе базового блока ADAM-5000L/TCP и модулей серии ADAM-5000. Для отображения состояния каналов подсистемы было разработано программное приложение в среде SCADA-пакета InduSoft Web Studio. Оно предоставило оператору стенда наглядный человеко-машинный интерфейс, позволяющий осуществлять эффективный контроль оборудования. Экспериментальная проверка подсистемы, смоделированной на стенде учебной лаборатории, подтвердила обоснованность принятых аппаратных и программных решений

Список используемых источников

. Андрей Кузнецов. SCADA системы: программистом можешь ты не быть... СТА. - 1996, №1.

. Системы диспетчерского управления и сбора данных (SCADA-системы)// Мир компьютерной автоматизации. - 1999, № 3.

. Карасев В.В., Михеев А.А., Нечаев Г.И. Измерительные системы для вращающихся узлов и механизмов. - М.: Энергоатомиздат, 1996. 176 с.

. Карасев В.В. Аппаратно-программные комплексы: учеб. пособие. - Рязань: РГРТУ, 2012. - 80 с.