<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Скрипт > Код |
На данной странице происходит написание алгоритма работы скрипта.
В правой части панели находится панель на которой происходит формирование входов и выходов ФБ Скрипт. Здесь назначается Имя параметра, определяется его тип ( Запись, Чтение, Чтение/Запись), выбирается Тип его значения (Вещественный, Логический, Строковый и т. д.).
Добавление осуществляется нажатием на кнопку Добавить или через контекстное меню. При нажатии Добавить появляется окно Добавление внешнего параметра, в котором вводится имя переменной, тип и тип данных, а также количество добавляемых переменных.
При добавлении через контекстное меню данное окно не появляется и добавляется переменная типа "Чтение" с типом данных "Вещественный" (при необходимости, настройки переменной можно изменить после добавления). Через контекстного меню также можно удалять и переименовывать параметры.
Вставка имени параметра в код скрипта осуществляется двойным щелчком мыши.
В левом верхнем поле представлен Редактор для ввода текста программы.
В начале находится секция using, в данной секции производится определение пространства имен – какие свойства, классы и методы подключенных библиотек будут доступны из кода.
Затем следует определение класса:
public partial class ФБ : ScriptBase
Затем происходит объявление метода (метод – это функция, принадлежащая классу) Execute:
public override void Execute()
Метод Execute вызывается, когда происходит опрос ФБ - изменилось значение на одном из входов при опросе по изменению, или пришло время опроса если опрос периодический. То есть код размещенный в данном методе будет выполняться при опросе ФБ, поэтому пользовательский код, в основном пишется в теле данного метода (но можно создать собственные классы и вызывать их метода Execute).
Также в класс можно добавить еще 3 метода:
Метод |
Описание |
public override void Start() |
Метод вызывается один раз при старте режима исполнения. В нем можно произвести инициализацию переменных. |
public override void Stop() |
Метод вызывается один раз при остановке режиме исполнения. В нем можно выполнить завершить необходимые процессы. |
public override void DoAction() |
Метод ручного вызова. Метод вызывается при нажатии на кнопку "DoAction" в секции кнопок. Данный метод нужен для ручного вызова кода - например если код реализует автопостроение проекта. |
Пример кода в процедуре Execute():
В теле класса можно объявлять переменные, чтобы их использовать в процессе работы. Они будут сохраняться между вызовами Execute:
Если переменная будет обращаться ко параметрам (например будет выполняться присваивание значения входа), то при объявлении такой переменной нужно дописывать к типу данных '?' (например int?). Это означает, что данная переменная является переменной типа Nullable - то есть значение переменной может быть неопределено. Все параметры имеют такие типы (int?, double?), поэтому при записи арифметических операций с параметрами нужно учитывать, что тип этой операции тоже может быть неопределен.
В нижнем поле отображается результат компиляции программы:
Кнопка |
Назначение |
Компилировать |
Компилирует написанный код. Ошибки выявленные при компиляции выдаются в нижнем поле |
Вызывать DoAction |
Компилирует код и вызывает метод DoAction (если он присутствует в скрипте) |
Экспортировать |
Экспортирует скрипт для использования в другом проекте или для переноса в библиотеку. |
Импортировать |
Импортирует скрипт. |
Метод DoAction может вызываться только по этой кнопке, в режиме исполнения он не используется. Он спроектирован для автоматизации разработки проекта в среде MasterSCADA (в нем можно выполнять различные операции с проектом).
Для автоматизации разработки проектов предоставляется возможность обращения к объектной модели MasterSCADA в методе "DoAction". Обращение к объектной модели MasterSCADA может нарушать безопасность выполнения MasterSCADA, поэтому налагает на разработчиков ответственность за надежность кода. Компания МПС Софт не гарантирует неизменность программных интерфейсов, предлагаемых для автоматизации, в связи с непрерывным процессом совершенствования продукта, поэтому при получении новой версии MasterSCADA необходимо обратиться с запросом на совместимость ранее использовавшихся интерфейсов, либо самостоятельно сравнить старое и новое описание. Для доступа к проекту можно использовать свойства "HostFB.TreeItemHlp.Project". Пример автоматизированной разработки проекта можно посмотреть в проекте "ДемонстрацияСкрипта". Частичное описание объектной модели MasterSCADA находится в папке MasterSCADA в папке "Разработка ФБ и драйверов" - "Объектная модель MasterSCADA". По запросу могут быть предоставлены описания дополнительных интерфейсов, не вошедших в стандартное описание.
Полезными могут оказаться следующие ссылки: