Peräkkäinen toimintakaavio - Sequential function chart
Sequential function chart ( SFC ) on graafinen ohjelmointikieli, jota käytetään ohjelmoitaviin logiikkaohjaimiin (PLC). Se on yksi viidestä IEC 61131-3 -standardin määrittelemästä kielestä . SFC-standardi määritellään seuraavasti : Toimintakaavioiden valmistelu ohjausjärjestelmille , ja se perustui GRAFCET: ään (itse perustuu binäärisiin Petri-verkkoihin ).
Sitä voidaan käyttää prosessien ohjelmointiin, jotka voidaan jakaa vaiheisiin.
SFC: n pääkomponentit ovat:
- Vaiheet, joihin liittyy toimia;
- Siirtymät ja niihin liittyvät logiikkaolosuhteet;
- Suunnatut linkit vaiheiden ja siirtymien välillä.
SFC-kaavion vaiheet voivat olla aktiivisia tai passiivisia. Toiminnot suoritetaan vain aktiivisille vaiheille. Vaihe voi olla aktiivinen yhdellä kahdesta motiivista:
- Se on ohjelmoijan määrittelemä ensimmäinen vaihe.
- Se aktivoitiin skannausjakson aikana eikä sitä deaktivoitu sen jälkeen.
Vaiheet aktivoidaan, kun kaikki sen yläpuolella olevat vaiheet ovat aktiivisia ja yhdistävä siirtymä on superable (ts. Siihen liittyvä ehto on totta). Kun siirtyminen on suoritettu, kaikki yllä olevat vaiheet deaktivoidaan kerralla ja kun kaikki alla olevat vaiheet aktivoidaan kerralla.
Vaiheisiin liittyvät toiminnot voivat olla erityyppisiä, joista tärkeimmät ovat Jatkuva (N), Joukko (S) ja Nollaa (R). Asetuksen ja palautuksen ilmeisen merkityksen lisäksi N-toiminto varmistaa, että sen kohdemuuttuja asetetaan arvoon 1 niin kauan kuin vaihe on aktiivinen. SFC-säännössä todetaan, että jos kahdella vaiheella on N-toiminta samassa kohteessa, muuttujaa ei saa koskaan nollata arvoon 0. On myös mahdollista lisätä LD ( Ladder Diagram ) -toiminnot SFC-ohjelman sisälle (ja tämä on tavanomainen tapa, esimerkiksi työskennellä kokonaislukumuuttujien kanssa).
SFC on luonnostaan rinnakkainen kieli siinä, että useat ohjausvirrat - Ohjelman organisaatioyksiköt (POU) standardin kielellä - voivat olla aktiivisia kerralla.
Kielen epätyypilliset laajennukset sisältävät makrovaikutuksia: ts. Toimintaohjelmayksikön sisällä olevat toimet, jotka vaikuttavat toisen ohjelmayksikön tilaan. Tärkein tällainen makroaktiivisuus on "pakottaminen", jossa POU voi päättää toisen POU: n aktiiviset vaiheet.