Programové funkční bloky pro vizualizaci na displeji
U aktuální verze softwaru Crouzet Logic Software M3 Version 2.5 se již v základním programovacím okně nachází v nabídce funkčních bloků záložka "HMI/COM". Ta prakticky obsahuje vše připravené právě pro realizaci různých "kouzel" i se základním 4 řádkovým podsvětleným LCD displejem. Ale je nutné je vhodně dohromady zkombinovat. Zvláště pokud chcete vytvořit něco takového jako plynulé rolovací menu, kde některé řádky budou vždy obsahovat text i hodnotu (proměnnou) pro nastavení z displeje pomocí tlačítek.
Ukázka simulace rolovacího menu na displeji PLC Millenium3.
Konkrétně já jsem si určil, že tlačítkem "A" se roluje v menu dolů, tlačítkem "B" roluje v menu nahoru a tlačítky "+" a "-" se přidává či ubírá hodnota aktuálně vybrané položky.
K tomuto účelu ze záložky "HMI/COM" jsou potřeba bloky:
- Blok zobrazení textu a hodnot na LCD - "TEXT"
- Blok pohybu v menu - "MENUSCROLL"
- Tlačítka "A", "B", "+" a "-"
Mimo to pro realizaci nastavení hodnoty každé položky pak i logické bloky "AND" a obousměrné čítače "PRESET COUNT" v záložce "CTRL". Jinak v mém programu jsou ještě další bloky pro práci s analogovými hodnotami, ale to přímo nesouvisí s principem funkce rolovacího menu.
Poznámka: V mém případě se rolují jen prostřední dva řádky displeje, přičemž řádky 1 a 4 jsou jen informační, nelze je vybrat a tedy ani nerolují...
Část programu, která realizuje výše uvedené rolovací menu na displeji PLC Millenium3.
Vysvětlení funkce programu rolovacího menu
Pokud chcete jako já vytvořit plynule rolovací menu, kde po stisku tlačítka "A" přejdete z jednoho řádku na druhý, ten se Vám označí a současně pokud jste na posledním řádku tak se vše "pošoupne" o jed řádek nahoru (tj. ztratí se z displeje doposud nevyšší řádek), tak nezbude nic jiného, než pro každý takový přesun vytvořit vlastní definici, jak má zobrazení displeje aktuálně vypadat. Například když jste na prvním řádku v menu, který je tím aktuálně aktivní (já jej na displeji označuji symbolem ">") tak prostě aktivujete funkční blok "TEXT", kde bude nastaveno vše přesně tak, jak to má v tento moment vypadat. Tedy ukazovátko aktivního řádku ">" je u první položky. Po stisku tlačítka "A", tedy požadavku přechodu na druhý řádek menu, se pak musí doposud aktivovaný blok "TEXT" deaktivovat a následně aktivovat druhý blok "TEXT", který bude obsahovat stejnou "vizualizaci" jako přechodí blok, ale pouze u něho bude symbol ">" na požadovaném druhém řádku. Při přerolování na řádek, který je aktuálně mimo obrazovku se pak aktivuje blok "TEXT", který prostě bude obsahovat nový spodní řádek a nebude obsahovat nevyšší horní řádek. A tak dále.
Blok textu označení jako B21 obsahuje stav při aktivním řádku "Hor.lim." a další blok B22 pak stav při aktivním řádku "Dol.lim."
K vytvoření přepínání bloků TEXT na základě stisku tlačítek "A" či "B" pak přímo slouží blok "MENUSCROLL", který na jedné straně obsahuje vstupy pro řízení "nahoru/dolů" a na druhé straně až 8 výstupů, které se právě přepínají ve stylu posuvného registru, tj. po stisku tlačítka se aktivuje výstup následující, resp. předchozí. Pokud tedy na každý výstup napojíte povolovací vstup každého zobrazovacího bloku "TEXT", bude se s každým stiskem tlačítka měnit i zobrazení. V našem případě, tedy budeme rolovat v menu.
Trošku složitější už to je s možností změny hodnoty (přidání/ubrání) na aktuálně vybraném řádku tlačítky "+" a "-". Toto řeším za pomocí logických členů AND a čítačů, které zde zároveň suplují funkci paměťových proměnných. Do členu AND se současně přivádí stav tlačítek "+", resp. "-" a stav z výstupů bloků "MENUSCROLL" ovládající pohyb v menu. Každá dvojice členů AND pak je přivedena na čítací, resp. odečítací vstupy obousměrných čítacích bloků "PRESET COUNT", čím se úprava jejich hodnoty, která je přiřazena určité položce v menu, aktivuje až když je tato položka vybrána. Tím je zároveň deaktivováno čítání ostatních bloků "PRESET COUNT" a jejich hodnoty se nijak stisky tlačítek "+" a "-" neovlivňují. Hodnota na displeji se pak plynule se stisky tlačítek mění a jen u právě zvoleného označeného řádku.
Čítače "PRESET COUNT" zde realizují de facto paměťové registry hodnot položek "Hor.lim.", "Dol.lim", "Koeficient" rolovacího menu, jejichž hodnotu lze měnit stisky tlačítek +/- při nakrokování (aktivaci) příslušného řádku.
Závěr - ukázka z praktické funkce na displeji PLC
Zde jsou fotky jednotlivých obrazovek po stiskách tlačítka "A" a "B":
Vhodným "zapřažením" více bloků "MENUSCROLL" by pak šlo udělat i rolovací menu o větším počtu položek než je 8. Z hlediska přehlednosti bych, ale spíše volil režim "větvení", kde by se v jednom základním rolovacím menu vybrala například stiskem tlačítka "OK" položka, kterou by se přešlo do dalšího rolovacího podmenu. Prostě pak už jde jen o nápad a tvořivost programátora, co mu pro jeho aplikaci připadá nejvíce vhodné...
Užitečné odkazy k PLC Millenium3
- Prodejce produktů Crouzet v ČR, společnost OEM Automatic s.r.o. - www.oemautomatic.cz
- Stránky výrobce, společnosti Crouzet - www.crouzet.com
- Odkaz na stažení nového vývojového softwaru pro PLC Millenium3 - www.crouzet.com/crouzet_docs/documents/CLSM3_V2.5%20AC7.zip
Odkazy na předchozí články o PLC Millenium3:
- Článek "PLC Crouzet Millenium3 - jak na sériovou komunikaci"
- Článek "TEST – PLC Millenium3 rozšířené o modul analog. vstupů/výstupů"
- Článek "Jednoduchý program řízení dopravníkové výhybky pro PLC Millenium3"
- Článek "PLC Crouzet Millenium 3 dospělo a umí toho více"
- Článek "Praktické zkušenosti - PLC Millenium 3 CD12 a jednoduchý program časování"
- Článek "TEST - Smart Application – vzdálené ovládaní PLC Millenium 3 z PC"
- Bleskovka "Vše k PLC Millenium3 ke stažení na jednom místě"
- Další články o PLC (Siemens, Fatek, Crouzet, IDEC a dalších) najdete na stránkách serveru automatizace.HW.cz v sekci plc-automaty