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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

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

Два типа встроенных языков:

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

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

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

При настройке SCADA на объекте cоздаются программные фрагменты (скрипты), состоящие из операторов и функций языка, которые связываются с событиями в приложении, такими как нажатие кнопки, открытие окна, выполнение логического условия. Каждое из событий ассоциируется с графическим объектом, окном, таймером, открытием/ закрытием приложения.

Существует два режима выполнения функций:

1) В синхронном режиме выполнение следующей функции не начинается до завершения предыдущей.

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

 

Скрипты в InTouch

 

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

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

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

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

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

Скрипты, запускаемые кнопками (Touch Pushbutton Action Scripts)

Скрипты по изменению логического выражения (Condition Scripts)

Скрипты по изменению данных (Data Change Scripts)

ActiveX Event (скрипты событий ActiveX)

Quick Function - скрипты, которые могут вызываться из других скриптов и использоваться в выражениях при определении динамических свойств объектов. Например, длина выражения в поле Expression диалогов определения динамических свойств объектов должна быть не более 256 символов. Для ввода более длинных выражений можно воспользоваться функциями Quick Functions. При этом выражение в поле Expression должно содержать операторы CALL вызова функций Quick Functions, каждая из которых, в свою очередь, должна иметь в качестве последнего оператора RETURN для возврата результата в вызывающее выражение. Организованное таким образом выражение может содержать многие тысячи символов и быть сколь угодно сложным.

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

 

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

Разбиты на четыре группы:

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

StringFromReal(Number,Precision,Type); где

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

функция StringFromReal(263.365, 2, "f") возвращает "263.36";

 

2) Math... - математические функции. Математические функции работают с целыми и вещественными аргументами, выдавая целый или вещественный результат.

 

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

Файловые функции предназначены для считывания и записи информации в файлы. У всех файловых функций есть два общих аргумента - Filename и FillOffset.

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

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

4) Misc... - функции для работы с алармами распределенных систем, трендами, печатью и др. Состоит из нескольких подгрупп.

 

а) Функции, название которых начинается с alm, используются только в распределенных системах алармов, например:

- almAckDisplay(ObjectName,Comment); - подтверждает только те алармы, которые в текущий момент видны в окне отображения алармов, где ObjectName (имя объекта алармов), Comment (комментарий).

 

б) HT функции архивных трендов, например:

- HTGetPenName(Hist_Tag, UpdateCount, PenNum); - Возвращает имя переменной, связанной в текущий момент с указанным пером указанного тренда

 

где: Hist_Tag (имя тренда), PenNum (номер пера тренда), ValType_Text (строка, указывающая тип возвращаемого значения), Tagname (новое имя пера).

 

в) wc - функции управления объектами окна (простые списки, текстовые окна, ниспадающие списки и т. д.), например:

- wcInsertItem("ControlName", ItemIndex, "MessageTag"); - Вставляет указанное сообщение в список

где: ControlName (имя управляемого окна). ItemIndex (номер, соответствующий позиции элемента), MessageTag (строковое сообщение), Filename (имя файла в формате ASCII).

 

 

Язык Cicode

 

Cicode - встроенный язык программирования системы Citect, созданный на базе С++ специально для мониторинга и управления приложениями. Предоставляет пользователю доступ к данным проекта в режиме реального времени, а также ко всем переменным, алармам, трендам, отчетам и т. д. Поддерживает многозадачность и удаленный вызов процедур.

 

Команды

Используются для управления Citect и технологическим процессом. Каждая команда имеет механизм ее запуска: вручную, когда оператор нажмет некоторую последовательность клавиш или кнопку на графической странице. Можно произвести конфигурирование команд для автоматического выполнения:

1) при регистрации оператора для входа или выхода из среды исполнения;

2) при открытии и закрытии графических страниц;

3) при срабатывании алармов, событий, выдаче отчетов

 

Выражения

В отличие от команд, выражения не выполняют конкретных задач, они их оценивают.

 

Функции

Функция - это набор выражений, переменных, операторов, и других функций. Функции эквивалентны подпрограммам или функциям BASIC, Pascal или C.

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

1) Группа Alarm включает более 40 встроенных функций, например:

AlarmAck(Mode, Value) Подтверждает аларм

 

 

2) Группа Page насчитывает более 20 функций, среди которых часто применяются следующие функции:

PageAlarm(Category) Выводит страницу текущих алармов
PageHardware() Выводит страницу аппаратных алармов

 

 

3) Keyboard

4) Report

5) Time/date

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

 

Редактор

Cicode - функции записываются в файлы с расширением.CI. Файлы хранятся в одной директории вместе с проектом.

 

Окно Редактора Cicode (Cicode Editor).

ГЛАВА 7. БАЗЫ ДАННЫХ

 

Общие сведения

 

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

История развития

 

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

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

2) Иерархические БД. В таких базах элементы данных строго упорядочены, причем так, что данные одного уровня подчиняются (является подмножеством) данным другого, более высокого уровня. Связи данных могут быть отражены в виде дерева-графа, где допускаются только односторонние связи от старших вершин к младшим. Недостаток: взаимосвязи в реальном мире как правило не являются иерархическим.

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

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

