Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LS-Sb89577

.pdf
Скачиваний:
14
Добавлен:
13.02.2021
Размер:
406.17 Кб
Скачать

изменение температуры численно и визуально (с применением инструментов «Динамический цвет» и «Динамический размер»);

сигналы о приближении температуры к границам заданного диапазона;

сигналы, отображающие режимы охлаждения и нагрева (включен/выключен).

Мнемосхема должна иметь кнопку переключения режимов. В ручном

режиме должна обеспечиваться возможность управления нагревом и охлаждением при помощи кнопок на мнемосхеме, в автоматическом – эта возможность должна быть блокирована.

4.3. Содержание отчета

Отчет должен содержать:

описание разработанной конфигурации контроллера: модулей и их параметров, сигналов, их свойств и маршрутов;

текст программы, созданной в OpenPCS, с комментариями;

настройку протокола ModBusTCP;

перечень и свойства сигналов телесигнализации в ОРС-сервере;

мнемосхему технологического процесса с описанием созданной динамики.

21

Лабораторная работа №5

АЛАРМЫ И ТРЕНДЫ

Цель работы: получение навыков работы с программами отображения алармов и трендов, а также самостоятельное создание алармов и трендов в ОРС-сервере.

5.1. Основные сведения

Alarms (тревоги) и Events (события) – это сигналы о состоянии технологического процесса, предупреждающие оператора о возникновении определенных ситуаций, которые могут привести к серьезным последствиям, и потому требуют его внимания, а часто и вмешательства. Например, достижение предельных значений параметра, обнаружение какого-либо неординарного события, возникновение критических ситуаций и т. д. Аларм называется подтвержденным (квитированным) после того, как оператор отреагирует на сообщение о нем.

Аларм генерируется при выполнении определенного условия, жестко связанного с сигналом в дереве сигналов сервера ввода/вывода, проверяемого каждый раз при изменении значения сигнала.

Трендами называется информация о параметрах протекания технологического процесса. Такая информация может отображаться графически или в табличном виде.

Для просмотра значений сигналов алармов и трендов служат соответ-

ственно программы InfinityAlarms и InfinityTrends.

5.2.Программа работы

5.2.1.Создание алармов. Модуль Alarm Module

Запустите конфигуратор сервера, загрузите в него конфигурацию, созданную вами в лабораторной работе №4, добавьте модуль Alarm Module и сделайте его активным.

Создайте битовые алармы для битовых сигналов телесигнализации (ТС) и телеуправления (ТУ) (нагрев и охлаждение), а также предельный аларм для значения температуры. Для этого необходимо выделить нужный сигнал и перейти на вкладку «Алармы» конфигуратора ОРС-сервера. Нажмите «Добавить свойства алармов» и поставьте галочки «Разрешить алармы», «Алармы Off», «Алармы On». Таким образом, мы разрешили сигнализацию алармов у

22

данного сигнала. В графе «сообщение Off» впишите – « Отключен», а в графе «сообщение On» – « Включен». Нажмите «Применить».

Аналогичным образом создайте предельный аларм для значения температуры. Выделите нужный сигнал, перейдите на вкладку «пределы» и настройте необходимые сообщения и значения сигнала. Не забудьте поставить галочку на разрешение алармов.

Настройка алармов завершена. Перезапустите управляющий. Запустите на выполнение ваш проект SCADA-системы.

Запустите Infinity Alarms: Пуск Все программы InfinitySuite

InfinityAlarms InfinityAlarms.

Для корректной работы программы необходимо выполнить настройку (проверить правильность существующих настроек) доступа к базе данных. Для этого выберем в меню «Настройки» пункт «Адрес сервера». В открывшемся окне представлены две вкладки: Исторический режим и Оперативный режим. В оперативном режиме мы выбираем тип подключения – « Подключение через модуль алармов».

Проверьте работоспособность алармов в оперативном режиме. Чтобы просматривать алармы в оперативном режиме, необходимо в строке меню перейти Закладки Оперативный режим.

5.2.2. Создание трендов. Модуль History Module

Остановите выполнение вашего проекта. Запустите конфигуратор сервера и добавьте модуль History Module.

Для настройки сохранения сигналов необходимо выбрать интересующий сигнал (в рамках лабораторной работы рассмотрим сохранение истории изменения значения температуры) и в правой части окна перейти на вкладку «История».

Чтобы история изменения выбранного сигнала сохранялась в базу данных (БД), необходимо поставить галочку «Сохранять историю в БД». С помощью параметра «Сохранять не чаще, чем» зададим частоту записи сигнала в БД, равной 1000 мс. Используя параметр «Мертвая зона», установим порог чувствительности к изменениям сигнала, равным 1, то есть при изменении температуры меньше чем на 1, оно будет проигнорировано, и запись этого значения в базу данных не произойдет.

