logo search
Учебник ИСПиУ

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

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

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

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

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

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

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

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

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

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

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

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