Редактирование алгоритма SFC

При создании SFC-программы первый SFC-шаг c заданным по умолчанию именем создается автоматически. Чтобы добавить или удалить элементы алгоритма, нужно нажать ЛК на соответствующих кнопках панели инструментов SFC-редактора:

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

   Для добавления SFC-условия нужно нажать ЛК на начальном шаге и, удерживая кнопку нажатой, переместить курсор на конечный шаг, после чего кнопку мыши отпустить.

Данное свойство можно использовать для создания цикла, если в качестве начального и конечного шагов использовать один и тот же шаг.

Пример создания цикла в SFC-программе

В данном примере в SFC-программе создается цикл. В качестве счетчика цикла выступает переменная VAR_000.

Создадим новую программу, выберем для нее язык SFC и зададим следующие переменные:

Выделим на диаграмме начальный шаг и нажмем кнопку  . Диаграмма SFC примет следующий вид:

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

Используя язык Техно ST, зададим шаги и условия следующим образом:

SFC_STEP "Начальный шаг

VAR VAR_000 : INT := 10; END_VAR

VAR VAR_001 : INT ; END_VAR

VAR_000 = VAR_000 + 1; //увеличение

//счетчика на 1

VAR_001 = VAR_001 + 2; //выполняемое в

//цикле действие

END_SFC_STEP

SFC_TRANSITION "ПЕРЕХОД 0" FROM( INITIAL_STEP ) TO( STEP_1 )

VAR VAR_000 : INT := 10; END_VAR

VAR VAR_001 : INT ; END_VAR

VAR_000 == 20

END_SFC_TRANSITION

SFC_TRANSITION "ПЕРЕХОД 1" FROM( INITIAL_STEP ) TO( INITIAL_STEP )

VAR VAR_000 : INT := 10; END_VAR

VAR VAR_001 : INT ; END_VAR

VAR_000 < 20

END_SFC_TRANSITION

SFC_STEP "ШАГ 1

VAR VAR_000 : INT := 10; END_VAR

VAR VAR_001 : INT ; END_VAR

VAR_001=200; //действие после выхода

//из цикла

END_SFC_STEP

В этом примере выполнение шага Начальный шаг повторяется 10 раз (пока счетчик растет от 10 до 20). Данный алгоритм работает аналогично следующему коду Техно ST:

VAR VAR_000 : INT :=10; END_VAR

VAR VAR_001 : INT; END_VAR

REPEAT VAR_001 = VAR_001 + 2; VAR_000 = VAR_000 + 1; UNTIL VAR_000 < 20 END_REPEAT;

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

Данное свойство используется для более структурированного представления алгоритма. Например, при выполнении следующей диаграммы условие ПЕРЕХОД 1 будет проверяться только после выполнения шагов ШАГ 1, ШАГ 2 и ШАГ 3.

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

Для удаления параллельного шага нужно выделить его и нажать кнопку  или клавишу Del.

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

   Для удаления шага и всех связанных с ним SFC-условий нужно выделить этот шаг и нажать кнопку  . Удалить можно только те шаги, которые не имеют переходов к другим шагам (из таких шагов не выходят линии со стрелкой).