Настройка трендов завершена. Перезапустите управляющий. Запустите на выполнение ваш проект SCADA-системы.

23

Для запуска приложения InfinityTrends выберите в меню Пуск Все программы InfinitySuite InfinityTrends. Для корректной работы про-

граммы необходимо выполнить настройку (проверить правильность существующих настроек) доступа к базе данных. Для этого выберем в меню «Настройки» пункт «Адрес сервера». В открывшемся окне представлены две вкладки: Исторический режим и Оперативный режим.

В оперативном режиме мы выбираем тип подключения «Использовать настройки исторического режима», а в историческом – « прямое подключение к Infinity Server.

Добавьте для просмотра сигнал значения температуры. Выбрав пункт меню Настройки→Настройки показа или нажав соответствующую кнопку на панели инструментов, вы можете настроить вид отображение графика.

Проверьте работоспособность трендов в оперативном режиме. Чтобы просматривать тренды в оперативном режиме необходимо выбрать пункт «Запустить показ оперативных данных» в меню «Функции» или нажать

кнопку на панели инструментов. При этом инструменты настройки интервала отображения в историческом режиме заменятся на инструменты настройки интервала отображения данных в оперативном режиме (широкое окошко слева) и частоты обновления данных (узкое окошко слева). Настраивая интервал отображения данных в оперативном режиме, мы можем выбирать масштаб графиков по оси времени. С помощью параметра «Частота обновления данных» мы выбираем периодичность обращения к источнику информации. Этот параметр выбирается исходя из важности и динамичности изменения просматриваемых данных.

5.3. Содержание отчета

Отчет должен содержать выполнение двух упражнений лабораторной работы:

описание настроек алармов для сигналов ТС и ТУ, а также алармов типа «Предел» для значения температуры;

копию экранной формы Infinity Alarms в оперативном режиме с отображением настроенных алармов;

описание настройки тренда для сигнала значения температуры;

копию экранной формы InfinityTrends в оперативном режиме с отображением настроенных трендов.

24

Лабораторная работа №6

ВСТРАИВАНИЕ ОБЪЕКТОВ ACTIVEX

Цель работы: ознакомление с технологией встраивания объектов ActiveX в мнемосхемы InfinityHMI. В процессе работы предлагается встроить два наиболее часто используемых компонента: InfinityAlarms и InfinityTrends.

6.1. Основные сведения

Важной особенностью программы InfinityHMI является возможность предоставлять встраивания в мнемосхемы AtciveX-объекты, что позволяет использовать в мнемосхемах все множество разработанных сторонними третьими фирмами компонентов посредством технологии OLE Automation.

Технология OLE Automation используется для получения доступа к свойствам и методам объектов программы InfinityHMI, которые играют роль ссылок на атрибуты объекта. При помощи данных методов объектам добавляются действия (изменение цвета, размера, угла поворота, загрузка экранной формы и т. д.).

Доступ к свойствам и методам может быть получен из внешних приложений операционной системы Windows, разработанных на языках программирования Visual Basic, C++, Delphi. Иерархия объектов, доступ к которым осуществляется через OLE Automation, показана на рис. 6.1.

GWXView32

 

GWXDisplay

 

 

GWXVisible

 

GWXDynamic

 

 

GWXPoint

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXText

 

 

 

 

 

 

 

GWXDigitalSelector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXDigitalColor

 

 

 

 

GWXButton

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXAnalogSelector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXFront

 

 

 

 

 

 

 

GWXAnalogColor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXRectangle

 

 

 

 

 

 

 

GWXAnimator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXAnimator

 

 

 

 

 

 

 

GWXSize

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXArc

 

 

 

 

 

 

 

GWXLocation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXLine

 

 

 

 

 

 

 

GWXRotation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXEllipse

 

 

 

 

 

 

 

GWXFlash

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXBitmap

 

 

 

 

 

 

 

GWXHide

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXMetafile

 

 

 

 

 

 

 

GWXPick

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXSimbol

 

 

 

 

 

 

 

GWXProcessPoint

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GWXOleObject

 

 

 

 

 

 

 

GWXTimedate

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.6.1. Иерархия объектов OLE Automation в InfinityHMI

25

GWXView32 является базовым классом управляющего элемента GWXView32ActiveX. Для программных компонентов все создаваемые управляющие элементы ActiveX наследуются от GWXView32. Объект GWXDisplay представляет экранные формы.

Классы всех видимых объектов InfinityHMI унаследованы от класса

