MenuLIB KNIHOVNA SIMPLE4 PRO TVORBU UŽIVATELSKÉHO ROZHRANÍ NA PLC MICROPEL 02.2005



Podobné dokumenty
Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n

MT201. 0LQLDWXUQtSURJUDPRYDWHOQêWHUPLQiO 8åLYDWHOVNiStUXþND 070,1,$7851Ë7(50,1È/VWUDQ

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Tabulkové processory MS Excel (OpenOffice Calc)

RC-300. U ivatelská pøíruèka. Instalaèní firma: Servisní telefon: Datum Počet stran Číslo dokumentu 11/ PU-RC-3-01-C

Word 2007 Word 2007 egon. Spuštění, vzhled, zobrazení dokumentu

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Prùvodce obecnîmi nastaveními

KNIHOVNA LETNI_CAS. edice verze 1.0. Knihovna letni_cas. Ing. Zdeněk Rozehnal MICROPEL s.r.o. 2008

Školní knihovna pro Windows. Verze 2.0

Plc Calculator. Nástroj pro automatizovaný návrh aplikace s automaty MICROPEL

FTC08 instalační manuál k dotykovému panelu systému Foxys

Záznamník teploty ZT, ZT1ext Návod k použití

Kurz Word 2000 Odrážky a číslování Kurz Word 2000 Odrážky a číslování Oddíly Záhlaví a zápatí

APT110. Prùmyslový terminál. Technická pøíruèka. verze Aplikace Mikroprocesorové Techniky

Pokladní systém PD 2002 v1.00 Manuál

Rámcový manuál pro práci s programem TopoL pro Windows

Obsah: KR2 - Uživatelská příručka -1-

UZ modul VVISION poslední změna

PowerSwitch ver. 1.6

Tepelná čerpadla HP. tepelná čerpadla. Návod k obsluze a instalaci pro verzi software xx

Aktualizační systém Progres

Uivatelský manuál PC-2585

Dotykový panel FTC03DALI

Josef Pecinovský PowerPoint 2007

HypEd4 Uživatelská příručka 2004 HYPEL

Ovládací PTZ klávesnice SC-3100 Uživatelský a instalační manuál

universální monitorovací program

MR51P. Systémy Měřicí, Analytické a Regulační Techniky POPIS A NÁVOD K OBSLUZE PROGRAMOVATELNÝ MĚŘIČ PRŮTOKU A PROTEKLÉHO MNOŽSTVÍ. verze 1.

POKOJOVÁ JEDNOTKA S MODULAČNÍM PROGRAMOVATELNÝM REGULÁTOREM

Office podrobný průvodce. Tomáš Šimek

Prohlížení a editace externích předmětů

Návod k obsluze. Výrobce

POKOJOVÁ JEDNOTKA S MODULAČNÍM PROGRAMOVATELNÝM REGULÁTOREM

Obsah. Začínáme Viditelné součásti programu Simulace. WOP Menu CNC řízení. CNC Programy. Exec. Grafické okno. Strojní panel. 3D Model.

Řídicí systémy řady 400 str.2 z 16 MICROPEL

SPIRIT Nové funkce. SOFTconsult spol. s r. o., Praha

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

ENA Příloha. Návod k instalaci a obsluze. Flamco

Uživatelský manuál. s klávesnicí K648

Rozdílová dokumentace k ovládání IS KARAT.net

Uživatelská příručka pro program

ADDAT HEAT Control - Návod k použití - verze 2.07 (firmware 1.44)

Word podrobný průvodce. Tomáš Šimek

Programovací stanice itnc 530

Volby a Referenda ALIS spol. s r.o.

Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

Návod k obsluze. Pro provozovatele. Návod k obsluze. calormatic 370f. Prostorový regulátor teploty s rádiovým přenosem

Uživatelská příručka

Popis změn kontrolní hlášení

UŽIVATELSKÁ PŘÍRUČKA KLÁVESNICE

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

1. vydání příručky 2009, Národní památkový ústav, Ing. Martin Lazák

Hip-Hop můžete ovládat pomocí osvětlovacího pultu či vhodného kontroléru pro světla, který připojíte pomocí DMX (XLR) kabelu.

V této kapitole se naučíte základnímu ovládání programu ZoomText, totiž:

TouchGuard Online pochůzkový systém

Elektronický inteligentní regulátor vytápění

Nové funkcé programu TRIFID 2016

8. Struktura údaj na LCD displeji

Modul ročních zpráv o výsledcích finančních kontrol

Řídící jednotka AirBasic 2

Uživatelská příručka ISKP14+ pro Integrované nástroje: Žádost o podporu strategie ITI/IPRÚ

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

Regulátor teplé užitkové vody RTUV

2) Nový druh připojení Ethernet-CA5 umožňující připojit nové zařízení CA5 a to přes Ethernet nebo přes GPRS

VYTVÁŘENÍ OBSAHU KURZŮ

Přídavný modul čtečky ClearReader +

NÁVOD K OVLÁDÁNÍ PÁLÍCÍHO STROJE A ŘÍDÍCÍHO SYSTÉMU RIPAST 401

Adash. Provozní tvary kmitů ver.5.00

Návod k obsluze. Pro provozovatele. Návod k obsluze. calormatic 450f. VRC 450f

UŽIVATELSKÝ MANUÁL. Řídicí systém MS 740. v aplikaci pro vzduchotechniku. Verze 1.5. WILKOP - trade, spol. s r.o., Hlavní 823, Zubří

Fotogalerie pro redakční systém Marwel Obscura v. 2.0

SMARTBOARD PŘÍRUČKA PRO ŘIDIČE

Vaše uživatelský manuál NOKIA 650

Návod k obsluze. ve verzi PDF

Návod na použití prezentační techniky

Sada do auta Nokia CK-200 U¾ivatelská a instalaèní pøíruèka

1 VERZE DOKUMENTU VERZE SOFTWARE ZÁKLADNÍ POPIS ZÁKLADNÍ P EHLED HYDRAULICKÝCH SCHÉMAT HYDRAULICKÁ SCHÉMATA...

ZoomText 10.1 pro Windows. Dodatek k uživatelské příručce

Dodatek k návodu k obsluze a instalaci kotlů BENEKOV. Regulátor RKU 1.5

Uživatelská příručka

Podvojné účetnictví DeCe ÚČTO, verze W5.40 DeCe COMPUTERS s.r.o. Děčín, březen 2005 O B S A H

Spinelterminal. Terminálový program pro ladění aplikací s protokolem Spinel. 20. září 2005 w w w. p a p o u c h. c o m v

Ovladač Fiery Driver pro systém Mac OS

Regulátor MaxVU. Stručný návod k použití

1. Zobrazení typu telefonního přístroje. 3. Protokol LLDP Link Layer Discover Protocol. 4. Inicializace síťového připojení

OctoMat Popis ovládání tankovacího automatu

2. Hrudní pás s vysílačem. Navíc CP 13is vypočítají spotřebu kalorií a pomocí graficky znázorní zatížení v rámci nastavené srdeční frekvence.

Verze /09. Xerox WorkCentre 5735/5740/5745/5755/5765/5775/ 5790 Začínáme

Ovládání je realizováno pøes standardní ovládací páèku palubního poèítaèe vpravo pod volantem.

MC400. Měřící jednotka. Návod k používání. Technické parametry Popis Nastavení Instalace Uvedení do provozu Použití Údržba verze 1.0.

Multifunkční mini-diktafon

Editor formulářů Money S3

Regulátor větrání ZR15. Servisní příručka

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY ROČNÍKOVÝ PROJEKT KLOKAN. Informatika, II. ročník

software MAJETEK verze 4.xx verze

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

Příklady PLC - STR. Autoři: Ing. Josef Kovář a) Ing. Zuzana Prokopová b) Ing. Ladislav Šmejkal, CSc. Partneři projektu:

ESTATIX INFORMAČNÍ SYSTÉM REALITNÍCH KANCELÁŘÍ UŽIVATELSKÁ PŘÍRUČKA UŽIVATELSKÁ PŘÍRUČKA STRANA 1 / 23

Transkript:

MenuLIB KNIHOVNA SIMPLE4 PRO TVORBU UŽIVATELSKÉHO ROZHRANÍ NA PLC MICROPEL 02.2005

MenuLIB V2.0 Knihovní funkce v jazyce SIMPLE4 pro snadnou tvorbu uživatelského ovládacího rozhraní ve stylu nabídkového menu na operátorských panelech automatù MICROPEL. uživatelský manuál - edice 02.2005 1. verze dokumentu MenuLIB V2 MICROPEL s.r.o. 2005 všechna práva vyhrazena kopírování publikace dovoleno pouze bez zmìny textu a obsahu http://www.micropel.cz 1 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 1

OBSAH 1. Možnosti knihovny MenuLIB 3 2. Používání knihovny 5 2.1. Obsah distribuce, instalace 5 2.2. Zaèlenìní knihovny do projektu 5 2.3. Prostøedky a zdroje, použité funkcemi MenuLIB 6 2.4. Další omezení 7 3. Programování systému menu 8 3.1. Vytváøení programu menu 9 3.2. Jak knihovní funkce pracují 10 3.3. Stavové promìnné 11 3.4. Systémové promìnné 11 4. Seznam knihovních funkcí 12 4.1. Základní funkce 12 MeInit 12 MeEnd 12 MeTitle 13 MeLine 14 MeNext 16 4.2. Editory hodnot 17 MeEdit 18 MeSelector 20 MeBitSelector 21 MeSetRTC 22 4.3. Zobrazovací funkce 22 MeDispBitText 23 MeDispArrow 23 MeDispRTC 24 4.4. Funkce pro zobrazování seznamù 24 MeTable 25 MeXShift 26 MeScroll 27 4.5. Pomocné funkce 28 MeSize 28 MeWatch 29 2 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 2

