Příkaz IF je možné použít pro všechny druhy proměnných, bitové stavy, hodnoty proměnných, skoky, prostě všude kde v programu potřebujeme něco rozhodnout. Pro pochopení a ukázku jsme si vybrali proměnnou, která mění hodnotu od 1 do padesáti každých 100ms a podle aktuální hodnoty rozhodneme, co v programu uděláme.
Aktuální proměnná ve žlutém poli, podle její hodnoty se rozsvítí jednotlivé LED.
TIA Portal V15.1 online zobrazení PLC programu. Takto to bude vypadat na závěr lekce.
Jestliže nemáme HMI, klidně si těch několik proměnných vrazíme do VAT tabulky proměnných. V MW12 budeme mít hodnotu 1 .. 50 z MW22, v MW14 předvolbu pro rozhodnutí a použijeme bitové proměnné m11.0 až m11.3. Příkaz IF přesně odpovídá logice českého překladu „když, pokud“.
Začneme již rovnou v SCL, porovnávat s LADDER již není nutné, to jsme si objasnili v minulých dílech. Příkaz IF se pojí s dalším doplněním jako THEN, ELSE a ELSIF, záleží jak hluboce chceme rozhodovat, nebo kolik výsledků chceme. Stačí jej přetáhnout myší do programového bloku.
A doplníme podmínky. Jako první bude rozhodnutí, zda proměnnou z generátoru čísla „out_gen“ přesunout do MW12. Tedy „IF“ - když bude vstup I10.2 v hodnotě logické „H“ - true, pak přesuň hodnotu proměnné do MW12. Jestliže podmínka splněna nebude, řádek 10 se neprovede. IF končí vždy příkazem „END_IF“.
Abychom si byli jisti že merkry m11.x máme v definovaném stavu, že si je třeba někde předtím v programu nějak neměníme, na řádku 8 si je nastavíme do hodnoty logické „L“.
Takto to následně vypadá online v TIA Portal.
Klikněte na obrázek pro zvětšení
Přidáme nyní další podmínku na řádku 16, ale již uděláme dvě rozhodnutí. Do MW14 si natvrdo napíšeme hodnotu 25, pokud řádek „zaremujeme“, můžeme si tuto úroveň nastavovat z HMI panelu. A „IF“ - když, pokud je hodnota v MW12 větší než hodnota v MW14, „THEN“ - pak nastavíme m11.0 na úroveň „H“. „ELSE“ - jinak na úroveň „H“ nastavíme m11.1. Znamená to že podle splnění podmínky řádku 16 vykoná program řádek 17, nebo řádek 18. Končíme opět příkazem „END_IF“. Na tohle zakončení nezapomeneme, TIA Portal nám místo pro „END_IF“ označí.
Příkazy „IF“ můžeme psát z paměti, nebo je přetáhnou myší z knihovny základních instrukcí. Když si je vezmeme z knihovny, tak se nám celá příkaz napíše i s nápovědou co kde dopsat, tedy podmínky a příkazy. Řádek 25 .. 34. Ale klidně si je napíšeme sami po jednotlivých řádcích a vždy si doplníme co potřebujeme, jako nyní další podmínku „ELSIF“ na řádku 19 pro další merkr m11.3.
Takto to vypadá online v PLC programu. Jako obvykle tento PLC program je ke stažení na odkazu níže v závěru.
Klikněte na obrázek pro zvětšení
Aktuální hodnota ve žlutém poli podle její hodnoty se rozsvítí jednotlivé LED. Tedy přesně rozhodnutí v programu co udělat, jak dále pokračovat, nebo přerušit vykonání nějaké funkce. Místo rozsvícení LED si pak v PLC programu můžeme napsat jakékoliv příkazy.
Jak příkazy vypadají online, se podívejte na naší videoukázce:
https://www.youtube.com/watch?v=wLvay4_fgm4&feature=youtube
Jaroslav Blažek
Doplňující odkazy k článku:
Uvedený PLC program včetně HMI pro TIA Portal V15.1 si stáhněte tady. (registered users only)
Nový systémový manuál S7-1200 z 08/2018 je tady.
TIA Portal pro Simatic S7-1200/1500, více tady.