Sequential Function Chart (SFC) („Sekwencyjny Schemat Funkcjonalny”;niem.Ablaufsprache (AS) – „sekwencyjny język”) –wizualny język programowania dlasterowników PLC. Jest jednym z pięciu języków normyIEC 61131-3. SFC jest rozwinięciem językaGRAFCET i opiera się na strukturzesieci Petriego. W pakiecie STEP7 koncernuSiemens język ten występuje pod nazwą S7-GRAPH.
Program w SFC składa się zkroków, do których są przypisane akcje, orazprzejść, łączących kroki. Do przejść są przypisane warunki logiczne. Przejście SFC może mieć jeden lub więcej kroków wejściowych oraz jeden lub więcej kroków wyjściowych. W trakcie wykonania programu każdy krok może być aktywny lub nieaktywny. Jeden lub więcej kroków (kroki inicjujące) są aktywowane przy rozpoczęciu wykonania programu. Kilka kroków może być aktywnych jednocześnie, dzięki czemu SFC pozwala opisywaćalgorytmy równoległe sterowania logicznego. Jeśli wszystkie kroki wejściowe danego przejścia są aktywne oraz przypisany do niego warunek jest spełniony, wówczas wszystkie kroki wejściowe przestają być aktywne, a wszystkie kroki wyjściowe tego przejścia stają się aktywne.Akcje, przypisane do kroków, mogą być opisane jako proste operacje na zmiennych logicznych albo jako podprogramy, wyrażone w języku SFC,ST lub innych językach normy IEC 61131-3. Do akcji są przypisanekwalifikatory działań, które określają sposób, w jaki akcja będzie wykonywana – ona może być m.in. wykonana jednokrotnie przy aktywizacji kroku, cyklicznie dopóki odpowiedni krok jest aktywny, lub z opóźnieniem.
Czasami SFC jest rozumiany nie jako osobny język programowania, a jako sposób organizacji programów, napisanych w innych językach; tak, według sformułowaniaPolskiego Komitetu Normalizacyjnego, SFC to „zbiór elementów graficznych i równoważnych im elementów tekstowych ... zdefiniowany w celu utworzenia wewnętrznej organizacji programów i bloków funkcyjnych sterownika programowalnego”[1].
Do programowania sterownikówSIMATIC są stosowane dwie wersje języka SFC, opracowane przez firmę Siemens. Są to wyżej wymieniony S7-GRAPH, stosowany do programowania sterowników SIMATIC S7-300 i S7-400, oraz wersja wykorzystywana w systemie programowania dla SIMATIC PCS 7. SFC jest szeroko stosowany w systemachSCADA.
Na wykorzystanie języka SFC pozwala szereg środowisk programistycznych dla przemysłowych sterowników, takich jakCODESYS lubISaGRAF.