1. Možnosti knihovny MenuLIB Pomocí knihovny je možné na automatech MICROPEL velmi jednoduše a efektivnì vytvoøit ovládací rozhraní pro uživatele ve stylu nabídkového menu se stromovou strukturou. Tento zpùsob je velmi rozšíøený u všemožných výrobkù spotøební elektroniky, je intuitivní a snadno pochopitelný. Knihovna má tyto základní vlastnosti: Libovolný poèet položek v menu i poèet samostatných vnoøených menu Až 10 úrovní zanoøení do dalších samostatných menu Vestavìné editory hodnot pro všechny datové typy, vè. typu float Zobrazení i editace pøepínaèù stavù s využitím jejich textových názvù Podpora pro snadnou tvorbu nápovìdy, nebo zobrazení dlouhých blokù textu Jednoduché zobrazování i editace tabulek, seznamù a polí hodnot Knihovna není žádný speciální nástroj, celé menu se programuje v jazyce SIMPLE4 a je tedy souèástí výsledného programu pro automat. Je tedy možno i veškeré vazby a fungování celého systému menu pøizpùsobit konkrétním potøebám dané aplikace. Program s využitím knihovny MenuLIB je velmi krátký a pøehledný. Tvar jeho zápisu již sám o sobì velmi pøesnì odpovídá struktuøe výsledného vytvoøeného menu. Velmi zajímavou a dùležitou vlastností je nezávislost na velikosti displeje (resp. na poètu jeho øádkù). Poèet øádkù se nastavuje jen jedním parametrem a lze jej dynamicky mìnit (není-li napø. žádoucí, aby menu zabralo celý displej). Ovládání Celý systém menu je postaven tak, aby pracoval a poskytoval všechny funkce na displejích s libovolným poètem øádkù. Samozøejmì, èím více je øádkù a znakù, tím vìtší je komfort a pøehlednost pøi ovládání takového zaøízení obsluhou. Proto pro obsáhlejší a složitìjší systém menu doporuèujeme radìji použít automaty typù PES-K, nebo MPC303 se 4-øádkovým displejem. Pro veškerý pohyb v menu, vybírání položek a editaci hodnot slouží 6 základních kláves (šipka nahoru/dolù/vlevo/vpravo, ESC a ENT), které jsou na všech klávesnicích automatù MICROPEL. Struktura menu Ovládací menu je vlastnì seznam položek, ve kterém se pohybujeme šipkami nahoru a dolù. Posouváme tím po øádcích ukazovátko a oznaèujeme položky (blikající šipka vlevo pøed položkou). Co položka, to jeden øádek displeje. Je-li seznam krátký, vejde se celý na obrazovku displeje. Je-li seznam delší, pak se po dosažení horního øádku posouvá celá obrazovka po seznamu nahoru a analogicky po dosažení dolní pozice naopak dolù. Takto listujeme celým seznamem bez ohledu na délku seznamu a poèet øádkù 3 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 3

displeje (musíme mít k dispozici alespoò jeden øádek). Stisk klávesy ENT na oznaèené položce mùže v závislosti na druhu položky zpùsobit : pøechod do editaèního režimu a možnost zmìny hodnoty parametru vstup do dalšího vnoøeného menu vyvolání obecnì jakékoliv naprogramované akce, procedury, funkce... nic, pokud se jedná o položku èistì informaèního charakteru Klávesa ESC má ve všech situacích význam návratu, resp. stornování èinnosti. Klávesou ESC opouštíme editaci parametru, vracíme se z vnoøeného menu zpìt do pøedcházejícího atd.. Nadpis V záhlaví menu mùže být umístìn jeden nebo i více nadpisù. Mùže informovat obsluhu o tom, v jakém menu nebo nastavení se právì nachází, dávat struènou nápovìdu apod. Nadpis je stále v záhlaví. Pøi listování v menu rolují položky menu na zbývajících øádcích pod ním. Položky menu Položka (1 øádek displeje) je základní prvek menu a mùže mít nìkolik podob: a) položka typu ØÁDEK Výpis textu a za ním napø. zobrazení hodnoty nìjaké promìnné. Vhodný pro pøehledné a okomentované zobrazení øady hodnot. b) položka typu ØÁDEK s pøipojeným editorem Poskytuje navíc možnost editace hodnoty po stisku klávesy ENT. Potvrzení a zápis hodnoty se provede stiskem ENT, stornování editace a zachování staré hodnoty stiskem ESC. Editorù je nìkolik druhù - editory èísel, nebo editory bitù a stavù, pracující s textovým vyjádøením hodnoty stavu. Podrobný popis ovládání a možností editorù viz dále ve stati Editory hodnot. c) položka typu DALŠÍ MENU Položka po stisku ENT zpùsobí pøechod do dalšího, vnoøeného menu. Je to samostatný seznam položek, který funguje jako další samostatné menu (mùže mít svùj vlastní nadpis, mùže obsahovat všechny typy položek - tedy i vstupy do dalších vnoøených menu). Stisk klávesy ESC zpùsobí návrat zpìt do pøedchozí úrovnì a na stejnou pozici. Systém menu dovoluje realizovat až 10 úrovní menu, vnoøených do sebe. 4 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 4

2. Používání knihovny Pro dokonalé využití knihovních funkcí je nutná znalost programování v jazyce SIMPLE4 a alespoò základní znalost používání vývojového prostøedí StudioWin. Proto, pokud teprve chcete zaèít s programováním automatù MICROPEL, doporuèujeme pøed studiem knihoven MenuLIB nejprve prostudovat pøíruèku k jazyku SIMPLE4 a zkusit si napsat ve vývojovém prostøedí StudioWin nìkolik jednoduchých pøíkladù. Pro snazší pochopení všech funkcí knihovny je zároveò s knihovnou dodáváno nìkolik ukázkových pøíkladù ve formì samostatných projektù, spustitelných jak na reálném automatu, tak na simulátoru v prostøedí StudioWin. 2.1. Obsah distribuce, instalace V balíèku knihovny je kromì vlastního souboru menu2.lib ještì nìkolik kompletních ukázkových projektù s touto knihovnou. Knihovna MenuLIB je od StudioWin verze 6.902 již distribuována jako souèást instalace vývojového prostøedí StudioWin. Samostatný balíèek s knihovnou obsahuje instalátor, který implicitnì nabízí kopírování knihovny do pøednastavené složky knihoven a demonstraèních projektù do pøednastavené složky projektù (vytvoøí se pøi instalaci prostøedí StudioWin). Samozøejmì lze knihovnu i ukázkové pøíklady kopírovat kamkoli jinam. Pro instalaci a snadné použití knihovny je tøeba vývojové prostøedí StudioWin verze min. 6.902 (již obsahující aktuální verzi knihovny). Instalaci ze samostatného balíèku lze tedy doporuèit jen tehdy, není-li žádoucí nebo potøebné instalovat zároveò aktuální verzi vývojového prostøedí. 2.2. Zaèlenìní knihovny do projektu Pøed použitím funkcí knihovny je tøeba ji zapojit do projektu. V pracovním oknì projektu (na levé stranì v prostøedí StudioWin) ji lze zaèlenit buï do složky knihovních modulù celého projektu (nahoøe), nebo konkrétního automatu. Knihovnu pøidáme do složky kliknutím pravého tlaèítka myši nad pøíslušnou složkou a výbìrem volby "Vložit soubor" (nebo klávesou "Insert" na této složce). Na vložení souboru se otevøe dialog s navigaèními tlaèítky a výbìrem souboru. Vložení se provede buï tlaèítkem "Otevøít" - vloží se odkaz na soubor, nebo tlaèítkem "Kopírovat do projektu" - vloží se kopie souboru. a) Vložení odkazu na soubor Do projektu se uloží jen odkaz na soubor. Vlastní knihovní soubor existuje jen na cílovém místì (typicky napø. ve sdílené centrální složce knihoven). Pokud je použit ve více projektech, pak zmìna tohoto souboru, resp. jeho nová verze (napø. nové verze jednotlivých funkcí, opravy chyb apod.) se projeví ve všech projektech, které mají tuto knihovnu vloženou odkazem (tedy samozøejmì až po pøekladu). Výhodou je neustálá 5 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 5

