SCADA-системы: взгляд изнутри [Коллектив авторов] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Андреев Е.Б., Куцевич Н.А., Синенко О.В.

SCADA-системы: взгляд изнутри

Москва 2004

УДК 004.9SCADA:681.5(075.4)

ББК 32.973.26-018.2
А65

Андреев Е.Б., Куцевич Н.А., Синенко О.В.
А65

SCADA-системы: взгляд изнутри / Е.Б. Андреев, Н.А. Куцевич,
О.В. Синенко - М.: Издательство «РТСофт», 2004. - 176 с.: ил.
ISBN 5-9900271-1-7
В книге на примере двух известных и хорошо зарекомендовавших себя SCADAсистем - InTouch и Citect - подробно рассмотрены основные компоненты, функции и
возможности систем диспетчерского управления и сбора данных. Книга предназначена
для руководителей и специалистов предприятий, которые являются постоянными
пользователями SCADA-приложений, и для тех, кто только начинает работать в области
промышленной автоматизации. Книга будет также полезна и в учебном процессе при
подготовке квалифицированных инженерных кадров, поскольку в настоящее время в
учебные планы ряда технических университетов вводятся дисциплины, связанные с
изучением SCADA-систем.

УДК OO4.SCADA:681.5(0.75.4)
ББК 32.973.26-0.18.2

ISBN 5-9900271-1-7

© Андреев Е.Б., 2004
© Куцевич Н.А., 2004
© Синенко О.В., 2004
© Издательство “РТСофт”, 2004

Содержание
От авторов............................................................................................................................... 6

Введение................................................................................................................................. 7
АСУТП и диспетчерское управление................................................................................ 7
Компоненты систем контроля и управления и их назначение ................................... 10
Разработка прикладного программного обеспечения СКУ: выбор пути
и инструментария .............................................................................................................13
Технические характеристики .......................................................................................... 14
Открытость систем ...........................................................................................................16
Стоимостные характеристики ........................................................................................ 17
Эксплуатационные характеристики................................................................................ 17
Глава 1. Графический интерфейс................................................................................... 19
1.1. Графические средства InTouch................................................................................ 19
1.1.1. Окна в InTouch .................................................................................................. 19
1.1.2. Инструментарий InTouch.................................................................................. 22
1.1.3. Объекты и их свойства .................................................................................... 23
1.2. Графические средства Citect .................................................................................. 28
1.2.1. Шаблоны............................................................................................................ 29
1.2.2. Инструментарий .............................................................................................. 32
1.2.3. Bitmap Editor...................................................................................................... 36
1.2.4. Библиотека статических объектов(Library Objects)...................................... 36
1.2.5. Джинны и суперджинны (Genies и Super Genies) ........................................ 37
1.3. Сравнение графических средств ............................................................................ 41
Глава 2. Организация взаимодействия с контроллерами........................................ 43
2.1. Аппаратная реализация связи с устройствами ввода/вывода ........................... 44
2.2. Особенности построения коммуникационного ПО............................................... 44
2.3. Серверы ввода/вывода в InTouch............................................................................ 46
2.3.1. Поддерживаемые коммуникационные протоколы....................................... 47
2.3.2. Особенности адресации в InTouch................................................................. 49
2.3.3. Обмен данными с другими приложениями................................................... 51
2.3.4. Определение имени доступа в словаре переменных InTouch ................... 51
2.4. Коммуникационные возможности в Citect..............................................................56
2.4.1. Коммуникационные протоколы ...................................................................... 56
2.4.2. Установка связей с устройствами ввода/вывода......................................... 57
2.5. Подключение узлов Citect........................................................................................ 62
2.5.1. Архитектура клиент-сервер ............................................................................ 62
2.5.2. Конфигурирование Citect-компьютеров в сети ........................................... 62
2.6. Сравнение коммуникационных возможностей..................................................... 64

4

SCADA-системы: взгляд изнутри

Глава 3. Алармы и события................................................................................................ 65
3.1. Типовые алармы......................................................................................................... 65
3.2. Алармы и события в InTouch..................................................................................... 67
3.2.1. Типы алармов и событий...................................................................................67
3.2.2. Приоритеты алармов......................................................................................... 68
3.2.3. Группы алармов................................................................................................. 68
3.2.4. Определение условий аларма для переменной............................................ 70
3.2.5. Вывод информации об алармах...................................................................... 71
3.2.6. Конфигурирование стандартной системы алармов..................................... 73
3.2.7. Распределенная система алармов ................................................................ 76
3.3. Алармы в Citect........................................................................................................... 76
3.3.1. Типы алармов..................................................................................................... 76
3.3.2. Конфигурирование алармов............................................................................. 78
3.3.3. Категории алармов ........................................................................................... 80
3.3.4. Отображение алармов ..................................................................................... 81
3.4. Подсистемы алармов в InTouch и Citect...................................................................83
Глава 4. Тренды в SCADA-системах................................................................................ 85
4.1. Тренды в InTouch ....................................................................................................... 85
4.1.1. Архивирование (регистрация) значений переменной................................ 85
4.1.2. Отображение трендов....................................................................................... 87
4.1.3. Изменение параметров активных трендов
в режиме исполнения ................................................................................................. 91
4.1.4. Система распределенных архивов ................................................................ 92
4.2. Тренды в Citect........................................................................................................... 93
4.2.1. Регистрация данных ......................................................................................... 94
4.2.2. Отображение трендов....................................................................................... 96
4.3. Отличия подсистем архивирования и отображения InTouch и Citect ................. 99

Глава 5. Встроенные языки программирования ...................................................... 101
5.1. Скрипты в InTouch ................................................................................................... 102
5.1.1. Типы скриптов ................................................................................................. 102
5.1.2. Встроенные функции....................................................................................... 103
5.1.3. Функции Quick Functions................................................................................. 109
5.2. Встроенный язык программирования Cicode...................................................... 111
5.2.1. Команды Cicode............................................................................................... 111
5.2.2. Выражения Cicode........................................................................................... 113
5.2.3. Функции Cicode...........................................
113
5.2.4. Редактор Cicode............................................................................................... 118
5.3. Взгляд со стороны на языки программирования InTouch и Citect..................... 119
Глава 6. База данных......................................................................................................... 121
6.1. IndustriaISQL Server компании Wonderware ...........................................................125
6.1.1. Взаимодействие - причина успеха............................................................... 125
6.1.2. Характеристика РБД IndustriaISQL Server.................................................... 127
6.1.3. Область применения....................................................................................... 131
6.2. Plant2SQL и новые возможности, предлагаемые компанией Citect................. 132
6.2.1. Основные особенности Plant2SQL.................................................................132

СОДЕРЖАНИЕ

5

6.2.2. Область применения...................................................................................... 135
6.3. Базы данных реального времени. Их отличия...................................................... 135

Глава 7. Internet/lntranet-решения и SCADA-системы. Стратегия
клиентских приложений................................................................................................. 137
7.1. Структура Windows DNA.......................................................................................... 139
7.2. Новая реализация клиентского приложения в режиме сервер/терминал ... .141
7.3. Стратегия клиентских приложений от Wonderware..............................................142
7.3.1. «Бедные» и «богатые» lnternet/lntranet-клиенты..........................................142
7.3.2. Базы данных реального времени (БДРВ) и Internet-решения................... 145
7.3.3. Специальный инструментарий для создания
lnternet/lntranet-клиентов ........................................................................................ 146
7.4. Internet/lntranet-решения OTCitect............ ........................................................ 151
7.5. Общие тенденции и различия реализаций .......................................................... 153
Глава 8. Заключение........................................................................................................ 155
8.1. О средствах, расширяющих возможности обработки данных........................... 155
8.1.1. Отдельные опции и пакеты, расширяющие
возможности обработки данных.............................................................................. 156
8.1.2. Отдельные приложения, ориентированные на различные
области применения ................................................................................................ 157
8.2. Программные продукты от разработчиков SCADA-систем ............................... 158
8.2.1. Системы слежения за процессом
производства (InTrack, Tracing)................................................................................ 158
8.2.2. Системы управления непрерывным производством
с элементами дозирования и смешивания (InBatch, Batch) ............................... 161
8.2.3. Программные средства от поставщиков MES-систем ............................. 163
8.2.4. Интеграция с системами АСУП .................................................................... 166
8.2.5. Ключевые показатели производства
(KPI - Key Performance Indicator) ............................................................................ 167

Список литературы...........................................................................................................173
Об авторах........................................................................................................................... 175

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

С

Книга «SCADA-системы: взгляд изнутри» - это попытка авторов систематизировать
разрозненную информацию об этом программном продукте.

Во введении можно найти ответы на вопросы, связанные с реализуемыми функциями,
характеристиками или критериями выбора SCADA-систем.
В последующих пяти главах на примерах двух популярных в России систем - InTouch и
Citect - подробно рассматриваются такие базовые функции SCADA, как графический
интерфейс, организация взаимодействия с контроллерами, алармы и события, тренды,
встроенные языки программирования. Шестая глава посвящена базам данных реаль­
ного времени. Решения по организации доступа к информации с помощью клиентских
приложений, в том числе и базирующихся на Internet-технологии, описаны в седьмой
главе.