GwxVisible, то есть имеют свойства и методы GWXVisible. GWXDynamic яв-

ляется классом, от которого унаследованы классы всех динамических объектов (действий). То есть все классы динамических объектов InfinityHMI имеют свойства и методы класса GWXDynamic. GWXPoint является классом, который используется для представления соединений с источниками данных. Если несколько объектов класса GWXDynamic соединены с одним и тем же источником данных, то все они ссылаются на один общий объект класса

GWXPoint.

Объекты GWXPoint осуществляют взаимодействие с OPC-тегами, выражениями, константами и локальными переменными. Явное создание и удаление объекта класса GWXPoint не допускается. InfinityHMI автоматически управляет временем жизни объектов класса GWXPoint, основываясь на соединениях объектов класса GWXDynamic экранной формы с теми или иными источниками данных.

6.2.Программа работы

6.2.1.Встраивание Infinity Alarms

Откройте конфигурацию ОРС-сервера, созданную вами в предыдущей лабораторной работе. Проверьте настройки генерации алармов для сигнала, отвечающего за температуру нагревательного элемента на достижение предельных верхнего и нижнего уровней.

Запустите программу InfinityAlarms с ключом FILECONFIG для записи ini-файла. Для этого в Пуск→Выполнить наберите строку:

"C:\Program Files\EleSy\InfinityLite\Scada\Alarms\InfinityAlarms.exe"

OPER FILECONFIG= "E:\alarm.ini "

Такой режим запуска программы InfinityAlarms позволяет автоматически создавать файл конфигурации, в котором будут сохраняться все настройки, создаваемые в текущем сеансе работы программы.

Настройте в запущенном вами оперативном режиме программы InfinityAlarms отображение оперативных алармов так, чтобы было видно

26

только время сигнала, значение сигнала и текст сообщения. Для этого через контекстное меню необходимо включить кнопки. Затем в меню «Настройки» выбрать «Настройки показа», перейти на закладку «Настройка столбцов» и настроить отображение оперативных сообщений.

Теперь InfinityAlarms можно закрыть. Если вы все проделали правильно, то на диске E появится файл конфигурации с расширением *.ini. Переместите его в свою рабочую папку.

Запустите программу просмотра алармов InfinityAlarms. Создайте и сохраните фильтр, который позволяет просматривать алармы только данного сигнала. Воспользуйтесь кнопкой «Фильтр» на панели инструментов InfinityAlarms. В открывшемся окне «Настройки фильтра» пропишите необходимый сигнал из OPC-сервера и сохраните фильтр в свою директорию.

Запустите вашу SCADA-систему регулирования температуры в режиме разработки. Сохраните файл под новым именем.

Установите на экранную форму ActiveX-компонент InfinityAlarmView.

Для этого нажмите кнопку на панели инструментов или выберите пункт OLE в меню «Рисование». Выберите прямоугольную область на экране. В появившемся диалоговом окне выберите элемент управления InfinityAlarmView Control и нажмите «OK».

Активируйте добавленный вами элемент управления при помощи кноп-

ки на панели VisualBasic (или меню Макрос → Окно свойств), просмотрите окно свойств данного элемента управления. Отключите опцию AutoActivateAlarms, задайте имена файлов конфигурации и фильтра с указанием полного пути к файлу. Прочие свойства оставьте без изменения.

В событии PostRuntimeStart модуля ThisDisplay (в окне VisualBasic для созданного элемента ActiveX) внесем одну строку: InfinityAlarmView1.ActivateAlarms. Запустите мнемосхему, убедитесь, что алармы работают.

6.2.2. Встраивание Infinity Trends

Запустите программу InfinityTrends с ключом FILECONFIG для записи ini-файла. Для этого в Пуск\Выполнить наберите строку: "C:\Program

Files\EleSy\InfinityLite\Scada\Trends\InfinityTrends.exe" OPER FILECFG="

E:\trend.ini".

27

Загрузите соответствующий сигнал для просмотра – меню Сигналы → Добавить сигнал и сохраните список сигналов (меню Файл → Сохранить)

в файл с расширением *.sgl.

Настройте параметры показа графиков при помощи панели инструментов nfinityTrends. Будем выводить график изменения температуры за минуту, а опрос будет выполняться раз в 1 с.

Теперь InfinityTrends можно закрыть. Если вы все проделали правильно, на диске E появится файл конфигурации trend.ini. Переместите его в свою рабочую папку.

Откройте созданную в предыдущем пункте мнемосхему и добавьте ком-

понент InfinityTrendView.

Активируйте добавленный вами элемент управления и при помощи