aktuálnost použité knihovny ve všech projektech po každé instalaci nové verze knihovny do sdílené složky. b) Vložení kopie souboru Do projektu se fyzicky zkopíruje soubor a ten se také bude používat pøi pøekladu projektu. Instalace nové verze knihovny do centrální složky knihoven nebo do jiných projektù pak nemá vliv na tento projekt. Nevýhodou je nemožnost automatického pøebírání nových verzí knihoven do projektù (musely by se pokaždé ruènì zkopírovat do složky projektu), výhodou je zase vìtší jistota, že pøípadná zavleèená chyba nebo nekompatibilita nové verze neohrozí stávající projekt. Pozn.: pro bezpeèné uložení a zaarchivování nebo pøenos projektù je však urèena funkce "Export projektu", která na zadané místo uloží projekt i se všemi knihovnami, které jsou k pøekladu tøeba. 2.3. Prostøedky a zdroje, použité funkcemi MenuLIB Protože menu sestavené z funkcí MenuLIB je souèástí uživatelského programu pro automat v jazyce SIMPLE4 (a knihovna je rovnìž kompletnì napsána v SIMPLE4), využívá stejné prostøedky automatu a jazyka jako uživatelský program. Pro korektní funkci menu je navíc nutné, aby pro nìj nìkteré prostøedky zùstaly úplnì vyhrazeny! Èasovaè T7 Nejdùležitìjším zdrojem, který nesmí být v uživatelském programu nikde použit, je èasovaè T7 (nikde v uživatelském programu se nesmí použít ani èasovaè, ani žádný z jeho øídících bitù: TEN7, TOE7, TPA7, TDM7). Je to na druhou stranu ale jediný èasovaè, který systém knihoven využívá (jeho obsluha v knihovnì je naprogramována tak, aby další chystané knihovny, které budou pro jazyk SIMPLE4 k dispozici, jej mohly rovnìž využít a nezabíraly tak další volné zdroje). V programu pro automat lze tedy použít pouze èasovaèe T0 až T6. Uživatelský znak è.7 Znakové displeje automatù MPC300 a PES-K umožòují vytvoøení osmi uživatelských znakù (viz popis obsluhy displeje/klávesnice v manuálu SIMPLE4). Menu využívá poslední pozici této sady (znak s kódem 7) pro zadefinování plné ukazovací šipky. V programu pro automat lze tedy použít pouze uživatelské znaky 0 až 6. Názvy promìnných a funkcí V systému knihoven je krom "veøejných" použito ještì mnoho interních promìnných a funkcí. Jejich názvy už není možno použít pro promìnné nebo funkce, definované v uživatelském programu. Je tedy tøeba poèítat s tím, že pøi zadefinování nových promìnných nebo procedur s názvem, který je již použit uvnitø knihovny Me nulib, zahlásí pøekladaè duplicitní definici. V takovém pøípadì je tøeba zvolit nìjaký jiný název. 6 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 6

Pro pøehlednost zaèínají veškeré názvy promìnných i funkcí knihovny M enulib písmeny Me. Je tedy nejjednodušší volit názvy symbolù tak, aby nezaèínaly písmeny Me, me nebo ME (pøekladaè nerozlišuje velikost písmen). Klávesnice Kromì názvù zaèínajících Me jsou v knihovnì ještì zadefinovány symbolické názvy pro hodnoty kódù stisknutých kláves v promìnné KBCODE. Jsou to : KB_LEFT, KB_RIGHT, KB_ESC, KB_ENT, KB_UP, KB_DOWN V aplikaèním programu nedoporuèujeme využívat klávesnici (tedy promìnnou KBCODE) v jiných èástech programu mimo menu. Musí-li to být, tak jen s maximální obezøetností. Mohlo by docházet k rozporùm v logice ovládání takového zaøízení. Výjimkou jsou jen klávesy F1..F3 na automatech PES-K, které knihovna MenuLIB vùbec nepoužívá. Bit RESET Pro poèáteèní inicializaci knihoven MenuLIB po zapnutí automatu je využíván systémový bit RESET, který se po zapnutí nastaví do 1 a nulovat jej musí uživatelský program. Aby systém knihoven mohl tento bit správnì využít, musí být RESET vynulován až na konci programu, nejlépe až pøed závìreèným pøíkazem end na konci programové smyèky. Tak bude zajištìno, že pøi prvním prùchodu programovou smyèkou bude bit RESET=1 (a to po celou dobu prùchodu) a pøi dalším bìhu již bude stále RESET=0. UPOZORNÌNÍ: Bude-li bit RESET nulován už na zaèátku programu, nebo naopak nebude-li v programu vynulován vùbec, bude to mít za následek naprostou nefunkènost systému menu (a pravdìpodobnì i celého programu). 2.4. Další omezení V uživatelském programu lze použít vždy jen jeden systém menu. To je dáno vyhrazením jedné pevné sady pracovních promìnných pro bìh celého systému knihoven. Nelze tedy vytvoøit napø. dvì úplnì samostatné stromové struktury menu a volit mezi nimi nìjakou logickou podmínkou. Má-li program fungovat tak, aby napø. za urèitých situací bylo celé menu "vymìnìno" za jiné (anebo jen jeho èásti), lze to prakticky vždy øešit v rámci jedné struktury menu buï knihovními funkcemi pro vìtvení a vnoøování menu, nebo použitím konstrukcí jazyka SIMPLE4 pro vìtvení podle stavu logických podmínek (konstrukce if-then-else, nebo switch-case). 7 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 7

