Jste zde

PLC Crouzet Millenium3 - rolovací menu na displeji

Více než polovina nabízených typů PLC Millenium3 francouzské společnosti Crouzet má v sobě již osazený podsvětlený LED displej a 6 ovládacích tlačítek. Mimo jednoduchých zobrazení libovolného textu a hodnot a základního tlačítkového ovládání lze docela snadno v programu vytvořit i rolovací menu včetně nastavování hodnoty každé položky. Chce to však vědět jak na to. A to jsem se rozhodl ukázat v následující praktické ukázce...

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

Odkazy na předchozí články o PLC Millenium3:

Hodnocení článku: