Za prvé přerušení neboli interrupt, těch existuje v každém PLC a programování celá řada. Jsou přesně rozděleny podle funkce, počínaje hardwarovou událostí pro přerušení, přes softwarové až po časové přerušení programu. Tím je řečeno jednoduše o co se jedná. Jakmile je splněna podmínka pro přerušovací událost, CPU přeruší vykonávání PLC programu a ihned začne vykonávat příkaz, nebo příkazy, které jsou pro tuto událost definovány a programovány. Typický bude příklad přerušení programu při změně signálu na prvním digitálním vstupu PLC, proto abychom zachytili a okamžitě reagovali změnu na logickou „H“ nebo „L“.
Protože se jedná o hardwarové přerušení na nástupnou a sestupnou hranu digitálního signálu na vstupu CPU I0.0, budeme jej definovat v hardwarové konfiguraci TIA Portal. Přerušení je možné definovat pro kterýkoliv vstup, my použijeme zmíněný první kanál a uvolníme detekci na nástupnou a také na sestupnou hranu. Pro každou událost - hardwarový interrupt, přiřadíme programový blok OB41 a OB42. Ten je zde vidět podle názvu.
Klikněte na obrázek pro zvětšení
Nebudeme se zabývat nastavením vstupního filtru pro digitální vstup, to až ve skutečné aplikaci, ani prioritou, což jsou vlastnosti, které využijeme při složitějších programech.
Tyto přerušovací bloky si vytvoříme před definováním události a nebo až v uvedených vlastnostech, je to celkem jedno. Taky si oba bloky přejmenujeme, abychom to měli srozumitelné.
Co budeme s touto událostí dělat? Jednoduše na zmíněný vstup připojíme obyčejné tlačítko a budeme měřit, jak dlouho bude stisknuto. Proto v každém programovém bloku přerušení - OB41 a OB42 přečteme a zapíšeme systémový čas CPU. Ve wordu MW14 máme jen indikaci, že přerušení skutečně nastalo, neboť tento OB41 se při splněné podmínce pro přerušení programu ihned vykoná, ovšem jen jednou. Proto si zapíšeme čas, kdy událost nastala, jednou v OB41 při nástupní hraně a podruhé v OB42 při sestupní hraně pulsu na vstupu I0.0.
Datový blok DB25 slouží pro ukládání hodnot a pro vykonání matematické operace, jak uvidíme dále.
Kdekoliv v PLC programu pak pro srozumitelnost znovu přepíšeme hodnotu času někam do paměti, abychom ji viděli stále. V přerušovacím OB ji totiž moc nevidíme, nejede online. Pak již stačí jen patřičnou systémovou funkcí oba časy od sebe odečíst.
Klikněte na obrázek pro zvětšení
Funkce se jmenuje T_DIFF a v kontextové nápovědě je velmi podrobně popsána. Výsledek je pak ve výstupu OUT ve formátu TIME. Ten si zobrazíme na HMI panelu.
Klikněte na obrázek pro zvětšení
Asi takto 5,963 sekund, což je doba, po kterou jsme měli stisknuté patřičné černé tlačítko.
Jasně že je vše vidět i ve VAT tabulce, ale HMI je HMI. Pro pokusy nemusíme zapínat TIA Portal, ale vše uvidíme online na displeji.
Například nejkratší stisknutí černého tlačítka. Dá se to dosáhnout, podívejte se na video v závěru.
Musíme počítat s drobnou nepřesností vzhledem k nastavení filtru pro digitální vstup, ale to nevadí, jde o princip, ve skutečné aplikaci bychom v případě nutnosti tyto věci ošetřili.
Nebo odhadneme stisk na dvě sekundy? Trochu vedle.
Jak nám to měří s přerušením, to se podívejte na videoukázce:
https://www.youtube.com/watch?v=U-cwM8LFOGc&feature=youtube
Závěr:
Pokud si přerušení vyzkoušíte s něčím podobným jako tahle ukázka, zcela jasně si zapamatujete jak to vlastně funguje a k čemu je to dobré. Jasně že existuje spousta aplikací, kde přerušení není vůbec potřeba, ale i naopak.
Jaroslav Blažek
Doplňující odkazy k článku:
Nový systémový manuál S7-1200 z 08/2018 je tady.
TIA Portal pro Simatic S7-1200/1500, více tady.