кнопки на панели VisualBasic (или меню Макрос → Окно свойств) просмотрите окно свойств данного элемента управления. Отключите опцию AutoActivateTrends, задайте имена файлов конфигурации и списка сигналов

суказанием полного пути к файлу. Прочие свойства оставьте без изменения.

Всобытии PostRuntimeStart модуля ThisDisplay (в окне VisualBasic для созданного элемента ActiveX) внесем еще одну строку: InfinityTrendView1.ActivateTrends. Запустите мнемосхему, убедитесь, что тренды работают.

6.3. Содержание отчета

Отчет должен содержать выполнение двух упражнений лабораторной работы:

описание настроек ActiveX в InfinityHMI;

копию экранной формы в режиме исполнения, содержащую ActiveX

объекты InfinityAlarms и InfinityTrends.

28

Лабораторная работа №7

РАЗРАБОТКА VBA-ПРИЛОЖЕНИЙ В INFINIHMI

Цель работы: изучение возможностей по созданию скрипта на языке VBA, организация доступа к значению сигналов из VBA, взаимодействие мнемосхемы с другими программами при помощи VBA (на примере

MSExcel).

7.1. Основные сведения

Одной из важных особенностей программы InfinityHMI является возможность предоставлять свои объекты для использования посредством технологии OLE Automation. Данная возможность позволяет, с одной стороны, создавать внешние приложения, способные работать с объектами InfinityHMI, а с другой – создавать логику обработки данных внутри мнемо-

схем при помощи технологии Microsoft Visual Basic for Application (VBA).

Рассмотрим основные классы, предоставляемые InfinityHMI, и некоторые методы, которые могут быть полезны при разработке VBA-скриптов (см.

рис. 6.1).

Класс GwxDisplay представляет объекты экранных форм InfinityHMI. Экранные формы InfinityHMI содержат множество объектов классов, произ-

водных от GwxVisible, GwxDynamic и GwxPoint. Объект GwxDisplay предо-

ставляет методы для создания новых и получения существующих экземпляров объектов трех перечисленных классов.

GwxVisible является базовым типом объекта (классом) для всех объектов экранных форм InfinityHMI, которые могут быть отображены в ее рабочей области (могут быть визуально восприняты пользователем). Все видимые объекты InfinityHMI (например, GwxRectangle, GwxEllipse, GwxText и т. д.)

наследуются от GwxVisible, а значит, приобретают все его свойства и методы. Часто используемый класс GwxButton является наследованным от класса GwxText. Также в этой иерархии находятся классы для отображения растровых (bmp) и векторных (Metafile) рисунков, OLE-компонентов и т. д. Особого внимания из данной серии классов заслуживает класс GwxSymbol, инкапсулирующий последовательность других визуальных объектов. Объекты данного типа используются для обеспечения группировки визуальных объектов.

Объекты типа GwxDisplay генерируют ряд событий, интересных для нас. Это, например событие DisplayLoad, которое возникает после загрузки

29

экранной формы или PickPostDown, которое возникает после совершения щелчка на объект, обладающий динамикой типа «Динамическое действие» и т. д. Список всех событий можно посмотреть в редакторе VBA для данного дисплея (ThisDisplay). Однако вместо обработки этих событий можно просто указать в VBA-скрипте имя процедуры, которая должна быть вызвана, если наступит определенная ситуация (нажатие кнопки и т. д.).

Целью данной лабораторной работы не является изучение языка программирования VBA, поэтому все тексты программ с комментариями, необходимые для реализации поставленных задач, приведены ниже.

7.2.Программа работы

7.2.1.Организация логики на VBA

Возьмите за основу проект, созданный вами в лабораторной работе №4, и сохраните его под новым именем. Реализуем логику работы проекта в ручном режиме при помощи VBA-скрипта.

Модифицируете мнемосхему следующим образом: после кнопок управления нагревом и охлаждением поставьте некоторый черный ящик, как показано на рис. 7.1. Настройте источники так, чтобы они брали сигналы не из сервера ввода-вывода, а из DualSource.

Нагрев

Режим нагрев

Стоп

Режим охлаждение

Охлаждение

Рис. 7.1. Пример реализации мнемосхемы

Для «черного ящика» добавьте динамику «Динамическое действие» → «Выполнить сценарий VBA». Создать новый сценарий под уникальным именем (можно использовать любое имя, соответствующее спецификации символьных имен: процедур, переменных и т. д.). Настройте динамическое действие таким образом, чтобы скрипт вызывался только по щелчку на «черный ящик».

При помощи кнопки «Редактировать» в инспекторе свойств «черного ящика» откройте среду для разработки VBA-скриптов. В модуль

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]