Заключение - это взгляд на настоящее и будущее автоматизации промышленных
предприятий - интеграцию всех уровней управления.
Авторы надеются увидеть среди читателей книги и опытных специалистов-разработчи­
ков, пожелавших сверить свой профессиональный взгляд на SCADA-системы с
авторским, и молодежь, чья жизнь в автоматизации уже невозможна без SCADA. Книга
также будет полезна руководителям и специалистам предприятий, которые являются
постоянными пользователями SCADA-приложений на своих автоматизированных
рабочих местах. Многочисленной армии операторов/диспетчеров книга поможет
взглянуть на интерфейс с системой управления изнутри, глазами разработчика, а
значит, и преодолеть психологический барьер.

Введение
овременная АСУТП (автоматизированная система управления технологическим
процессом) представляет собой многоуровневую человеко-машинную систему
управления. Создание АСУ сложными технологическими процессами осущест­
вляется с использованием автоматических информационных систем сбора данных и
вычислительных комплексов, которые постоянно совершенствуются, по мере эволюции
технических средств и программного обеспечения.

С

АСУТП и диспетчерское управление
Непрерывную во времени картину развития АСУТП можно разделить на три этапа,
обусловленные появлением качественно новых научных идей и технических средств. В
ходе истории меняется характер объектов и методов управления, средств автома­
тизации и других компонентов, составляющих содержание современной системы
управления.



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



Второй этап - автоматизация технологических процессов. Объектом управления
становится рассредоточенная в пространстве система. С помощью систем
автоматического управления (САУ) реализуются все более сложные законы
управления, решаются задачи оптимального и адаптивного управления, проводится
идентификация объекта и состояния системы. Характерной особенностью этого
этапа является внедрение систем телемеханики в управление технологическими
процессами. Человек все больше отдаляется от объекта управления, между
объектом и диспетчером выстраивается целый ряд измерительных систем,
исполнительных механизмов, средств телемеханики, мнемосхем и других средств
отображения информации (СОИ).



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

8

SCADA-системы: взгляд изнутри

От этапа к этапу меняются и функции человека (оператора/диспетчера), призванного
обеспечить регламентное функционирование технологического процесса. Расширяется
круг задач, решаемых на уровне управления. Ограниченный прямой необходимостью
управления технологическим процессом набор задач пополняется качественно новыми
задачами, ранее имеющими вспомогательный характер или относящимися к другому
уровню управления.
Диспетчер в многоуровневой автоматизированной системе управления технологи­
ческими процессами получает информацию с монитора ЭВМ или с электронной
системы отображения информации и воздействует на объекты, находящиеся от него на
значительном расстоянии, с помощью телекоммуникационных систем, контроллеров,
интеллектуальных исполнительных механизмов.
Основой, необходимым условием эффективной реализации диспетчерского управле­
ния, имеющего ярко выраженный динамический характер, становится работа с инфор­
мацией, т.е. процесс сбора, передачи, обработки, отображения, представления инфор­
мации.

От диспетчера уже требуется не только профессиональное знание технологического
процесса, основ управления, но и опыт работы в информационных системах, умение
принимать решение (в диалоге с ЭВМ) в нештатных и аварийных ситуациях и многое
другое. Диспетчер становится главным действующим лицом в управлении технологи­
ческим процессом.
Говоря о диспетчерском управлении, нельзя не затронуть проблему технологического
риска. Технологические процессы в энергетике, нефтегазовой и ряде других отраслей
промышленности являются потенциально опасными и при возникновении аварий
приводят к человеческим жертвам, а также к значительному материальному и экологи­
ческому ущербу.
Статистика говорит, что за тридцать лет (с начала 60-х до конца 80-х годов XX века)
число учтенных аварий удваивалось примерно каждые десять лет. В результате анализа
большинства аварий и происшествий на всех видах транспорта, в промышленности и
энергетике были получены интересные данные. В 60-х годах ошибка человека была
первоначальной причиной аварий лишь в 20% случаев, тогда как к концу 80-х доля
«человеческого фактора» стала приближаться к 80%.
Одна из причин этой тенденции - старый, традиционный подход к построению сложных
систем управления, т. е. ориентация на применение новейших технических и технологи­
ческих достижений и недооценка необходимости построения эффективного человекомашинного интерфейса, ориентированного на человека (диспетчера). Таким образом,
требование повышения надежности систем диспетчерского управления является одной
из предпосылок появления нового подхода при разработке таких систем. Основа
современного подхода - ориентация на оператора/диспетчера и его задачи.

Концепция SCADA (Supervisory Control And Data Acquisition - диспетчерское управление
и сбор данных) предопределена всем ходом развития систем управления и результа­
тами научно-технического прогресса. Применение SCADA-технологий позволяет

ВВЕДЕНИЕ

9

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

Дружественность человеко-машинного интерфейса (HMI/MMI - Humain/Man Machine
Interface), предоставляемого SCADA-системами, полнота и наглядность представля­
емой на экране информации, доступность «рычагов» управления, удобство пользования
подсказками и справочной системой и т. д. повышают эффективность взаимодействия
диспетчера с системой и сводят к минимуму его критические ошибки при управлении.

Следует отметить, что концепция SCADA, основу которой составляет автоматизиро­
ванная разработка и управление в реальном времени, позволяет решить еще ряд задач,
долгое время считавшихся неразрешимыми: сокращение сроков разработки проектов
по автоматизации и прямых финансовых затрат на их разработку.
В настоящее время SCADA является основным и наиболее перспективным методом
автоматизированного управления сложными динамическими системами (процессами).

Управление технологическими процессами на основе систем SCADA стало осуществ­
ляться в передовых западных странах в 80-е годы. Область их применения охватывает
сложные объекты электро- и водоснабжения, химические, нефтехимические и
нефтеперерабатывающие производства, железнодорожный транспорт, транспорт
нефти и газа и др.
В России диспетчерское управление технологическими процессами опиралось, глав­
ным образом, на опыт оперативно-диспетчерского персонала. Переход к управлению на
основе SCADA-систем стал осуществляться позднее. К трудностям освоения в России
новой информационной технологии - SCADA-систем - относятся как отсутствие эксплу­
атационного опыта, так и недостаток информации о различных SCADA-системах. В мире
насчитываются не один десяток компаний, активно занимающихся разработкой и
внедрением SCADA-систем. Каждая SCADA-система - это ноу-хау компании, и поэтому
информация о той или иной системе не столь обширна.
Большое значение при внедрении современных систем диспетчерского управления
имеет решение следующих задач:



выбор SCADA-системы (исходя из требований и особенностей технологического
процесса);



кадровое сопровождение.

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

10

SCADA-системы: взгляд изнутри

изучением SCADA-систем. Однако специальная литература по SCADA-системам
отсутствует, имеются лишь отдельные статьи и рекламные проспекты.

Компоненты систем контроля и управления и их назначение
Многие проекты автоматизированных систем контроля и управления (СКУ) для
большого спектра областей применения позволяют выделить обобщенную схему их
реализации, представленную на рис. 1.
Ethernet
Операторские станции
SCADA

QL Server

Расчетные станции

аии|=

Ш1-Й

Б
Интеллектуальный
контроллер

Офисная сеть Ethernet
MnKpoSCADA
Промышленная сеть

Контроллеры нижнего уровня

Рис. 1. Обобщенная схема системы контроля и управления

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


Нижний уровень - уровень объекта (контроллерный) - включает различные датчики
для сбора информации о ходе технологического процесса, электроприводы и
исполнительные механизмы для реализации регулирующих и управляющих
воздействий. Датчики поставляют информацию локальным программируемым
логическим контроллерам (PLC - Programming Logical Controller), которые могут
выполнять следующие функции:
сбор и обработку информации о параметрах технологического процесса;
управление электроприводами и другими исполнительными механизмами;
решение задач автоматического логического управления и др.

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

ВВЕДЕНИЕ

11

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

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

К этому классу инструментального ПО относятся пакеты типа ISaGRAF (CJ International
France), InConrol (Wonderware, USA), Paradym 31 (Intellution, USA), имеющие открытую
архитектуру.



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



Верхний уровень - диспетчерский пункт (ДП) - включает, прежде всего, одну или
несколько станций управления, представляющих собой автоматизированное
рабочее место (АРМ) диспетчера/оператора. Здесь же могут быть размещены:
сервер базы данных, рабочие места (компьютеры) для специалистов и т. д. Часто в
качестве рабочих станций используются ПЭВМ типа IBM PC различных
конфигураций.

Станции управления предназначены для отображения хода технологического
процесса и оперативного управления. Эти задачи и призваны решать SCADA-

12

SCADA-системы: взгляд изнутри

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

