Реферат: SCADA системы

МинистерствоОбщего и ПрофессиональногоОбразования РоссийскойФедерации


ИвановскийГосударственный ЭнергетическийУниверситет


КафедраЭлектроникии Микропроцессорныхсистем


/>


покурсу: «Системыконтроля ивизуализации»на тему:

«SCADA-системы»


Выполнилстудент гр.1-34M

ШмаргунА.Н.


Проверил:

АнисимовА. А.


Иваново2003

Содержание:


Введение

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

АСУ ТП и диспетчерскоеуправление

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

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

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

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

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

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

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

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

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

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

Врезультатеанализа большинствааварий и происшествийна всех видахтранспорта, в промышленностии энергетикебыли полученыинтересныеданные. В 60 — хгодах ошибкачеловека былапервоначальнойпричиной аварийлишь в 20% случаев, тогда как кконцу 80-х доля«человеческогофактора» сталаприближатьсяк 80 %.

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

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

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

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

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

Внастоящее времяSCADA являетсяосновным инаиболееперспективнымметодом автоматизированногоуправлениясложнымидинамическимисистемами(процессами).

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

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

Большоезначение привнедрениисовременныхсистем диспетчерскогоуправленияимеет решениеследующихзадач:

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

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

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

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

Компонентысистем контроляи управленияи их назначение

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

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


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

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

сбор и обработка информации о параметрах технологического процесса;

управление электроприводами и другими исполнительными механизмами;

решение задач автоматического логического управления и др.

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

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

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

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

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

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

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

сбор данных с локальных контроллеров;

обработка данных, включая масштабирование;

поддержание единого времени в системе;

синхронизация работы подсистем;

организация архивов по выбранным параметрам;

обмен информацией между локальными контроллерами и верхним уровнем;

работа в автономном режиме при нарушениях связи с верхним уровнем;

резервирование каналов передачи данных и др.

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

Спектр функциональныхвозможностейопределен самойролью SCADA в системахуправленияи реализованпрактическиво всех пакетах:

автоматизированная разработка, дающая возможность создания ПО системы автоматизации без реального программирования;

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

сбор первичной информации от устройств нижнего уровня;

обработка первичной информации;

регистрация алармов и исторических данных;

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

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

возможность работы прикладной системы с наборами параметров, рассматриваемых как «единое целое» («recipe» или «установки»).

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

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

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

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

РазработкаприкладногопрограммногообеспеченияСКУ: выбор путии инструментария

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

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

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

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

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

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

InTouch (Wonderware) — США;

Citect (CI Technology) — Австралия;

FIX (Intellution ) — США;

Genesis (Iconics Co) — США;

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

RealFlex (BJ Software Systems) — США;

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

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

Cimplicity (GE Fanuc) — США;

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

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

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

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

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

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

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

Программно-аппаратныеплатформы дляSCADA-систем.

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

Операционная система

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

DOS/MS Windows IBM PC OS/2 IBM PC SCO UNIX IBM PC VMS VAX AIX RS6000 HP-UX HP 9000 MS Windows/NT Системы с реализованным Windows/NT, в основном на РС-платформе.


Вто же время втаких SCADA-системах, как RealFlex и Sitex основупрограммнойплатформыпринципиальносоставляетединственнаяоперационнаясистема реальноговремени QNX.

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

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

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

Встроенныекомандныеязыки.

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

Поддерживаемыебазы данных.

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

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

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

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

Крайневажен такжевопрос о поддержкев рассматриваемыхсистемах стандартныхфункций GUI (Graphic UsersInterface). ПосколькубольшинстворассматриваемыхSCADA-систем работаютпод управлениемWindows, это и определяеттип используемогоGUI.

Открытостьсистем

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

Разработкасобственныхпрограммныхмодулей.

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

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

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

Разработкитретьих фирм.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Графическийинтерфейс

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

Но, тем не менее, каждая SCADA — системапо-своему уникальнаи, несмотря наподдержаниестандартныхфункций, обладаетприсущимитолько ейособенностями.При рассмотренииграфическихвозможностейSCADA — систем InTouch иCitect предполагаетсяобратить вниманиене только навозможностиинструментариевпо созданиюграфическихобъектов, нои на другиепредоставляемыепользователюуслуги, облегчающиеи ускоряющиепроцесс разработкиприложений(проектов).

Графическиесредства InTouch

Компонентысреды разработкиInTouch:

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

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

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

Окна в InTouch

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

/>
Рис. 2. Диалог Window Properties (Свойства окна).


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

--PAGE_BREAK--

В поле Comment можноввести комментарий, связанный сэтим окном(необязательно).Эта информациянужна толькодля документированияи не используетсяприложением.
InTouch предлагаеттри типа окон(Window Туре):

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

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

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

Выбор типасоздаваемогоокна производитсявключениемсоответствующейкнопки в полеWindow Туре.
В полеFrame Style (стиль обрамления)выбираетсянеобходимыйстиль обрамленияокна:

Single — окно с рамкой, допускается заголовок;

Double — окно с рамкой без заголовка;

None — окно без рамки и заголовка.

Чтобы у окнабыла полосас заголовком, где выводитсяимя окна, включаютопцию Title Bar. Этаполоса такжеслужит дляперемещенияокна при захватеее мышью. Привыборе этойопции отключатсяопции Double и None длястиля обрамления.
Для возможностиизмененияразмеров окна, когда оно откроетсяв WindowMaker, следуетвыбрать опциюSize Controls (управлениеразмером).
Вгруппе полейDimentions определяютсятекущие размерыи положениеокна на рабочемполе:

X Location — расстояние в пикселях между левым краем рабочего поля WindowMaker и левым краем описываемого окна;

Y Location — расстояние в пикселях между верхним краем рабочего поля WindowMaker и верхним краем описываемого окна;

Window Width — ширина окна в пикселях;

Window Height — высота окна в пикселях.

Поумолчанию присоздании новогоокна эти параметрыпримут значенияпредыдущего(последнего)созданногоокна.

КнопкаScripts (скрипты) даетвозможностьвойти в диалогWindow Script для созданияоконного сценария.

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

Одиниз таких приемов- дублированиеокон. Созданиекопий оконвыполняетсякомандой File/ SaveWindow As. Для быстрогодоступа к этойкоманде можновоспользоватьсяменю правойкнопки мыши(см. ниже).

Второйприем, которыйтакже позволяетэкономить времяразработкиприложения- импорт окон.Можно повторноиспользоватьвсе ранее созданныеокна, объектыи скрипты. Чтобыимпортироватьокна из другогоInTouch — приложения, необходимовоспользоватьсякомандой File/Import.

ИнтерфейсWindowMaker с открытымокном представленна рис. 3.

/>
Рис. 3. Интерфейс WindowMaker.


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

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

Объекты и ихсвойства

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

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

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

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

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

Текст на кнопкередактируетсяс помощью командыSpecial/Substitute Strings… При этомтекстовое полеможет содержатьтолько однустроку.
Одини тот же объектможет иметьнабор различныхдинамическихсвойств. Комбинацииэтих свойствпредоставляютвозможностьсоздавать наэкране в режимеисполнения(Runtime) практическилюбые динамическиеэффекты. Дляустановкидинамическихсвойств надопрежде всеговызвать наэкран диалогих выбора (рис.4).Это достигаетсякомандойSpecial/Animation Link или двойнымщелчком левойкнопки мышина объекте.

/>
Рис. 4. Диалог выбора динамических свойств объекта.


