КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Встроенные командные языкиВстроенные технологические языки программирования – это инструмент, который предназначен для решения новых задач на базе системы контроля и управления технологическими процессами. Такими задачами являются: · программно-логическое управление технологическим оборудованием; · алгоритмы оптимального (рационального) управления; · расчет косвенных переменных по формулам; · визуализация значений в цифровом виде трендов целевой обработки (текущие, средние или суммарные значения параметров по часам, сменам и суткам); · формирование трендов целевой обработки из программы пользователя постфактум; · архивирование дат и времени событий; · создание сценария динамики экрана; · интегрирование мгновенных расходов под задачи дозирования; · создание альтернативных фильтров входных переменных. Использование стандартных алгоритмов значительно упрощает создание программ. Большинство SCADA-систем имеют встроенные языки высокого уровня – VisualBasic-подобные языки, позволяющие сгенерировать адекватную реакцию на события, связанные с изменением значения переменной, с выполнением некоторого логического условия, с нажатием комбинации клавиш, а также с выполнением некоторого фрагмента с заданной частотой относительно всего приложения или отдельного окна. Встроенные языки программирования предоставляют разработчику гибкий инструмент для разработки сложных приложений. Первые версии SCADA-систем либо не имели подобных языков, либо эти языки реализовывали небольшой набор функций. В современных версиях SCADA-систем функциональные возможности языков становятся существенно богаче. Явно выделяются два подхода: · ориентация встроенных языков программирования на технологов – функции в таких языках являются высокоуровневыми, не требующими профессиональных навыков программирования при их использовании; · ориентация на программиста – системного интегратора – в этом случае чаще всего используются VisualBasic-подобные языки. В каждом языке допускается расширение набора функций. В языках, ориентированных на технологов, это расширение достигается с помощью дополнительных инструментальных средств (Toolkits). Разработка дополнительных функций выполняется обычно программистами-профессионалами. Разработка новых функций при втором подходе осуществляется обычно разработчиками приложений (как и в классических языках программирования). Полнота использования возможностей встроенных языков (особенно при втором подходе) требует соответствующего уровня квалификации разработчика, если, конечно, в этом есть необходимость. Требования задачи могут быть не столь высокими, чтобы применять всю «мощь» встроенного языка. Во всех языках функции разделяются на группы, часть из которых присутствует практически во всех языках: математические функции, функции работы со строками, обмен по SQL, DDE-обмен и т. д. В разрабатываемом приложении создаются программные фрагменты, состоящие из операторов, и функций языка, которые выполняют некоторую последовательность действий. Эти программные фрагменты связываются с разнообразными событиями в приложении, такими как нажатие кнопки, открытие окна, выполнение логического условия (а + b > с). Каждое из событий ассоциируется с графическим объектом, окном, таймером, открытием или закрытием приложения. Когда приложение содержит сотни окон, тысячи различных графических объектов, а с каждым из них связано несколько событий, в приложении может «работать» огромное число отдельных программных фрагментов. Велика вероятность их «одновременной» активизации. Каждая из функций во встроенном языке выполняется в синхронном или асинхронном режиме. В синхронном режиме выполнение следующей функции не начинается до тех пор, пока не завершилось исполнение предыдущей. При запуске асинхронной функции управление переходит к следующей, не дожидаясь завершения исполнения предыдущей функции.
|