1) Модель данных являются интуитивно понятной конечному пользователю.

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

3) Практически отсутствует дублирования данных.

 

В настоящее время сущствует пять основных производителей СУБД: IBM, Informix, Microsoft, Oracle и Sybase.

 

Открытые системы используют обращение к СУБД через драйвер ODBC (Open Database Connectivity – подключение к открытой БД). ODBC используется для обеспечения независимости прикладной программы от типа СУБД или типа ОС и требуется подключиться одновременно к нескольким СУБД, например к SQL Server, Excel, Access и т.д.

 

Существует две категории приложений БД:

1) OLTP (Online Transaction Processing - оперативная обработка транзакций). Используются при оперативном управлении. Обычно это критические для деятельности приложения, требующие быстроты отклика и жесткого контроля над безопасностью и целостностью данных.

2) DSS (Decision Support System - системы поддержки принятия решений). Как правило, крупнее, чем OLTP-системы. Обычно они используются при анализе и планировании с выдачи отчетов и рекомендаций.

 

Критерии оценки БД

 

1) Возможность доступа конечных пользователей к нужной информации в нужном месте и в нужное время

2) Открытость и гибкость запросов информации

3) Надежность БД

4) Распространенность и поддержка ее технологии большим числом независимых производителей ПО

5) Интеграция с ПО

6) Стоимость БД и аппаратной платформы для ее поддержки

 

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

В качестве интерфейса в клиент-серверных системах используется язык структурированных запросов SQL (Structured Query Language). Он представляет собой средство организации, управления и поиска информации в РБД.

Достоинства SQL:

1) независимость от поставщика;

2) переносимость на разные платформы;

3) опора на реляционные принципы хранения информации;

4) высокоуровневая структура;

5) возможность интерактивного выполнения запросов;

6) поддержка со стороны крупных производителей

 

Особенности промышленных БД

 

Заводская автоматизация несколько отстает от автоматизации офисной деятельности, многие технологические и производственные БД основываются на устаревших технологиях.

Как правило, производственному персоналу всегда не хватает информации. Все они хотели бы иметь какое-то единое средство доступа к информации, например, с мощью и открытостью РБД.

Однако, традиционные БД не всегда применимы в системах промышленной автоматизации. Можно выделить несколько основных ограничений:

1) Интенсивность генерации данных ПП. Чтобы хранить производственный архив системы, например, с 7500 рабочими переменными, в БД каждую секунду необходимо вставлять 7500 строк. Обычные БД не могут выдержать подобную нагрузку.

2) Большой объем производственной информации. Многомесячный архив завода с 7500 рабочими переменными требует под БД памяти объемом около 1 Терабайта. Сегодняшние технологии такими объемами манипулировать не могут.

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

 

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

InSQLServer

 

InSQLServer - СУ РБД реального времени, использующая язык SQL. Обращение к InSQLServer осуществляется при помощи тех же утилит, что и Microsoft SQL Server. Поставляется Wonderware как самостоятельный продукт, он, в то же время, является одним из компонентов пакета промышленной автоматизации FactorySuite.

Характеристика

1) Высокая скорость сбора данных, в сотни раз превосходящая обычные.

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

3) Поддержка временных характеристик данных. В язык запросов InSQLServer включены средства работы с временными характеристиками данных. Разработанные компанией серверы ввода/вывода используют протокол SuiteLink, в котором введена концепция отметок времени и качества информации, выставляемых серверами ввода/вывода.

4) Уменьшение объема хранения информации. InSQLServer позволяет хранить данные на пространстве, составляющем небольшую долю от соответствующего объема обычной РБД. Например, архив предприятия с 4000 параметров, будет занимать около 2 Мб. Используемый алгоритм упаковки информации является алгоритмом сжатия без потерь, сохраняющим высокое разрешение и качество данных.

5) Простота использования. Для установки, конфигурирования и использования InSQLServer от пользователя не требуется никакого знания языка SQL. Резервные копирования базы могут выполняться средствами Microsoft BackOffice.

6) Являясь базой данных в составе FactorySuite, InSQLServer тесно связан с любым компонентом этого пакета на любом уровне.

 

 

Plant2SQL

 

Plant2SQL – СУБД Citect.

1) Технологические данные хранятся в стандартных MS SQL таблицах. Для обеспечения высокой скорости регистрации используется стандартная подсистема архивов Citect.

Если SQL Server не установлен, то Plant2SQL сохраняет информацию, используя Microsoft Data Engine (MSDE), который поставляется с Plant2SQL.

Размер БД MSDE ограничен 2 Гб и оптимизирован для небольших БД, когда количество одновременно работающих клиентов не превышает 5. При увеличении количества пользователей, производительность сильно падает.

2) Управляющему персоналу не требуется знать SQL или особенности получения данных из SCADA-архивов.

3) Plant2SQL включает ряд клиентских приложений, например, для Microsoft Excel.

4) Встроенные средства резервирования.

Замечание. В Plant2SQL не существует синхронизации между основной и резервной базами данных Plant2SQL.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 398; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.205.154 (0.049 с.)