Все динамическиесвязи можноразделить надве группы:Touch Links (левая колонка)и Display Links (три колонкисправа). С помощьюсвойств Touch Linksвыполняетсякакой — либоввод в систему.Свойства DisplayLinks осуществляютвывод информациина экран дисплея.
Нажатие налюбую клавишудиалога (рис.4) вызывает появлениенового диалогадля определениясоответствующегосвойства объекта.Количестводиалоговсоответствуетколичествудинамическихсвойств (кнопок)диалога выбора.Все диалогиразличны, нобольшинствоиз них имеетобщие характеристики:

окно типа объекта;

одинаковую палитру цветов;

быстрый вызов словаря переменных;

быстрый доступ к полям переменных;

поддержку правой кнопки мыши в полях Tagname (имя переменной) и Exdivssion (выражение).

На рис.5 приведендиалог дляопределениясвойств объекта(кнопки), управляющегозначениемдискретнойпеременной.

/>
Рис.5. Диалог определения свойств кнопки.


Завершениеработы с диалогомпроизводитсянажатием кнопкиOk. Если переменнаяполя Tagname быларанее определенав словаре переменныхданного приложения, пользовательвозвращаетсяв диалог выборадинамическихсвойств объекта(рис. 4). Можно либопродолжитьопределениедругих динамическихсвойств дляданного объекта, либо, нажав Ok, вернуться наполе разработкиокна приложения.
Сложные объекты.

Символ — это некоторая комбинация простых объектов, которые обрабатываются как один объект. Любое изменение статических или динамических свойств символа влияет на все составляющие символа. Например, если создать символ «насос» из двух кругов и двух прямоугольников и присвоить ему динамическое свойство Fill Color (цвет заполнения), то это свойство будет распространяться на все четыре простых объекта.
Различные объекты символа могут иметь разные значения одного и того же свойства, если они были присвоены этим объектам до объединения в символ. Bitmap — объекты, кнопки, компоненты не могут быть включены в состав символа.

Компонент — это совокупность двух или более объектов, символов или других компонентов, образующих единый элемент. Они создаются путем выбора двух и более объектов, символов или компонентов и последующего запуска команды Arrange/Make Cell. Компоненты реализуют пространственную взаимосвязь между составляющими их графическими элементами. Каждая составляющая компонента может иметь свои собственные динамические свойства. Компоненты используются для таких виртуальных устройств, как панель управления контроллером, движковый регулятор и т. д.
Компонент не может менять свой размер, ему нельзя присваивать динамические свойства (внутри компонента есть объекты и символы со своими динамическими свойствами). Нельзя изменять и статические свойства (внешний вид). Для изменения статических и динамических свойств компонента его надо разобрать на составные части командой Arrange/Break Cell. Однако компоненты можно дублировать, копировать, вставлять, выравнивать, перемещать и т. д.

