ФБ на SFC никогда не заканчивается в принципе. Если он прошагал по всем шагам, то должен вернуться на начальный шаг. В конце должен быть переход на начальный шаг. Он ставится по умолчанию при создании нового ФБ.

Когда вызывается ФБ на SFC, то это совершенно не означает что он пройдет по всем шагам и отдаст управление. Он выполнит только шаги, которые имеют маркер активности и сразу отдаст управление вызывающему POU. При этом он проверит условия переходов. Если некий переход разрешен, то маркер(ы) активности перейдет на соотв-й шаг, который будет работать при след вызове. Положение маркеров запоминается между вызовами.

Т.е. SFC это машина состояний. Работает по тактам = вызовам. Она постоянно стоит в некотором состоянии и переходит из одного состояния в другое по условиям переходов. Но выполнение никогда не заканчивается, как собственно и вся программа ПЛК. Это же не вычислительный алгоритм: высчитал результат – закончил, выключился из розетки