<< Click to Display Table of Contents >> Navigation: Программирование в MasterSCADA 4D > Редактор C# > Программы C#. Примеры |
Рассмотрим основные особенности работы с редактором C# в MasterSCADA 4D на простых примерах.
В дереве объектов создадим программу C#. Добавим в нее три параметра типа BOOL:
•Старт и Стоп на клеммник входов
•Состояние на клеммник выходов
В теле функции, которая добавляется автоматически при создании программы пишем код:
{if (Старт)
{
Состояние = true;
}
else if (Стоп)
{
Состояние = false;
}
Свяжем параметры программы с графическими элементами в окне:
В режиме исполнения получим результат:
Поменяем имя программы в ее панели свойств. Назовем ее Триггер.
Рассмотрим пример, когда переключение триггера должно происходить с задержкой, которая может быть изменена в режиме исполнения. В данном примере рассмотрим способ вызова ФБ, соответствующих стандарту МЭК 61131-3.
Продолжим работу с программой описанной в предыдущем примере.
Добавим во входной клеммник программы параметр Задержка типа Time.
Для решения задачи нам потребуется ввести локальную переменную par типа BOOL. В отличии от других редакторов, где локальная переменная объявляется на соотвествующей вкладке легенды, в программе C#, они объявляются непосредственно в теле программы:
Важно! Локальные переменные объявляются вне функции public override void Execute(). В противном случае инициализации переменной будет происходить на каждом цикле программы.
Для решения поставленной задачи воспользуемся таймерами TON, TOF.
Перетащим их в поле программы.
В тексте программы получим функцию обеспечивающую вызов функционального блока: имя_ФБ/Execute(). После этого ФБ появятся на вкладке Локальные:
Чтобы обратится к тому или иному входу или выходы ФБ в программе C# нужно написать: Имя_ФБ.Имя_параметра
Далее изменим текст программы таким образом:
bool par = false; //объявление локальной переменной
public override void Execute()
{
if (Старт)
{par = true;}
else if (Стоп)
{par = false;}
TON_1.PT = Задержка; //присвоение входной переменной ФБ параметру программы
TON_1.IN = par;
TON_1.Execute(); //выполнение ФБ
TOF_1.PT = Задержка;
TOF_1.IN = par;
TOF_1.Execute();
if (par) { Состояние = TON_1.Q;} //присвоение параметру программы выходной переменной ФБ
else {Состояние = TOF_1.Q;}
}