3. Programování systému menu Nejprve krátký pøíklad v jazyce SIMPLE4 (knihovní funkce MenuLIB vyznaèeny tuènì): 0H,QLW =$ýè7(.2%6/8+<0(18 0H7LWOH0(18%$/,&,&+/,1(. 0H7LWOH LI0H/LQHNVFHONHPWKHQ',63/$<3RFHW.6B/3RFHW.6B/3RFHW.6B/ LI0H/LQHYDGQ\FKWKHQ',63/$<3RFHW9$'B/3RFHW9$'B/3RFHW9$'B/ LI0H1H[W/LQNDPDOHWKHQEHJLQ 0H7LWOH/,1.$ LI0H/LQH5\FKORVWWKHQ0H(GLW5\FKORVW/ LI0H/LQHSRFHWNVWKHQ',63/$<3RFHW.6B/ LI0H/LQHSRFHWYDGQ\FKWKHQ',63/$<3RFHW9$'B/ LI0H1H[W/LQNDYHONHWKHQEHJLQ 0H7LWOH/,1.$ LI0H/LQH5\FKORVWWKHQ0H(GLW5\FKORVW/ LI0H/LQHSRFHWNVWKHQ',63/$<3RFHW.6B/ LI0H/LQHSRFHWYDGQ\FKWKHQ',63/$<3RFHW9$'B/ LI0H1H[W/LQNDUX]QHWKHQEHJLQ 0H7LWOH/,1.$ LI0H/LQH5\FKORVWWKHQ0H(GLW5\FKORVW/ LI0H/LQHSRFHWNVWKHQ',63/$<3RFHW.6B/ LI0H/LQHSRFHWYDGQ\FKWKHQ',63/$<3RFHW9$'B/ LI0H1H[W1DVWDYHQLUR]PHUXWKHQEHJLQ 0H7LWOH52=0(5.5$%,&1$/ LI0H/LQH6LUNDFPWKHQ0H(GLW6LUND/ LI0H/LQH9\VNDFPWKHQ0H(GLW9\VND/ LI0H/LQH+ORXENDFPWKHQ0H(GLW+ORXEND/.21(&2%6/8+<0(18 Tento program realizuje ovládací menu s touto strukturou: Nejvyšší úroveò 2.úroveò vnoøení 3.úroveò vnoøení MENU BALICICH LINEK -------------------- ks celkem:705106 vadnych:324 Linka1 (male)-> Linka2 (velke)-> Linka3 (ruzne)-> LINKA1 Rychlost:2 pocet ks:124980 pocet vadnych:98 LINKA2 Rychlost:2 pocet ks:572471 pocet vadnych:217 LINKA3 Rychlost:1 pocet ks:7655 pocet vadnych:9 Nastaveni rozmeru-> ROZMER KRABIC NA L3 Sirka (cm):35 Vyska (cm):15 Hloubka (cm):50 Vysvìtlivky LINKA1... nadpis menu Rychlost:2... položky menu 2... editovatelná hodnota 8 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 8

Pozn.: Kompletní a funkèní zdrojový text pøíkladu je v souboru DEMO1.STP. Poznámka k demonstraèním ukázkám zdrojových textù: Volání procedur nebo funkcí bez parametrù je uvádìno vždy s prázdnými závorkami za názvem, i když to z hlediska jazyka není nutné. Zvyšuje to pøehled v názvech (je na první pohled vidìt, že se jedná o proceduru a ne napø. nastavení bitu apod.). 3.1. Vytváøení programu menu Celý systém menu musí vždy zaèínat funkcí MeInit a konèit funkcí MeEnd. Funkci MeInit je nutné použít na zaèátku celého menu a nesmí být použita už nikde jinde. Naopak funkce MeEnd se používá èastìji, na konci každého samostatného bloku menu. Nejjednodušší menu mùže být jednoúrovòové, ve formì jednoho souvislého bloku položek s jedním zaèátkem (MeInit) a jedním ukonèením (MeEnd). Složitìjší menu (jako napø. v naší ukázce) mùže být rozvìtveno pomocí odkazù do samostatných blokù menu v dalších vnoøených úrovních. Vìtvení zajiš ují funkce MeNext. Poèet položek a blokù menu není omezen, limitován je jen poèet úrovní menu na max. 10 vnoøení. Každý takový blok mùže mít nadpis (vytvoøený funkcí MeTitle) a musí být zakonèen funkcí MeEnd. Jak je zøejmé ze zápisu programu, není nutno pøedem znát délku menu nebo nastavovat nìkde poèet položek. Vše poèítají knihovní funkce zcela automaticky a prùbìžnì za chodu programu. Staèí jen seøadit za sebe požadované položky menu a vymezit konec každého jejich bloku zavoláním funkce MeEnd. Volání všech funkcí menu nemusí být v kompaktním souvislém bloku jako je tomu v naší ukázce (i když je to asi nejrozumnìjší). Èásti systému menu mohou být rozptýleny mezi ostatními èástmi uživatelského programu. Nicménì logický sled volání jednotlivých funkcí menu v prùbìhu vykonávání programové smyèky musí odpovídat výše uvedeným konvencím. Pøi tvorbì složitìjších menu mùžeme pro zpøehlednìní programu využít volání procedur a funkcí. V našem pøíkladu napø. èást týkající se posledního menu " NASTAVENI ROZMERU" mùže být pøesunuta do procedury. Zápis by pak mohl vypadat tøeba takto: LI0H/LQHSRFHWYDGQ\FKWKHQ',63/$<3RFHW9$'B/ LI0H1H[W1DVWDYHQLUR]PHUXWKHQ5R]PHU.UDELF.21(&2%6/8+<0(18 Dále mùžeme pro optimalizaci programu z našeho pøíkladu pøesunout položky "Rychlost", "pocet ks" a "pocet vadnych", které se opakují na zaèátku nìkolika blokù, do procedury a volat ji s pøíslušnými parametry. 9 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 9

Zde je ukázka upravené èásti programu: LI0H1H[W/LQNDPDOHWKHQEHJLQ 8YRGQL%ORN/,1.$5\FKORVW/3RFHW.6B/3RFHW9$'B/ LI0H1H[W/LQNDYHONHWKHQEHJLQ 8YRGQL%ORN/,1.$5\FKORVW/3RFHW.6B/3RFHW9$'B/ LI0H1H[W/LQNDUX]QHWKHQEHJLQ 8YRGQL%ORN/,1.$5\FKORVW/3RFHW.6B/3RFHW9$'B/ LI0H1H[W1DVWDYHQLUR]PHUXWKHQ5R]PHU.UDELF.21(&2%6/8+<0(18 3.2. Jak knihovní funkce pracují Protože blok položek mùže být delší než je poèet øádkù na displeji, jsou vždy podle momentální situace nìkteré položky zobrazeny a nìkteré ne. Pozice položek na displeji se mìní v závislosti na rolování seznamu po displeji pomocí šipek nahoru a dolù. Navíc, pokud je aktivní nìjaký vnoøený blok položek, musí být veškeré zobrazování na displej vypnuto až k tomuto momentálnì aktivnímu bloku. Knihovní funkce pro zobrazení nadpisù a položek menu samy øídí zobrazování a pozici na displeji tak, jak je tøeba podle logiky obsluhy menu. Než totiž program pøi svém bìhu projde všemi funkcemi od zaèátku menu až k aktivnímu bloku položek, ve kterém se právì pohybuje obsluha, je zobrazení kompletnì "vypnuto" a program funkcemi "propadává" co nejrychleji a bez jakékoliv akce. Po obsloužení aktivních položek se po dosažení nejbližší funkce MeEnd opìt zobrazování vypne a všechny zbývající knihovní funkce menu až do konce programové smyèky probìhnou naprázdno a rychle. Podobnì pracuje i vìtvení struktury menu pomocí funkcí MeNext. Každá funkce MeNext funguje jako výhybka, která pøi vnoøení do nižší úrovnì neustále smìruje bìh programu do postranní vìtve. Zobrazování je však vypnuté a funkce propadávají naprázdno až do dosažení právì aktivních položek v aktuální úrovni vnoøení. Pak se obslouží položky, které jsou právì na displeji a po dosažení nejbližšího MeEnd opìt vše konèí a funkce menu probíhají naprázdno až do konce programové smyèky. Aby bylo možné do položek i nadpisù kromì základního textu snadno zaèlenit další prvky, poskytují funkce informaci o tom, zda je možno tisknout na displej. Pokud ano, vytisknou pøedaný text a nastaví systémovou promìnnou POSITION (udávající pozici na displeji, kam se bude tisknout) pøesnì za konec tohoto textu. Staèí potom jen otestovat povolení k tisku (stavový bit nebo výstupní hodnotu, podle konkrétního typu funkce) a dotisknout za položku cokoliv pomocí standardní systémové funkce DISPLAY. Další možností je zaøazení nìkteré knihovní funkce pro editaci hodnot. Ty jsou již pøímo uzpùsobeny k tomu, aby se daly napojit na knihovní funkce pro vytváøení položek. 10 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 10

3.3. Stavové promìnné Informace o povolení k tisku, stavu menu, vnoøení apod. pøedávají funkce buï svojí výstupní hodnotou (lze tedy rovnou volání funkce použít ve vyhodnocovací èásti konstrukce if-then) nebo do stavových promìnných definovaných v knihovnì. Tyto promìnné odrážejí stav knihovní funkce, jež právì probìhla, volání dalších funkcí knihovny MenuLIB je mùže opìt zmìnit nebo anulovat. UPOZORNÌNÍ Stavové promìnné jsou funkcemi menu nastavovány, ale i používány pro øízení chodu. Lze je èíst, vyhodnocovat, používat k vìtvení programu, ale zápis do nich mùže vyvolat vážné poruchy funkce menu! Základní stavové promìnné jsou tyto a týkají se stavu položky menu: bit Me_DISP bit Me_SELECT bit Me_PRESS =1: povolení k tisku (položka se zobrazuje, lze za ni tisknout) =1: položka zobrazena a oznaèena ukazovátkem (blikající šipka) =1: na oznaèené položce byla navíc stisknuta klávesa ENT Stavová promìnná, kterou naopak mùže programátor nastavovat, je tato: bit Me_SYMBOLOFF =1: vypnutí tisku šipky ve funkcích MeNext (po RESETu je nulový, tedy šipka se tiskne) 3.4. Systémové promìnné Funkce knihovny MenuLIB ovlivòují i nìkteré systémové promìnné. POSITION Pøi bìhu a na výstupu funkcí zobrazujících na displej je nastavována promìnná POSITION tak, aby spolupráce se systémem menu byla co nejjednodušší. KBREPEN, KBREPEAT, KBDELAY Po startu automatu (když RESET=1) se nastaví režim automatického opakování kláves pøi delším podržení klávesy (tzv. "auto-repeat") a promìnné s ním související: KBREPEN=1, KBREPEAT=10, KBDELAY=50 (aut.opakování povoleno, opakování po 100ms, poèáteèní prodleva 500ms) Nastavení provádí funkce MeInit pøi resetu. Toto nastavení je ve vìtšinì pøípadù užiteèné. Pro chod menu však není podmínkou, je tedy možné po prvním probìhnutí MeInit tyto promìnné jakkoliv pøestavit, nebo auto-repeat úplnì vyøadit. KBCODE Promìnná poskytující kód stisknuté klávesy. Je stìžejní pro chod menu, v nìkterých pøípadech ji funkce menu i nulují nebo nastavují. 11 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 11

4. Seznam knihovních funkcí Podrobný popis všech funkcí. Ke každé funkci je uveden øádek s její pøesnou definicí v jazyce SIMPLE4, dále pøípadné ukázky použití ve formì zdrojových textù SIMPLE4. S knihovnami MenuLIB se distribuují i ukázkové soubory a funkèní pøíklady, které lze pøeložit a spustit na reálném automatu nebo simulátoru v prostøedí StudioWin. 4.1. Základní funkce Základní stavební kameny každého menu. Slouží k vytváøení položek, vìtvení a zajištìní chodu systému menu. Zpùsob jejich použití je patrný z úvodního pøíkladu. MeInit Inicializace a zaèátek menu, nastavení pozice a délky VXEURXWLQH0H,QLWE\WH6WDUW/LQHE\WH0HQX/HQ Pøedávané parametry 1.parametr (byte) udává øádek displeje, kde menu zaèíná (0..3) 2.parametr (byte) udává poèet øádkù displeje, na kterých se menu rozvíjí (1..4) Procedura se stará o chod menu, v programu se použije právì jednou, na zaèátku celého menu. V každém prùchodu programové smyèky se musí nejprve volat procedura MeInit a pak teprve vše, co souvisí se systémem menu. Vše se bude zobrazovat jen od zadaného øádku a na zadaný poèet øádkù na displeji. Ostatní øádky zùstávají netknuty. Napø. MeInit(1,2) na automatu MPC303 vytvoøí menu na prostøedních 2 øádcích displeje, horní a dolní øádek zùstane volný. Po zapnutí automatu provádí MeInit úvodní inicializaci pøi nastaveném bitu RESET. Je tedy nutné, aby uživatelský program nuloval bit RESET až na konci programu a aby procedura MeInit nebyla nìjakou podmínkou odstavena, když je RESET=1. MeEnd Zakonèení bloku menu VXEURXWLQH Procedura je bez parametrù. Musí být použita k zakonèení každého celistvého bloku menu zapoèatého funkcí MeNext a též na konci celého menu. Celá struktura menu je tedy uzavøena párem procedur MeInit - MeEnd. Platí zásada, že ke každému volání MeInit a MeNext musí na konci pøíslušného bloku existovat zakonèení MeEnd. Používání procedury je patrné z úvodního pøíkladu. 12 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 12

MeTitle Vytvoøení nadpisu bloku menu IXQFWLRQELW0H7LWOHFRQVWVWULQJW[W Pøedávané parametry 1.parametr (const string): text nadpisu Výstupní hodnota výstup (bit): =0... zákaz zobrazení, =1... zobrazení povoleno Rezervuje øádek na displeji (odshora) pro nadpis, pøedaný parametrem jako textový øetìzec. Øetìzce lze vytvoøit i do pøeddefinované tabulky konstrukcí "table string..." a do funkce jako parametr pøedat odkaz na tabulku s indexem (i s promìnným indexem). Funkce je vždy na zaèátku bloku menu, teprve za ni se pak øadí jednotlivé položky (viz úvodní pøíklad). funkce je nepovinné, blok položek menu mùže být i bez nadpisu. Je možné použít i více funkcí MeTitle za sebou, každá vytvoøí text na jeden øádek - vznikne tak víceøádkový nadpis. Nadpis se neposouvá po displeji tak, jako položky. Je stále na stejném místì. Èím více øádkù se použije pro nadpis, tím ménì jich zbyde na zobrazení seznamu položek. Aby byla zajištìna funkènost seznamu položek, musí zbýt alespoò jeden øádek pro zobrazení seznamu položek. Funkce MeTitle má zabudovanou ochranu a pokud by po ní už nemìl zùstat volný øádek, nadpis se nevytvoøí. Výstupní hodnotu není nutno využít. Není-li tøeba další dotisk za text nadpisu, volá se funkce jako procedura - viz pøíklad. Pøíklady použití $MHGQRGXFKêQDGSLV 0H7LWOH67$9/,1.< LI0H/LQHSRFHWNXVXWKHQ',63/$<3RFHW.6... %GYRXiGNRYêQDGSLV 0H7LWOH67$9/,1.< 0H7LWOH LI0H/LQHSRFHWNXVXWKHQ',63/$<3RFHW.6... &QDGSLVVY\XåLWtPGRWLVNXGDOãtLQIRUPDFH LI0H7LWOH67$9/,1.<&WKHQEHJLQ ',63/$<&LVOR/LQN\ ',63/$< DMHãWGYRMWHþNXDE\WROpSHY\SDGDOR LI0H/LQHSRFHWNXVXWKHQ',63/$<3RFHW.6 13 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 13

MeLine Vytvoøení položky menu typu ØÁDEK IXQFWLRQE\WH0H/LQHFRQVWVWULQJW[W Pøedávané parametry 1.parametr (const string): text položky Výstupní hodnota výstup (byte): =0... zákaz zobrazení, >0... zobrazení povoleno MeLine vytvoøí v menu položku s textem, který je pøedán parametrem. Pøed vytištìným textem je vlevo na displeji rezervován 1 znak pro pøípadnou blikající šipku, oznaèující aktuální pozici "ukazovátka" do seznamu položek. Bezprostøednì za vytištìný text lze buï standardními prostøedky jazyka SIMPLE4 dotisknout další informace nebo zaøadit nìkterý z editorù promìnných pro snadnou zmìnu hodnot promìnných pøímo z menu (knihovny MenuLib jich nabízejí nìkolik). Pøíklady použití $Y\XåLWt0H/LQHNSRXKpPXJHQHURYiQtWH[WRYpKRiGNX WYRUEDQiSRYG\DSRG 0H/LQH1$329('$ 0H/LQHVSXVWHQLGRSUDYQLNX 0H/LQHSURYHGHPHY\EHUHP 0H/LQHSROR]N\63867,7 0H/LQHYPHQX'235$91,.< %SRORåNDVSURPQQêPWH[WHPSRGOHSHGGHILQRYDQpWDEXON\7DEO YêEUWH[WXMHGiQSURPQQRX5H]LP ]DGHILQRYDQLWDEXON\WH[WX WDEOHVWULQJ>@7DEO /LQNDVWRML/LQNDMHGH3RUXFKD2GVWDYND YRODQLVY\EHUHPWH[WX]7DEOSRGOHKRGQRW\LQGH[X5H]LP 0H/LQH7DEO>5H]LP@ &GRWLVNþtVOD]DWH[WSRORåN\ LI0H/LQHSRFHWNVWKHQ',63/$<3RFHW.6B/ 'GRWLVNU$]QêFKWH[W$]WDEXON\]D]iNODGQtWH[W0H/LQH SRGOHVWDYXSURPQQp5H]LP WDEOHVWULQJ>@7DE6WDYX 6WRML-HGH3RUXFKD2GVWDYND LI0H/LQHFLQQRVWWKHQ',63/$<7DE6WDYX>5H]LP@ (GRWLVNSRPRFtGDOãtIXQNFH LI0H/LQHGQHVMHWKHQ7LVNQL'DWXP )]DþOHQQtHGLWRUXKRGQRW\SRSLV\HGLWRU$EXGRXGiOH LI0H/LQH]DGDQDWHSORWDWKHQ0H(GLW=DG7HSO 14 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 14

Stavové promìnné Funkce MeLine pøi svém bìhu nastavuje tyto stavové promìnné: bit Me_DISP, bit Me_SELECT a bit Me_PRESS (popis stavových promìnných byl uveden v pøedchozí kapitole) Aby se daly rovnou na výstupu funkce zjistit všechny podstatné informace, kopíruje MeLine aktuální stavové bity do své výstupní hodnoty na pozice bitù 0., 1. a 2. : MeLine?0 = Me_DISP (povoleno zobrazení na displej) MeLine?1 = Me_SELECT (položka navíc vybrána ukazovátkem) MeLine?2 = Me_PRESS (na položce navíc právì stisknuta klávesa ENT) Logicky platí, že pokud je bit Me_DISP v nule (položka není zrovna na displeji), jsou nulové i ostatní bity. Pokud je tedy nastaven Me_SELECT nebo Me_SELECT a Me_PRESS, musí být souèasnì nastaven i Me_DISP. Proto tedy k urèení, zda je daný øádek na displeji, staèí zjednodušené porovnání výstupu funkce ve stylu nula/nenula. $]MHGQRGXãHQêWHVWQDQHQXORYRVW LI0H/LQHSRFHWNXVXWKHQ',63/$<3RFHW.6 %WRWpåSRURYQiQt]DSVDQpMLQêP]S$VREHP LI0H/LQHSRFHWNXVX!WKHQ',63/$<3RFHW.6 &WHVWQDKRGQRWXELWXYêVWXSXIXQNFHLQIRUPDFH0HB',63 LI0H/LQHSRFHWNXVX"WKHQ',63/$<3RFHW.6 'SRXåLWtVWDYRYpKRELWXQDPtVWRYêVWXSQtKRGQRW\ 0H/LQHSRFHWNXVX LI0HB',63WKHQ',63/$<3RFHW.6 V další ukázce použijeme informaci o stisku klávesy ENT na vybraném øádku (napø. pro pøímé nastavení bitu nebo vykonání nìjaké akce): 3529('(1Ë$.&(3267,6.8./È9(6<(171$32/2ä&( $Y\XåLWtELWX0HB35(66 0H/LQH0272563867,7 LI0HB35(66WKHQ9<6783B02725 0H/LQH02725=$67$9,7 LI0HB35(66WKHQ9<6783B02725 %WHVWRYiQtELWXYêVWXSQtKRGQRW\IXQNFH0H/LQH LI0H/LQH63867,702725"WKHQ9<6783B02725 LI0H/LQH=$67$9,702725"WKHQ9<6783B02725 &NRPELQRYDQpY\XåLWtLQIRUPDFtR]REUD]HQtLVWLVNX(17 MHGQDNSURWLVNDNWXiOQtKRVWDYXMHGQDNSURSURYHGHQtDNFH LI0H/LQH02725WKHQEHJLQ LI9<6783B02725WKHQ',63/$<=$67$9,7HOVH',63/$<63867,7 LI0HB35(66WKHQ9<6783B02725 LQYHUWRYDWYêVWXSSLVWLVNX 15 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 15

MeNext Vytvoøení položky typu DALŠÍ MENU IXQFWLRQELW0H1H[WFRQVWVWULQJW[W Pøedávané parametry 1.parametr (const string): text položky Výstupní hodnota výstup (bit): =0... normální bìh, =1... vnoøení do podmenu Položka MeNext se používá pro vnoøování do dalších úrovní menu. Pøi bìžném listování v menu položka MeNext zobrazuje na øádku text, pøedaný jako parametr. Za textem je pøidán symbol šipky, avizující možnost pøechodu do dalšího menu. Dojde-li na této položce ke stisku klávesy ENT, aktivuje se další úroveò menu a funkce dává na svém výstupu hodnotu 1. K návratu zpìt do vyšší úrovnì dojde po stisku klávesy ESC. MeNext tvoøí jakousi výhybku ve struktuøe menu. Pøedpokládá se, že program menu použije funkci MeNext k rozvìtvení bìhu programu na dvì èásti (konstrukcí if-then). Není-li podmínka splnìna (MeNext=0), zùstává program ve stávající úrovni. Je-li MeNext=1, znamená to pøechod do další vnoøené úrovnì. Pøíklad použití 0H7LWOH+/$91,8529(1 KODYQtEORNPHQX LI0H1H[WYVWXSGRXURYQHWKHQEHJLQ 0H7LWOH8529(1 EORNPHQX~URYQ LI0H1H[WYVWXSGRXURYQHWKHQEHJLQ 0H7LWOH8529(1 EORNPHQX~URYQ 0H/LQHMVPHYXURYQL WDG\SRNUDþXMHEORN~URYQ WDG\XåSRNUDþXMHKODYQtEORNPHQX K uvedenému pøíkladu: Jsme napø. v hlavní úrovni, listujeme v menu, všechny funkce MeNext v hlavní úrovni dávají hodnotu 0 a program nezabíhá do žádných vìtví, podmínìných funkcemi MeNext. Vyberme položku vytvoøenou funkcí MeNext("vstup do 2.urovne") a stisknìme ENT. Dojde k vnoøení - funkce MeNext("vstup do 2.urovne") od tohoto okamžiku nezobrazuje text, dává každém prùchodu hodnotu 1 a všechny pøedcházející funkce jsou uvnitø "odstaveny". Veškeré zobrazení a ovládání teï zaèíná funkcí MeTitle("2.UROVEN") a konèí na konci bloku funkcí MeEnd. Analogicky dalším stiskem ENT na položce dané funkcí MeNext("vstup do 3.urovne") se vnoøíme ještì dále, tato funkce MeNext bude dávat od tohoto okamžiku výstupní hodnotu 1 a "zapnuty" budou až funkce následující za ní. Každý stisk ESC pak vrací hodnotu poslední aktivované výhybky MeNext do stavu 0 a vrací øízení do pøedchozí úrovnì. 16 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 16

Stavové promìnné Funkce nastavuje stavové promìnné: bit Me_DISP, bit Me_SELECT Má-li být na øádku s položkou typu MeNext zobrazena ještì další informace, hodnota, apod., je tøeba k tomu použít stavový bit Me_DISP. K položce typu MeNext nelze pøidat editor, protože stisk ENT je na této položce vyhrazen pro vnoøení do dalšího menu. Jak bylo uvedeno, za text položky tiskne MeNext symbol šipky. Tisk další informace by tedy následoval až za šipkou. Nastavením stavové promìnné Me_SYMBOLOFF do 1 je možno vypnout tisk šipky ve funkcích MeNext. Chceme-li být precizní, mùžeme pak dále popsanou funkcí MeDispArrow dodateènì šipku dotisknout. Pozn.: Stavové bity se nastavují jen tehdy, je-li MeNext=0. V opaèném pøípadì se jedná o vnoøení a stavové bity budou záviset na stavu dalšího menu. 'RWLVNVWDYXNRWOH723,1(723,StPRQDiGHNVSRORåNRX0H1H[W 7HVWQD0HB',63DSRGPtQQpSURYHGHQtWLVNXMHWHEDSURYpVW Då]DNRQVWUXNFtLI0H1H[WWKHQSURWRåHSRNXGMH0H1H[W QH]REUD]XMHVHYODVWQtWH[WSRORåN\DOHYQRHQpPHQX 0HB6<0%2/2)) Y\SQXWtV\PEROXãLSN\ LI0H1H[W.27(/WKHQEHJLQ 0H7LWOH2.58+.27/( LI0H/LQH7HSORWDWKHQ',63/$<.RWB7HSORWD LI0H/LQH9\NRQWKHQ',63/$<.RWB9\NRQ LI0HB',63WKHQEHJLQ LI.RWB=$3WKHQ',63/$<723,HOVH',63/$<1(723, 0HB6<0%2/2)) RSWQp]DSQXWtV\PEROXãLSN\ 4.2. Editory hodnot Slouží k editaci promìnných. Je jich nìkolik typù pro rùzné pøípady. Jsou pøizpùsobeny k snadnému zaèlenìní do položek menu, tvoøených funkcí MeLine. V každé položce mùže být jen jeden editor, poèet položek s editory nicménì není nijak omezen. Všechny editory mají jednotnou filozofii ovádání. Pøi bìžném procházení položkami v menu zobrazuje každý editor hodnotu promìnné, která je mu pøedávána jako parametr (pracuje v zobrazovacím režimu). Pøi stisku klávesy ENT na vybrané položce s editorem pøejde dotyèný editor do editaèního režimu a v zobrazované hodnotì se v levé èásti objeví blikající kurzor (ostatní editory zùstávají v zobrazovacím režimu). Šipky nyní neovládají pohyb v menu, ale editaci. Šipky nahoru/dolù mìní hodnotu, u èíselných editorù MeEdit navíc šipky vlevo/vpravo pøecházejí po øádech èísla. Editaci lze ukonèit klávesou ESC nebo ENT. ESC stornuje všechny provedené zmìny a editovaná promìnná si podrží pùvodní stav. ENT potvrdí nový stav a editovaná promìnná se pøepíše novou hodnotou. POZN.: Hodnota mìnící se bìhem editace je udržována ve vnitøní promìnné editoru. Pøedaná editovaná promìnná se tedy v prùbìhu editace nemìní. K její eventuální zmìnì dojde jen tehdy, je-li editace potvrzena klávesou ENT. 17 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 17

MeEdit Èíselný editor promìnných pro datové typy BYTE, WORD, INT, LONGWORD, LONGINT a FLOAT VXEURXWLQH0H(GLWYDUE\WHLRGDWDE\WHHPLQE\WHHPD[ VXEURXWLQH0H(GLWYDUZRUGLRGDWDZRUGHPLQZRUGHPD[ VXEURXWLQH0H(GLWYDULQWLRGDWDLQWHPLQLQWHPD[ VXEURXWLQH0H(GLWYDUORQJZRUGLRGDWDORQJZRUGHPLQORQJZRUGHPD[ VXEURXWLQH0H(GLWYDUORQJLQWLRGDWDORQJLQWHPLQORQJLQWHPD[ VXEURXWLQH0H(GLWYDUIORDWLRGDWDIORDWHPLQIORDWHPD[ Pøedávané parametry 1.parametr (var data_typ): editovaná promìnná 2.parametr (data_typ): dolní limit editované hodnoty 3.parametr (data_typ): horní limit editované hodnoty Všechny 3 parametry jsou stejného typu, editory jsou k dispozici pro datové typy byte, word, int, longword, longint, float. Název procedury je stále stejný, správný druh vybere pøekladaè podle typu parametrù, které jsou do procedury pøedány. Funkce a ovládání editoru Kromì jednotného zpùsobu ovládání, popsaného v úvodu k editorùm, mají funkce MeEdit ještì nìkolik specifických vlastností. Šipkami vpravo/vlevo lze pøecházet po øádech èísla (je-li èíslo vícemístné). Šipkami nahoru/dolù se mìní èíslice na daném øádu vždy o 1, pøièemž funguje pøenos do vyšších i nižších øádù. Struènì øeèeno: Stojí-li kurzor na jednotkách, pak opakovaný stisk nebo držení šipky nahoru/dolù neustále pøièítá/odèítá jednièku. Podobnì stojí-li kurzor na desítkách, pøièítáme/odèítáme desítku. U znaménkových typù zvìtšování/zmenšování hodnoty plynule pracuje i pøes nulu. Je-li nastaveno zobrazení se znaménkem, je možno posunout kurzor až na znaménko a šipkou nahoru/dolù mìnit znaménko. U datových typù FLOAT (jsou-li zobrazeny v exponenciálním tvaru) lze dokonce posunout kurzor do oblasti exponentu a editovat tak separátnì i exponent. Pøi nastavování hodnoty smìrem nahoru nebo dolù funguje dolní a horní limit, hodnotu je možno editovat pouze v zadaných mezích. V zobrazovacím režimu je promìnná interpretována tak, jak je, bez ohledu na limity. Po vstupu do editaèního režimu se zobrazovaná hodnota pøizpùsobí nastaveným limitùm, nicménì editaci je pak nutno potvrdit stiskem ENT, aby se zmìna skuteènì pøepsala do editované promìnné. Editor je uzpùsoben k zaèlenìní do položky typu MeLine. Editor sám pøejde ze zobrazovacího do editaèního režimu pøi detekci bitu Me_PRESS. Editovanou promìnnou (1.parametr) editor po potvrzení editace sám zmìní. To je možné díky pøedání parametru odkazem (pozn.: klíèové slovo var v deklaraci hlavièky procedury). Nevýhodou tohoto jinak elegantního øešení je komplikace pøi editaci sí ových promìnných - viz dále. 18 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 18

Formát zobrazení Tvar zobrazení èísla je dán nastavením systémové promìnné FORMAT. Lze tedy editovat èísla zobrazená ve všech formátech, podporovaných automaty MICROPEL, tedy napø. i v hexadecimálním tvaru. Nevhodná volba formátu však mùže pøinášet komplikace. Chceme-li napø. editovat znaménkové promìnné i s možností snadné zmìny znaménka, mìl by mít FORMAT nastaveno zobrazení znaménka " +". Pak je možné kdykoliv kurzorem najet na znaménko. Není-li tomu tak, pak u záporných hodnot znaménko je a lze se na nìj kurzorem dostat, ale u kladných hodnot ne. Další komplikace mohou být u promìnných typu FLOAT. Aby byla možná jejich bezproblémová editace, mìl by být FORMAT nastaven na takový poèet desetinných míst, který má být editovatelný (jen tak je zajištìno, že požadovaná desetinná místa budou vždy zobrazena a tudíž pøístupná k editaci). Má-li být u promìnných typu float editovatelný i exponent (vhodné pro zmìny èísel ve velkých rozsazích), je tøeba nastavit FORMAT na exponenciální zobrazení èísla. Obecnì pøi editaci promìnných typu FLOAT bychom nemìli používat automatický formát (nebo základní univerzální nastavení FORMAT=0). Tak, jak se mìní velikost èísla, mìní se automaticky i zpùsob jeho vyjádøení a to je pro editaci nevhodné. Pøíklad použití $-HGQRGXFKp]DþOHQQtHGLWRUXGRSRORåN\0H/LQH FHORþtVHOQi]QDPpQNRYiSURPQQiGHVPtVWROLPLW\ )250$7 [ LI0H/LQH.RUHNFHVHFWKHQ0H(GLW.RUHNFH&DVX %7RWpåDOHVGRWLVNHPMHGQRWHNDå]DþtVOHP LI0H/LQH.RUHNFHWKHQEHJLQ )250$7 [ UH]HUYRYDWSHYQ]QDN\SURþtVOR 0H(GLW.RUHNFH&DVX ',63/$<VHF Sí ové promìnné Protože editovaná promìnná je pøedávána odkazem, aby ji editor mohl sám zmìnit, není bohužel možné procedurou MeEdit pøímo zpracovávat sí ové promìnné (sí ovou promìnnou totiž nelze pøedat odkazem). Tento nepøíjemný nedostatek lze obejít napøíklad použitím pomocné promìnné zhruba takto: (GLWDFHVt"RYpSURPQQp3RVXQXPtVWQpQDSQD' YDUZRUGSRPRFQ\ ]DORåHQtSRPRFQpSURPQQpW\SXZRUG LI0H/LQH3RVXQXWLWKHQEHJLQ SRPRFQ\ 3RVXQ SHVXQXWtVt"RYpSURPQQpGRSRPRFQp 0H(GLWSRPRFQ\ HGLWRUSUDFXMHVSRPRFQRXSURPQQRX LISRPRFQ\!3RVXQWKHQ3RVXQ SRPRFQ\ ]islvgrvt"rypsurpqqpgrãorolnh]pq 19 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 19

MeSelector Editor indexu pro textové zobrazení stavù IXQFWLRQE\WH0H6HOHFWRUYDUE\WHLRGDWDE\WHPLQE\WHPD[ Pøedávané parametry 1.parametr (var byte): editovaná promìnná 2.parametr (byte): dolní limit 3.parametr (byte): horní limit Výstupní hodnota výstup (byte): prùbìžný stav hodnoty Pro práci s promìnnými, které nabývají omezeného množství hodnot (editovaná promìnná i limity jsou typu byte). Typickým pøíkladem jsou promìnné, popisující nìjaký stav, pøièemž možných stavù je definované množství a mají nìjaké slovní pojmenování. Editor sám o sobì kromì pozice pro kurzor nezobrazuje nic, jen korektnì nastavuje promìnnou POSITION a poskytuje na výstupu prùbìžnou editovanou hodnotu, tak jak se mìní bìhem editace. Pøedpokládá se použití této výstupní hodnoty jako indexu do tabulky textù, které se pak zobrazují standardní funkcí DISPLAY. Bìhem editace se pak na displeji namísto èísel objevují textové názvy, odpovídající jednotlivým hodnotám editované promìnné. Vlastní zápis do editované promìnné (té, která se pøedává do funkce jako 1.parametr) se ale samozøejmì provede až po potvrzení klávesou ENT. Pøi tvorbì textù je tøeba poèítat s tím, že editor vytvoøí na displeji jeden prázdný znak (pøed tiskem textu) pro pøípadný blikající kurzor, oznaèující režim editace. Ovládání Editor má jednotný zpùsob ovládání, popsaný v úvodu k editorùm, zmìna hodnoty se provádí pouze šipkami nahoru/dolù. Je tu jedna odlišnost proti èíselným editorùm - po dosažení dolního/horního limitu se hodnota nezastaví, ale "toèí" se dokola. Tedy pøi podržení šipky všechny názvy neustále defilují za sebou kolem dokola. Pøíklad použití Mìjme napø. promìnnou Rezim, která nabývá hodnot 0,1,2,3 a ty odpovídají stavùm VYPNUTO, KONST, UTLUM a EKVITERM. Uvedený pøíklad zobrazuje text z tabulky, kde jako index do tabulky je použita rovnou výstupní hodnota funkce MeSelector a tak je v zobrazovacím i editaèním režimu umožnìno zobrazení textových názvù odpovídajícím jednotlivým hodnotám promìnné Rezim. Pozn.: Bude-li výstupní hodnota vìtší než velikost tabulky, operaèní systém automatu automaticky nastaví index na 0. (GLWDFHSURPQQp5H]LPNWHUiQDEêYiWFKWRVWDY$ 9<31872.216787/80(.9,7(50 GHILQLFHWH[WRYêFKQi]Y$MHGQRWOLYêFKVWDY$ WDEOHVWULQJ>@1D]Y\6WDYX 9<31872.216787/80(.9,7(50 ]REUD]HQtWH[W$QDGLVSOHML LI0H/LQHUH]LP87WKHQ',63/$<1D]Y\6WDYX>0H6HOHFWRU5H]LP@ 20 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 20

MeBitSelector Editor bitu s textovým zobrazením stavù IXQFWLRQELW0H%LW6HOHFWRUELWEEFRQVW0HBWEOW[WW[W Pøedávané parametry 1.parametr (bit): bit k editaci 2.parametr (table string[2]): tabulka textù o 2 prvcích - názvy stavù Výstupní hodnota výstup (bit): pokyn k invertování editovaného bitu Pro editaci bitu. Stav bitu je na displeji zobrazen ve formì textu, proto se jako parametr do funkce, kromì editovaného bitu, pøedává i odkaz na pole dvou textù (kde na položce 0. je text pro hodnotu bitu=0 a na položce 1. text pro bit=1). Pozn.: datový typ Me_tbl2txt, uvedený v deklaraci funkce je vytvoøen jen kvùli možnosti pøedání konstantního pole do funkce a není tøeba se s ním nijak zabývat. Dvojici požadovaných textù je tøeba zadefinovat standardní konstrukcí: table string[2] název_pole = ("text_0", "text_1") Pøi tvorbì textù je tøeba poèítat s tím, že editor vytvoøí na displeji jeden prázdný znak (pøed tiskem textu) pro pøípadný blikající kurzor, oznaèující režim editace. Protože bit nelze do funkce pøedávat odkazem, není tento editor schopen sám provést zmìnu bitu pøedaného na místì 1.parametru. K tomuto úèelu dává funkce MeBitSelector na výstupu pokyn k invertování tohoto bitu. Výstup bude mít hodnotu 1 jen tehdy, pokud bude editace potvrzena klávesou ENT a pokud tím zároveò dojde i ke zmìnì pùvodní hodnoty bitu. Proto se bitový editor musí v programu použít zcela specifickým zpùsobem, ukázaným níže v pøíkladu použití. Ovládání Editor má jednotný zpùsob ovládání, popsaný v úvodu k editorùm, zmìna hodnoty se provádí pouze šipkami nahoru/dolù. Protože editor bitu zná jen dva stavy, pøi stisku jakékoliv šipky se hodnota pøeklápí. Pøíklad použití (GLWDFHELWX9(75$1,NWHUêQDEêYiVWDY$9<31872D=$31872 GHILQLFHWH[WRYêFKQi]Y$MHGQRWOLYêFKVWDY$ WDEOHVWULQJ>@9\S=DS7H[W 9<31872=$31872 SRXåLWtELWRYpKRHGLWRUX LI0H/LQHYHWUDQLWKHQEHJLQ LI0H%LW6HOHFWRU9(75$1,9\S=DS7H[WWKHQ9(75$1, 21 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 21

MeSetRTC Nastavení reálného èasu automatu VXEURXWLQH0H6HW57& Umožòuje kompletní nastavení všech registrù reálného èasu automatu obsluhou z klávesnice. Tuto proceduru je vhodné zaèlenit do všech programù, které nìjakým zpùsobem používají reálný èas. Obvod RTC v automatu má samozøejmì omezenou pøesnost a po nìjakém èase se jeho údaje rozejdou se skuteèností. Pokud není korekce RTC øešena jinak (napø. z osobního poèítaèe), je tøeba dát obsluze k dispozici alespoò tento prostøedek. Procedura MeSetRTC je již hotové pøedpøipravené samostatné menu, které je možno kamkoliv zaèlenit a které má nìkolik položek na nastavení roku, mìsíce, data, hodin, minut, sekund a dne v týdnu. Jako nadpis menu se zobrazuje aktuální stav RTC. Procedura nemá žádné vstupní parametry a nedává ani žádnou výstupní hodnotu. Uvnitø procedury je na konci již obsaženo volání ukonèovaèe MeEnd na zakonèení bloku menu. Pøedpokládá se použití ve formì vnoøeného menu, zaèlenìného do položky typu MeNext. Pøíklad použití =DþOHQQtPHQXSURQDVWDYHQt57& LI0H1H[W5($/1<&$6WKHQ0H6HW57& 4.3. Zobrazovací funkce Zobrazení èíselných hodnot i textù z tabulek zajistíme standardní funkcí DISPLAY a nastavením požadovaného formátu zobrazení v promìnné FORMAT: =REUD]HQtþtVODIORDWIL[SRLQWGHVPtVWD )250$7 [ LI0H/LQHNRHILFLHQWWKHQ',63/$<.RHI )250$7 =REUD]HQtVWDYXWH[WRY]WDEXON\SRGOHVWDYXSURPQQp5H]LP LI0H/LQHUH]LPWKHQ',63/$<1D]Y\6WDYX>5H]LP@ Dále je popsáno nìkolik funkcí pro složitìjší pøípady zobrazení, kdy nestaèí pouhý jednoduchý tisk pomocí funkce DISPLAY. Jsou to funkce pro zobrazení data/èasu, zobrazení stavu bitu v textové formì a ovládání tisku symbolu šipky u funkcí MeNext. Funkce zobrazují na displej od pozice dané momentálním nastavením promìnné POSITION a nijak nesouvisejí s funkcemi bìhu menu, lze je tedy využít i mimo menu, v libovolném uživatelském programu. 22 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 22

MeDispBitText Zobrazení stavu bitu textem VXEURXWLQH0H'LVS%LW7H[WELWEEFRQVW0HBWEOW[WW[W Pøedávané parametry 1.parametr (bit): bit pro zobrazení 2.parametr (table string[2]): tabulka textù o 2 prvcích - názvy stavù Zobrazení stavu bitu ve formì textu. Typ pøedávaných parametrù, jejich význam a zadefinování tabulky textù jsou pøesnì stejné jako u výše popsaného editoru MeBitSelector. Je tedy možné využít pøeddefinované tabulky dvojic textù jak pro MeDispBitText, tak pro MeBitSelector. Pøíklad použití =REUD]HQtVWDYXELWX60(5 SRXåLWtELWRYpKRHGLWRUX WDEOHVWULQJ>@6PHUB7H[W 9/(92935$92 SRXåLWt]REUD]RYDþHVWDYXELWXYSRORåFH LI0H/LQHVPHUSRK\EXWKHQ0H'LVS%LW7H[W60(56PHUB7H[W MeDispArrow Zobrazení symbolu šipky VXEURXWLQH0H'LVS$UURZ Vytiskne na displej symbol šipky na aktuální pozici POSITION. Pokud se v programu používají funkce MeNext s vypnutou šipkou (Me_SYMBOLOFF=1) a s pøíp. dotiskem dalších informací za text položky, mùže být vhodné za nì šipku dotisknout. To se provede pouhým zavoláním této funkce. Pøíklad použití 'RSOQQêStNODGXYHGHQêXSRSLVXIXQNFH0H1H[W 0HB6<0%2/2)) Y\SQXWtV\PEROXãLSN\ LI0H1H[W.27(/WKHQEHJLQ 0H7LWOH2.58+.27/( LI0HB',63WKHQEHJLQ LI.RWB=$3WKHQ',63/$<723,HOVH',63/$<1(723, 0H'LVS$UURZ GRWLVNQXWtãLSN\ 0HB6<0%2/2)) RSWQp]DSQXWtV\PEROXãLSN\ 23 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 23

MeDispRTC Zobrazení reálného èasu VXEURXWLQH0H'LVS57&E\WHPRGH Pøedávané parametry 1.parametr (byte): mód zobrazení Zobrazení reálného èasu. Mód zobrazení svými prvními pìti bity urèuje, co se na displeji zobrazí. Není-li nastaveno zobrazení èasu ani data, nezobrazí se nic. V tabulce je uvedena funkce jednotlivých bitù i ukázky možných módù zobrazení : mód zobrazení mód ukázka mód ukázka bit funkce 0 24 27.09. 18:05 4. zobrazení data 8 18:05 25 27.09. 18:05:30 3. zobrazení èasu 9 18:05:30 28 27.09.04 18:05 2. datum vèetnì roku 16 27.09. 29 27.09.04 18:05:30 1. rok v dlouhém formátu 20 27.09.04 30 27.09.2004 18:05 0. èas vèetnì sekund 22 27.09.2004 31 27.09.2004 18:05:30 Pøíklad použití $3RXåLWtUHiOQpKRGDWDþDVXStPRYQDGSLVXPHQX LI0H7LWOH.27(/1$WKHQ0H'LVS57&WLVNNUiWNpKRGDWDþDVX %3tNODG]REUD]HQt~SOQPLPRPHQXQDSQDYROQêQHY\XåLWêiGHN 326,7,21 WLVNQDiGHN 0H'LVS57& WLVNNRPSOHWQtLQIRUPDFH &=DþOHQQtGRSRORåN\PHQX LI0H/LQH'QHVMHWKHQ0H'LVS57&WLVNGDWDDURNX 4.4. Funkce pro zobrazování seznamù Všechny dosud popsané funkce poèítají s bloky menu vytvoøenými z jednotlivých rùzných položek typu MeLine nebo MeNext, volaných po sobì. Kolik položek napíšeme v programu za sebou, tolik jich pak v menu je. Èasto je však tøeba vytvoøit dlouhý seznam nebo dokonce tabulku položek stejného typu, ale s pøedem neznámým nebo promìnným poètem položek (napøíklad seznam prvkù pole, které se liší jen indexem). Tuto úlohu øeší zde popsané funkce. 24 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 24

MeTable Vytvoøení øady položek VXEURXWLQH0H7DEOHYDUZRUGL\ZRUG\VL]H Pøedávané parametry 1.parametr (var word): promìnný index osy Y (index do seznamu) 2.parametr (word): poèet položek v ose Y (délka seznamu) Øazení položek za sebou a separátní pojmenování každé položky menu textovým názvem, tak jak bylo ukázáno v úvodním pøíkladu, vyhovuje pro menší poèet navzájem rùznorodých položek. Potøebujeme-li však vytvoøit velmi dlouhý blok stejných nebo velmi podobných položek (chceme napøíklad editovat pole padesáti promìnných stejného typu), je to tímto zpùsobem nešikovné nebo dokonce neproveditelné. Procedura MeTable tvoøí jakýsi "opakovaè" položek. Používá se na zaèátku seznamu položek (až za pøípadným nadpisem MeTitle) a za ní mùže být jen jedna jediná položka - buï typu MeLine anebo MeNext. Pak musí následovat ukonèovaè MeEnd. Jediné, co takto vzniklou øadu položek navzájem odlišuje, je promìnný index. Tak, jak procházíme šipkami nahoru/dolù, mìní procedura MeTable promìnnou na místì 1.parametru - index osy Y (je to analogické se svislým pohybem ve sloupci tabulky). Procedura pøipraví v každém prùchodu programu podmínky pro zpracování jedné položky v následné funkci MeLine nebo MeNext. Podmínky se cyklicky mìní tak, aby se na všechny dostupné øádky displeje vytiskly patøièné položky. Napø.: jsou k dispozici 3 øádky displeje a zobrazuje se tabulka od 7. do 9. øádku - pak se volá MeLine nebo MeNext s indexem 7 pro 1.øádek, 8 pro 2.øádek, 9 pro 3.øádek.. a tak stále dokola. Pøíklad použití (GLWDFHMHGQRGXFKpKRVH]QDPXRSRORåNiFK YDUZRUG>@&DV\2KUHYX ]DGHILQRYiQtSROHVSDUDPHWU\þDV$ YDUZRUG,QGH[ LQGH[GRVH]QDPX LI5(6(7WKHQ,QGH[ SRþiWHþQtLQLFLDOL]DFH VDPRVWDWQpYQRHQpPHQXVWDEXONRX LI0H1H[W1DVWDYHQLSDUDPHWUXWKHQEHJLQ 0H7LWOH'2%$2+5(98 0H7DEOH,QGH[ Y\WYRHQtVH]QDPXRSRORåNiFK LI0H/LQHSURFHVWKHQEHJLQ ',63/$<,QGH[ ',63/$< 0H(GLW&DV\2KUHYX>,QGH[@HGLWDFHSDUDPHWUXYUR]PH]t 25 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 25

m doplòku MeXShift (viz dále) snadno vznikne dvourozmìrná tabulka, v níž je možný pohyb všemi smìry po øádcích i sloupcích. V tabulce funguje i vnoøení do dalších menu, použijeme-li položky MeNext. Ve vnoøeném menu pak mùžeme použít cokoli, tedy i další tabulku a pracovat tak s tabulkou tabulek... MeXShift Doplnìk k proceduøe MeTable - horizontální pohyb po sloupcích tabulky VXEURXWLQH0H;6KLIWYDUZRUGL[ZRUG[VL]H Pøedávané parametry 1.parametr (var word): promìnný index osy X (index sloupce) 2.parametr (word): poèet položek v ose X (poèet sloupcù) Doplnìk k proceduøe MeTable, umožòující rozšíøení tabulky na více sloupcù, tedy rozšíøení z jednorozmìrné tabulky na dvourozmìrnou. Zaøazuje se vždy tìsnì za MeTable, za MeXShift pak již následuje vytvoøení položky MeLine nebo MeNext. Šipkami vlevo/vpravo pøecházíme mezi jednotlivými sloupci - procedura mìní promìnnou na místì 1.parametru - index osy X. Parametr 2. nastavuje horizontální rozmìr tabulky - poèet sloupcù. Procedury MeTable a MeXShift tedy spoleènì zajistí ovládání indexù X i Y a pohyb po øádcích i sloupcích pomocí šipek nahoru, dolù, vlevo a vpravo. Pøíklad použití Pro øadu stejných procesù nastavujeme napø.: dobu zapnutí, dobu vypnutí, dobu ohøevu : (GLWDFHWDEXON\SDUDPHWU$UR]PUQpKRSROHRYHOLNRVWL[SUYN$ LQGH[Y\EtUi]DSQXWtY\SQXWtRKHYLQGH[MHþSURFHVX YDUZRUG>@>@&DV\ YDUZRUG7DE;7DE< SURPQQpSURLQGH[\;D<GRWDEXON\ SRMPHQRYiQtVORXSF$WDEXON\SUROHSãtSHKOHGQRVW WDEOHVWULQJ>@7H[W6ORXSFH =$3187,9<3187,2+5(98 LI5(6(7WKHQEHJLQ 7DE; SRþiWHþQtLQLFLDOL]DFHSURPQQêFKSURRV\;D< 7DE< YQRHQpPHQXSURHGLWDFLYãHFKSDUDPHWU$YWDEXOFH LI0H1H[W1DVWDYHQLSDUDPHWUXWKHQEHJLQ LI0H7LWOH'2%$WKHQ',63/$<7H[W6ORXSFH>7DE;@ 0H7DEOH7DE< Y\WYRHQtVH]QDPXRSRORåNiFK 0H;6KLIW7DE; Y\WYRHQtVORXSF$WDEXON\ LI0H/LQHSURFHVWKHQEHJLQ ',63/$<7DE< ',63/$< 0H(GLW&DV\>7DE;@>7DE<@ 26 MenuLIB - knihovna pro tvorbu ovládacích rozhraní PLC, 02.2005, 29 stran 26