HMI - ovládání, zobrazování, vizualizace | ||
HMI-AUTOMATIZACE - ŘÍZENÍ - SW GENERÁTOR |
Provoz webu zajišťuje: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Softwarový generátor znakůCharakteristikaPokud nepoužíváme nějaké sofistikované řešení pro zobrazování hodnot, textů a pod. je potřeba převést binární informaci ze systému na zobrazovač. Zpravidla je v jednoduchých případech binární informace uložena v kódu BCD nebo podle kódu tabulky ASCII. Generátor znaků, znakový dekodér, je technický prostředek, který provádí dekódování informace uložené v binárním tvaru (BCD, ASCII) a převádí ji na grafickou informaci, jejíž podání odpovídá (přibližuje se) běžnému psanému podání znaku. Generátor znaků je možno realizovat jako softwarový (též programový) nebo hardwarový podle konkrétní aplikace a použití. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programový generátor znakůProgramový generátor znaků je realizován programovými instrukcemi v řídícím systému (funkcemi). Tvar zobrazení znaků závisí na dispozicích zobrazovače podle počtu, tvaru a rozmístění indikačních bodů i představivosti programátora, konkrétně se může například jednat o 7 nebo 16 segmentový zobrazovač. Programový generátor pro 7 segmentové zobrazovačeFunkci znakového generátoru si popíšeme na nejjednodušším zobrazovači se 7 segmenty. Pro aplikace se v praxi ustálilo zapojení, že segmentu A odpovídá bit 0, segmentu B pak bit 1 atd..., bit 7 je pak využíván pro řízení desetinné tečky. 7 segmentový zobrazovač s rozmístěním znaků je uveden na obrázku 1. Na obrázku je zároveň naznačeno zapojení ochranných odporů pro omezení proudu, nastavení intenzity jasu a směr protékajícího proudu, v tomto případě se jedná o zobrazovač se společnou katodou.
Programový generátor generuje informaci o tom, které segmenty zobrazovače mají být rozsvíceny, tato informace je přiváděna na výstupní bitové signály (bit 0-6) a tím řídí svit jednotlivých segmentů zobrazovače podle požadovaného znaku. Nejprve je ale potřeba si připravit tabulku, která bude definovat, které segmenty mají být rozsvíceny pro konkrétní znak. Tabulka obsahuje tolik řádků, kolik znaků chceme zobrazovat a pořadí řádku určuje hodnotu kódu znaku. Hodnota "1" bitu/segmentu v tabulce určuje, které segmenty mají být pro konkrétní znak rozsvíceny. Praktický příklad pro znaky 0-9 je uveden v tabulce 1a.
Tabulka 1a Tabulka pro generování znaků 0-9 na 7 segmentovém zobrazovači.
Samotný počet 7 segmentů dovoluje zobrazení i dalších znaků, které zpravidla rozšiřují použití zobrazovače pro zobrazení hexadecimální soustavy, tedy znaků A-F. Pro tento případ postačí rozšíření předchozí tabulky o další řádky s kódem pro další znaky, tak jak je uvedeno v tabulce 1b.
Tabulka 1b Rozšířená tabulka pro zobrazování znaků A-F na 7 segmentovém zobrazovači. Pokud je potřeba zobrazovat jiné znaky, je možno si tabulku upravit a tyto znaky naprogramovat místo stávajících znaků A-F (např. znak ° nebo t. Pokud je ale potřeba zobrazovat i předchozí znaky, je nutno rozšířit počet řádků tabulky a zároveň přidat potřebný počet adresových bitů tabulky (kód).
Tabulky neobsahují aktivaci segmentu H, respektive 7 bitu, protože tento je určen pro zobrazení desetinné tečky. Tato však není součástí znaku ale reprezentace hodnoty. Desetinnou tečku je tedy nutno do zobrazení doplnit použitím samostatné programové instrukce. Programová obsluha pro 7 segmentůPři zpracování v programu je potřeba číslo (např. teplota) vyjádřené v binárním tvaru převést do tvaru BCD, kdy funkce zajistí to, že na každé čtveřici bitů je vyjádřena jedna číslovka čísla ve formátu BCD. Tato čtveřice bitů (kód BCD) je potom adresou řádku v tabulce, na které se nachází kód pro aktivaci odpovídajících segmentů. Separaci jednotlivých čtveřic bitů s kódem BCD je možno realizovat posuvným registrem nebo rotací a s následným maskováním nepotřebných bitů. Pro zjednodušení je možné zpracovávat požadovanou hodnotu v násobcích hodnoty 10. Taková informace, která má reálnou hodnotu např. 17,3°C je interně zpracovávána jako hodnota 173 a při zobrazení je desetinná tečka doplněna na vhodné místo. Tímto se vyhneme složité konverzi reálného čísla na BCD, pokud tuto funkci nemá systém v sobě integrovánu. Při zobrazování záporných hodnot je potřeba tyto hodnoty převést v binární formě na kladné a následně zpracovat jako výše. Záporné znaménko je pak nutno dodatečně zobrazit na samostatném indikačním prvku nebo separátně aktivovat segment G na nejvyšší pozici zobrazovače. Pokud budeme uvažovat o zobrazování hodnot přímo binární soustavy je převod na BCD zbytečný a dostaneme hexadecimální zobrazení binární hodnoty. Programové příklady, viz dále, představují realizaci softwarového generátoru znaků pro jeden konkrétní znak, nikoliv převod binární soustavy na BCD a separaci jednotlivých čtveřic bitů. Programový příklad 7.aJedním z programových způsobů, který by měl zvládnout každý řídící systém je sestavení programu pomocí podmíněných skoků:
Programový příklad 7.bVýše uvedený zápis je poměrně zdlouhavý, proto, pokud to systém dovolí, je možno jako náhradu použít instrukci "seznam skoků" ...
Programový příklad 7.cAčkoliv použití instrukce "seznam skoků" výrazně zkrátí zápis, elegantním způsobem programového algoritmu je ale využití strukturované datové oblasti (nebo obdobného řešení podle typu použitého procesoru), v které je po řádcích nadefinovaná tabulka, stejně jako tabulka 1 ....
Programový kód je pak velmi jednoduchý ...
Programový příklad 7.dNe každý systém se vyrovná se zápisem podle předchozího případu, proto ještě jedno řešení. Předpokladem je opět po řádcích nadefinovaná tabulka, stejně jako tabulka 1 ....
Programový kód je pak následující ...
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programový generátor pro více segmentové zobrazovačeProgramový generátor pro více segmentové zobrazovače (9, 14,16 segmentů) se od předchozího logicky liší větším počtem použitých segmentů pro zobrazení znaku a od tohoto se odvíjí počet bitů, které je nutno obsluhovat (9, 14, 16). S vyšším počtem segmentů došlo i potřebě upravit jejich značení, segmenty, které byly rozděleny, dostaly rozšířené označení 1 a 2, nové (další doplněné segmenty) pak označení podle dalších písmen abecedy. Dále je uveden popis pro 16 segmentový zobrazovač. Pro aplikace se v praxi ustálilo zapojení, že segmentu a1 odpovídá bit 0, segmentu a2 pak bit 1 atd..., bitu 15 segment m. Řízení desetinné tečky je zde nutno řešit samostatně. 16 segmentový zobrazovač s rozmístěním znaků je uveden na obrázku 2. Na obrázku je zároveň naznačeno zapojení ochranných odporů pro omezení proudu, nastavení intenzity jasu a směr protékajícího proudu, v tomto případě se jedná o zobrazovač se společnou katodou.
Vzhledem k tomu, že 16 segmentový zobrazovač poskytuje možnost přiměřeného zobrazení všech běžných znaků, budeme pro realizaci programového znakového generátoru již uvažovat kódování podle ASCII tabulky.Stejně jako pro 7 segmentové zobrazovače, je potřeba si připravit tabulku, která bude definovat, které segmenty mají být rozsvíceny pro konkrétní znak. Tabulka obsahuje tolik řádků, kolik znaků chceme zobrazovat a pořadí řádku určuje hodnotu kódu znaku. Hodnota "1" bitu/segmentu v tabulce určuje, které segmenty mají být pro konkrétní znak rozsvíceny. V tabulce 2 je uveden příklad pro 16 segmentový zobrazovač a některé vybrané znaky (pro praktické využití je potřeba nadefinovat všechny potřebné znaky).
Tabulka 2 Příklad generování znaků pro 16 segmentový zobrazovač. Tabulka neobsahuje aktivaci segmentu DP (desetinné tečky) a tuto je nutno obsluhovat samostatně, v případě číslice jako oddělovač desetinných míst, u znaku "!" (vykřičník) jako součást tohoto znaku. Programová obsluha pro 16 segmentůProgramová obsluha pro zobrazovač se 16 segmenty je principiálně stejná jako pro zobrazovač 7 segmentový, pracujeme pouze s větším počtem bitů pro segmenty. Vzhledem k tomu, že se u 16 segmentového zobrazovače předpokládá zobrazování většího počtu znaků, je použití příkladů 7.a a 7.b již nepraktické (ale není zakázané) z důvodu velkého počtu programových řádků a tím i nepřehlednosti. Pro 16 segmentové zobrazovače je tedy vhodné použít některý z příkladů 7.c nebo 7.d upravené pro 16 segmentový zobrazovač. Prakticky to znamená místo dat velikosti Byte (8 bitů) pracovat s velikostí dat Word (16 bitů). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programový generátor pro maticové zobrazovačeProgramový generátor pro maticový zobrazovač je samozřejmě možno realizovat i s použitím PLC. Toto řešení je však velmi náročné na časovou obsluhu zobrazovače, respektive několika zobrazovačů (protože řízení pouze jednoho znaku zobrazovače je méně pravděpodobné). Konkrétní řešení by v tomto případě směřovalo k použití jednočipového počítače specializovaného právě na toto řízení maticového zobrazovače. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HMI-AUTOMATIZACE - ŘÍZENÍ - SW GENERÁTOR | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|