Программы SCIL применяются в:
- Изображениях.
- Диалогах и элементах диалогов (объекты Visual SCIL).
- Командных процедурах.
Кроме того, выражения SCIL применяются в окне, в объекте данных и в канале времени. Выражения SCIL могут быть также введены во внешние приложения, основанные на Windows, и выполнены через DDE (Dynamic Data Exchange - динамический обмен данными).
Программирование на языке SCIL осуществляется во время работы системы MicroSCADA. Во время редактирования программы система не осуществляет какой-либо контроль синтаксических ошибок SCIL. Для проверки SCIL-программ, инструкций и выражений, используется инструмент, доступ к которому осуществляется из Tool Manager (Администратор Инструментов).
Последующее представление среды программирования подразумевает использование Вами монитора MicroSCADA (сеанс приложения) типа "VS". В других типах мониторов (псевдографические мониторы или мониторы типа "X") инструменты программирования являются псевдографическими. Мониторы типа "X" требуются в том случае, если приложение содержит Motif Widgets. Во всех других случаях используйте мониторы типа "VS". Вы выбираете тип монитора при открытии монитора или экрана MicroSCADA.
Редактор программ SCIL
Программы SCIL написаны в программном редакторе SCIL Program Editor, доступ к которому осуществляется из изображения инструментов и из Tool Manager. Редактор программ SCIL может быть открыт из редактора изображений Picture Editor, редактора диалогов Dialog Editor и инструмента определения объекта Command Procedures.
Редактор SCIL-программ описывается в Главе 12 данного руководства.
Программы изображений
Динамическое изображение состоит из статичного фона, окон, функциональных клавиш, SCIL-программ и функций изображения. Окна - это динамические части изображения. Они могут представлять поля данных, графики, рисунки или законченные изображения. Функции изображения являются законченными изображениями, которые интегрируются в общее изображение. Функции изображения и оконные изображения (изображения, показанные в окне) обычно называют "частями изображения" или "под-изображениями", а общее изображение называется "основным изображением".
Изображения строятся и программируются в Редакторе Изображений (Picture Editor), где им может быть присвоено произвольное имя. Изображения и редактирование изображений описаны в руководстве "Редактирование изображений MicroSCADA".
Изображение может содержать следующие типы программ изображения (ни один из них не является обязательной):
- Программа рисования выполняется каждый раз, когда изображение выводится на экран, сразу после вывода фона на экран, но до выполнения программы запуска. Это может использоваться, например, для добавления специфичной графики к фону посредством графических команд.
- Программа запуска, выполняемая после программы рисования. Программа запуска используется для основных определений, таких как исходные значения переменных, интервал обновления и блоки программы.
- Программа обновления, которая выполняется неоднократно в промежутки времени, определенные SCIL-командой (команда !UPDATE, смотрите Главу 7), пока изображение отображается на экране. Программа обновления должна быть как можно меньше.
- Программа выхода, которая выполняется каждый раз при выходе из изображения (даже при выходе путем тройного нажатия в левом верхнем углу изображения).
- Программы функциональных клавиш, выполняемые при каждом нажатии на соответствующую функциональную клавишу.
- Именованные программы, выполняемые путем вызова программ. Изображение SCIL может содержать любое количество именованных SCIL-программ. Именованные программы запускаются путем программных вызовов, как описано в разделе 4.4. Длина имени для именованной программы может составлять до 63 символов. Каждое изображение может содержать именованную программу с предварительно определенным именем ERROR_HANDLER, где программист имеет возможность определять обработку ошибок, которая должна быть выполнена в изображении. Программа ERROR_HANDLER описывается в Главе 11.
Наряду с этими программами, изображение содержит программу фона, которая автоматически создается редактором изображений. Фоновая программа содержит графические команды. Обычно, она не должна редактироваться вручную.
Определения окон
Определения окон, смотрите рис. 4, могут содержать выражения, которые определяют, что должно быть показано в окнах. Выражение окна оценивается каждый раз, когда окно выдается на экран. Кроме того, определения окон могут содержать условия для выдачи различных представлений. И выражения, и условия следуют правилам SCIL.
Рис.4. Пример определения окна
Методы
Каждый диалог и элемент диалога могут иметь ряд методов, большинство из которых является SCIL-программами. (Имеются также предопределенные методы, которые программируются на языке C, но они являются нередактируемыми.)
Диалог или элемент диалога может содержать следующие SCIL-программы (методы):
- Методы, запускаемые при создании и удалении объекта.
- Циклически активизируемые методы.
- Методы, активизируемые событиями и запускаемые событием процесса или событием, активизированным языком SCIL (через объекты событий, смотрите раздел 4.3).
- Методы действия, запускаемые при вмешательстве оператора (например, нажатие на кнопку).
- Метод помощи, запускаемый при запросе помощи.
- Метод обработки ошибок.
Кроме того, каждый диалог и каждый элемент диалога может иметь произвольное количество определяемых пользователем методов, которые выполняются путем вызова метода (смотрите раздел 4.4).
Методы диалогов и элементов диалога программируются в редакторе диалогов Dialog Editor. Составление и программирование диалогов описываются в руководстве "Разработка пользовательского интерфейса Visual SCIL".
Командные процедуры
Командная процедура - независимая SCIL-программа, содержащая до 10000 строк (смотрите рис. 5). Командная процедура может быть запущена из программы изображения, канала времени (смотрите ниже), канала событий (контроллер действий, ограниченных событием) или программы SCIL.
Командные процедуры описаны в руководстве "MicroSCADA, Объекты приложения".