Мастер-объект- это предварительносозданныйкомпонент сопределеннымистатическимии динамическимисвойствами, находящийсяв библиотекемастер-объектов(Wizards) и доступныйдля многократногоприменения.Но, в отличиеот компонента, динамическиесвойства которогонастраиваютсядля каждойсоставляющейотдельно дообъединенияв компонент, динамическиесвойствамастер-объектабыстро настраиваютсяс помощьюспециализированногодиалога. Другимисловами, фирмаWonderware провела большуюработу и создалаогромное количествомастер-объектов(несколькотысяч), определивдля каждогоиз них механизмбыстрой настройкистатическихи динамическихсвойств. Всеэти мастер-объектыразделены набольшое количествогрупп и размещеныв соответствующейбиблиотеке.Доступ к нейосуществляетсянажатием иконкиWizard в интерфейсеWindowMaker, что вызываетпоявление наэкране диалогаWizard Selection (Выбор мастер-объекта.В левой частидиалога — списокгрупп мастер-объектов, включающийтакие категории, как Buttons (кнопки),Sliders (ползунковыерегуляторы),Switches (переключатели)и т. д.
В правойчасти диалогаприведены всемастер-объектывыбранной вданный моментгруппы. Двойнойщелчок по требуемомумастер-объектувозвращаетпользователяв окно разработкиприложения.Курсор принимаетформу уголкас символом.Наконец, щелчокмыши на свободномместе окнаприводит кпоявлениюмастер-объектав окне приложения.Для его конфигурирования(определениядинамическихсвойств) следуетдважды щелкнутьна мастер-объекте.

/>

Например, двойной щелчок по кнопке Momentary Button (кнопка запуска), предварительно вставленной в окно приложения, выводит на экран диалог конфигурирования этой кнопки (рис.6).


Достаточноввести имядискретнойпеременной, желаемый текстна кнопке, отметитьнесколько опцийи нажать Ok. ИнструментBitmap инструментальнойпанели рисованияпозволяеткопироватьи встраиватьв приложениеInTouch растровыеобъекты (совокупностьточек). С помощьюнего создается«контейнер»для последующейвставки объектаиз папки обменаWindows либо файловс расширением.BMP, .JPG, .PCX, .TGA. Для WindowMaker растровоеизображениеявляется единымобъектом. Невозможнони анимироватьего отдельныечасти, ни вставлятьBitmap — объекты всимволы (можновставлять вкомпоненты).Такой объектможно развернутьна рабочем полена 90, 180, 270, 360 градусов, а также определитьдля него цвет«прозрачности», чтобы черезнего можно быловидеть и другиеобъекты.
·Тренды. InTouch предлагаетпользователюдва сложныхобъекта типатренд: трендреальноговремени иисторический(архивный) тренд.Эти объектыпозволяютотображатьв виде графиковзначения данныхреальноговремени (4 пера)и архивныхданных (8 перьев).Оба типа трендовсоздаются прииспользованииспециальныхинструментовпанели рисованияокна WindowMaker с последующимконфигурированием.Подробнаяинформацияпо созданиюи конфигурированиютрендов будетприведена всоответствующейглаве.
Подводяитог описаниюграфическихсредств пакетаInTouch, следует отметить, что фирма Wonderwareв этом планепредлагаетпотребителюхороший наборвозможностей:

богатый, традиционный для пользователей Windows инструментарий;

меню правой кнопки мыши для окон, графических объектов и полей диалогов;

широкий спектр динамических свойств объектов;

огромную библиотеку мастеров-объектов (Wizards).

Организациявзаимодействияс контроллерами

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

ставший стандартом de facto динамический обмен данными (DDE);

собственные протоколы фирм-производителей SCADA — систем, реально обеспечивающие самый скоростной обмен данными;

новый OPC — протокол, который, с одной стороны, является стандартным и поддерживается большинством SCADA — систем, а с другой стороны, лишен недостатков протоколов DDE.

Изначальнопротокол DDEприменялсяв первых человеко- машинныхинтерфейсахв качествемеханизмаразделенияданных междуприкладнымисистемами иустройствамитипа ПЛК (программируемыелогическиеконтроллеры).Для преодолениянедостатковDDE, прежде всегодля повышениянадежностии скоростиобмена, разработчикипредложилисвои собственныерешения (протоколы), такие как AdvancedDDEили FastDDE — протоколы, связанные спакетированиеминформациипри обмене сПЛК и сетевымиконтроллерами.Но такие частныерешения приводятк ряду проблем:

для каждой SCADA — системы пишется свой драйвер для поставляемого на рынок оборудования;

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

Основная цельOPC стандарта(OLE for Process Control) заключаетсяв определениимеханизмадоступа к даннымс любого устройстваиз приложений.OPC позволяетпроизводителямоборудованияпоставлятьпрограммныекомпоненты, которые стандартнымспособом обеспечатклиентов даннымис ПЛК. При широкомраспространенииOPC — стандартапоявятся следующиепреимущества:

OPC позволят определять на уровне объектов различные системы управления и контроля, работающие в распределенной гетерогенной среде;

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

у потребителя появится больший выбор при разработке приложений.

СOPC — решениямиинтеграцияв гетерогенные(неоднородные)системы становитсядостаточнопростой. Применительнок SCADA-системамOPC серверы, расположенныена всех компьютерахсистемы управленияпроизводственногопредприятия, стандартнымспособом могутпоставлятьданные в программувизуализации, базы данныхи т. п., уничтожая, в некоторомсмысле, самопонятие неоднороднойсистемы.

Аппаратнаяреализациясвязи с устройствамиввода/вывода

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

COM — порты.
В этом случае контроллер или объединенные сетью контроллеры подключаются по протоколам RS-232, RS-422, RS-485.

Сетевые платы.
Использование такой аппаратной поддержки возможно, если соответствующие контроллеры снабжены интерфейсным выходом на Ethernet.

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

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

Серверы ввода/выводав InTouch

ПрифункционированииInTouch — приложенияв реальномвремени информацияобо всех егопеременныххранится в базеданных. К такойинформацииотносятся имяпеременной, ее тип, минимальноеи максимальноезначения, уставки, способ отображения(дисплей, журнал)и т. д., а такжеинформацияо коммуникационныхканалах, покоторым происходитобмен даннымимежду технологическимпроцессом иприложением.
InTouch- приложениеподдерживаетвзаимодействиес DDE и OPC-серверами.Именно на организациивзаимодействияс ними и остановимсяниже.

Поддерживаемыекоммуникационныепротоколы

DDE (Dynamic Data Exchange — динамическийобмен данными)представляетсобой коммуникационныйпротокол, разработанныйкомпаниейMicrosoft для обменаданными междуразличнымиWindows — приложениями.Этот протоколреализуетвзаимосвязитипа клиент- сервер междудвумя одновременноисполняющимисяпрограммами.
В InTouch поддерживаетсятакже пакетированныйDDE — обмен — FastDDE. Применениепоследнегозаметно повышаетэффективностьи производительностьобмена даннымиблагодаряуменьшениюобщего количестваDDE — пакетов, которымиклиент и серверобмениваютсямежду собой.Но принципиальныенедостатки, связанные снадежностьюи зависимостьюот количествазагруженныхв текущий моментприложенийWindows, остались.Необходимостьв появленииболее совершенноготехнологичногопротоколасозрела! Носледует отметить, что отказ отDDE-механизмапроисходитне мгновеннохотя бы потому, что в мире наработанобольшое количествоDDE — серверов.
Сцелью расширениявозможностейстандартногопротокола DDEна локальнуюсеть компанияWonderware предложилаNetDDE. Он позволяетприложениям, запущеннымна объединенныхв локальнуюсеть компьютерах, вести DDE — обмен.Позднее NetDDEлицензируетсякомпаниейMicrosoft и поставляетсяв дистрибутивномпакете Windows. Следуетотметить и то, что NetDDE допускаетобмен информациеймежду приложениямина IBM PC и приложениямина машинахдругого типас операционнойсистемой VMS илиUNIX. КомпанияWonderware предлагаети инструментальныесредства дляразработкиDDE-серверов, втом числе и дляне-Windows-платформ.
ПротоколSuiteLink был специальноразработанфирмой Wonderware длятого, чтобыудовлетворитьтаким требованиям, как целостностьданных, высокаяпроизводительностьи простотадиагностики.В основе протоколаSuiteLink лежит протоколTCP/IP. SuiteLink не являетсязаменой протоколамDDE, FastDDE и NetDDE. Новыйпротокол разработандля поддержаниябыстродействующихпромышленныхсистем и обладаетследующимихарактеристиками:

Передача данных осуществляется в формате VTQ (Value, Time, Quality — значение, время, качество), в соответствии с которым каждая пересылаемая клиенту единица информации сопровождается метками времени и качества данных.

Благодаря системному монитору операционной системы Windows NT (Performance Monitor) стал возможным расширенный анализ производительности по передаче данных, степени загрузки сервера, степени потребления ресурсов компьютера и сети, что особенно важно для проектирования и сопровождения больших распределенных промышленных сетей.

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

Для реализациифункций OPC — клиентаWonderware предлагаетOPCLink — сервер, преобразующийOPC в SuitLink — протокол.
В материалах, предложенныхкомпаниейWonderware, отмечается, что большинствореализованныхOPC-серверов создаютдля каждогоподключаемогок серверу клиентановый каналсвязи или нить.Для текущейобработкикаждого клиентасервер долженпереключатьсямежду нитями.Каждая нитьиспользуетDCOM (Distributed Component Object Model) дляорганизацииобмена данными, и DCOM также управляетпереключениемнитей. В итогевозможна достаточнонизкая производительностьв сети.
Тесты, проведенныефирмой Wonderware, показали, что при обслуживанииOPC-сервером 7клиентов (припередаче 4 целыхчисел в режимеобновления)сервер на 95% занималресурсы CPU. Этоозначает, чторесурсы компьютерапрактическицеликом былизаняты переключениемнитей и DCOM- процедурами.
Поэтому натекущем этапепараметрыпроизводительностипротоколаSuiteLink превосходятпараметры DCOM.Поставляемыйв комплектеFactorySuite (Wonderware) OPCLink Server обеспечиваетприем информациис OPC- сервера ипередачу еепо протоколуSuiteLink в SCADA — системуInTouch и наоборот.Именно OPCLink Serverрекомендуетсяустанавливатьна одном узлес OPC- сервером, чтобы для сетевыхпередач использовалсяSuiteLink- протокол, а не DCOM (рис.7).

/>
Рис. 7. Использование SuiteLink — протокола в SCADA — системах.


Всеописанные нижеособенностиадресациираспространяютсяи на OPC-серверыс одним лишьограничением.При разработкеInTouch — приложениясоздается каналсвязи с OPCLink — сервером(как с любымдругим SuiteLink — сервером).Но рекомендуетсяиспользоватьвстроенныйв InTouch OPC Browser для упрощениявыбора параметровконфигурацииподключаемогоOPC — сервера.

Особенностиадресации вInTouch

В InTouch вышеуказанныемеханизмыположены воснову обменаданными междуприложениямиInTouch и DDE и SuiteLink — серверами, которые, в своюочередь, связаныкоммуникационнымиканалами сустройстваминижнего уровня(контроллерами).

    продолжение
--PAGE_BREAK--

Так как InTouchпредназначендля разработкии поддержанияинтерфейсасбора данныхи диспетчерскогоуправления(рис.8), средаисполненияWindowViewer при взаимодействиис контроллернымуровнем выступает, как правило, в роли приложения- клиента (узелView), запрашивающегоданные у приложения- сервера (I/O Server).

/>
Рис.8. Обмен данными между InTouch — приложением и технологическим процессом.


Через серверввода/выводаInTouch — приложениеимеет возможностьчитать данныеиз контроллераили писатьданные в него.Процесс обменаинформациейInTouch — приложенияс контроллеромможно представитьследующейсхемой
Здесьи встает одиниз главныхвопросов организацииобмена с серверамиввода/вывода: каким образомобеспечитьклиенту доступк запрашиваемойим информации?
Для организацииобмена с приложениемопределяютсяканалы обменаили каналыдоступа, характеризующиесяследующимипараметрами:

имя узла (Node Name);

имя приложения ( Application Name );

имя группы данных или топик (Topic Name );

имя элемента ( Item Name ).

Имя приложения- это имя программыWindows, которая выполняетфункции DDE, FastDDE,SuiteLink — серверов.Имя группыданных (топика)определяетсяпри конфигурированиисервера наприем или передачугруппы данных, которыми сервербудет обмениватьсяс контроллеромили объединеннымив сеть контроллерами.Определенныепараметрыгруппы (топика)зависят отконкретногосервера (поэтомурекомендуетсяизучать документациюи справочнуюсистему выбранногосервера). Например, при использованииModbus — сервера, позволяющегообеспечитьвзаимодействиес контроллеромModicon Micro 984 PLC, в качествеимени приложения(Application Name) должен бытьModbus, в качествеимени группыили топика(Topic Name) вводитсялюбое имя (текстоваястрока), но срединеобходимыхпараметровгруппы из спискавыбираетсяимя контроллераModicon 984 PLC. А в качествеимени элемента(Item Name) следуетвыбирать названиеконкретногорегистра контроллера(например, 40001 дляконтроллераModicon Micro 984). Чтобы узнатьправильныйсинтаксис имениэлемента, необходимыйдля конкретныхPLC, нужно обратитьсяк руководствупо соответствующемусерверу.
Определенывсе компонентыкоммуникационногоканала. С учетомвведенныхпонятий схемаобмена информациейдля рассмотренноговыше примерабудет выглядетьследующимобразом (рис.9).

/>
Рис. 9. Обмен информацией на примере Modbus — сервера.


ФирмаWonderware предлагаетDDE и SuiteLink — серверы, которые поддерживаютболее 800 типовконтроллеровосновныхпроизводителейи различныепротоколы.

Еслинужного драйверавсе-таки нет, можно воспользоватьсяпакетом разработкидрайверовFactorySuite Toolkit.

Схемы, приведенныена рис. 9, интерпретируютстандартныйобмен информациеймежду узлом(приложением)View и контроллером(ПЛК) в режимесбора данныхи управления.В этом режиме, как уже былосказано выше, приложениеView — клиент поопределению.

Обмен даннымис другимиприложениями

Но приложенияInTouch могут взаимодействоватьне только междусобой, но и сдругими Windows — приложениями.Одним из известныхпримеров такогоприложенияявляется MicrosoftExcel. InTouch — приложениеможет считыватьи записыватькакие — либозначения влюбую клеткуоткрытой вExcel электроннойтаблицы. Аналогичнои программаExcel может читатьи записыватьинформациюв базу данныхInTouch — приложения.Данный механизмобеспечиваетодновременноеобновлениеданных в одномприложениипри измененииих значенийв другом.
Есликлиентом(приложением, запрашивающиминформацию)по — прежнемуявляется узелView, то Excel — это приложение, поставляющееинформацию(сервер). В качествегруппы илитопика (Topic) тогдабудет выступатьимя таблицыExcel, а элементобмена информацией- ячейка в таблицеExcel (табл.2.1, вариант1).
Когда клиентомявляется приложениеExcel, а сервером- приложениеView, группой в этомслучае всегдаявляется словарьпеременныхInTouch (база данных)с именем Tagname. Элементомобмена будетэлемент базыданных — имяпеременной(табл.2.1, вариант2).

Таблица 2.1.

Приложение-клиент Приложение-сервер Группа Элемент View Excel Sheet1.XLS R1C1 Excel View Tagname R_Level


Вслучае обменаданными по сетис использованиемпакета Wonderware NetDDEнеобходимок трехуровневойструктуреадреса добавитьчетвертыйуровень — имяудаленногоузла сети (NodeName).

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

Определениеимени доступав словаре переменныхInTouch

В InTouch — приложенияхвся информацияо переменныхприложенияхранится вTagname Dictionary (Словарьпеременных).Это не что иное, как база данныхреальноговремени — одиниз центральныхкомпонентовInTouch.
При определениипеременнойв базе данныхInTouch запрашиваетопределеннуюинформациюо каждой переменной, например, имяпеременной, ее тип, имя доступаи т. д.
В пакетеInTouch используетсядва базовыхтипа переменных- Memory (внутренние)и I/O (переменныеввода/вывода).
Переменныетипа Memory могутбыть использованыдля созданияразличныхсистемныхконстант, моделированияэлементовсистемы управленияи в вычисляемыхпеременных, доступныхдругим Windows — программам.
Все переменные, которые получаютили передаютсвое значениедругой Windows — программе, должны иметьтип ввода/вывода(I/O). В эту категориюпопадают переменные, которые посредствомканала доступа(Access Name) принимаютили отправляютданные из/всерверовввода/вывода, других приложенийInTouch, других программWindows.
Определениеновой переменнойв базе данныхInTouch, как и просмотр, и модификацияатрибутов ужесуществующихпеременных, производитсяв диалоге TagnameDictionary (рис.10). Доступк этому диалогуосуществляетсякомандойSpeсial/Tagname Dictionary в окнесреды разработкиWindowMaker или двойнымщелчком поиконке Tagname Dictionary вокне Application Explorer.

/>
Рис. 10. Диалог Tagname Dictionary (Словарь переменных).


ПоляTagname и Comment предназначеныдля ввода именипеременнойи соответствующегокомментария.По умолчаниювключена опцияRead/Write (чтение/запись).Можно отметитьи опцию Read Only, еслив процессеисполненияWindowViewer должен толькочитать значениепеременной.

Влюбое времяв режиме проектированияможно открытьсписок переменныхприложениящелчком покнопке Select длявыбора соответствующейпеременной, просмотрасписка илимодификацииатрибутов.Диалог Select Tag (выборпеременной)представленна рис.11.


/>
Рис. 11. Диалог Select Tag (выбор переменной).


Длякаждой переменнойв этом диалогеприведенаследующаяинформация: имя переменной, ее тип, имя доступа, группа алармаи комментарий.

Группаалармов (Alarm group, рис.11) для переменнойопределяетсяв диалоге, вызываемомнажатием кнопкиGroup диалога TagnameDictionary. Все, что касаетсяалармов, рассматриваетсяв соответствующемразделе ниже.

Выбортипа переменнойосуществляетсяв диалоге Tag Types(тип переменной, рис. 12), вызываемомна экран нажатиемкнопки Туредиалога Tagname Dictionary.


/>
Рис. 12. Диалог Tag Types (тип переменной).


В этом диалогепредставленполный списокосновных типовпеременныхInTouch. Выбор завершаетсяотметкойсоответствующейопции и щелчкомпо Ok.
После выборатипа переменнойпрограммавозвращаетпользователяв диалог Tagname Dictionary(Словарь переменных).При этом будетоткрыт и дополнительныйдиалог подробногоописания переменной, содержаниекоторого зависитот выбранноготипа. КнопкаAccess Name (имя доступа)используетсядля определенияканала обмена(канала доступа)с сервером, скоторым будетсвязана описываемаяпеременная.Имя доступаAccess Name определяетсяименем узла, именем приложенияи именем группыили топика. Имятопика должносовпадать ссоответствующимименем, заданнымпри конфигурированииDDE, SuiteLink-сервера. Имяэлемента, каккомпонентамногоуровневогоадреса, определяетсяв поле Item (рис.13).
В распределенныхсистемах InTouch имядоступа можетбыть определенолибо как локальныйадрес, либо какглобальный.
Локальныеадреса используютсяв том случае, когда View — узлыимеют своисерверы ввода/вывода.На рис. 13 узлыисполнения(View — узлы), каждыйсо своей копиейодного и тогоже приложения, ссылаются насвои собственныеисточникиданных ввода/вывода(серверы ввода/вывода).

/>
Рис. 13. Сеть View – узлов с собственными серверами ввода/вывода.


Поэтому приопределенииканала доступак информацииввода/выводадостаточнотрехуровневогоадреса (Application — приложение,Topic — объект, Item — элемент).Имя узла (Node) вэтом случаеопускается.Щелчок по кнопкеAccess Name (рис.2.3.8) вызываетна экран одноименныйдиалог. Этотдиалог предназначендля определениянового каналадоступа (кнопкаAdd), модификациисуществующего(Modify) или удаления(Delete). Щелчок покнопке Add вызываетдиалог определениянового каналадоступа. В качествеимени (канала)доступа (Access Names)рекомендуетсявыбирать имягруппы илитопика (Topic Name). Следуетподчеркнуть, что поле Node Name (имяузла) оставленопустым. Щелчокпо кнопке Okвозвращаетпользователяв диалог Access Names(имена доступа)с определеннымименем доступа.
Глобальныеадреса источниковданных ввода/выводапозволяютнесколькимView — узлам обращатьсяк одному и томуже серверуввода/вывода.Такой подходпредоставляетвозможностьотказатьсяот несколькихсерверовввода/вывода, однако менеезащищен ототказов (рис.14).

/>
Рис.14. Архитектура с двумя View — узлами и сервером ввода/вывода.


ДваView — узла исполняютидентичныекопии одногои того же приложенияи ссылаютсяна один и тотже источникввода/вывода(I/O сервер). Поэтомупри определенииканала доступак информацииввода/выводанеобходимоиспользоватьчетырехуровневыйадрес (Node — узел,Application -приложение,Topic — объект, Item — элемент).

Привыборе именидоступа действуетто же правило, что и при локальнойадресации: рекомендуется, чтобы это имясовпадало сименем группыданных илитопика (Topic Name). Нополе Node Name (имя узла)необходимозаполнить. Вкачестве этогоимени при глобальнойадресациивыбирают имяузла, на которомустановленсервер ввода/вывода, являющийсяисточникомданных длянесколькихприложений.

Длякаждой переменнойввода/выводазадается атрибутAccess Name. С одним именемдоступа, какправило, связанобольшое количествопеременных.Распределениепеременныхпо группам(топикам) — произвольное.Но для оптимизациифункционированиясервероврекомендуетсяв одну группуотносить переменныес одинаковойчастотой обновления.В противномслучае частота, задаваемаяпри конфигурированиитопика в сервере, должна соответствоватьминимальномувременномукванту. Желательнона этапе конфигурированиясервера определитьгруппы (топики)для каждогочастотногодиапазона ив соответствиис этими группамисоздать именадоступа (Access Name) вInTouch (лучше даже, чтобы именагрупп совпадалис именами доступа).А далее каждуюописываемуюв InTouch-приложениипеременнуютипа I/O связыватьс подходящимименем доступадля обеспечениярациональногопакетированияданных.

Тренды в SCADA — системах

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

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

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

Тренды в InTouch

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

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

Архивирование(регистрация)значений переменной

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

/>
Рис.15. Диалог Historical Logging Properties.


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

Отображениетрендов

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

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

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

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

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

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

Дляконфигурированиятренда реальноговремени следуетлибо дваждыщелкнуть насозданномобъекте, либо, предварительновыбрав объект, запуститькоманду Special/AnimationLinks. На экранепоявится диалогReal Time Trend Configuration (конфигурированиетренда реальноговремени). Срединастроек этогодиалога можноотметить диапазонвремени, охватываемыйтрендом (Time Span), частоту выводазначение переменной(Interval), разрешениесетки по большими малым делениямгоризонтальнойи вертикальнойосей (Time Division, Value Division), цветафона и рамкиграфика (Color).Конфигурированиеперьев трендавключает выборимени переменнойили выражения, цвета и толщинылинии для каждогопера (полеExdivssion). Для повышенияпроизводительностисистемы следуетотметить опциюOnly update when in memory (обновлять, когда в памяти).В этом случаеобновлениеданных трендабудет производитьсятолько в моменты, когда окно стрендом отображаетсяна дисплее(находится вRAM). Есть и другиеспособы повышенияпроизводительностипри работе стрендами реальноговремени (уменьшениетолщины линииграфика, уменьшениечастоты выводызначений переменной).Например, еслиустановлендиапазон времени(Time Span) в 30 минут, ачастота вывода- 2 секунды, точисло измерений, которые нужнопровести закаждые 30 минут, будет равно900 (30 * 60/2 = 900). При частотевыводе в 5 секундчисло измеренийсущественноуменьшается:30 * 60/5 = 360. Исторические(архивные) трендыне являютсядинамическими.Они обеспечивают«снимок» состоянияданных за прошедшеевремя, то естьпо архивнымданным. В отличиеот трендовреальноговремени историческиетренды обновляютсятолько по команде- при запускескрипта, изменениизначения выраженияили нажатииоператоромсоответствующейкнопки. Приконфигурированииархивноготренда можносоздать «визиры»(ползунки, бегунки), с помощью которыхудобно получитьзначения всехотображаемыхпеременныхна один и тотже момент времени.Бегунки архивноготренда представляютсобой позиционныеиндикаторына временнойоси, положениекоторых определяетобъем извлекаемыхданных. Связавобъект «движковыйрегулятор»с полем бегунка, можно осуществлятьперемещениевдоль архивноготренда. Крометого, имеютсяфункции вычислениясреднего, минимальногои максимальногозначений вопределенномбегунком положении.Можно создатьправый и левыйбегунки и производитьобработкуданных кривой, расположенноймежду бегунками.Вычисляютсяследующиевеличины: среднее, минимальное, максимальное, отношениемин/макс истандартноеотклонение.В зависимостиот положениябегунков наоси можно реализоватьи другие функции(увеличениеи уменьшениезаключенноймежду бегункамиобласти графика).

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

Всесказанное вышео механизмесоздания трендареальноговремени инструментомReal Time Trend в средеразработкиWindowMaker и о его последующемконфигурированииможно отнестии к архивномутренду, создаваемомуинструментомHistorical Trend среды разработки.

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

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

/>
Рис.17. Объект «архивный тренд».


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

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


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

Чтобыдобавить втренд функциимасштабированияи перемещенияили элементыуправленияперьями, следуетиспользоватьпанели Zoom/Pan и Trend PenLegend (рис.16), соответственно.Для того, чтобыэти компонентыработали совместно, они должныиметь одинаковыеимена (Hist Trend).

Изменениепараметровархивных трендовв режиме исполнения

При управлениив режиме реальноговремени операторанализируетархивную информацию.Объем информации, ее временныедиапазоны, объем статистическихданных, необходимыедля принятиярешения поуправлениютехнологическимпроцессом, заранее неизвестны. Поэтомуоператор должениметь возможностьменять настройкиархивных трендов, не выходя изрежима Runtime. В InTouchтакая возможностьсуществует.
Для этого следуетвключить опциюAllow runtime changes (разрешитьизменения вовремя исполнения)в диалогеконфигурированияархивноготренда (в книгене показан).
Теперь в режимеWindowViewer щелчок наархивном трендебудет вызыватьна экран диалогизмененияпараметровархивноготренда (Historical Trend Setup).В этом диалогеможно определитьдату и времяначала архивноготренда (полеChart Start), его временнойдиапазон (ChartLength), присвоитьперьям цвети имена переменных, выбирая их изсловаря.
Архивныйтренд можетвыводитьсяв одном из трехвозможныхрежимах:

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

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

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

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

Система распределенныхархивов

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

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

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

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

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

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

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

Встроенныеязыки программирования

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

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

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

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

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

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

Вовсех языкахфункции разделяютсяна группы, частьиз которыхприсутствуетпрактическиво всех языках: математическиефункции, функцииработы со строками, обмен по SQL, DDE — обмени т. д.

Вразрабатываемомприложениисоздаютсяпрограммныефрагменты, состоящие изоператорови функций языка, которые выполняютнекоторуюпоследовательностьдействий. Этипрограммныефрагментысвязываютсяс разнообразнымисобытиями вприложении, такими какнажатие кнопки, открытие окна, выполнениелогическогоусловия (a +b > c).Каждое из событийассоциируетсяс графическимобъектом, окном, таймером, открытием/закрытиемприложения.Когда приложениесодержит сотниокон, тысячиразличныхграфическихобъектов, а скаждым из нихсвязано несколькособытий, в приложенииможет «работать»огромное количествоотдельныхпрограммныхфрагментов.Велика вероятностьих «одновременной»активизации.

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

Скрипты в InTouch

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

Типы скриптов

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

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

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

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

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

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

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

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

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

Диалогиредактора, открываемыепри созданиискриптов различныхтипов, имеютнебольшиеотличия. Вызовдиалога редактораскриптов в окнеWindowMaker осуществляетсякомандойSpecial/Scripts с последующимвыбором типасоздаваемогоили редактируемогоскрипта. Дляэтого можнотакже воспользоватьсяокном Application Explorer, выбравпапку Scripts. На рис.5.1.1 приведен диалогApplication Scripts (скриптыуровня приложения).

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

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

Встроенныефункции

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

    продолжение
--PAGE_BREAK--

Всевстроенныефункции разбитына четыре группы:
— String… — для обработкиразличныхсимвольныхстрок и переменных;
— Math… — математическиефункции;
— System… — системныефункции;
— Misc… — функции дляработы с алармамираспределенныхсистем, трендами, печатью и др.
· Вызов спискафункций группыосуществляетсянажатиемсоответствующейклавиши. Например, щелчок по клавишеString… редактораскриптов вызываетпоявлениедиалога Choose function(выбор функции)со спискомстроковыхфункций.

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

Функция Описание StringFromIntg() Возвращает символьное представление целого аргумента в указанной системе счисления StringFromReal() Возвращает символьное представление вещественной величины либо в формате с плавающей запятой, либо в экспоненциальном формате StringLen() Возвращает длину указанной строки StringToIntg() Преобразует символьное представление целого числа во внутренний формат StringUpper() Преобразует все символы исходной строки в нижнем регистре в верхний регистр Text() Осуществляет форматированный вывод указанной целой или вещественной переменной в соответствии со строкой форматирования


Таблица 5.1.


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

StringFromReal(Number,Precision,Type);

— Number — конвертируемаявещественнаявеличина;
— Precision — количестводесятичныхзнаков;
— Type — типформата ( «f»,«e», «E»).

Например,

функцияStringFromReal(263.365, 2, «f») возвращает«263.36»;
функцияStringFromReal(263.365, 2, «e») возвращает«2.63e2»;
функцияStringFromReal(263.55, 3, «E») возвращает«2.636E2».
Функция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 (выбор функции) со списком математических функций.

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

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

Файловые функциипредназначеныдля считыванияи записи информациив файлы. У всехфайловых функцийесть два общихаргумента — Filename и FillOffset. АргументFilename (имя файла)хранит имяфайла, из которогодолжна бытьсчитана илив который должнабыть записанаинформация(имя также должновключать и путьк файлу). АргументFillOffset (смещениев файле) задаетотносительнуюпозицию в файле, начиная с которойбудут читатьсяили записыватьсяданные. Смещениезадается вбайтах от началафайла. Первыйбайт файлаимеет смещение0. После завершениякаждая функциявозвращаетследующеедоступноесмещение вфайле. Например, если функциячитает 5 байтовданных, начинаяс 10-го байта, топосле завершенияфункция возвратит15. Некоторыевстроенныефункции группыSystem приведеныв табл. 5.2.

Функция Описание FileCopy() Копирует исходный файл в файл-приемник FileReadFields() Возвращает очередную запись данных из CSV — файла FileReadMessage() Возвращает указанное количество байтов (или всю строку) из указанного файла FileWriteFields() Сохраняет в CSV — файле запись данных, состоящую из разделенных запятыми величин InfoDisk() Возвращает информацию об указанном локальном или сетевом диске InfoFile() Возвращает информацию об указанном файле или подкаталоге компьютера или сетевого устройства InfoTouchAppDir() Возвращает имя текущего каталога InTouch — приложения


Таблица 5.1.


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

FileReadFields(Filename,FileOffset,StartTag,NumberOfFields);

— StartTag — идентифицируетпервый элементв имени InTouch-переменной;
— NumberOfFields — идентифицируетчисло полейдля чтения.

Группа функций Miscellaneous (клавиша Misc...) включает функции для работы с алармами распределенных систем, трендами, печатью и др.

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

Функция Описание almAckDisplay() Подтверждает только те алармы, которые в текущий момент видны в окне отображения алармов almAckSelect() Подтверждает алармы, отмеченные оператором в окне отображения алармов almShowStats() Выводит панель статистики объекта отображения алармов


Таблица 5.3.1.


Первым аргументомвсех встроенныхфункций алармовявляется ObjectName(имя объектаалармов). Частов роли одногоиз аргументоввыступаетComment (комментарий).Например, функцияalmAckSelect имеет следующийсинтаксис:almAckDisplay(ObjectName,Comment);.
Функции, название которыхначинаетсяс HT, используютсятолько с архивнымитрендами. Примерытаких встроенныхфункций — втабл.5.3.2.

Функция Описание HTGetPenName() Возвращает имя переменной, связанной в текущий момент с указанным пером указанного тренда HTGetValue() Возвращает значение указанного типа, вычисляемого для указанного пера в пределах всего тренда HTScrollLeft() Устанавливает в качестве начала графика более раннее время. Визуально происходит прокрутка тренда влево HTSetPenName() Связывает перо тренда с указанной переменной HTZoomIn() Масштабирует существующий тренд путем задания новых времени начала и охватываемого интервала времени


Таблица 5.3.2.


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

— HTGetPenName(Hist_Tag, UpdateCount, PenNum);
— HTGetValue(Hist_Tag,UpdateCount,PenNum,ValType_Text);
— HTScrollLeft(Hist_Tag,Percent);
— HTSetPenName(Hist_Tag,PenNum,Tagname);
— HTZoomIn(Hist_Tag,LockString).

Первый аргументвсех встроенныхфункций дляработы с трендами- Hist_Tag (имя тренда).Из других аргументовследует отметитьPenNum (номер ператренда), ValType_Text (строка, указывающаятип возвращаемогозначения), Tagname(новое имя пера).
Функции, названиекоторых начинаетсяс wc (табл.5.3.3), используютсяс управляющимиобъектами окна(простые списки, текстовые окна, ниспадающиесписки и т. д.)

Функция Описание wcDeleteItem() Уничтожает элемент с заданным порядковым номером как в простом, так и в ниспадающем списке wcInsertItem() Вставляет указанное сообщение в список wcLoadText() Заменяет содержимое текстового окна на новую информацию


Таблица 5.3.3.


Функции этойподгруппы такжемогут иметьдо четырехаргументов:

— wcDeleteItem(«ControlName», ItemIndex);
— wcInsertItem(«ControlName», ItemIndex, «MessageTag»);
— wcLoadText(«ControlName», «Filrename»);.

Первый аргументвсех встроенныхфункций этойподгруппы — ControlName (имя управляемогоокна). Часто вкачестве аргументаиспользуютсяItemIndex (номер, соответствующийпозиции элемента),MessageTag (строковоесообщение),Filrename (имя файлав формате ASCII).
Врассматриваемойгруппе функцийMiscellaneous следуетотметить функциюPrintWindow, i?aaiacia?aiioю для печатиокна. Ее синтаксисвыглядит следующимобразом:

PrintWindow(«Window»,Left,Top,Width,Height,Options);,

где:

— Window — имя окна;
— Left — число дюймовот левого края;
— Top — число дюймовот верхнегокрая;
— Width — ширинараспечатываемогоокна;
— Height — высотараспечатываемогоокна;
— Options — дискретныезначения 0 или1.

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

Функции Quick Functions

Quick Functions — это скрипты, которые могутвызыватьсяиз других скриптови использоватьсяв выраженияхпри определениидинамическихсвойств объектов.Скрипты Quick Functionsхранятся внутритого приложения, в котором онибыли созданы, и могут многократноиспользоватьсяв других скриптахInTouch.
Наиболеечасто эти функциииспользуютв выраженияхпри определениидинамическихсвойств объектов.Чем это вызвано? Дело в том, чтодлина выраженияв поле Exdivssion диалоговопределениядинамическихсвойств объектовдолжна бытьне более 256 символов.Это относитсяк таким динамическимсвойствам, какцвет линии, цвет заполнения, изменениевысоты и ширины, вертикальноеи горизонтальноеперемещение, вертикальноеи горизонтальноезаполнение, видимость, мерцание, ориентация, блокировка.
Для ввода болеедлинных выраженийможно воспользоватьсяфункциями QuickFunctions. При этомвыражение вполе Exdivssion должносодержатьоператоры CALLвызова функцийQuick Functions, каждая изкоторых, в своюочередь, должнаиметь в качествепоследнегооператораRETURN для возвратарезультатав вызывающеевыражение.Организованноетаким образомвыражение можетсодержатьмногие тысячисимволов и бытьсколь угодносложным.
Сохраненнаяфункция Quick Functionsможет бытьиспользованав любом другомскрипте иливыражении.
Quick Functions могут бытьсинхроннымии асинхроннымискриптами.Синхронныескрипты выполняютсяпоследовательно, в то время, какпосле запускаодного асинхронногоскрипта можетбыть запущендругой (синхронныйили асинхронный)скрипт. Этопозволяетотделятьисполняющиесядовольно долгооперации (типаобращений кбазам данных)от основнойпрограммы.Асинхронныескрипты немогут возвращатьрезультаты.Поэтому в качествескриптов QuickFunctions, используемыхв выражениях(Exdivssion) для определениядинамическихсвойств объектов, следует применятьтолько синхронныескрипты.
Созданиескриптов QuickFunctions осуществляетсяв диалоговомокне редактораQuick Functions. Вызов этогодиалога наэкран в окнеWindowMaker производитсяв командойSpecial/Scripts с последующимнажатием настроке Quick Functions.

СписокName содержит именавсех определенныхк данному моментускриптов QuickFunctions. Щелчок поимени скриптавыводит еготекст в рабочееполе диалога.

КомандаScripts/New предназначенадля созданиянового скриптаи вызывает наэкран диалогдля ввода егоимени. Послещелчка по Ok новоеимя будет включенов список именName.

Следующийэтап — определениеаргументовнового скриптав таблице Argumentsдиалога Quick Function. Влевую колонкутаблицы вводятимя аргумента(до 31 символа), в правую — еготип (Integer, Real, Discrete, Message). Водном скриптедопускаетсядо 16 аргументов.

Послеопределениятипов аргументовможно приступатьк написаниютекста скриптаQuick Function в рабочемполе (под таблицейArguments).


Разработкаграфопостроителяв системе InTouch

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

РазработкаDDE-сервера

Приложение, получающееданные из другогоприложенияпо DDE и/или управляющеедругим приложениемс помощью командчерез DDE являетсяDDE-клиентом. Вэтом случаевторое приложениеявляетсяDDE-сервером.Рассмотримпроект DDE-сервера, выполненногона языке программированияBorland Delphi 6.

Нарис.20 представленоокно DDE-сервераво время дизайнав среде Delphi


/>

Рис. 20. Окно DDE-серверана стадиипроектированияв Delphi


ДляпостроенииDDE-сервера в Delphiимеются дваобъекта, расположенныена страницеSystem Палитры Компонент- TDdeServerConv и TDdeServerItem. Обычнов проектеиспользуетсяодин объектTDdeServerConv и один илиболее TDdeServerItem. Дляполучениядоступа к сервисуDDE-сервера, клиентупотребуетсязнать несколькопараметров: имя сервиса(Service Name) — это имяприложения(обычно — имявыполняемогофайла без расширенияEXE, возможно сполным путем);Topic Name — в Delphi это имякомпонентыTDdeServerConv; Item Name — в Delphi это имянужной компонентыTDdeServerItem. Назначениеобъекта TDdeServerConv — общее управлениеDDE и обработказапросов отклиентов навыполнениемакроса.

ОбъектTDdeServerItem связываетсяс TDdeServerConv и определяет, что, собственно, будет пересылатьсяпо DDE. Для этогоу него естьсвойства Text иLines. (Text имеет то жезначение, чтои Lines[0].) При изменениизначения этихсвойств автоматическипроисходитпересылкаобновленныхданных во всеприложения-клиенты, установившиесвязь с сервером.

Призапуске приложенияпроисходитвыполнениепроцедурыTDDEServe.FormActivate:


procedureTDDEServe.FormActivate(Sender: TObject);

varnidata: TNotifyIconData;

begin

Application.ShowMainForm:= False;

ShowWindow(Application.Handle,SW_HIDE);

ShowWindow(Application.MainForm.Handle,SW_HIDE);

withnidata do

begin

cbSize:= SizeOf(TNotifyIconData);

Wnd:= Self.Handle;

uID:= 1;

uFlags:= NIF_ICON or NIF_MESSAGE or NIF_TIP;

uCallBackMessage:= WM_MYICONNOTIFY;

hIcon:= Application.Icon.Handle;

StrPCopy(szTip,Application.Title);

end;

Shell_NotifyIcon(NIM_ADD,@nidata);

ru:=10;

end;


Вэтой процедуреприложениесворачиваетсяв системныйTray, а формастановитсяневидимой.Окончаниеработы DDE-серверавызываетсяпутём нажатиялевой или правойкнопкой мышина иконке приложенияв области системногоTray. Обработкаэтого событиявыполняетсяв процедуреTDDEServe.WMICON:


procedureTDDEServe.WMICON(var msg: TMessage);

begin

casemsg.LParam of

WM_RBUTTONDOWN,WM_LBUTTONDOWN:close;

end;

end;


Приэтом, при закрытииокна приложениявызываетсяпроцедураTDDEServe.FormDestroy, в которой происходитудаление иконкииз системногоTray:


procedureTDDEServe.FormDestroy(Sender: TObject);

varnidata: TNotifyIconData;

begin

withnidata do

begin

cbSize:= SizeOf(TNotifyIconData);

Wnd:= Self.Handle;

uID:= 1;

end;

Shell_NotifyIcon(NIM_DELETE,@nidata);

end;


Работаприложенияв целом строитсяпосредствомвызова процедурыTDDEServe.Timer1Timerпо прерываниютаймера.


implementation

{$R*.DFM}

usesComObj, activex, ShellApi, shlobj, registry;

var

xsin: integer;

ru:real;

boolka:boolean;


procedureTDDEServe.Timer1Timer(Sender: TObject);

varLPTbyte: byte;

begin

xsin:=xsin+1;

ifxsin>1000 then xsin:=xsin-1000;

DDEItem100.Text:=inttostr(5*(xsin-20*trunc(xsin/20))); //пилообразныйсигнал

asm

mov dx,379h

in al,dx

and al,80h

mov LPTbyte,al

end;

DDEItem200.Text:=inttostr(LPTbyte*100);//состояниелинииLPT-порта

DDEItem300.Text:=inttostr(round(50+50*sin(xsin/20)));

if(xsin/5)=trunc(xsin/5) then

if(ru

begin

boolka:=true;

ru:=ru+20

end else

begin

boolka:=false;

ru:=ru-20

end;

ifboolka then DDEItem400.Text:='100' else DDEItem400.Text:='0';

end;


ДляобеспеченияDDE-обменазадекларированыследующиеконстанты:

‘DDEServer’– имясервиса(Service Name);

‘DDETopic’– Topic Name;

‘DDEItem100’– переменнаяобмена;

‘DDEItem200’– переменнаяобмена;

‘DDEItem300’– переменнаяобмена;

‘DDEItem400’– переменнаяобмена.


РазработкаDDE — клиента

Основачеловеко-машинногоинтерфейсав рамках InTouch — этоиерархическивзаимосвязанныеанимированныесенсорные окна.Для созданиянового окнавыполним командуFile/New Window… (Файл/НовоеОкно). На экранепоявится диалоговоеокно Window Properties (СвойстваОкна), котороенеобходимозаполнить.

Здесьследует ввеститолько имя окна(поле Name) Scope.Ос­тальныеполя и опцииоставлены безизменений. Окнос указан­нымиатрибутамипоявится наэкране. Там жебудет отображенаи Панель Инструмен­товInTouch — Tools, с которойпредстоитинтенсивноработать далее.

Графикпредставляетсобой прямоугольнуюобласть с нанесеннымикоординат­нымипрямыми, накоторой графическипредставляетсяизменениезначения однойили несколькихпеременныхв течение времени.В пакете InTouch имеютсяобъекты дляди­намическогоотображениязначения переменнойв реальномвремени – графикиреаль­ноговремени (инструмент(Real-time Trend)), и, так называе­мые, аналитическиекривые, которыестроятся наоснованииархивных данных(инструмент(Historical Trend)). Для того, чтобы он появилсяв созданномнами окне, необходимона ПанелиИнструмен­товInTouch – Tools выбратьпункт Real – Time Trend изатем в окнеприложения, удерживаянажатой левуюкнопку мышки, придать графикунеобходимыеразмеры.

Панельнастройкиграфиков вызываетсядвойным щелчкомлевой кнопкимышки по окнуграфика и состоитиз четырехтекстовых строксоответствующихграфикам (Graph 1,Graph 2, Graph 3, Graph 4). Каждыйграфик имеетнезависимыенастройкимасштаба ивеличины сдвигапо вертикали, отображаемыена экране. Дляэтого используетсякомпонентAnalog Tagname Display (Wizard Selection Value Displays  AnalogTagname Display). Ввод данныхосуществляетсяне непосредственнов WindowViewer, а посредствомкомпонентыIncr/Decr Buttons Up/Down (Wizard Selection Buttons Incr/Decr Buttons Up/Down). Нажатиена верхнюю илинижнюю стрелкуприводитсоответственнок увеличениюили уменьшениюзначения переменной.Ограничениемаксимальногои минимальногозначения указываютсяпри декларации.Каждый компонентсвязан со своейпеременнойzoom1 – zoom4(изменениемасштаба графиков1 – 4 соответственно)и sh1 – sh4(изменениесмещения графиков1 – 4). Все переменныеимеют тип MemoryInteger. Для того, чтобы ввестиновую переменную, необходимоописать ее вразделе Special/TagnameDictionary/New. При этомнеобходимоуказать ее имяв поле «Tagname:» итип – в поле«Type:».

Дляорганизацииобмена даннымичерез DDE интерфейснеобходимоопределитьчетыре (по числуканалов) переменныетипа DDE Integer (Item1,Item2, Item3,Item4). Для этогосначала в разделеSpecial/DDE Access Names… необходимонажать кнопкуAdd и в появившемсядиалоговомокне указатьимя приложения(DDE Application/Server Name), от которогобудет производитьсязапрос данных, и имя группы/объекта(DDE Topic Name), содер­жащеготребуемуюинформацию.В нашем случаекачестве имениприложенияиспользуетсяимя DDEServer, имя объекта– DDETopic. Далее в разделеSpecial/Tagname Dictionary/New вводятсяпоочереднопеременныетипа DDE Integer. Названиеэлемента (Item) длякаждой переменнойимеет различныеимена: DDEItem100 – дляItem1, DDEItem200 – дляItem2, DDEItem300 – дляItem3 и DDEItem400 – дляItem4. Даннаяинформацияиспользуетсядля определенияDDE-переменнойв Словаре ПеременныхInTouch.

Длятого, чтобызапуститьпрограммуграфопостроителяи начать DDE – обмен, необходимовключить DDE сервер(т. е. запуститьфайл Ddeserver.exe)и переключитьсяв окно InTouch — WindowViewer (нажатиемкнопки Runtime! в правомверхнем углуокна InTouch — WindowMaker). В процессеработы InTouch WindowViewerавтоматическивыполнит всетребуемыедействия поустановлениюканала об­менаданными и обработкезначений элемента.

Нижепредставленвнешний видпрограммыграфопостроителяв окне InTouch — WindowViewerотображающейв виде четырехграфиков данные, полученныеот программыDDE сервера исоответствующиеим масштабирующиекоэффициенты.


/>

Рис. 21. Окно программыграфопостроителя.


Список литературы

1. Scada. ru — Публикации- SCADA — системы: взгляд изнутри

//URL: www.scada.ru/publication/book/divface.html

2. КабаевС.В. Пакет программногообеспеченияIntouch — системамониторингаи управленияв объектахпромышленнойавтоматизации

//URL: www.mka.ru/go/?id=40463&url=www.rtsoft.ru

3.ТРЕЙС МОУД -интегрированнаяSCADA- и softlogic-системадля разработкиАСУТП // URL:http://adastra.ru/ru/tm/tm5/

4.КузнецовА.Genesis forWindows – графическаяscada-системадля разработкиАСУ ТП. // Современныетехнологииавтоматизации.-1997.- №3.



еще рефераты
Еще работы по информатике