Менеджеры сценариев

Помимо пользовательского интерфейса сценарии, написанные на языке CONTROL, могут выполняться в собственном менеджере без какой-либо связи с графическим интерфейсом пользователя. При этом обеспечиваются практически те же возможности, что и при выполнении сценариев менеджерами интерфейса пользователя. Основное отличие заключается в том, что в сценариях, выполняемых менеджерами сценариев, недоступны функций для работы со свойствам графических объектов и функций для работы с панелями. Менеджер сценариев взаимодействует с другими менеджерами «КАСКАД Цифра», используя элементы точек данных (т.е. через образ процесса).

Сценарии хранятся в директории «<путь_проекта>/scripts/» в виде ASCII-файлов. В проекте «GettingStarted» сценарии, выполняемые менеджерами сценариев, используются для симуляции реакций устройств и для симуляции процесса.

Рисунок: проект со сценариями, выполняемыми менеджерами сценариев

 Данные файлы могут быть открыты при помощи любого редактора ASCII-файлов. Пути данных файлов:

C:/KASKAD_Proj/GettingStarted_3.16/scripts/simDevices.ctl

C:/KASKAD_Proj/GettingStarted_3.16/scripts/simModel.ctl

Любой файл сценария (*.ctl), предназначенный для выполнения менеджером сценариев, содержит как минимум функцию «main()», включающую в себя ряд событийно-ориентированных команд («dpConnect()» с соответствующими функциями обратного вызова). Также поддерживается возможность использования периодических процессов (конструкций с операторами «while», «do» и с задержкой цикла).

ПРИМЕЧАНИЕ

В том случае, если сценарий состоит только из набора присвоений значений и не содержит подписок на изменения значений («dpConnect()», «dpQueryConnect()», …) или бесконечных циклов, обработка сценария будет завершена после выполнения последнего присвоения. В том случае, если данный сценарий является единственным сценарием, выполняемым данным менеджером сценариев, то по завершении сценария работа менеджера также будет прекращена. Непрерывное выполнение сценария должно быть обеспечено разработчиком сценария.

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

C:/Sybcom/Automation/KASKAD/3.16/scripts

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

Функции также могут быть объявлены глобальными. Для этого функции должны быть объявлены в отдельных библиотеках, представляющих собой ASCII-файлы. Данные библиотеки должны располагаться в директории «<путь_проекта>/scripts/libs/». Объявление библиотек обеспечивается путем использования соответствующей записи в конфигурационном файле «config.level» или путем использования ключевого слова «#uses» в текстах сценариев. Примером подобного конфигурационного файла является файл «C:/Sybcom/Automation/KASKAD/3.16/config/config.level«.

[ctrl]
LoadCtrlLibs = «std.ctl, libCTRL.ctl, hosts.ctl, va.ctl, archiv.ctl, mp.ctl»
LoadCtrlLibs = «sdSymbolDynamics.ctl»
LoadCtrlLibs = «panel.ctl»
LoadCtrlLibs = «cns.ctl»
ctrlDLL = «CtrlCNS»

[ui_extend]
LoadCtrlLibs = «para.ctl, ep.ctl, csg.ctl, ngedi.ctl, ini.ctl»

[ui]
LoadCtrlLibs = «as.ctl, es.ctl, libCTRL.ctl, STD_Symbols.ctl, STD_ComplexSymbols.ctl, da.ctl»
LoadCtrlLibs = «login.ctl, panel.ctl, std.ctl, dist.ctl»
LoadCtrlLibs = «hosts.ctl, va.ctl, ac.ctl, dpGroups.ctl»
LoadCtrlLibs = «pager.ctl, archiv.ctl, Clk.ctl, tools.ctl, mp.ctl, ax.ctl»
LoadCtrlLibs = «pmon.ctl, userMan.ctc»
LoadCtrlLibs = «pt.ctl, _consts.ctl»
LoadCtrlLibs = «ptms.ctl, ptnavi.ctl»
LoadCtrlLibs = «sdSymbolDynamics.ctl»
LoadCtrlLibs = «cns.ctl»
LoadCtrlLibs = «cnsTree.ctl»
LoadCtrlLibs = «cnsEditor.ctl»
ctrlDLL = «CtrlCNS»

[event]
LoadCtrlLibs = «STD_Symbols.ctl»

[ascii]
LoadCtrlLibs = «ASCIILib.ctl, da.ctl, mp.ctl, para.ctl»

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

ПРИМЕЧАНИЕ

Как указано в разделе «Добавление симулятора процесса», сценарии обоих симуляторов данного учебного проекта выполняются одним менеджером сценариев. Определение сценариев, которые должны выполняться интересующим менеджером сценариев, осуществляется в консоли при помощи параметров запуска менеджера. При необходимости выполнения одним менеджером сценариев нескольких сценариев, интересующие сценарии должны быть перечислены в файле перечня сценариев (в файле с расширением .lst), а данный перечень сценариев должен быть указан в параметрах запуска менеджера (например, «-f sim.lst», см. рисунок в разделе «Добавление симулятора процесса»).

Примечания и ограничения

  • Расширение файла сценария указывать не обязательно. По умолчанию сценарии просматриваются в следующем порядке: 1. заданное имя
    2. <Имя>.ctl
    3. <Имя>.ctc
  • Сценарий может быть вызван с дополнительными параметрами. Эти параметры не должны содержать пробелов. Любые пробелы будут интерпретироваться как разделители и переданная строка будет восприниматься как несколько параметров.
    Например: «Te st» будет передано как два параметра: «Te» и «st» соответственно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *