V předchozím díle jsem nastínil, co to vlastně Logo! je, jaké jsou jeho výhody, nevýhody a jaký je princip jeho programování. V tomto článku bych rád znázornil nějakou základní myšlenku programování hlavně kombinační logiky.
Program samotný se podobně jako elektrické schéma skládá z nějakých bloků. Každý blok může, nebo nemusí mít nějaké parametry a paměť. Asi nejjednodušší a nejsnáze pochopitelné bloky jsou „digitální vstup“ a „digitální výstup„. Pokud je přivedeno napětí na příslušný hardwarový vstup modulu, je příslušný blok aktivní. Podobně to platí u výstupu – pokud na něj v programu přivedeme logický signál, hardware loga sepne výstupní relé, nebo tranzistor. U modulu s displejem lze jako vstupy použít i šipky (na jedné obrazovce v kombinaci s tlačítkem ESC). Na externím displeji jsou použitelná „F“ tlačítka a dále je možné použít i síťové vstupy a výstupy a interní posuvný registr. Jednotlivé vstupy, výstupy a bloky mezi nimi se propojují cestami, což je obdoba elektrických vodičů. V simulaci, nebo online režimu je aktivní signál (log. „1“) znázorněn červeně, neaktivní modře.
Na obrázku níže jsou tři vstupy (digitální vstup I1, šipka nahoru C1 a funkční tlačítko F1) přivedeny do bloku logického součtu (B001). Pokud je jakýkoliv z těchto tří vstupů aktivní, jsou sepnuty výstupy Q1 a Q2 do stavu ON a dále je zapnuto bílé podsvícení displeje (M25). Blok X1 slouží jako případné zakončení bloku, který je průběžný. U výstupu je zbytečný, ale např. textovou zprávu na displej, nebo čítač je nutné takto zakončit. Pevně dané logické hodnoty slouží buď k trvalému sepnutí nějakého výstupu (i když pro to nevidím důvod), nebo jako logická hodnota např. pro čítače apod.
Stavy vstupů lze kombinovat pomocí několika základních logických funkcí. Zjednodušeně řečeno – logické funkce nahrazují spínací a rozpínací kontakty v elektronice. Spínací kontakty v sérii jsou logická funkce AND, paralelní kontakty jsou logická funkce OR, rozpínací kontakt je NOT a tak dále… Starší stroje jsou většinou sestaveny komplet z reléové logiky (spínací, rozpínací kontakty) a několika časových relé. Všechny tyto funkce lze interně v modulu simulovat. Neobsazené vstupy bloků se neuvažují. Není tedy nutné např. u čtyřvstupového hradla AND připojovat nepoužité vstupy na logickou „1“.
Takovou specialitou je logická funkce AND(hrana) a NAND(hrana), která vygeneruje na svém výstupu logickou „1“ pouze při změně všech obsazených vstupů do log „1“ (AND hrana), nebo „0“ (NAND hrana). Detekují tedy náběžnou, nebo sestupnou hranu signálu. Proto je výstupní signál z modulu B004 logická „0“ – vstupy byly již sepnuty před delší dobou, náběžná hrana již proběhla.
Detekci náběžné/sestupné hrany lze použít např. u tlačítek (kde ji často používám), kde je i při delším stisku vytvořen pouze krátký impulz. Jako použití mně napadá třeba reset počítadla – stisknutím tlačítka dojde k resetu např. nějakého čítače, ale při delším držení tlačítka není čítač resetován stále dokola.
Často používaným blokem je i klopný obvod RS (samodržné relé – na obrázku níže blok B001), které přivedením impulzu na vstup „S“ sepne a přivedením impulzu na vstup „R“ vypne svůj výstup. Funkce je stejná jako u „samodrže“ z relé. Blok „Text zprávy“ (B002 a B004) umožňuje nastavit text na displej. Kromě jednoduchých textových zpráv je možné nechat zobrazit stavy různých časovačů a čítačů. Je také možné zobrazit bargraf, nebo textově reprezentovat logickou hodnotu.
Na obrázku níže jsou na klopný obvod RS připojeny vstupy I1 a I2. Přivedením impulzu z I1 dojde k sepnutí výstupu B001. Přivedením impulzu z I2 dojde k vypnutí výstupu (reset má přednost). U bloku se dá nastavit remanentní paměť (blok si poté pamatuje stav před vypnutím modulu). Výstup z klopného obvodu je přiveden ke dvou textovým zprávám B002 a B004. Zpráva B004 má oproti B002 negovaný vstup logickou funkcí NOT. Nemůže tedy dojít k současnému zapnutí obou zpráv. Pokud by k tomu došlo, zobrazovanou zprávu určuje její nastavená priorita (větší číslo má přednost). Výstupy z „textové zprávy“ musí být něčím zakončeny, jsou tedy použity markery, které mění podsvícení displeje. Možné je samozřejmě použít např. virtuální výstup.
U textových zpráv je vidět, že některé bloky mají hodně parametrů (zobrazeny zeleně). Ty lze nastavit kliknutím na příslušný blok s nastavením. Dobré je prozkoumat nápovědu, ve které jsou jednotlivé bloky podrobně popsány – zde je i výhoda české lokalizace softwaru.
Elektrický obvod předělaný na program
Na závěr překreslím jednoduché elektrické schéma do programu Loga. Jedná se samozřejmě jenom o jednu z variant a stejný obvod je jistě možné vytvořit různými způsoby. Jako schéma použiji „Blokování stisknutí druhého tlačítka“ z článku Reléové obvody. Princip obvodu je jednoduchý – pokud jedno z tlačítek sepne „svoje“ relé, není možné sepnout druhé relé. Obvod je nutné nejdříve resetovat. Více informací o tomto obvodu naleznete v příslušném článku.
Obvod lze nahradit například jednoduchým program nakresleným níže. Blok B003 (AND) vyhodnocuje zda je sepnut vstup I1 a zároveň jestli je „protější“ výstup Q2 vypnutý (kolečko u vstupu signalizuje negaci vstupu). Pokud je tomu tak, dojde k sepnutí klopného obvodu RS B001 a sepnutí výstupu Q1. Zároveň je přenesena informace o sepnutí Q1 na blok B004. To zamezí jeho sepnutí. Obdobné je to u spodní části programu. Sepnutím I3 dojde k resetu obou klopných obvodů RS (B001 a B002).
V tomto programu si lze povšimnout několika zajímavostí. Negování lze provést nejen použitím bloku NOT, ale i dvojitým kliknutím na příslušný vstup hradla. Negace je signalizována černým kolečkem. Výstupy z Q1 a Q2 jsou vedeny zpět na „začátek“ programu na vstupy. Tento „návrat“ (rekurzi) lze provádět pouze pomocí markerů, nebo výstupů. Program vlastně jde „do kruhu“. Pro zpřehlednění programu jsou dvě cesty rozděleny – nápis u šipky značí místo napojení.
Tak jako tak je nutné u tvorby programu přemýšlet nad tím, co vlastně chceme vytvořit. Program k tomu dává pouze nástroj. Je nutné alespoň základní logické myšlení. Někdy i zdánlivě složité programy jdou vytvořit pouze pomocí několik alogických funkcí a naopak, i zdánlivě jednoduchá věc může nabydout na desítky bloků.
Další díly seriálu „Programování Siemens Logo!“:
- Programování Siemens Logo! #1 – O co vlastně jde?
- Programování Siemens Logo! #2 – Logické funkce
- Programování Siemens Logo! #3 – Časovače a analog
- Programování Siemens Logo! #4 – Tvorba programu bez software
- Programování Siemens Logo! #5 – Datalogger
- Programování Siemens Logo! #6 – Webové rozhraní
- Programování Siemens Logo! #7 – Propojení více modulů
- Programování Siemens Logo! #8 – Připojení HMI Simatic
- Programování Siemens Logo! #9 – Připojení na cloud AWS
- Programování Siemens Logo! #10 – Modbus komunikace
- Další články a videa v češtině. Nejedná se o moji tvorbu, ale také stojí za shlédnutí.
Nebylo by nějaké zajímavé schéma které bych mohl dat to toho pc programu abych si vyzkoušel jak umím programovat.
( myslím to tak ze by byly nějaké instrukce a pak to naprogramovat)
Peťan: Úplně nechápu otázku. Naprogramuj si, co potřebuješ. Případně můžeš vyzkoušet něco z článku Reléové obvody.