автоматизированная разработка, дающая возможность создания ПО системы
автоматизации без реального программирования;
средства исполнения прикладных программ;
сбор первичной информации от устройств нижнего уровня;
обработка первичной информации;
регистрация алармов и исторических данных;
хранение информации с возможностью ее постобработки (как правило,
реализуется через интерфейсы к наиболее популярным базам данных);
визуализация информации в виде мнемосхем, графиков и т.п.;
возможность работы прикладной системы с наборами параметров,
рассматриваемых как «единое целое» (recipe или «установки»).
Рассматривая обобщенную структуру систем управления, следует ввести и еще одно
понятие - Micro-SCADA. Micro-SCADA - это системы, реализующие стандартные (базо­
вые) функции, присущие SCADA-системам верхнего уровня, но ориентированные на
решение задач автоматизации в определенной отрасли (узкоспециализированные). В
противоположность им SCADA-системы верхнего уровня являются универсальными.



Все компоненты системы управления объединены между собой каналами связи.
Обеспечение взаимодействия SCADA-систем с локальными контроллерами,
контроллерами верхнего уровня, офисными и промышленными сетями возложено
на так называемое коммуникационное ПО. Это достаточно широкий класс
программного обеспечения, выбор которого для конкретной системы управления
определяется многими факторами, в том числе и типом применяемых
контроллеров, и используемой SCADA-системой. Более подробная информация о
коммуникационном ПО приведена в главе 2.



Большой объем информации, непрерывно поступающий с устройств ввода/вывода
систем управления, предопределяет наличие в таких системах баз данных (БД).
Основная задача баз данных - своевременно обеспечить пользователя всех
уровней управления требуемой информацией. Но если на верхних уровнях АСУ эта
задача решена с помощью традиционных БД, то этого не скажешь об уровне
АСУТП. До недавнего времени регистрация информации в реальном времени
решалась на базе ПО интеллектуальных контроллеров и SCADA-систем. В
последнее время появились новые возможности по обеспечению
высокоскоростного хранения информации в БД. Более подробная информация по
базам данных реального времени приведена в главе 6.



Бурное развитие Интернета не могло не привлечь внимание производителей
программного продукта SCADA. Возможно ли применение Интернет-технологий в
системах управления технологическими процессами? Если да, то какие решения

ВВЕДЕНИЕ

13

предлагаются в настоящее время компаниями-разработчиками? Обсуждению этих
вопросов посвящена глава 7.

Разработка прикладного программного обеспечения СКУ:
выбор пути и инструментария
Приступая к разработке специализированного прикладного программного обеспечения
(ППО) для создания системы контроля и управления, системный интегратор или конеч­
ный пользователь обычно выбирают один из следующих путей:



программирование с использованием «традиционных» средств (традиционные
языки программирования, стандартные средства отладки и пр.);



использование существующих готовых инструментальных проблемно
ориентированных средств - COTS (Commercial Of The Shelf).

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

Итак, выбор пути сделан, что очень важно, но тогда следует сделать и второй шаг «определиться» с инструментальными средствами разработки ППО.
Программные продукты класса SCADA широко представлены на мировом рынке. Это
несколько десятков SCADA-систем, многие из которых нашли свое применение и в
России. Наиболее популярные из них приведены ниже:



InTouch (Wonderware) - США;



Citect (Citect) - Австралия;



FIX (Intellution ) - США;



Genesis (Iconics Co) - США;



Factory Link (United States Data Co) - США;



RealFlex (BJ Software Systems) - США;

14

SCADA-системы: взгляд изнутри



Sitex (Jade Software) - Великобритания;



TraceMode (AdAstrA) - Россия;



Cimplicity (GE Fanuc) - США;



САРГОН (НВТ - Автоматика) - Россия.

При таком многообразии SCADA-продуктов на российском рынке естественно возника­
ет вопрос о выборе. Выбор SCADA-системы представляет собой достаточно трудную
задачу, аналогичную поиску оптимального решения в условиях многокритериальности.
Ниже приводится примерный перечень критериев оценки SCADA-систем, которые в
первую очередь должны интересовать пользователя. Этот перечень не является
авторским и давно уже обсуждается в специальной периодической прессе. В нем можно
выделить три большие группы показателей:



технические характеристики;



стоимостные характеристики;



эксплуатационные характеристики.

Технические характеристики
Программно-аппаратные платформы для SCADA-снстем

Анализ перечня таких платформ необходим, поскольку от него зависит ответ на вопрос,
возможна ли реализация той или иной SCADA-системы на имеющихся вычислительных
средствах, а также оценка стоимости эксплуатации системы (будучи разработанной в
одной операционной среде, прикладная программа может быть выполнена в любой
другой, которую поддерживает выбранный SCADA-пакет). В различных SCADA-системах
этот вопрос решен по разному. Так, FactoryLink имеет весьма широкий список поддер­
живаемых программно-аппаратных платформ (табл. 1):
Операционная система

Компьютерная платформа

DOS/MS Windows
OS/2
SCO UNIX
VMS
AIX
HP-UX
MSWindows/NT

IBM PC
IBM PC
IBM PC
VAX
RS6000
HP 9000
Системы с реализованным Windows/NT,
в основном на PC-платформе
Таблица 1

ВВЕДЕНИЕ

15

В то же время в таких SCADA-системах, как RealFlex и Sitex, основу программной плат­
формы принципиально составляет единственная операционная система реального
времени QNX.
Подавляющее большинство SCADA-систем реализовано на MS Windows-платформах.
Именно такие системы предлагают наиболее полные и легко наращиваемые MMIсредства. Учитывая позиции Microsoft на рынке операционных систем (ОС), следует
отметить, что даже разработчики многоплатформных SCADA-систем, такие, как United
States DATA Со (разработчик FactoryLink), приоритетным считают дальнейшее развитие
своих SCADA-систем на платформе Windows NT Некоторые фирмы, до сих пор
поддерживающие SCADA-системы на базе операционных систем реального времени
(ОСРВ), начали менять ориентацию, выбирая системы на платформе Windows NT Все
более очевидным становится применение ОСРВ во встраиваемых системах, где они
действительно хороши. Таким образом, основным полем, где сегодня разворачиваются
главные события глобального рынка SCADA-систем, стала MS Windows NT/2000 на фоне
всё ускоряющегося сворачивания активности в области MS DOS, MS Windows З.хх/95.

Имеющиеся средства сетевой поддержки

Одной из основных черт современного мира систем автоматизации является их высокая
степень интеграции. В любой из них могут быть задействованы объекты управления,
исполнительные механизмы, аппаратура, регистрирующая и обрабатывающая
информацию, рабочие места операторов, серверы баз данных и т.д. Очевидно, что для
эффективного функционирования в этой разнородной среде SCADA-система должна
обеспечивать высокий уровень сетевого сервиса. Желательно, чтобы она поддерживала
работу в стандартных сетевых средах (ARCNET, ETHERNET и т.д.) с использованием
стандартных протоколов (NETBIOS, TCP/IP и др.), а также обеспечивала поддержку
наиболее популярных сетевых стандартов из класса промышленных интерфейсов
(PROFIBUS, CANBUS, LON, MODBUS и т.д.). Этим требованиям в той или иной степени
удовлетворяют практически все рассматриваемые SCADA-системы, с тем только разли­
чием, что набор поддерживаемых сетевых интерфейсов, конечно же, разный.
Встроенные командные языки
Большинство SCADA-систем имеют встроенные языки высокого уровня, VBasicподобные языки, позволяющие генерировать адекватную реакцию на события,
связанные с изменением значения переменной, с выполнением некоторого логического
условия, с нажатием комбинации клавиш, а также с выполнением некоторого фрагмента
с заданной частотой относительно всего приложения или отдельного окна.
Поддерживаемые базы данных
Одной из основных задач систем диспетчерского контроля и управления является
обработка информации: сбор, оперативный анализ, хранение, сжатие, пересылка и т. д.
Таким образом, в рамках создаваемой системы должна функционировать база данных.

Практически все SCADA-системы, в частности Genesis, InTouch, Citect, используют ANSI
SQL-синтаксис, который является независимым от типа базы данных. Таким образом,

16

SCADA-системы: взгляд изнутри

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

Графические возможности

Для специалиста-разработчика системы автоматизации, как и для специалистатехнолога, чье рабочее место создается, очень важен графический пользовательский
интерфейс. Функционально графические интерфейсы SCADA-систем весьма похожи. В
каждой из них существует графический объектно-ориентированный редактор с опреде­
ленным набором анимационных функций. Используемая векторная графика дает
возможность осуществлять широкий набор операций над выбранным объектом, а также
быстро обновлять изображение на экране, применяя средства анимации.
Крайне важен также вопрос о поддержке в рассматриваемых системах стандартных
функций GUI (Graphic Users Interface). Поскольку большинство рассматриваемых
SCADA-систем работают под управлением Windows, это и определяет тип используе­
мого GUI.

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

Драйверы ввода-вывода