Рис. 5. Пример командной процедуры
Объекты данных
Объекты данных (объекты регистрации данных) являются объектами для регистрации и хранения данных. Определение объекта, смотрите рис. 6, содержит SCIL-выражение, которое устанавливает, каким образом данные должны быть рассчитаны.
Объекты данных описаны в руководстве "Объекты приложения ".

Рис. 6 Пример определения объекта данных
Каналы времени
Каналы времени управляют выполнением действий, ограниченных во времени. Время инициализации и время выполнения могут быть ограничены некоторыми условиями (которые являются SCIL выражениями), смотрите рис. 7, так, чтобы инициализация или выполнение могли происходить только в случае выполнения условий.
Каналы времени описаны в руководстве "Объекты приложения".

Рис. 7. Пример определения канала времени
Использование SCIL во внешних приложениях
К приложениям MicroSCADA можно обращаться из внешних Windows-приложений, использующих DDE-протокол, таким образом, чтобы приложение MicroSCADA работало как DDE-сервер, а другое приложение работало как DDE-клиент.
Сервис, тема и элемент идентификаторов DDE имеют следующие значения при доступе к приложению MicroSCADA:
Сервис |
= |
MicroSCADA |
Тема |
= |
Номер приложения MicroSCADA (номер объекта APL, смотрите руководство "Конфигурация системы") |
Элемент, данные |
= |
Элемент и данные зависят от DDE-транзакции следующим образом: |
REQUEST: Элемент = SCIL-выражение
POKE: Элемент = обозначение объекта SCIL
Данные = SCIL-выражение
EXECUTE: Элемент = оператор SCIL.
Функция DDE-сервера в системе MicroSCADA поддерживает следующие типы данных SCIL (смотрите Главу 3): integer (целое число), real (вещественное число), text (текст), boolean (булевый тип). Некоторые SCIL-функции могут использоваться в составе выражений, используемых через DDE. Смотрите "Функции DDE-сервера" в Главе 8.
При обработке данных с помощью DDE-сервера обнаруженные ошибки SCIL сохраняются, чтобы впоследствии пользователь мог прочесть последний SCIL код состояния каждого DDE-сеанса, выполняя запрос с указанием "DDE_SCIL_STATUS_CODE" в качестве значения Item.
Для доступа к приложению MicroSCADA с помощью DDE-сервера требуется, чтобы DDE-сервер был разрешен в конфигурации базовой системы (атрибут SYS:BDE).
Для получения более подробной информации об использовании DDE смотрите документацию DDE для тех приложений Windows, которые Вы используете.
Инструмент тестирования SCIL
Диалог тестирования, к которому обращаются из Tool Manager, позволяет программисту вводить отдельные операторы и выражения SCIL, а также программы. Он также обеспечивает средствами для подробного изучения SCIL-выражений. Инструмент тестирования SCIL (SCIL Test Tool) описан в руководстве "Управление системой".
Структура программы
Программа на языке SCIL может содержать до 10000 строк длиной до 255 символов (включая пробелы) каждая. Оператор SCIL может размещаться на одной или более строках. Знак "минус" (-) в конце строки SCIL, перед возможным комментарием, показывает, что оператор продолжается на следующей строке. Строка может быть разделена в любом месте, где допускаются пробелы, но не в рамках текстовых констант. Операторы не нумеруются, а пустые строки допускаются в любом месте программ.
Пробелы допускаются в любом месте программы, за исключением чисел, слов, имен, обозначений объектов и составных символов. Эти элементы, исключая операторы, должны быть окружены, как минимум, одним пробелом с каждой стороны. Кроме того, операторы DIV и MOD (смотрите Главу 6) должны быть окружены пробелами.
Символы верхнего и нижнего регистров могут быть соединяться произвольно. Во время выполнения программы символы нижнего регистра будут преобразовываться в верхний регистр, за исключением символов нижнего регистра внутри текстовых констант (смотрите Главу 3).
SCIL-программы не требуют ни инициализирующих или завершающих операторов, ни любого вида объявлений.
Комментарии могут быть размещены в любом месте программы. Им предшествует точка с запятой (;), которая указывает на то, что оставшаяся часть строки является комментарием. Однако если точка с запятой заключена в кавычки (";"), то она будет рассматриваться как текст (смотрите Главу 3).
Примеры
Следующие две программы SCIL - функционально эквиваленты:
Пример 1:
@T = TEMP:PAI1
#IF %T> 90 #THEN #BLOCK
#SET C:PBO2=0
#PRINT 2 OVERHEAT
#BLOCK_END
#ELSE_IF %T< 70 #THEN #SET C:PBO2=1
Пример 2:
@T = TEMP:PAI1; READ THE TEMPERATURE
#IF %T > 90 #THEN #BLOCK; ЕСЛИ НАГРЕВ ВЫШЕ 90
#SET C:PBO2 0; ОСТАНОВИТЬ НАГРЕВ
#PRINT 2 OVERHEAT; ПЕЧАТЬ СООБЩЕНИЯ О ПЕРЕГРЕВЕ
#BLOCK_END;
#ELSE_IF %T < 70 #THEN #SET C:PBO2=1
; ПЕРЕЗАПУСК НАГРЕВА, ЕСЛИ T<70
Следующий оператор разделен на две строки. Поскольку текстовая константа не может быть разделена, ее необходимо напечатать как сумму двух текстов:
@A = "IN THIS EXAMPLE, A LONG TEXT VALUE IS " - ; Здесь допустимы комментарии
+ "ASSIGNED TO VARIABLE A" ;
Символы SCIL
SCIL использует расширенный набор символов ASCII (ASCII = American Standard Code for Information Interchange - Американский Стандартный Код для Обмена Информацией). Этот набор состоит из 256 символов, каждый из которых соответствует числовому значению в диапазоне 0... 255.
Некоторые из этих символов имеют специальное назначение в SCIL. Они символизируют знаки препинания, операторы, сообщения к системе и т.д. Эти специальные символы и их назначение перечислены ниже. Если символы состоят из больше, чем одного знака (буквы), то знаки не могут быть разделены пробелами.
Символы |
|
- |
знак "минус", продолжение строки программы
|
+ |
|
* |
умножение |
** |
оператор возведения в степень |
/ |
деление, разделитель в путях изображений |
\ |
разделитель в путях объектов Visual SCIL |
( |
левая скобка |
) |
правая скобка |
, |
метка перечисления |
. |
десятичная точка, отмечает графику или команду Motif |
.. |
отмечает индексный интервал
|
" |
включает текст |
@ |
предшествует имени переменной при присвоении |
% |
предшествует имени переменной при использовании |
' |
указывает расширение переменной |
# |
предшествует команде управления |
! |
предшествует команде изображения |
: |
следует за именем объекта |
; |
начинает комментарий
|
= |
присвоение |
== |
равенство |
> |
больше |
>= |
больше или равно |
< |
меньше |
<= |
меньше или равно |
<> |
не равно |
^ |
метка восьмеричного числа |
Имена SCIL
Большинство объектов интерфейса пользователя (объекты изображений и Visual SCIL, смотрите Главу 4) и объектов приложения (смотрите Главу 4) идентифицируются логическими именами (идентификаторами), которые могут быть выбраны произвольно. Аналогично, имена переменных, именованных программ, определенных пользователем методов, логических файлов библиотечных представлений и путей директорий могут задаваться произвольно.
Как правило, имена могут иметь длину до 63 символов. Однако имена изображений, окон, объектов приложений (за исключением объектов переменных) и логические пути могут иметь длину только 10 символов.
Разрешенными символами являются буквы A-Z, все цифры и символ подчеркивания (_). В именах объектов приложения допускаются также точки (.). Как правило, первый символ имени должен быть буквой. Имена объектов приложения могут начинаться с цифры, но это не рекомендуется.
SCIL поддерживает пробелы в именах директорий и файлов Windows NT.
|
Символы верхнего и нижнего регистров не различаются, то есть OBJ_NAME и Obj_name являются одни и тем же именем |
Примеры:
Ниже приведены некоторые примеры допустимых и недопустимых имен SCIL:
Допустимые имена:
RELAY
RELAY_STN
RELAY_1234
Недопустимые имена:
4TH_RELAY - (начинается с цифры, не допустимо в качестве имени изображения, окна или переменной)
RELД - (содержит специальный символ)
RELAY_STATION - (слишком длинное)