Мастер-класс по MasterSCADA. 10 шагов за 10 минут для создания проекта диспетчеризации.
ЗАО «ИнСАТ», г. Москва
MasterSCADA – универсальная вертикально-интегрированная SCADA и SoftLogic система. Это означает, что конфигурации рабочих мест операторов/диспетчеров и программы контроллеров создаются вместе в едином проекте. Преимущество такой интеграции в том, что взаимосвязи верхнего и нижнего уровня системы не требуют конфигурирования, они создаются автоматически. Можно ли использовать такое решение в территориально-распределенных системах диспетчеризации? Да, если решен ряд дополнительных задач, удовлетворяющие специальным требованиям таких систем в части коммуникаций, подключения оборудования, хранения и передачи информации и т.п.
Коммуникационные возможности:
- поддержаны каналы удаленного доступа (GSM, телефон, радио);
- реализована поддержка модемных пулов для ускорения опроса большого числа объектов;
- обеспечен инициативный выход контроллера на связь в случае аварии или иных важных событий;
- обеспечена поддержка раздельных каналов связи для регулярного и инициативного (спорадического) опроса;
- имеется возможность резервирования канала связи одного типа каналом другого типа;
- одни контроллеры могут быть использованы в качестве шлюзов для опроса других контроллеров;
- контроллер может предоставлять «прозрачный» доступ к своим дополнительным коммуникационным портам;
- имеется возможность уведомления линейного персонала о событиях с помощью SMS-сообщений.
Интерфейсы подключения контроллера:
- контроллер имеет возможность подключения модулей расширения по стандартным (Modbus, DCon) или частным протоколом;
- имеются драйверы для наиболее распространенных устройств коммерческого учета расхода ресурсов;
- есть открытый интерфейс для создания новых драйверов;
- есть OPC-сервер для доступа к контроллеру от стороннего приложения по любому из имеющихся каналов.
Общесистемные возможности исполнительной системы контроллера:
- в контроллере ведутся журналы событий и архивы;
- в системе организована служба единого времени;
- есть возможность «горячего» рестарта;
- обеспечено дублирование контроллера для особо ответственных применений;
- имеется возможность удаленной загрузки и отладки программ контроллеров;
- в списке поддерживаемых контроллеров есть модели, рассчитанные на работу при отрицательных температурах.
Общесистемные возможности исполнительной системы верхнего уровня:
- организовано тесное взаимодействие со специализированными геоинформационными системами для инженерных сетей;
- имеются средства построения отчетов для систем коммерческого учета, желательно с комплектом необходимых шаблонов;
- есть возможность подключения к контроллерам с разных территориально разнесенных диспетчерских;
- архивный сервер обеспечивает возможность хранения и доступа с приемлемым временем отклика для систем большого масштаба (сотни и тысячи объектов, - десятки и сотни тысяч параметров);
- основные узлы системы (сервер ввода-вывода, архивный сервер) могут быть дублированы;
- есть возможность подключения новых клиентских рабочих мест без переделки проекта.
Разумеется, в каждой конкретной системе могут быть востребованы не все эти возможности. Но их полный комплект обязателен для любой SCADA-системы, претендующей на универсальность. В MasterSCADA перечисленный набор свойств реализован полностью для всех типов (а их много десятков) контроллеров, на которых работает исполнительная система MasterPLC. Среди контроллеров, подходящих для задач диспетчеризации распределенных объектов: Adam, I7188, I8000, Wincon/WinPAC, Moxa UC74xx, Teconic P06, Овен PLC и многие другие. Это позволяет разрабатывать универсальные решения, практически без усилий привязывая их для конкретного объекта к тому типу контроллеров, на которых остановит свой выбор проектант или заказчик.
Большой список требований может создать впечатление, что простые системы диспетчеризации (а таковых подавляющее большинство) могут потребовать значительных усилий для своего создания. Развеем эти сомнения, пройдем по простым и наглядным шагам создания подобного проекта в MasterSCADA.
Простая диспетчерская система
Постановка задачи
Есть N контролируемых пунктов (далее КП), на каждом из которых имеется несколько аналоговых и дискретных датчиков и цифровой расходомер с интерфейсом Modbus. Мы не будем уточнять, что именно это за объект – подобных примеров множество (насосные, газорегуляторные пункты и т.п.). Задача – опрос через GSM этих датчиков, вычисление среднечасовых значений для всех аналоговых датчиков, а также суммарных почасовых значений для расхода. В случае срабатывания дискретного датчика нужно сообщить об этом в диспетчерскую незамедлительно. В остальных случаях опрос ведется 1 раз в час. Если на экране диспетчерского компьютера открыта мнемосхема конкретного КП, то мгновенные значения датчиков опрашиваются 1 раз в минуту. Вот такая простая задача. Она и решается просто – 10 шагов за 10 минут.
Методика работы в MasterSCADA
Все же, прежде чем перейти к конкретике, надо сказать об общей идеологии разработки проектов в MasterSCADA. Проект в MasterSCADA содержит два дерева. Первое описывает иерархию контролируемого объекта и алгоритмы контроля и управления им. Второе предназначено для описания программно-аппаратных ресурсов системы автоматизации. Проектировщик формирует деревья из элементов – стандартные доступны через контекстное меню (далее его использование мы будем обозначать глаголом «добавим» в отношении того или иного элемента), библиотечные элементы (функциональные блоки – ФБ) перетаскиваются из расположенной внизу экрана библиотеки. Логика проекта описывается связями между конечными элементами деревьев – переменными, входами-выходами ФБ и т.п. Эти связи устанавливаются перетаскиванием источника данных на приемник или наоборот. На закладках справа от деревьев настраиваются свойства выбранного элемента, а также создаются документы (мнемосхемы, тренды и др.) для «объектов» – основных элементов дерева объектов.
Далее, вооруженные техническим заданием и знанием методики, мы создадим проект диспетчеризации. На это потребуется 10 шагов, каждый из которых при работе в среде MasterSCADA займет секунды или минуты. На первый раз не все покажется вам очевидным, но это потому, что любое дело требует опыта, которым мы сейчас с вами и поделимся.
Шаг 1. Создание структуры проекта и служебных переменных
Создадим в дереве объектов MasterSCADA элемент («объект») «Диспетчеризация» и в нем объект «КП 1». Для того чтобы дать оператору возможность выбора номера КП для просмотра значений его параметров, добавим в главный объект «Диспетчеризация» целочисленную переменную «Выбор КП». В терминологии MasterSCADA переменные, формирующие значение, называются командами. Далее, поскольку для формирования часовых значений нам понадобится информация о том, что наступил очередной час, создадим дискретную команду «Сброс в начале часа». Теперь нам надо, чтобы на ее выходе 1 раз в час появлялся импульс. В MasterSCADA есть множество разных способов сделать это. Выберем вариант выдачи импульса по расписанию. Для этого на закладке «Расписание» объекта «Диспетчеризация» выберем действие «Выдать импульс», перетащим туда созданную команду «Сброс в начале часа» и зададим ежечасное выполнение (рис. 1).
Рис. 1. Реализация команды «Сброс в начале часа» с заданием ежечасного выполнения
Шаг 2. Формирование списка параметров
Вставим в объект «КП 1» один аналоговый вход (измеряемый параметр), один расход и один дискретный датчик («сигнализация»). Эти параметры мы вставим не как переменные, а с помощью библиотечного функционального блока «Повторитель» (рис. 2). Такой подход позволяет «централизовать» в одном месте все связи проекта с реальными источниками сигнала, благодаря чему проще и быстрее подключить оборудование на последующих этапах разработки или заменить его тип в дальнейшем. Размножим параметры в необходимом количестве. Затем каждому параметру (выходу ФБ «Повторитель») можно выбрать шкалу контроля границ. В системе имеется ряд предопределенных шкал. Если их не хватает, то они задаются на соответствующей закладке корневого узла дерева системы.
Рис. 2. Вставка параметров с помощью библиотечного функционального блока «Повторитель»
Шаг 3. Обработка параметров
Для необходимого нам усреднения и интегрирования параметров вставим в проект соответствующие алгоритмы из библиотеки и подадим значения на их входы (рис. 3). В MasterSCADA есть целый ряд способов обрабатывать переменные – по поступающим данным или архивам, с помощью ФБ или функций в формульных расчетах. Для задания часового такта работы используем заранее подготовленную нами команду сброса.
Рис. 3. Вставка в проект библиотечных ФБ и подача значений на их входы
Шаг 4. Создание мнемосхемы КП
Создадим мнемосхему (закладка «Окна») у объекта «КП 1» и перетащим на нее мгновенные значения параметров (выходы повторителей) и их обработанные значения. MasterSCADA позволяет представлять любые значения как в текстовом виде, так и в виде щитовых приборов (стрелочных, столбиковых, диаграммных). Для этого перетаскивание значений из проекта в мнемосхему нужно делать правой клавишей мыши. Полученные изображения (рис. 4) не требуют никакой дополнительной настройки: они уже содержат связь с исходным значениям и отображают не только саму цифру или ее графическое представление, но и событие ее выхода за заданные шкалой контролируемые границы (цветом), недостоверность значения (например, при обрыве связи).
Рис. 4. Пример мнемосхемы с использование визуальных ФБ
Для того чтобы иметь возможность переключаться на другие мнемосхемы, перетащим на нашу мнемосхему созданную на первом шаге команду «Выбор КП».
Шаг 5. Подключение оборудования
Создадим в дереве системы проекта элемент «компьютер». Это будет основной компьютер системы диспетчеризации, собирающий данные от объекта. Если потом нам понадобятся дополнительные (клиентские) рабочие места, мы просто расширим список компьютеров в проекте. Подключим к компьютеру контроллер, настроим на странице свойств «Настройки» один из его последовательных портов на протокол Dcon («Adam-совместимый») для подключения модулей ввода/вывода сигналов, а на второй порт назначим Modbus RTU для расходомера. После этого подключим к портам необходимые модули, а также абстрактное «Modbus-устройство», в свойствах которого зададим необходимые адреса опроса (рис. 5).
Рис. 5. Подключение оборудования
Наступил момент, когда мы можем соединить наш физический мир с виртуальным. Перетащим входы подключенных устройств на входы повторителей в объекте «КП 1». Данные от датчиков пошли на обработку!
Шаг 6. Настройка опроса КП по вызову
Добавим к уже имеющимся у КП переменным переменную «№ КП» и на закладке «Опрос» назначим ей константу «1» (это номер созданного нами КП).
Добавим событие «Открыть мнемосхему», зададим на закладке «Формула» выражение: «Выбор КП» = «№ КП», а на закладке «Действия» открытие мнемосхемы. Когда заданное условие будет выполнено, мнемосхема откроется. Для закрытия мнемосхемы будем использовать инверсное событие (рис. 6).
Рис. 6. Добавление события «Открыть мнемосхему»
Чтобы опрос переменных для отображения на мнемосхеме происходил раз в минуту, воспользуемся редактором функциональных блоков («Схема» на закладке общих свойств объекта, для демонстративного выделения этой задачи добавим в «КП 1» вложенный объект «Опрос») для создания схемы обработки данных. Разумеется, MasterSCADA позволяет использовать эти блоки и без создания схемы, просто вставляя их в дерево проекта. Можно также использовать и обычные формульные расчеты. Но сейчас мы стремимся к наглядности, поэтому используем цепочку из 3 блоков (рис. 7): пульсатор с минутным интервалом выдачи импульса, повторитель выхода пульсатора по условию (условие – открыта мнемосхема, этот факт мы можем запомнить с помощью триггера по сигналу «Открыть мнемосхему»), а также специальный служебный блок «Управление контроллером», на вход «Опрос» которого и подается сформированный нами периодический импульс. В настройках блока выберем включенный нами в дерево системы контроллер.
Рис. 7. Формирование алгоритма опроса контроллера
с помощью редактора схем функциональных блоков
Шаг 7. Распределение проекта по оборудованию
Теперь, когда наш проект полностью готов, определим, где что работает. Для этого на закладке «Общие» (рис. 8) головной папки «Диспетчеризация» выберем компьютер, а для папки «КП 1» дополнительно укажем контроллер (вся созданная в этой папке логика автоматически загрузится в контроллер при старте проекта на выполнение.
Рис. 8. Закладка «Общие»
Шаг 8. Настройка опроса КП
Для опроса КП нам понадобится GSM-модем. Зададим список и настройки модемов (обычно один используется для опроса, другой для приема звонков) на вкладке «Модемы» закладки «Опрос» компьютера (рис. 9).
Рис. 9. Настройка параметров модема
Теперь нам осталось только задать период 1 час на закладке «Опрос» для контроллера, а в его настройках разрешить использование модема (рис. 10).
Рис. 10. Настройка параметров контроллера
У нас еще была задача инициативного выхода контроллера на связь при срабатывании дискретного входа сигнализации. Просто перетащим (рис. 11) этот вход на переменную «Инициативный вызов» группы «Модем» в списке «Ресурсы», содержащем служебные переменные контроллера (предварительно выбранному COM-порту контроллера надо было задать интерфейс «Модем» на закладке его настроек).
Рис. 11. Реализация инициативного выхода контроллера на связь
при срабатывании дискретного входа сигнализации
Шаг 9. «Размножение» КП
Настал момент, когда мы полностью реализовали систему для одного КП. Теперь у нас все готово для создания такого числа КП, которое нам потребуется на объекте. Для этого есть разные подходы, в том числе и средства автоматического создания проектов с помощью несложных сценариев. Мы сейчас рассмотрим простейший вариант – дублирование объектов. Для начала с помощью контекстного меню «размножим» наш контроллер. После этого проделаем ту же операцию с объектом «КП 1». Обратите внимание, что нумерация новых объектов производится автоматически. Однако у нас осталась проблема связи КП с его контроллером. Ведь создается полная копия объекта «КП 1», а, следовательно, она продолжает ссылаться на первый контроллер. Но если вы повторяете за мной все действия, то уже увидели, что при дублировании открылся диалог (рис. 12), в котором достаточно указать для переменных «КП 2» использование контроллера с номером 2, и все связи автоматически установятся. Не забудьте только присвоить переменным «№ КП», константу номера (2 для второго и т.д.).
Рис. 12. Диалог восстановления внешних связей
Шаг 10. Создание стартовой мнемосхемы
Когда мы запускаем проект на компьютере, как правило, мы хотим, чтобы сразу что-то открылось. Обычно это стартовая мнемосхема. Стартовая мнемосхема создается на закладке «Окна» элемента «Компьютер». Часто на нее перетаскиваются объекты проекта, которые автоматически создают кнопки вызова своих мнемосхем с их сжатым изображением. Но мы исходили из того, что КП у нас много, добавляться они могут в любой момент, поэтому эти мнемосхемы мы вызываем переключением номера КП. Удобнее всего в данном проекте просто назначить в качестве стартовой мнемосхему первого КП. Для этого достаточно на его закладке «Окна» поставить галочку «Стартовая мнемосхема» (рис. 13).
Рис. 13. Создание стартовой мнемосхемы
Подведем итоги
Итак, наш проект готов. Готов за 10 минут. Мы, конечно, немного упростили постановку задачи, оставили за кадром архивирование, тренды, отчеты и т.п. На самом деле просто не хотелось перегружать статью однотипными фразами «Перетащите переменную из проекта на тренд (журнал, отчет) и все заработает». Если вы, читая этот текст, проделали вместе со мной все шаги на бесплатной инструментальной системе MasterSCADA (в режиме исполнения она будет работать 1 час), то добавить мне нечего. Вам и так все ясно. Остальным может показаться, что не все так просто, – целых 10 шагов, много новых понятий. Однако кто вам мешает «пощупать» MasterSCADA руками или ради экономии времени сразу пройти обучение по работе с этим гибким и полнофункциональным продуктом, не требующим никакого программирования при создании проектов практически любой сложности.
Статья опубликована в журнале «ИСУП», № 2(22)_2009
И.Е. Аблин, генеральный директор,
ЗАО «ИнСАТ», г. Москва,
тел.: (495) 974-00-92,