Современные SCADA-системы не ограничивают выбора аппаратуры нижнего уровня,
так как предоставляют большой набор драйверов или серверов ввода-вывода и имеют
хорошо развитые средства создания собственных программных модулей или драйве­
ров новых устройств нижнего уровня. Сами драйверы разрабатываются с использо­
ванием стандартных языков программирования. Вопрос, однако, в том, достаточно ли
спецификаций доступа к ядру системы, поставляемых фирмой-разработчиком в
штатном комплекте (система Trace Mode), или для создания драйверов необходимы
специальные пакеты (системы FactoryLink, InTouch). Возможно, разработку драйвера
нужно заказывать у фирмы-разработчика.

ВВЕДЕНИЕ

17

Разработки третьих фирм
Многие компании занимаются разработкой драйверов, ActiveX-объектов и другого прог­
раммного обеспечения для SCADA-систем. Этот факт очень важно оценивать при выбо­
ре SCADA-пакета, поскольку это расширяет область применения системы непрофес­
сиональными программистами (нет необходимости разрабатывать программы с
использованием языков С или Basic).

Стоимостные характеристики
При оценке стоимости SCADA-систем нужно учитывать следующие факторы:



стоимость программно-аппаратной платформы;



стоимость системы;



стоимость освоения системы;



стоимость сопровождения.

Эксплуатационные характеристики
Показатели этой группы критериев наиболее субъективны. Это тот самый случай, когда
лучше один раз увидеть, чем семь раз услышать. К этой группе можно отнести:



удобство интерфейса среды разработки - «Windows-подобный» интерфейс,
полнота инструментария и функций системы;



качество документации - ее полнота, уровень русификации;



поддержка со стороны создателей - количество инсталляций, дилерская сеть,
обучение, условия обновления версий и т. д.

Если предположить, что пользователь справился и с этой задачей - остановил свой
выбор на конкретной SCADA-системе, то далее начинается разработка системы
контроля и управления, включающая следующие этапы:


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



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



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



приведение в соответствие параметров прикладной системы с информацией,

18

SCADA-системы: взгляд изнутри

которой обмениваются устройства нижнего уровня (например, программируемые
логические контроллеры) с внешним миром (датчики технологических параметров,
исполнительные устройства и др.);



отладку созданной прикладной программы в режиме эмуляции.

В последующих главах на примере двух известных и хорошо зарекомендовавших себя
SCADA-систем - InTouch и Citect - рассмотрены основные компоненты, функции и
возможности систем диспетчерского управления и сбора данных.

ГЛАВА 1. Графический интерфейс
редства визуализации - одно из базовых свойств SCADA-систем. В каждой из
них существует графический объектно-ориентированный редактор с
определенным набором анимационных функций. Используемая векторная
графика дает возможность осуществлять широкий круг операций над выбранным
объектом. Объекты могут быть простыми (линии, прямоугольники, текстовые объекты и
т. д.) и сложными. Возможности агрегирования сложных объектов в разных SCADAсистемах различны. Все SCADA-системы включают библиотеки стандартных
графических символов, библиотеки сложных графических объектов, обладают целым
рядом других стандартных возможностей. Тем не менее каждая SCADA-система посвоему уникальна и, несмотря на поддержание стандартных функций, обладает
присущими только ей особенностями. При рассмотрении графических возможностей
SCADA-систем InTouch и Citect предполагается обратить внимание не только на
возможности инструментариев по созданию графических объектов, но и на другие
предоставляемые пользователю услуги, облегчающие и ускоряющие процесс
разработки приложений (проектов).

С

1.1. Графические средства InTouch
Компоненты среды разработки InTouch:


WindowMaker - инструментальная среда разработки приложений;



Application Explorer - представление приложения в иерархическом виде с доступом
к любому компоненту и многим часто используемым командам и функциям
WindowMaker.

Проект, созданный в пакете InTouch, представляет собой набор окон (Window) с различ­
ными графическими и текстовыми объектами.

1.1.1. Окна в InTouch
Свойства каждого окна (наличие заголовка, цвет фона, размеры и т. д.) определяются
при его создании. Создание нового окна производится в среде разработки
WindowMaker щелчком по иконке панели инструментов General или командой File/New
Window. На экране появится диалог Window Properties (Свойства окна, рис. 1.1).

Каждое окно должно иметь свое имя (Name) для его идентификации в приложении. Цвет
фона создаваемого окна выбирается из цветовой палитры, вызываемой на экран
щелчком по окошку Window Color.
В поле Comment можно ввести комментарий, связанный с этим окном (необязательно).
Эта информация нужна только для документирования и не используется приложением.

20

SCADA-системы: взгляд изнутри

InTouch предлагает три типа окон (Window Туре):



Replace (заменяющее) - закрывает все существующие окна, перекрываемые им
при появлении на экране, включая окна типа Popup и другие окна типа Replace;



Overlay (перекрывающее) - появляется поверх всех окон, отображаемых в текущий
момент. Когда окно типа Overlay закрывается, все скрываемые им окна
восстанавливаются. Щелчок мыши по любому видимому участку лежащего ниже
окна приводит к переходу его на передний план;



Popup (всплывающее) -похоже на окно типа Overlay, только всегда остается поверх
всех других открытых окон. Окно закрывается после соответствующей команды
пользователя.
Window Properties
Name:

