- •Задание по дипломному проектированию
- •Введение
- •1 Основы scada систем
- •1.1 Обмен информацией с внешними устройствами
- •1.2 Взаимодействие scada системы Citect с устройствами ввода/вывода
- •1.2.1 Переменные тэги
- •1.3 Графические средства Citect
- •1.3.1 Графические инструменты и шаблоны страниц
- •1.3.2 Библиотечные элементы
- •1.3.3 Джинны и суперджинны
- •2 Инструменты анализа производственного процесса
- •2.1 Тренды
- •2.2 Организация тревожных сообщений. Алармы
- •2.3 Cicode – встроенный язык программирования
- •3 Разработка лабораторных работ
- •3.1 Лабораторная работа №1. Создание проекта в Citect. Установление связей с плк
- •3.2 Лабораторная работа №2. Изучение графических инструментов Citect
- •3.3 Лабораторная работа №3. Тренды и алармы в Citect
- •3.4 Лабораторная работа №4. Фонтан «Цветок»
- •4 Экономика
- •4.1 Определение единовременных затрат на создание лабораторных работ
- •4.1.1 Определение трудоемкости разработки лабораторных работ
- •4.1.2 Определение себестоимости создания лабораторных работ
- •4.1.3 Определение минимальной цены лабораторных работ
- •4.2 Определение ожидаемого прироста прибыли в результате внедрения лабораторных работ
- •4.2.1 Определение годовых эксплуатационных расходов при ручном решении задачи
- •4.2.2 Определение годовых текущих затрат, связанных с эксплуатацией задачи
- •4.2.3 Определение дополнительной прибыли пользователя за период использования лабораторных работ.
- •4.3 Расчет показателей эффективности использования программного продукта
- •4.4 Заключение об экономической эффективности
- •5 Экология. Методы радиационной защиты проектируемой системы
- •6 Охрана труда
- •6.1 Производственная санитария
- •6.1.1 Шум и вибрации
- •6.1.2 Освещение
- •6.1.3 Вредные вещества
- •6.1.4 Микроклимат
- •6.2 Техника безопасности
- •6.3 Пожарная безопасность
- •Заключение
- •Список использованых источников
2.3 Cicode – встроенный язык программирования
Встроенные языки программирования – мощное средство SCADA систем, предоставляющее разработчику гибкий инструмент для разработки сложных приложений. Первые версии SCADA систем либо не имели подобных языков, либо эти языки реализовывали небогатый набор функций. В современных версиях SCADA систем функциональные возможности языков становятся существенно богаче.
В каждом языке допускается расширение набора функций. В языках, ориентированных на технологов, это расширение достигается с помощью дополнительных инструментальных средств. Разработка дополнительных функций выполняется обычно программистами-профессионалами [1].
Разработка новых функций при втором подходе выполняется обычно разработчиками приложений (как и в традиционных языках программирования).
Полнота использования возможностей встроенных языков (особенно при втором подходе) требует соответствующего уровня квалификации разработчика, если, конечно, в этом есть необходимость. Требования задачи могут быть не столь высокими, чтобы применять всю «мощь» встроенного языка.
В разрабатываемом приложении создаются программные фрагменты, состоящие из операторов и функций языка, которые выполняют некоторую последовательность действий. Эти программные фрагменты связываются с разнообразными событиями в приложении, такими, как нажатие кнопки, открытие окна, выполнение логического условия (а+b>с). Каждое из событий ассоциируется с графическим объектом, окном, таймером, открытием/закрытием приложения. Когда приложение содержит сотни окон,
тысячи различных графических объектов (а с каждым из них связано несколько событий), в приложении может работать огромное количество отдельных программных фрагментов. Велика вероятность их одновременной активизации [1].
Каждая из функций во встроенном языке выполняется в синхронном или асинхронном режиме. В синхронном режиме выполнение следующей функции не начинается до тех пор, пока не завершилось исполнение предыдущей. При запуске асинхронной функции управление переходит следующей, не дожидаясь завершения исполнения предыдущей функции.
В связи с этим возникают несколько вопросов: с каким приоритетом исполняется каждый из фрагментов? допускается ли рекурсия при обработке событий и если да, то каков уровень вложенности? В SCADA системах уровень вложенности пока не стандартизован, но оговаривается особо в рамках каждой из них.
Cicode – встроенный язык программирования системы Citect, созданный специально для мониторинга и управления приложениями. Это структурированный язык, похожий на Visual Basic или С. Применение Cicode предоставляет пользователю доступ к данным проекта в режиме реального времени, а также ко всем переменным, алармам, трендам, отчетам и т. д. Cicode поддерживает многозадачность и удаленный вызов процедур.
Для управления системой Citect и технологическим процессом используются команды. Каждая команда имеет механизм запуска. Команды могут быть вызваны вручную, когда оператор нажмет некоторую последовательность клавиш или кнопку на графической странице.
Можно произвести конфигурирование команд для автоматического выполнения [1]:
при регистрации оператора для входа или выхода из среды исполнения;
при открытии и закрытии графических страниц;
при срабатывании алармов;
при срабатывании событий;
при выдаче отчетов.
Cicode-выражения являются базовыми элементами языка Cicode. В выражениях могут быть константы, значения переменных или результаты сложных вычислений. Выражения можно использовать для вывода на экран или регистрации данных для мониторинга и анализа, для запуска различных состояний системы, таких, .как алармы, события, отчеты.
В отличие от команд, выражения не выполняют конкретных задач, они их оценивают. Этот процесс оценки значения можно использовать для вывода информации на экран или принятия решений.
Cicode-функции могут выполнять более сложные задачи, чем команды и выражения.
Citect имеет около 700 встроенных функций, которые могут показывать страницы, подтверждать алармы, делать вычисления и т. д. [1].
Cicode-функция – это набор выражений, переменных, операторов, условий выполнения и других функций. Эти функции эквивалентны подпрограммам BASIC и подпрограммам или функциям, используемым в Pascal или С.
