Редактор C#

<< Click to Display Table of Contents >>

Navigation:  Программирование в MasterSCADA 4D >

Редактор C#

Редактор C# представляет собой текстовый редактор, в котором можно создавать программы на языке C#, которые будут работать  в исполнительной системе. Если создать функциональный блок на языке C#, то его можно использовать в программах, написанных на других языках и других программах написанных на языке C#.

Важно! Для возможности работы С# программ в исполнительную систему должна входить опция MSRT4D-C#. Данная опция включена в базовый функционал лицензий Professional и Enterprise.

Возможности редактора С#:

Работать с параметрами MasterSCADA 4D внутри программы, аналогично программам стандарта МЭК 61131-3. Можно устанавливать связи между параметрами Т.е. можно использовать те же типы данных и устанавливать те же связи параметров программ и с другими элементами проекта, а также обращаться к глобальным переменным.

Работать со сложными типами данных.

Внутри программ С# можно использовать только ФБ, созданные в других редакторах. Использование функций в программах C# запрещено.

Создавать ФБ и использовать в других программах C#

Подключать и использовать сторонние dll

Для использования этих возможностей разработчик проекта должен обладать навыками программирования на языке C#.

Создание программы или ФБ

В проекте можно создать новую программу в дереве системы или в дереве объектов или новый ФБ в пользовательской библиотеке.

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

Контекстное меню объекта:

redactor_C_1

Контекстное меню библиотеки Локальная:

redactor_C_2

Добавится новый элемент. Имя элемента по умолчанию Программа 1 или ФБ 1 соответственно. Имя не будет включать название языка, т.к. в именах программ недопустимо использовать специальные символы. Имя затем можно будет сменить в панели свойств программы или ФБ. Автоматически откроется редактор.

Вид редактора:

redactor_C

В текстовом поле редактора создается программа.

Важно! Редактор C# регистрозависимый. В нем не используется TRUE, а только true.

По умолчанию добавлена в текст функция public override void Execute(), которая позволяет выполнять программы C# периодически, т.е. алгоритм внутри функции будет выполняться с заданным периодом задачи. По умолчанию программы C# назначены в задачу родительского объекта, т.е. в основную задачу. Место и способ исполнения программы можно поменять в панели свойств.

Важно! Программы и ФБ созданные в редакторе C# не будут работать в задаче экрана.

Дополнительные функции C#

Функция public override void Init() - будет вызываться один раз при старте, в отличии от функции public override void Execute(). Рассмотрим другие функции, которыми можно пользоваться внутри редактора C#:

LogMessage - производит запись сообщения в лог исполнительной системы. Пример: LogMessage("Текст сообщения");

GetValue - получает значение параметра по имени. Пример: var value = (int)GetValue("Параметр_1");

SetValue - устанавливает значение параметра по имени. Пример: SetValue("Параметр_1", 5);

Связь с параметрами проекта

Связь с параметрами проекта и параметрами программы создается также как и в других редакторах, через клеммники.

При создании параметров важно следить за типами данных. В таблице ниже приведено соответствие типов параметров MasterSCADA 4D и параметров C#.

 

Тип данных MasterSCADA 4D

Тип данных C#

BOOL

BYTE

SINT

нет

нет

LREAL

REAL

DINT

UDINT, DWORD

LINT

ULINT

INT

UINT, WORD

нет

STRING

нет

DATE

DateTime date1 = new DateTime(2015, 7, 20); // год - месяц - день

DATE_AND_TIME

DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // год - месяц - день - час - минута - секунда

TIME

TimeSpan

TIME_OF_DAY

TimeSpan

Перечисление

enum

Диапазон

нет

REF_TO

object

ANY

object

В тексте программ можно обращаться к глобальным параметрам узла, но обращение к ним  будет отличаться от принятого обращения в языке ST. Подробное описание в разделе Программы C#. Использование глобальных переменных.

Порядок вызова ФБ, соответствующих стандарту МЭК 61131-3 описан в разделе Программы C#. Примеры

Смотрите также: