Язык последовательных функциональных диаграмм (SFC)
Программа, написанная на этом языке, напоминает компьютерную блок-схему, которую многие помнят из институтской программы. За начальный шагом «начальный шаг» (точка начала диаграммы) идет последовательность шагов и переходов. Концепция SFC проста: шаг с внутренним кодом, написанным на любом языке программирования, активен до тех пор, пока не активен переход, следующий за ним. При активировании перехода, текущий шаг отключается, а следующий за переходом шаг становится активным. Переход также имеет код, проверяющий, что выполнены необходимые условия, позволяющие программе перейти к следующему шагу.
Рис. 3. В этом примере, программа на языке SFC состоит из диаграммы в виде блоков
и горизонтальных линий слева и содержимое одного из блоков на языке ST справа.
В программе на языке SFC, блоки называются шагами, а небольшие горизонтальные
линии называются переходами. Как блоки, так и переходы включают в себя
небольшие части кода.
Эту форму программирования легче всего использовать для приложений с повторяющимися многошаговыми процессами или последовательностью повторяющихся процессов. Примером может быть приложение, которое выбирает предмет в одной месте, проводит его по заданному пути и переносит в другое место. Поскольку обычно активен только один участок кода, и нужно следить только за одним переходом, проверка условий и управление процессом может быть достигнуто без больших сложностей. Язык очень подходит инженерам по обслуживанию, поскольку нагляден, и сегментация кода облегчает поиск неисправностей. Например, если механизм в программе перемещения предметов подходит к предмету, но не берет его, то инженер по обслуживанию или разработчик может найти в программе переход между шагом «переместиться к предмету» и шагом «взять предмет» и проверить, что мешает протеканию процесса.
К недостаткам языка относится то, что такой стиль программирования подходит не для всех приложений, поскольку структура, которая накладывается на программу, может ее излишне усложнить. Нужно потратить много времени на подготовку и планирование, прежде чем начать программировать, иначе функциональная диаграмма будет запутанной, и ее будет сложно отслеживать.
Дополнительные ресурсы, требующиеся для такого программирования, приводят к замедлению процесса написания программы по сравнению с другими языками. Наконец, нужно принять во внимание невозможность конвертирования в другие языки. Например, языки IL, FBD и LD можно легко конвертировать друг в друга, позволяя воспроизводить участки кода в виде, наиболее удобном для пользователя. Язык ST также можно конвертировать в любой из этих трех языков. Но язык SFC конвертировать нельзя. Таким образом, этот язык подходит только для пользователей, которые его хорошо знают, потому что его нельзя будет воспроизвести в другом формате, или для приложений и у которых аппаратная часть имеет достаточную скорость и объем памяти, необходимый для хранения и выполнения программ на языке SFC.