(Alarms

Window Color: |

Comment: (Текущие алармы

C Overlay

C Popup

C Double

C Hone

Frame Style

=80 имеет следующий смысл:
запустить состояние аларма, когда значение некоторой переменной HW_TEMP будет
больше или равно 80 (True).

3.3.3. Категории алармов
В системе Citect предусмотрена возможность классификации алармов по самым
различным признакам: участкам производства, типу алармов, имени, приоритету и т. д.
В зависимости от этого каждый аларм может быть отнесен к определенной категории, и
каждая категория обрабатывается как группа.

Для каждой категории можно установить индивидуальные атрибуты отображения
элементов аларма (шрифт и тип страницы), способ регистрации (на принтер или в файл)
и действие, производимое тогда, когда срабатывает аларм определенной категории
(например, включение звукового сигнала).

При разработке проекта можно определить до 255 категорий. Если категория для
аларма не установлена, он будет иметь такие же атрибуты, как и аларм категории 0.
Категория 255 используется для всех аппаратных алармов. Если не определять катего­
рию аларма 0 или 255, Citect использует значения по умолчанию для этих категорий.
Каждая категория имеет свой приоритет. Приоритеты алармов могут быть использованы
для определения порядка их появления, обеспечивая необходимую для оператора
фильтрацию. Важность приоритета уменьшается с увеличением его значения от 1 до
255. Таким образом, приоритет с номером 1 - самый высокий. Например, если алармы
с приоритетами от 1 до 8 должны выводиться на экран, то первыми будут выводиться
алармы с приоритетом 1 в порядке их поступления, затем алармы с приоритетом 2 и т.д.
Задание свойств категории алармов производится в специализированном диалоге
Alarm Categories, приведенном на рис. 3.17.

Поля Alarm On Font и Alarm Off Font предназначены для выбора шрифтов при выводе
«включенных» (активных) алармов и «выключенных» алармов (переменная возвратилась
в нормальное состояние).

ГЛАВА 3. Алармы и события

81

Рис. 3.17. Диалог Alarm Categories

Поля ON Action и OFF Action предписывают действие, которое должно быть реализовано
при включении (выключении) аларма. Действие задается командой на языке Cicode.

Поле АСК Action предписывает действие, которое должно быть реализовано при
подтверждении аларма. Так же, как и для предыдущих полей, действие задается коман­
дой на языке Cicode.
Каждый аларм может быть представлен на странице текущих алармов (Alarm Display) и в
сводке алармов (Alarm Summary) одной строкой.

Поля Alarm Format и Summary Format определяют формат вывода всех алармов данной
категории на этой странице. Символ At между полями формата означает признак
табуляции (выравнивание выводимой информации в полях формата). Действие этого
формата распространяется только при отображении алармов на экран.
Поля Log Alarm Transitions (ON, OFF, ACK) определяют момент регистрации алармов
данной категории (когда включается, выключается, подтверждается).

3.3.4. Отображение алармов
Для предоставления оператору информации об алармах в Citect можно создавать
страницы текущих алармов (Alarm Display) и страницы сводки алармов (Alarm Summary).
Более того, Citect предлагает для этих целей готовые шаблоны. Основные типы таких
шаблонов приведены в главе 1.
После создания новой страницы с использованием шаблона следует произвести ее
конфигурирование в диалоге Properties (Свойства страницы, рис. 3.18).

82

SCADA-системы: взгляд изнутри

Рис. 3.18. Диалог Properties (Свойства страницы)

Этот диалог содержит несколько закладок, на которых можно определить заголовок
окна в режиме исполнения (Window Title); предыдущую и последующую страницы
(Previous, Next) в порядке их расположения в проекте; время обновления (scan time);
видимые размеры окна, его стиль (закладка Appearance); клавиши и команды, выполня­
емые при их нажатии (закладка Keyboard Commands); команды, выполняемые при
закрытии или открытии окна (закладка Events) и т. д.

Когда страницы для отображения алармов созданы, остается произвести конфигури­
рование алармов в соответствующих диалогах с присвоением категории и заполнить
диалог Л/arm Categories для каждой категории. При запуске режима исполнения алармы
будут отображаться на страницах алармов.
Пример страницы текущих алармов Alarm Display приведен на рис. 3.19.
Возможные выводимые поля в Alarm Display (текущее алармы):



имя переменной, имя аларма, описание аларма;



категория аларма, справочная информация, зона, уровень доступа;



тип или состояние аларма: заблокирован, подтвержден, не подтвержден;



время/дата смены состояния или подтверждения аларма: время и дата
возникновения, время и дата окончания, время и дата подтверждения,
длительность.

Для дискретных алармов имеется поле состояния: on (вкл.), off (выкл.). Для алармов с
метками времени в поле времени и даты добавлена информация о миллисекундах.

ГЛАВА 3. Алармы и события

83

Рис. 3.19. Страница текущих алармов Alarm Display

Поля Alarm On Font и Alarm Off Font предназначены для выбора шрифтов при выводе
«включенных» (активных) алармов и «выключенных» алармов (переменная возвратилась
в нормальное состояние).

Для аналоговых алармов предусмотрены поля для состояний (HiHi, Hi, Lo, LoLo, Rate,
Deviation), значения переменной (Value) и полосы удержания аларма (Deadband - зона
нечувствительности).
Так же, как и на любой графической странице, на страницах текущих алармов и сводок
алармов можно расположить различные средства навигации и управления (кнопки
перехода на другие страницы проекта, кнопки подтверждения алармов, кнопки запуска
процесса регистрации алармов в файл или на принтер, линейки прокрутки и т.д.).

Следует напомнить читателю, что для сетевого доступа к алармам с компьютера отобра­
жения (Display Client) один из компьютеров сети должен быть сконфигурирован как
сервер алармов (Alarm Server). Это может быть отдельный компьютер, играющий роль
сервера алармов, либо компьютер, на который возложены функции нескольких
серверов (в том числе и сервера алармов).

3.4. Подсистемы алармов в InTouch и Citect
Безусловно, основные задачи подсистемы алармов реализованы в обеих SCADAсистемах. Но особенностей ее реализации достаточно много:


исполняющая система Citect всегда передает информацию об аппаратных
(Hardware) алармах в Citect-приложениях. За разработчиком остается только

84

SCADA-системы: взгляд изнутри

решение по использованию конфигурируемых алармов. Доступность информации
обо всех аварийных ситуациях в InTouch зависит от разработчика приложения;



подсистема алармов в InTouch и Citect является распределенной; при этом
используется архитектура Client/Server. В Citect в рамках одного домена (domain) в
локальной сети допустимо использование только одного сервера алармов.
Остальные компьютеры могут выполнять лишь функцию клиентов по отношению к
этому серверу. В InTouch допустимо произвольное количество серверов и клиентов,
если брать во внимание распределенную, а не стандартную систему;



в Citect предлагается два дополнительных типа алармов: с меткой времени и
составные. Последний тип алармов дает большую свободу разработчику в вопросе
генерации алармов по любому условию;



все алармы, генерируемые приложениями в InTouch и Citect, могут быть сохранены
на диске. В первом случае используются ASCII-файлы в .CSV-формате, во втором
допустимыми форматами хранения являются .TXT для ASCII-файлов, а также
форматы .RTF и .DBF;



в InTouch существуют специальные графические объекты (Wizards) для отображения
алармов, которые могут помещаться в любое окно (Window) приложения. При
конфигурировании каждого объекта в окне определяются группы алармов с
приоритетами, которые будут отображаться в объекте на этапе исполнения;



Citect разработал шаблоны страниц (Pages), специально ориентированные на
вывод как текущих и аппаратных алармов, так и сводки алармов. Компания CiT
создала более высокоуровневые средства для отображения алармов;
Предлагаемый инструментарий является отражением «выстраданного» опыта
компании в области разработки проектов;



в InTouch аналогичные решения можно получить с использованием базовых
«кубиков», давая волю фантазии разработчика.

ГЛАВА 4. Тренды в SCADA-системах
рафическое представление значений технологических параметров во времени
способствует лучшему пониманию динамики технологических процессов пред­
приятия. Поэтому подсистема создания трендов и хранения информации о пара­
метрах с целью ее дальнейшего анализа и использования для управления является
неотъемлемой частью любой SCADA-системы.

Г

Тренды реального времени (Real Time) отображают динамические изменения парамет­
ра в текущем времени. При появлении нового значения параметра в окне тренда проис­
ходит прокрутка графика справа налево. Таким образом, текущее значение параметра
выводится всегда в правой части окна.
Тренды становятся историческими (Historical) после того, как данные будут записаны на
диск и можно будет использовать режим прокрутки предыдущих значений назад с целью
просмотра прошлых значений. Отображаемые трендом данные в таком режиме неподвижны, а их объем ограничен начальным и конечным временем выборки.

4.1. Тренды в InTouch
InTouch предлагает пользователю оба типа графических объектов, называемых
трендами: тренд реального времени и исторический (архивный) тренд. Тренды
реального времени дают возможность создавать графики изменения во времени
четырех переменных (4 пера), в то время как для исторических трендов можно конфигу­
рировать до восьми перьев в одном объекте. Количество объектов типа «тренд» в
приложении, в том числе и в одном окне, не ограничено.

Оба типа трендов создаются с использованием специальных графических объектов
инструментальной панели WindowMaker. InTouch также обеспечивает полный контроль
над конфигурированием трендов. Например, можно определить диапазон времени,
область значений, разрешение сетки, размещение временных отметок, число перьев и
атрибуты цвета и т. д.
Допускается переконфигурирование
приложения (в Runtime).

архивного

тренда

на этапе

исполнения

4.1.1. Архивирование (регистрация) значений переменной
При работе системы в режиме Windowviewer (среда исполнения) InTouch может
производить запись значений переменных в регистрационный файл. Для того чтобы
архивирование переменной выполнялось, необходимо включить опцию Log Data
(регистрация данных) при определении переменной в диалоге Tagname Dictionary (см.
рис. 4.1).

86

SCADA-системы: взгляд изнутри

Рис. 4.1. Диалог Tagname Dictionary с отмеченной опцией Log Data

Запись в регистрационный файл производится всякий раз при изменении переменной
на величину, превышающую порог для архивирования (Log Deadband), и по умолчанию
один раз в час, если значение переменной за это время не изменилось. Поле Log
Deadband находится в диалоге детального описания целой или вещественной пере­
менной (рис. 4.2).

Рис. 4.2. Диалог детального описания вещественной переменной

Чтобы значения переменных, для которых опция Log Data разрешена, записывались в
регистрационные файлы, необходимо общее разрешение глобальной функции реги­
страции.
Его задают в диалоге Historical Logging Properties (Параметры архивирования, рис. 4.3),
который вызывается на экран командой Special/Configure/Historical Logging. В этот
диалог можно также войти из окна Application Explorer.

Рис. 4.3. Диалог Historical Logging Properties

ГЛАВА 4. Тренды в SCADA-системах

87

Включение опции Enable Historical Logging дает общее разрешение на регистрацию
значений переменных. Срок хранения регистрационных файлов на диске (исключая
текущий день) определяется в поле Keep Log Files for в днях. Если в это поле введено
значение 0, файлы будут храниться бесконечно долго.

Регистрационные файлы могут быть размещены в каталоге приложения (опция по
умолчанию Store Log Files in Application Directory). В противном случае следует отметить
опцию Store Log Files in Specific Directory (хранить файлы в ином каталоге) и ввести
полный путь до каталога, в котором будут храниться регистрационные файлы (при
работе с распределенными архивами - полный сетевой путь).

Версия InTouch 7.0 (7.1) создает регистрационные файлы с расширением .LGH и .IDX. По
умолчанию имена этих файлов имеют следующий формат:

YYMMDD00.LGH и WMMDD00:IDX,
где:
YX ММ, DD - год, месяц и день создания файла;
00 - всегда нули.
Кроме того, в этом же диалоге определяются параметры печати графиков.

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

Рис. 4.4. Объект «Тренд реального времени»

88

SCADA-системы: взгляд изнутри

Чтобы создать тренд реального времени, необходимо:



выбрать инструмент «тренд реального времени» в панели инструментов
WindowMaker;



щелкнуть в окне, затем переместить мышь по диагонали и сформировать
прямоугольник необходимого размера;



отпустить кнопку мыши, что вызовет появление тренда реального времени в окне
(рис. 4.4).

При создании тренда реального времени настройки его конфигурации устанавливаются
по умолчанию (настройки предыдущего тренда).
Для конфигурирования тренда реального времени следует либо дважды щелкнуть на
созданном объекте, либо, предварительно выбрав объект, запустить команду Special/
Animation Links. На экране появится диалог (рис. 4.5) Real Time Trend Configuration
(Конфигурирование тренда реального времени).

Рис. 4.5. Диалог Real Time Trend Configuration

Среди настроек этого диалога можно отметить диапазон времени, охватываемый
трендом (Time Span), частоту вывода значения переменной (Interval), разрешение сетки
по большим и малым делениям горизонтальной и вертикальной осей (Time Division,
Value Division), цвета фона и рамки графика (Color).
Конфигурирование перьев тренда включает выбор имени переменной или выражения,
цвета и толщины линии для каждого пера (поле Expression).

Для повышения производительности системы следует отметить опцию Only update when
in memory (обновлять, когда в памяти). В этом случае обновление данных тренда будет

ГЛАВА 4. Тренды в SCADA-системах

89

производиться только в моменты, когда окно с трендом отображается на дисплее
(находится в RAM).

Есть и другие способы повышения производительности при работе с трендами реаль­
ного времени: уменьшение толщины линии графика, уменьшение частоты вывода
значений переменной. Например, если установлен диапазон времени (Time Span) в 30
минут, а частота вывода - 2 секунды, то число измерений, которые нужно провести за
каждые 30 минут, будет равно 900 (30*60/2=900). При частоте вывода в 5 секунд число
измерений существенно уменьшается: 30*60/5=360.

Исторические (архивные) тренды не являются динамическими. Они обеспечивают «сни­
мок» состояния данных за прошедшее время, то есть по архивным данным. В отличие от
трендов реального времени исторические тренды обновляются только по команде - при
запуске скрипта, изменении значения выражения или нажатии оператором соответ­
ствующей кнопки.
При конфигурировании архивного тренда можно создать «визиры» (ползунки, бегунки),
с помощью которых удобно получить значения всех отображаемых переменных на один
и тот же момент времени. Бегунки архивного тренда представляют собой позиционные
индикаторы на временной оси, положение которых определяет объем извлекаемых
данных.

Связав объект «движковый регулятор» с полем бегунка, можно осуществлять переме­
щение вдоль архивного тренда. Кроме того, имеются функции вычисления среднего,
минимального и максимального значений в определяемом бегунком положении.

Можно создать правый и левый бегунки и производить обработку данных кривой,
расположенной между бегунками. Вычисляются следующие величины: среднее,
минимальное, максимальное, отношение min/max и стандартное отклонение. В зависи­
мости от положения бегунков на оси можно реализовать и другие функции (увеличение
и уменьшение заключенной между бегунками области графика).
Благодаря системе распределенных архивов на один и тот же график можно выводить
информацию из нескольких баз данных.
Все вышесказанное о механизме создания тренда реального времени инструментом
Real Time Trend в среде разработки WindowMaker и о его последующем конфигурирова­
нии можно отнести и к архивному тренду, создаваемому инструментом Historical Trend
среды разработки.

Предлагаемый ниже способ создания и конфигурирования архивного тренда предпола­
гает использование мастер-средств библиотеки Wizard.

Нажатие кнопки выбора мастер-средств в панели инструментов вызывает появление на
экране диалога Wizard Selection (Выбор мастер-средств).
После выбора в списке категории Trends этот диалог будет иметь следующий вид (рис.
4.6).

90

SCADA-системы: взгляд изнутри

Рис. 4.6. Диалог Wizard Selection (Выбор мастер-средств)

После выбора из предложенного набора мастер-средств Hist Trend with Scooters
(архивный тренд с бегунками) и щелчка по кнопке Ок программа возвращает
пользователя в среду разработки. Курсор мыши при этом примет форму вставки.

Последующий щелчок мыши на предполагаемом месте нахождения создаваемого
объекта выводит на экран архивный тренд (рис. 4.7). Объекты этого типа ведут себя
аналогично любым другим объектам, то есть их можно перемещать, масштабировать и
т. д.

Рис. 4.7. Объект «Архивный тренд»

ГЛАВА 4. Тренды в SCADA-системах

91

Двойной щелчок на объекте приводит к появлению на экране диалога Historical Trend
Char Window (Конфигурирование архивного тренда, рис. 4.8).

Рис. 4.8. Диалог конфигурирования архивного тренда

Для конфигурирования тренда с параметрами по умолчанию следует нажать кнопку
Suggest (вариант). Нажатие кнопок Times и Values выводит на экран окна конфигуриро­
вания разрешения сетки по большим и малым делениям горизонтальной и вертикаль­
ной осей, цвета фона и рамки графика, временного диапазона и т. д. Кнопка Pens (перья)
предназначена для настройки перьев архивного тренда.
Чтобы добавить в тренд функции масштабирования и перемещения или элементы
управления перьями, следует использовать панели Zoom/Pan и Trend Pen Legend (рис.
4.6) соответственно. Для того чтобы эти компоненты работали совместно, они должны
иметь одинаковые имена (Hist Trend).

4.1.3. Изменение параметров архивных трендов в режиме
исполнения
При управлении в режиме реального времени оператор анализирует архивную
информацию. Объем информации, ее временные диапазоны, объем статистических
данных, необходимые для принятия решения по управлению технологическим
процессом, заранее не известны. Поэтому оператор должен иметь возможность менять
настройки архивных трендов, не выходя из режима Runtime. В InTouch такая возмож­
ность существует.
Для этого следует включить опцию Allow runtime changes (разрешить изменения во
время исполнения) в диалоге конфигурирования архивного тренда (в книге не показан).

Теперь в режиме Windowviewer щелчок на архивном тренде будет вызывать на экран
диалог изменения параметров архивного тренда (Historical Trend Setup, рис. 4.9). В этом
диалоге можно определить дату и время начала архивного тренда (поле Chart Start), его
временной диапазон (Chart Length), присвоить перьям цвет и имена переменных,
выбирая их из словаря.

92

SCADA-системы: взгляд изнутри

Рис. 4.9. Диалог изменения параметров архивного тренда

Архивный тренд может выводиться в одном из трех возможных режимов:



Min/Max - график изменения значений переменной в виде вертикальных линий в
процентах от всего диапазона, позволяющий оценить скорость изменения
переменной;



Average/Scatter - график среднего значения переменной;



Average/Bar Chart - график среднего значения переменной в виде гистограммы.

Выбор режима производится в поле Display Mode.

4.1.4. Система распределенных архивов
В InTouch имеется система распределенных архивов, обеспечивающая поиск архивных
данных в любом lnTouch-приложении. Данная система расширяет возможности
стандартных архивов InTouch, позволяя одновременно получать информацию из
нескольких удаленных баз данных, которые в этом случае называются провайдерами
архивов.

Одновременно можно обращаться к восьми провайдерам (по одному на каждое перо).
Каждый узел, выполняющий функцию регистрации, может писать только в один архив.
Система, приведенная на рис. 4.10, имеет два провайдера архивов. Левый провайдер
регистрирует информацию только из узла, расположенного слева внизу. Правый про­
вайдер регистрирует информацию из узла, расположенного справа вверху. Остальные
три узла (вверху слева) лишь используют архивные данные. Читать информацию из
архивных файлов может каждый из узлов системы.

93

ГЛАВА 4. Тренды в SCADA-системах

Узел для
Узел для
выполнения выполнения

Узел для
выполнения

Узел для
выполнения

Рис. 4.10. Распределенная система архивов

Создание такой системы предполагает следующие действия:



создание списка провайдеров архивов;



создание и определение параметров объекта «архивный тренд»;



конфигурирование приложения на удаленное архивирование данных;



копирование приложения на все узлы.

4.2. Тренды в Citect
В системе Citect реализована единая распределенная система построения трендов
реального времени и графиков для анализа технологических процессов, функциони­
рующая в архитектуре клиент-сервер.
Display
Client

I/O
Server

Display
Client

Alarms
Server

Display
Client

Trends
Server

File
Server

Reports
Server

Рис. 4.11. Вариант сетевой архитектуры системы Citect

94

SCADA-системы: взгляд изнутри

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

В Citect можно строить периодические тренды - Trend Periodic (регистрация данных
через определенные интервалы времени с разрешением до нескольких миллисекунд),
тренды по событию - Trend Event (регистрация данных в момент наступления события)
и периодические тренды по событию - Trend Periodic Event.

4.2.1. Регистрация данных
Citect может хранить любое количество данных. Объем хранимой информации опреде­
ляется размерами жесткого диска компьютера. При этом применяется эффективный
метод хранения информации, максимизирующий использование дискового прост­
ранства (компрессия файлов). Объем выборки для хранения в файлах задается в
процессе конфигурирования тренда временным периодом от 10 миллисекунд до 24
часов в сутки.

Конфигурирование трендов можно производить в Citect Explorer или в Project Editor.
В этом случае в Citect Explorer должна быть открыта папка Tags, а в Project Editor - меню
Tags (см. рис. 3.13). По аналогии с алармами при конфигурировании трендов исполь­
зуется понятие Tag (Trend Tags). Tags (теги) - это внутренние переменные системы
Citect, которым присваиваются имена с целью идентификации трендовых переменных
(в предыдущем разделе - алармов) при выводе их на экран и регистрации в файлы.
Щелчок по иконке Trend Tags в окне Contents интерфейса Citect Explorer выводит на
экран диалог конфигурирования трендов (рис. 4.12).

Рис. 4.12. Диалог конфигурирования трендов

95

ГЛАВА 4. Тренды в SCADA-системах

Поле Expression предназначено для ввода выражения или имени переменной, которая
будет отображаться трендом.
Частота выборки данных (Sample Period) вводится в формате HH:MM:SS. Можно ввести
одну цифру, например 2, и это будет означать 2 секунды. Ввод десятичной цифры систе­
ма воспринимает как долю секунды. Например, 0.2 будет означать 200 миллисекунд.

Поле Туре предназначено для выбора типа тренда (периодический, по событию, перио­
дический по событию).
В нижней части диалога размещены четыре кнопки: Add (добавить связь), Replace
(заменить), Delete (удалить), Help (справка). Конфигурирование тренда завершается
нажатием кнопки Add.

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

Citect использует круговую систему записи в файлы, что предпочтительней, чем в один
большой файл. По умолчанию используются 10 файлов, регистрирующих данные в
течение одной недели, начиная с полуночи воскресенья (рис. 4.13). В самом начале
регистрации данные записываются в первый файл. С полуночи следующего воскре­
сенья запись будет производиться во второй файл. С полуночи следующего воскре­
сенья запись будет производится в третий файл и т. д. После 10 недель в первый файл
записываются новые данные, уничтожая при этом старую информацию.

Файл
.010

Файл Регистрация начинается
001 с первого файла
файл] Через неделю продолжается

Файл
.009
-----Файл

.002

80 второй файл

Через 10 недель регистрация
снова производится в первый г~“1 Еще ч
файл, стирая старые данные
Л1 втретий
.003 8 третий

Файл
.007

неделю

Файл
.004
Файл
.006

Файл
.005

Рис. 4.13. Круговая система записи данных в файлы

По умолчанию имя файла будет содержать 8 символов имени переменной тренда.

96

SCADA-системы: взгляд изнутри

Частоту записи в журнал и количество используемых журнальных файлов можно
изменять. Для настройки параметров файлов следует открыть диалог Trend Tags и
нажать Г2для отображения дополнительных опций (см. рис. 4.14).

Рис. 4.14. Диалог настройки параметров регистрации данных в файл

Не вдаваясь в подробное описание полей диалога, следует отметить лишь поле Format
для выбора формата данных при их записи в файл (данные в файл записываются в
заданном формате через запятую) и поля Time и Period для выбора временного диа­
пазона и периода записи данных в файл. Например, если в поле Period выбрать
[1:00:00], то это будет означать смену файла для записи данных каждый час. Запись 20th
April означает смену файла один раз в год, 20 апреля.

Пример расчета дискового пространства, необходимого для файлов тренда.

Каждое значение требует для хранения два байта. Можно предварительно рассчитать
объем памяти, занимаемый архивом при его записи надиск, по следующей формуле:
V=464*N+176+(T*N*2)/t,
где:
V - объем памяти (байт);
N - количество файлов;
Т - время хранения информации (с);
t - период выборки (с).

Например, если в архив записывается одно значение переменной каждые десять секунд
в течение одной недели и используется пять файлов данных (пять недель), то требуемый
объем памяти будет равен 607296.

V=464*5+176+{7*24*60*60*5*2}/10=607296

4.2.2. Отображение трендов
Для отображения трендов на экране в системе Citect предусмотрены специальные шаб­
лоны страниц:


одиночный тренд (SingleTrend) - шаблон для создания страницы с одним окном
трендов, в котором имеется до 8 перьев;

ГЛАВА 4. Тренды в SCADA-системах

97



двойной тренд (DoubleTrend) - шаблон для создания страницы с двумя окнами
трендов, в каждом из которых имеется до 8 перьев;



сравнительный тренд (CompareTrend) - шаблон для создания страницы с двумя
трендами, наложенными один на другой в целях их сравнения (до четырех пар
графиков);



масштабный тренд (ZoomTrend) - шаблон страницы с функцией
масштабирования;



выпадающий тренд (PopTrend) - шаблон для вывода тренда в любом месте экрана
(в отдельном окне).



тренд по событию (EventTrend) - шаблон страницы с одним окном для тренда по
событию во времени на восемь перьев;

Эти шаблоны практически исчерпывают все потребности разработчика при создании
трендов проекта. Если все-таки появится необходимость в новом шаблоне, Citect и в
этом случае предоставит свой инструмент. В графическом редакторе Graphics Builder на
линейке инструментов имеется иконка NEW, щелчок по которой выводит на экран меню,
одна из опций которого предназначена для создания нового шаблона (рис. 4.15).

Рис. 4.15. Меню New для создания новой страницы, шаблона, символа, джинна и суперджинна

Создание нового шаблона - интересная, творческая работа. Но читателю не менее
важно оценить то, что уже создал Citect.

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

98

SCADA-системы: взгляд изнутри



кнопка вывода статистических параметров - минимума, максимума,
статистического среднего и стандартного отклонения;



кнопка увеличения выделенного участка графика;



кнопки изменения разрешения по времени и охватываемому периоду;



кнопка, позволяющая в реальном времени менять параметры перьев;



кнопки вывода данных графика на печать и записи в файл;



кнопка копирования данных в буфер обмена Windows для их использования в других
приложениях (в табличном формате) типа Word, Excel и т. д.

В качестве примера такого шаблона предлагается одиночный тренд (SingleTrend),
приведенный на рис. 4.16.

Рис. 4.16. Шаблон одиночного тренда с окном настройки перьев

Панель сравнения графиков предоставляет оператору возможность одновременно
выводить два графика, назначив каждому перу свои временные характеристики.
Двойной щелчок мышью по полю тренда выводит на экран диалог конфигурирования
перьев (8 перьев) тренда. Вводить с клавиатуры имена переменных нет необходимости.
Достаточно открыть в поле каждого пера список переменных проекта и выбрать
переменную, которая будет отображаться этим пером на тренде.

Для переконфигурирования перьев тренда в режиме Runtime Citect предлагает
использовать специальные страницы трендов и функцию PageTrend( ), позволяющую

ГЛАВА 4. Тренды в SCADA-системах

99

подключать к этим страницам требуемые переменные (перья). С помощью этой функ­
ции можно выводить на одну страницу тренда переменные, имеющие одну и ту же
частоту выборки (одновременно не более восьми).
При создании такой страницы тренда следует все поля диалога конфигурирования
перьев оставить пустыми, а функцию PageTrend( ) связать с одной из кнопок страницы
меню. Теперь нажатие этой кнопки в режиме исполнения будет вызывать функцию
PageTrend(sPage, sTagl ... sTag8):



sPage - имя страницы тренда;



sTagl ... sTag8 - имена переменных.

Остается ввести имя страницы тренда и имена переменных для соответствующих
перьев. Например, функция PageTrend(«MyTrend», «PV1», «PV2», «PV3») обеспечит вывод
переменных PV1, PV2, PV3 на страницу тренда с именем MyTrend.
Все вышеизложенное делает механизм трендов в Citect удобным не только при
конфигурировании (разработке), но и в процессе эксплуатации (Runtime).

При запуске режима Runtime страница одиночного тренда будет выглядеть следующим
образом (рис. 4.17).

Рис. 4.17. Страница одиночного тренда в режиме Runtime

4.3. Отличия подсистем архивирования и отображения
InTouch и Citect
Среди программных продуктов рассматриваемого класса (SCADA-системы) InTouch и
Citect выделяются своими подсистемами архивирования и отображения регистрируе­
мых на жесткий диск данных технологического процесса.

100

SCADA-системы: взгляд изнутри

Подсистема архивирования
И в Citect, и в InTouch используется кольцевой буфер, принцип построения которого
предполагает автоматическое уничтожение файла с самыми старыми в настоящий
момент данными. В Citect указывается количество файлов в буфере и продолжитель­
ность регистрации в файл, в InTouch создается один архивный файл и указывается про­
должительность регистрации в него.

Данные для архивирования в InTouch задаются
приложения. Таким образом, любая переменная,
включена в список для архивирования (опция Log
дополнительную переменную (типа Trend) и с
приложения или выражение.

на этапе определения переменной
независимо от ее типа, может быть
Data). В Citect предлагается вводить
ней связывать переменную Citect-

Основным режимом регистрации в InTouch является режим по изменению значения, т.
е. регистрация переменной производится только в тот момент, когда изменение значе­
ния переменной превысило величину, указанную в Log Deadband. В Citect основной
режим регистрации - периодический (через определенные интервалы времени) либо
по событию.
Архивные файлы обеих подсистем имеют скрытый формат, что логично, но для доступа
к ним предоставляются утилиты.

Подсистема отображения
Для графического отображения архивной информации в InTouch используются два
стандартных объекта (Real Time Trend, Historical Trend) и Wizard-объект, детально
описанные в настоящей главе. Особенность данных объектов в том, что они могут встав­
ляться в окно и в них может выводиться до четырех (тренд реального времени) и восьми
переменных (архивный тренд). Входящий в базовую поставку комплект Productivity Pack
включает 16 Pen Trend, позволяющий выводить до 16 переменных или выражений. Каж­
дый из указанных объектов масштабируется и поэтому может быть размещен в части
окна или на всем окне. Средства отображения архивных данных в InTouch отличаются
простотой встраивания в приложение и связывания с переменными.
В Citect предлагается большое количество шаблонов различных типов трендов: один
тренд (до 8 перьев) на странице, два тренда на странице и т. д. Это говорит о том, что
Citect считает подобные шаблоны типичными для использования в проектах (свой опыт
компания выразила в шаблонах) и предлагает их своим пользователям. В InTouch
предлагаются стандартные объекты тренда реального времени и архивного тренда.
Исторически сложилось так, что эти объекты разделены. Деление это условное хотя бы
потому, что 16 Pen Trend из Productivity Pack функционирует в режиме и тренда
реального времени, и архивного тренда.
Шаблоны подсистемы отображения Citect едины для трендов реального времени и
архивных трендов. Они позволяют выводить на страницы трендов архивные данные для
их последующего анализа, отображая в то же самое время значения переменных в
реальном времени.

ГЛАВА 5. Встроенные языки

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

В

*

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



ориентация на системного интегратора. В этом случае в качестве языков чаще
всего используются VBasic-подобные языки.

В каждом языке допускается расширение набора функций. В языках, ориентированных
на технологов, это расширение достигается с помощью дополнительных инструмен­
тальных средств (Toolkits). Разработка дополнительных функций выполняется обычно
программистами-профессионалами.
Разработка новых функций при втором подходе выполняется обычно разработчиками
приложений (как и в традиционных языках программирования).

Полнота использования возможностей встроенных языков (особенно при втором
подходе) требует соответствующего уровня квалификации разработчика, если, конечно,
в этом есть необходимость. Требования задачи могут быть не столь высокими, чтобы
применять всю «мощь» встроенного языка.
Во всех языках функции разделяются на группы, часть из которых присутствует
практически во всех языках: математические функции, функции работы со строками,
обмен по SQL, DDE-обмен и т. д.
В разрабатываемом приложении создаются программные фрагменты, состоящие из
операторов и функций языка, которые выполняют некоторую последовательность дей­
ствий. Эти программные фрагменты связываются с разнообразными событиями в
приложении, такими, как нажатие кнопки, открытие окна, выполнение логического
условия (а+Ь>с). Каждое из событий ассоциируется с графическим объектом, окном,
таймером, открытием/закрытием приложения. Когда приложение содержит сотни окон,
тысячи различных графических объектов (а с каждым из них связано несколько собы-

102

SCADA-системы: взгляд изнутри

тий), в приложении может «работать» огромное количество отдельных программных
фрагментов. Велика вероятность их «одновременной» активизации.

Каждая из функций во встроенном языке выполняется в синхронном или асинхронном
режиме. В синхронном режиме выполнение следующей функции не начинается до тех
пор, пока не завершилось исполнение предыдущей. При запуске асинхронной функции
управление переходит следующей, не дожидаясь завершения исполнения предыдущей
функции.
В связи с этим возникают несколько вопросов: с каким приоритетом исполняется каж­
дый из фрагментов? допускается ли рекурсия при обработке событий и если да, то каков
уровень вложенности? В SCADA-системах уровень вложенности пока не стандартизо­
ван, но оговаривается особо в рамках каждой из них.

5.1. Скрипты в InTouch
Скрипты в InTouch - это программные фрагменты, активизируемые по событиям (по
нажатию клавиши, кнопки, открытию окна, изменению значения переменной и т. д.).

5.1.1. Типы скриптов
В InTouch различают несколько типов скриптов:



Application Scripts (скрипты уровня приложения) - относятся ко всему
приложению и используются для запуска других приложений, имитации
технологических процессов, вычисления значений переменных и т.д.;



Window Scripts (скрипты уровня окна) - связываются с конкретным окном;



Key Scripts (клавишные скрипты) - привязываются к какой-либо клавише или
комбинации клавиш. Это может быть полезным при создании каких-либо
глобальных для всего приложения функций (возврат в главное окно, окончание
сеанса работы с приложением и т. д.);



Touch Pushbutton Action Scripts (скрипты, запускаемые кнопками) - очень похожи
на клавишные скрипты и связываются с объектами, которые будут использоваться в
качестве исполнительных кнопок. Эти скрипты запускаются при каждом нажатии на
объект-кнопку;



Condition Scripts (скрипты по изменению логического выражения) - связываются с
логической переменной или выражением, которое будет принимать значения либо
«истина», либо «ложь». Логические скрипты могут содержать и аналоговые
переменные;



Data Change Scripts (скрипты по изменению данных) - связываются либо с
переменной, либо с полем переменной. Эти скрипты исполняются только один раз,
когда значение переменной либо поля меняется на величину, превышающую
значение допуска, заданного в словаре переменных;

ГЛАВА 5. Встроенные языки программирования

103



ActiveX Event (скрипты событий ActiveX) - предназначены для поддержки
механизма реакции на события в ActiveX-объектах. С каждым событием может быть
связан один скрипт типа ActiveX Event, запускающийся в Windowviewer во время
исполнения приложения;



Quick Function -скрипты, которые могут вызываться из других скриптов и
использоваться в выражениях при определении динамических свойств объектов.

Диалоги редактора, открываемые при создании скриптов различных типов, имеют
небольшие отличия. Вызов диалога редактора скриптов в окне l/1/indowMaker осуществ­
ляется командой Special/Scripts с последующим выбором типа создаваемого или
редактируемого скрипта. Для этого можно также воспользоваться окном Application
Explorer, выбрав папку Scripts. На рис. 5.1 приведен диалог Application Scripts (Скрипты
уровня приложения).
■... —.... ""■■■—™~

[Application Script

Рис. 5.1. Редактор скриптов Application Scripts (Скрипты уровня приложения)

Редактор скриптов InTouch поддерживает два типа скриптов: простые и сложные.
Простые скрипты содержат операторы присваивания, сравнения, простые
математические функции и т. д. Сложные скрипты позволяют выполнять различные
логические операции типа IF - THEN - ELSE, а также могут включать циклы типа FOR NEXT.

Справа, в поле Functions, размещены клавиши вызова списков различных групп встро­
енных функций. Доступ к спискам встроенных функций возможен также командой
Insert/Functions с последующим выбором группы функций (см. рис. 5.1).

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

SCADA-системы: взгляд изнутри

104

Все встроенные функции разбиты на четыре группы:



String... - для обработки различных символьных строк и переменных;



Math... - математические функции;



System... - системные функции;



Mise... - функции для работы с алармами распределенных систем, трендами,
печатью и др.

Вызов списка функций группы осуществляется нажатием соответствующей клавиши.
Например, щелчок по клавише String... редактора скриптов вызывает появление диа­
лога Choose function (Выбор функции) со списком строковых функций (рис. 5.2).

Рис. 5.2. Список строковых функций

Описание некоторых функций этого спискаприведено в табл. 5.1.
Функция

Описание

StringFromlntgO

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

StringFromRealO

StringLen()
StringTointgO
StringUpper()
Text()

Таблица 5.1

Каждая строковая функция имеет один или несколько аргументов (до 6). Например,
синтаксис функции StringFromReal выглядит следующим образом:
StringFromReal(Number,Precision, Туре);

Number - конвертируемая вещественная величина;
Precision - количество десятичных знаков;

105

ГЛАВА 5. Встроенные языки программирования

Туре - тип формата («f», «е», «Е»).
Например:

функция StringFromReal(263.365, 2, «f») возвращает «263.36»;
функция StringFromReal(263.365, 2, «е») возвращает «2.63е2»;
функция StringFromReal(263.55, 3, «Е») возвращает «2.636Е2».

функция Text имеет два аргумента: Text(Analog_Tag, «Format_Text»);

Analog_Tag - вещественное или целое число;
Format_Text - формат преобразования.

Если указанный формат функции Text - «#0.00», то:
при Analog_Tag=66 функция возвращает 66.00;
при Analog_Tag=22.269 функция возвращает 22.27;
при Analog_Tag=9.999 функция возвращает 10.00.
Щелчок по клавише Math... вызывает появление диалога Choose function (Выбор
функции) со списком математических функций (рис. 5.3).

Рис. 5.3. Список математических функций

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

Системные функции делятся на две категории: файловые (File) и для работы с Windowsприложениями (Info). Список системных функций приведен на рис. 5.4.
F