Код

<< Click to Display Table of Contents >>

Navigation:  Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Скрипт >

Код

На данной странице происходит написание алгоритма работы скрипта.

В правой части панели находится панель на которой происходит формирование входов и выходов ФБ Скрипт. Здесь назначается Имя параметра, определяется его тип ( Запись, Чтение, Чтение/Запись), выбирается Тип его значения (Вещественный, Логический, Строковый и т. д.).

Sluzhebnie_Skript_Kod

Добавление осуществляется нажатием на кнопку Добавить или через контекстное меню. При нажатии Добавить появляется окно Добавление внешнего параметра, в котором вводится имя переменной, тип и тип данных, а также количество добавляемых переменных.

Sluzhebnie.Skript.Kod1

При добавлении через контекстное меню данное окно не появляется и добавляется переменная типа "Чтение" с типом данных "Вещественный" (при необходимости, настройки переменной можно изменить после добавления). Через контекстного меню также можно удалять и переименовывать параметры.

Вставка имени параметра в код скрипта осуществляется двойным щелчком мыши.  

Sluzhebnie_Skript_Spisok_parametrov

 

В левом верхнем поле представлен Редактор для ввода текста программы.

В начале находится секция 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():

Sluzhebnie_Skript_Redaktor

 

В теле класса можно объявлять переменные, чтобы их использовать в процессе работы. Они будут сохраняться между вызовами Execute:

Sluzhebnie_Skript_Schetchik

Если переменная будет обращаться ко параметрам (например будет выполняться присваивание значения входа), то при объявлении такой переменной нужно дописывать к типу данных '?' (например int?). Это означает, что данная переменная является переменной типа Nullable - то есть значение переменной может быть неопределено. Все параметры имеют такие типы (int?, double?), поэтому при записи арифметических операций с параметрами нужно учитывать, что тип этой операции тоже может быть неопределен.

 

В нижнем поле отображается результат компиляции программы:

Sluzhebnie_Skript_Kompilyaciya

 

Кнопка

Назначение

Компилировать

Компилирует написанный код. Ошибки выявленные при компиляции выдаются в нижнем поле

Вызывать DoAction

Компилирует код и вызывает метод DoAction (если он присутствует в скрипте)

Экспортировать

Экспортирует скрипт для использования в другом проекте или для переноса в библиотеку.

Импортировать

Импортирует скрипт.

 

Метод DoAction может вызываться только по этой кнопке, в режиме исполнения он не используется. Он спроектирован для автоматизации разработки проекта в среде MasterSCADA (в нем можно выполнять различные операции с проектом).

Для автоматизации разработки проектов предоставляется возможность обращения к объектной модели MasterSCADA в методе "DoAction". Обращение к объектной модели MasterSCADA может нарушать безопасность выполнения MasterSCADA, поэтому налагает на разработчиков ответственность за надежность кода. Компания МПС Софт не гарантирует неизменность программных интерфейсов, предлагаемых для автоматизации, в связи с непрерывным процессом совершенствования продукта, поэтому при получении новой версии MasterSCADA необходимо обратиться с запросом на совместимость ранее использовавшихся интерфейсов, либо самостоятельно сравнить старое и новое описание. Для доступа к проекту можно использовать свойства "HostFB.TreeItemHlp.Project". Пример автоматизированной разработки проекта можно посмотреть в проекте "ДемонстрацияСкрипта". Частичное описание объектной модели MasterSCADA находится в папке MasterSCADA в папке "Разработка ФБ и драйверов" - "Объектная модель MasterSCADA". По запросу могут быть предоставлены описания дополнительных интерфейсов, не вошедших в стандартное описание.

 

Полезными могут оказаться следующие ссылки:

"Основы языка C#"

"Руководство по программированию в C#"

"Руководство и примеры"