HypEd4 Uživatelská příručka © 2004 HYPEL®
I
HypEd4 - Uživatelská příručka
Obsah Kapitola I Vítejte
6
1 Použití nápovědy ................................................................................................................................... 6 2 Co je nového ................................................................................................................................... v programu HypEd 4 6 3 Získání další odborné ................................................................................................................................... pomoci 6
Kapitola II Instalace, upgrade a odstranění
9
1 Čistá instalace................................................................................................................................... z CD-ROM 9 2 Čistá instalace................................................................................................................................... z internetu 9 3 Upgrade z CD-ROM ................................................................................................................................... 10 4 Upgrade z internetu ................................................................................................................................... 10 5 Odstranění existující ................................................................................................................................... instalace 10
Kapitola III Editor zdrojových textů
12
1 Hlavní menu ................................................................................................................................... aplikace 13 Menu Soubor.......................................................................................................................................................... 13 Příkaz Nový ......................................................................................................................................................... 15 Příkaz Otevřít ......................................................................................................................................................... 16 Příkaz Uložit ......................................................................................................................................................... 17 Příkaz Uložit ......................................................................................................................................................... jako 18 Příkaz Tisk ......................................................................................................................................................... 19 Příkaz Náhled ......................................................................................................................................................... 21 Příkaz Vzhled ......................................................................................................................................................... stránky 22 Příkaz Nastavení ......................................................................................................................................................... tiskárny 24 Historie otevřených ......................................................................................................................................................... souborů 26 Příkaz Konec ......................................................................................................................................................... 26 Menu Úpravy .......................................................................................................................................................... 27 Příkaz Zpět ......................................................................................................................................................... 28 Příkaz Znovu ......................................................................................................................................................... 30 Příkaz Vyjmout ......................................................................................................................................................... 30 Příkaz Kopírovat ......................................................................................................................................................... 31 Příkaz Vložit ......................................................................................................................................................... 32 Příkaz Odstranit ......................................................................................................................................................... 33 Příkaz Vybrat ......................................................................................................................................................... vše 34 Příkaz Najít ......................................................................................................................................................... 35 Příkaz Najít ......................................................................................................................................................... další 37 Příkaz Najít ......................................................................................................................................................... předchozí 37 Příkaz Nahradit ......................................................................................................................................................... 38 Příkaz Pouze ......................................................................................................................................................... pro čtení 40 Menu Záložky ......................................................................................................................................................... 41 Příkazi pro jmenné ......................................................................................................................................... záložky 42 Menu Jdi ......................................................................................................................................................... na záložku 43 Pohyb mezi jmennými ......................................................................................................................................... záložkami 44 Menu Více ......................................................................................................................................................... záložek 45 Příkaz Vlož záložku ......................................................................................................................................... 46 © 2004 HYPEL®
Obsah
II
Příkaz Další záložka ......................................................................................................................................... 48 Příkaz Předchozí ......................................................................................................................................... záložka 49 Příkaz Vymaž všechny ......................................................................................................................................... záložky 50 Příkaz Přejít ......................................................................................................................................................... na 50 Menu Nástroje .......................................................................................................................................................... 52 Příkaz Přeložit ......................................................................................................................................................... 53 Příkaz Dowload ......................................................................................................................................................... 53 Příkaz Překlad ......................................................................................................................................................... + Download 54 Příkaz Setup ......................................................................................................................................................... 54 Příkaz Viewer ......................................................................................................................................................... 56 Příkaz Verifikace ......................................................................................................................................................... 57 Příkaz Archivace ......................................................................................................................................................... DNL 57 Menu Ladění .......................................................................................................................................................... 58 Příkaz Spustit ......................................................................................................................................................... program 59 Příkaz Restartovat ......................................................................................................................................................... program 59 Příkaz Animovat ......................................................................................................................................................... 60 Příkaz Krok ......................................................................................................................................................... 61 Příkaz Krok ......................................................................................................................................................... přes 62 Příkaz Vložit/odstranit ......................................................................................................................................................... breakpoint 63 Menu Volby .......................................................................................................................................................... 64 Příkaz Nastavení ......................................................................................................................................................... 65 Příkaz Překladač ......................................................................................................................................................... 67 Příkaz Loader ......................................................................................................................................................... 68 Příkaz Viewer ......................................................................................................................................................... 70 Příkaz Nastavení ......................................................................................................................................................... komunikačních konstant 71 Příkaz Nastavení ......................................................................................................................................................... syntaxe 73 Příkaz Notebook ......................................................................................................................................................... mód 74 Příkaz Status ......................................................................................................................................................... bar 74 Příkaz Nástrojová ......................................................................................................................................................... lišta Soubor 75 Příkaz Nástrojová ......................................................................................................................................................... lišta Úpravy 76 Příkaz Nástrojová ......................................................................................................................................................... lišta Nástroje 77 Příkaz Nástrojová ......................................................................................................................................................... lišta Ladění 78 Příkaz Číslování ......................................................................................................................................................... řádek 79 Příkaz Celá ......................................................................................................................................................... obrazovka 80 Menu Okna .......................................................................................................................................................... 82 Menu Nápověda .......................................................................................................................................................... 82
2 Nástroje pro ................................................................................................................................... vývoj aplikací 83 Překladač Loader Setup Viewer DNLGrabber
.......................................................................................................................................................... 84 .......................................................................................................................................................... 86 .......................................................................................................................................................... 88 .......................................................................................................................................................... 89 .......................................................................................................................................................... 91
3 Často kladené ................................................................................................................................... dotazy 92
Kapitola IV Simulátor průmyslových automatu firmy HYPEL
94
1 Menu Ladění................................................................................................................................... 94 Pozastavit program .......................................................................................................................................................... 95 Ukončit ladění .......................................................................................................................................................... 97 Okno paměti .......................................................................................................................................................... 97 Watch .......................................................................................................................................................... 98 Watch pohled ......................................................................................................................................................... 99
© 2004 HYPEL®
II
III
HypEd4 - Uživatelská příručka Přidat Proměnou ......................................................................................................................................................... 100 Časová základna .......................................................................................................................................................... 101 Terminál .......................................................................................................................................................... 103 Klávesnice ......................................................................................................................................................... 103 Display ......................................................................................................................................................... 105 Vložit/odstrait .......................................................................................................................................................... breakpoint 105
2 Často kladené ................................................................................................................................... dotazy 106
Kapitola V Jazyk Simple3
108
1 Struktura programu ................................................................................................................................... 108 2 Programování ................................................................................................................................... v jazyku Simple3 109 Uživatelský program .......................................................................................................................................................... a jeho zápis 109 Úprava textu.......................................................................................................................................................... 110 Komentáře .......................................................................................................................................................... 111 Identifikátory.......................................................................................................................................................... 111 Typy .......................................................................................................................................................... 112 Konstanty .......................................................................................................................................................... 112 Konstanty ......................................................................................................................................................... typu BIT 113 Konstanty ......................................................................................................................................................... typu WORD a INT 113 Konstanty ......................................................................................................................................................... typu REAL 114 Definice ......................................................................................................................................................... konstant 114 Proměnné .......................................................................................................................................................... 114 Vstupní, ......................................................................................................................................................... výstupní a předdefinované proměnné 115 Deklarace ......................................................................................................................................................... proměnných 115 Nově deklarované ......................................................................................................................................................... proměnné 116 Synonyma ......................................................................................................................................................... proměnných 117 Výrazy .......................................................................................................................................................... 117 Operátory ......................................................................................................................................................... a jejich priorita 118 Závorky ......................................................................................................................................................... 119 Standardní ......................................................................................................................................................... funkce 119 Definice symbolů .......................................................................................................................................................... 119 Jednoduché.......................................................................................................................................................... příkazy 120 Přiřazení......................................................................................................................................................... 120 Nastavení ......................................................................................................................................................... 121 Volání procedury ......................................................................................................................................................... 121 Zobrazení ......................................................................................................................................................... 121 Programové.......................................................................................................................................................... struktury 121 Struktura......................................................................................................................................................... IF 122 Struktura......................................................................................................................................................... CASE 123 Procedury a.......................................................................................................................................................... funkce 124 Formální......................................................................................................................................................... parametry 124 Volání procedury ......................................................................................................................................................... 126 Definice ......................................................................................................................................................... funkce 127 Direktivy .......................................................................................................................................................... 127 #INCLUDE ......................................................................................................................................................... 127 NetAddr ......................................................................................................................................................... 128 Pragma ......................................................................................................................................................... 128
3 Speciální funkce ................................................................................................................................... 128 Reset .......................................................................................................................................................... 129 Rychlost systému .......................................................................................................................................................... 130 Časovače .......................................................................................................................................................... 130 Reálný čas .......................................................................................................................................................... 132
© 2004 HYPEL®
Obsah
IV
A/D převodník .......................................................................................................................................................... 133 Rychlost......................................................................................................................................................... A/D převodu 133 Kalibrace......................................................................................................................................................... analogových vstupů 134 Módy funkce ......................................................................................................................................................... analogových vstupů pro měření odporu 134 Ukládání......................................................................................................................................................... dat do paměti EEPROM 135
4 Terminálové................................................................................................................................... funkce 136 Klávesnice .......................................................................................................................................................... 136 Autorepeat ......................................................................................................................................................... 136 Akustická ......................................................................................................................................................... indikace 137 Displej .......................................................................................................................................................... 137 LC Displej ......................................................................................................................................................... 137 Formáty ......................................................................................................................................................... zobrazování eíselných hodnot 138 Typ BIT ......................................................................................................................................... 138 Typ WORD ......................................................................................................................................... 138 Typ INTEGER ......................................................................................................................................... 139 Typ REAL ......................................................................................................................................... 139 Formát pro tisk......................................................................................................................................... znaků 140 Definování vlastních ......................................................................................................................................... grafických symbolů na LC disleji 141 Princip zobrazování ......................................................................................................................................... 143
5 Síťová vrstva ................................................................................................................................... 143 Popis komunikace .......................................................................................................................................................... 144 Síťové proměnné .......................................................................................................................................................... 144 Adresné zprávy .......................................................................................................................................................... 144 SendAddr ......................................................................................................................................................... 145 MemAddr ......................................................................................................................................................... 145 BitAddr ......................................................................................................................................................... 145 SendData ......................................................................................................................................................... 146 SendBit ......................................................................................................................................................... 146 SendCode ......................................................................................................................................................... 146 Odesílání ......................................................................................................................................................... zpráv 147 Příprava automatů .......................................................................................................................................................... pro provoz v síti 148 Volba komunikační ......................................................................................................................................................... rychlosti 148 Tipy pro ......................................................................................................................................................... používání sítě 148
6 Tipy pro užívání ................................................................................................................................... SIMPLE 149 Využívání definice .......................................................................................................................................................... konstant ENUM 150 Konečný automat .......................................................................................................................................................... 150
Rejstřík
152
© 2004 HYPEL®
IV
Kapitola
I
Vítejte
1
6
Vítejte Program Hyped4 je produktem firmy HYPEL. HypEd4 obsahuje ucelenou sadu nástrojů, pro usnadnění vývoje aplikací, určených pro průmyslové automaty firmy HYPEL. Program má dva základní režimy : · Editor zdrojových textů · Simulátor průmyslových automatu HYPEL
1.1
Použití nápovědy Jak získat nápovědu · Klikněte na menu Nápověda a vyberte Obsah · Klikněte na menu Nápověda a vyberte Rejstřík (Ctrl + F1) · Klikněte na menu Nápověda a vyberte Hledat téma (F1)
1.2
Co je nového v programu HypEd 4 Program HypEd 4 obsahuje několik novinek pro rychlejší a komfortnější vývoj aplikací pro automaty firmy HYPEL(r). Následující seznam obsahuje některé novinky verze 4 : · Nová verze překladače Simple · Vylepšený program Loader · Simulátor průmyslových automatů firmy HYPEL(r)
1.3
Získání další odborné pomoci Pokud potřebujete další odbornou pomoc při používání tohoto programu, prosím kontaktujte nás. Internet : http://www.hypel.cz/ Email :
[email protected]
© 2004 HYPEL®
7
HypEd4 - Uživatelská příručka
Mobil : 777000000
© 2004 HYPEL®
Kapitola
II
9
2
HypEd4 - Uživatelská příručka
Instalace, upgrade a odstranění Program lze na váš počítač nainstalovat několika způsoby. Vyberte si vám nejbližší metodu vaši distribuci. · Čistá instalace z CD-ROM · Čistá instalace z internetu · Upgrade z CD-ROM · Upgrade z internetu · Odstranění existující instalace
2.1
Čistá instalace z CD-ROM Jak instalovat čistou instalaci z CD-ROM 1. 2. 3. 4.
2.2
Odstraňte předchozí verzi programu HypEd. Vložte instalační CD do vaší CD-ROM. Instalační program se spustí automaticky, pokud ne, spusťte instalační program dvoj klikem na soubor setup.exe, který je na instalačním CD. Postupujte podle instrukcí instalačního programu.
Čistá instalace z internetu Jak instalovat čistou instalaci z internetu 1. 2. 3. 4.
Odstraňte předchozí verzi programu HypEd. Stáhněte si instalační program z internetu(http://www.hypel.cz/data/hyped4.zip). Rozbalte archiv hyped4.zip do pomocného adresáře a spusťte v něm program setup.exe. Postupujte podle instrukcí instalačního programu.
© 2004 HYPEL®
Instalace, upgrade a odstranění
2.3
10
Upgrade z CD-ROM Jak provést upgrade z CD-ROM 1. 2. 3. 4.
2.4
Odstraňte předchozí verzi programu HypEd. Vložte instalační CD do vaší CD-ROM. Instalační program se spustí automaticky, pokud ne, spusťte instalační program dvoj klikem na soubor setup.exe, který je na instalačním CD. Postupujte podle instrukcí instalačního programu.
Upgrade z internetu Jak provést upgrade z internetu 1. 2. 3. 4.
2.5
Odstraňte předchozí verzi programu HypEd. Stáhněte si instalační program z internetu(http://www.hypel.cz/data/hyped4.zip). Rozbalte archiv hyped4.zip do pomocného adresáře a spusťte v něm program setup.exe. Postupujte podle instrukcí instalačního programu.
Odstranění existující instalace Jak odstranit instalaci programu HypEd 1. 2. 3. 4. 5.
© 2004 HYPEL®
Zkontrolujte zda máte program HypEd nainstalován na vašem počítači. Z Windows panelu Start vyberte položku Ovládací panely. Klikněte na Přidat/Odebrat programy. Vyberte HypEd a klikněte na Změnit/Odebrat. Postupujte podle instrukcí instalačního programu.
Kapitola
III
Editor zdrojových textů
3
12
Editor zdrojových textů Editor zdrojových textů slouží k editaci zdrojových textů v jazyku SIMPLE3. Hlavní přednosti tohoto editoru jsou : · barevné zvýraznění syntaktických elementů programovacího jazyka SIMPLE3. · integrovaný překladač jazyka SIMPLE3. · nástroj pro nahrávání aplikace do automatů, tzv. Loader. · nástroj pro nastavení parametrů automatů, tzv. Setup. · nástroj pro on-line ladění aplikace v automatech, tzv. Viewer. · možnost vkládat záložky, jak anonymní, tak číslované, a pohyb mezi nimi klávesovými zkratkami, viz. Menu Záložky, Menu Více záložek. Hlavní okno aplikace :
© 2004 HYPEL®
13
3.1
HypEd4 - Uživatelská příručka
Hlavní menu aplikace V hlavním menu jsou přehledně rozděleny nástroje pro práci se soubory, s textem, automaty, atd. V tomto tématu budou vysvětlena jednotlivé nabídky, jejich položky a funkce těchto položek.
Hlavní menu aplikace obsahuje následující nabídky · Soubor · Úpravy · Nástroje · Ladění · Volby · Okna · Nápověda
3.1.1
Menu Soubor Tato položka obsahuje veškeré příkazy pro práci se souborem. Například otevírání souboru, ukládání souboru, tisk souboru, historii naposledy otevřených souborů, ... .
Jednotlivé příkazy menu : · Nový
© 2004 HYPEL®
Editor zdrojových textů
· · · · · · · · ·
© 2004 HYPEL®
Otevřít Uložit Uložit jako... Tisk... Náhled Vzhled stránky Nastavení tiskárny Historie otevřených souborů Konec
14
15
3.1.1.1
HypEd4 - Uživatelská příručka
Příkaz Nový Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + N" Funkce : Otevře dialog pro volbu typu souboru a vytvoří vámi specifikovaný soubor. Dialog volby souboru :
Typy souborů : ·Simple3 zdrojový soubor. Toto je doporučovaný typ souboru s příponou STP a je určen výhradně pro překladač SIMPLE3. © 2004 HYPEL®
Editor zdrojových textů
16
·Simple2 zdrojový soubor. Tento typ je pouze pro kompatibilitu s předcházející verzí překladače SIMPLE2. Vytvoří soubor s příponou BAS. ·Simple3 knihovna. Tento typ souboru se doporučuje používat pro knihovny jazyka SIMPLE3. Vytvoří soubor s příponou LIB. ·Binární soubor pro automat. Nedoporučuje se vytvářet tento typ souboru, protože tento typ souboru je určen přímo pro uložení do automatu. Přípona tohoto souboru je DNL.
3.1.1.2
Příkaz Otevřít Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + O" Funkce : Otevře standardní dialog pro otevření souboru. Dialog volby souboru :
© 2004 HYPEL®
17
HypEd4 - Uživatelská příručka
V seznamu souborů jsou uvedeny adresáře a soubory odpovídající typu souboru, v aktuálně zvoleném adresáři. Jako typ souboru můžete zvolit jeden z následujících typů : · Simple3 soubory - přípona STP. · Simple2 soubory - přípona BAS. · Simple3 knihovny - přípona LIB. · Binární soubor pro automat - přípona DNL. · Nebo všechny soubory - zobrazí všechny soubory v adresáři. · 3.1.1.3
Příkaz Uložit Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
18
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + S" Funkce : Uloží aktuálně otevřený soubor v editoru na disk. Pokud se jedná o soubor, který jste vytvořily pomocí menu Soubor - Příkaz Nový, a jedná se o první uložení tohoto souboru, budete vyzvání k zadání jeho jména a umístění.
3.1.1.4
Příkaz Uložit jako Položka menu :
© 2004 HYPEL®
19
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Zobrazí standardní dialog pro uložení souboru, který vám umožní zadat jméno, typ a umístění aktuálního souboru. Po potvrzení se soubor uloží na disk a stávající soubor zůstane v té podobě, v jaké byl po posledním uložení.
3.1.1.5
Příkaz Tisk Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + P" Funkce : Otevře standardní dialog pro tisk souboru. Dialog tisku souboru :
© 2004 HYPEL®
20
21
HypEd4 - Uživatelská příručka
V tomto dialogu si můžete zvolit, jakou tiskárnu chcete použít, nastavit parametry tisku, atd.
3.1.1.6
Příkaz Náhled Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Zobrazí náhled textu při tisku.
3.1.1.7
Příkaz Vzhled stránky Položka menu :
© 2004 HYPEL®
22
23
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Zobrazí dialog pro nastavení vzhledu stránky pro tisk.
© 2004 HYPEL®
Editor zdrojových textů
3.1.1.8
Příkaz Nastavení tiskárny Položka menu :
© 2004 HYPEL®
24
25
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Zobrazí standardní dialog pro nastavení parametrů tiskárny.
© 2004 HYPEL®
Editor zdrojových textů
3.1.1.9
26
Historie otevřených souborů Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : V této historii jsou uvedeny čtyři naposledy otevřené dokumenty. Po výběru jednoho z nich se dokument otevře pro editaci.
3.1.1.10 Příkaz Konec Položka menu :
© 2004 HYPEL®
27
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Ukončí aplikaci HypEd4. Pokud budou některé soubory neuložené, budete dotázáni, zda si přejete uložit tyto dokumenty, či nikoliv.
3.1.2
Menu Úpravy Tato položka obsahuje veškeré příkazy pro práci textovým editorem. Například vyhledávání textu, práci se záložkami, ... .
© 2004 HYPEL®
Editor zdrojových textů
Jednotlivé příkazy menu : · Zpět · Znovu · Vyjmout · Kopírovat · Vložit · Odstranit · Vybrat vše · Najít · Najít další · Najít předchozí · Nahradit · Pouze pro čtení · Záložky · Jdi na záložku · Více záložek · Přejít na
3.1.2.1
Příkaz Zpět Položka menu :
© 2004 HYPEL®
28
29
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + Z" Funkce : Pokud jste pomocí editoru provedli změny v aktuálně otevřeném souboru, tato akce provede jeden krok zpět a vratí se zpět ke stavu před touto změnou. Např.
V dokumentu máte tento text : if Label[Menu]>3 then Label[Menu]=0; endif
Provedli jste následující změnu : if Label[Menu]>3 then Label[Menu]=0; nesmyslendif
Spustíte-li příkaz Zpět, vrátíte se zpátky k původnímu textu : if Label[Menu]>3 then Label[Menu]=0; endif
© 2004 HYPEL®
Editor zdrojových textů
3.1.2.2
30
Příkaz Znovu Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + Y" Funkce : Pokud jste použili Příkaz Zpět, tento příkaz provede návrat k textu, který jste odstranili.
3.1.2.3
Příkaz Vyjmout Položka menu :
© 2004 HYPEL®
31
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + X" Funkce : Odstraní aktuálně vybraný text z dokumentu a uloží ho do schránky.
3.1.2.4
Příkaz Kopírovat Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + C" Funkce : Kopíruje aktuálně vybraný text v dokumentu do schránky.
3.1.2.5
Příkaz Vložit Položka menu :
© 2004 HYPEL®
32
33
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + V" Funkce : Vloží obsah schránky do dokumentu, ale jen pokud schránka obsahuje text.
3.1.2.6
Příkaz Odstranit Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "Del" Funkce : Odstraní aktuálně vybraný text z dokumentu, ale neuloží ho do schránky.
3.1.2.7
Příkaz Vybrat vše Položka menu :
© 2004 HYPEL®
34
35
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "CTRL + A" Funkce : Vybere všechen text v dokumentu.
3.1.2.8
Příkaz Najít Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + F" Funkce : Zobrazí dialog pro zadání hledaného textu.
Tlacítko Najít další vyhledá první výskyt hledaného retezce. Opakovaným stisknutím nalezne další/predchozí výskyt hledaného retezce.
© 2004 HYPEL®
36
37
3.1.2.9
HypEd4 - Uživatelská příručka
Příkaz Najít další Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "F3" Funkce : Pokud jste použily Příkaz Najít, pak lze použít tento príkaz, který vyhledá další výskyt hledaného retezce.
3.1.2.10 Příkaz Najít předchozí Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
38
Tlacítko na nástrojové lište :
Klávesová zkratka : "SHIFT + F3" Funkce : Pokud jste použily Příkaz Najít, pak lze použít tento príkaz, který vyhledá predchozí výskyt hledaného retezce.
3.1.2.11 Příkaz Nahradit
Položka menu :
© 2004 HYPEL®
39
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + H" Funkce : Zobrazí dialog pro zadání nahrazovaného náhradního textu.
Tlacítko Nahradit nahradí první výskyt hledaného retezce, jeho opetovné použití akci zopakuje. Tlacítko Nahradit vše nahradí všechny výskyty retezce, odpovídající hledanému textu, v © 2004 HYPEL®
Editor zdrojových textů
dokumentu. Tlacítko Najít vše odpovídá Příkaz Najít.
3.1.2.12 Příkaz Pouze pro čtení Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Znemožní editaci a úpravu textu. Aktuální stav lze zjistit ve stavové řádce :
© 2004 HYPEL®
40
41
HypEd4 - Uživatelská příručka
Pokud se v této oblasti stavového panelu objeví text "Čtení", znamená to, že aktuální dokument je ve stavu, kdy je zakázána jakákoliv změna dokumentu. Tento stav lze zjistit i v Menu Úpravy, kde se bude zaškrtnutá položka Pouze pro čtení:
3.1.2.13 Menu Záložky Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
42
Popis : Toto menu obsahuje tzv. jmenné záložky, které slouží pro rychlé presouvání v dlouhých zdrojových textech. Vkládání/odebírání je popsáno v kapitole Příkazy pro jmenné záložky a pohyb mezi nimi je uveden v kapitole Pohyb mezi jmennými záložkami.
3.1.2.13.1 Příkazi pro jmenné záložky
Položky menu :
© 2004 HYPEL®
43
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesové zkratky : Vložení/presun a odebrání záložky - "CTRL + 0..9" Funkce : Slouží pro vkládání, odebírání a presun jmenných záložek v dokumentu. Záložka se vloží vždy na aktuální pozici textového kurzoru.
Pokud chcete záložku odstranit, musíte umístit kurzor na rádek s danou záložkou a pomocí menu, nebo klávesové zkratky, pro vložení záložky, ji odstraníte. Pokud už máte vloženou záložku s urcitým císlem a chcete ji presunout na jiné, stací presunout kurzor na rádek, kam má být záložka vložena a pomocí menu, nebo klávesové zkratky, ji vložíte.
3.1.2.14 Menu Jdi na záložku Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
44
Popis : Toto menu obsahuje tzv. jmenné záložky, které slouží pro rychlé presouvání v dlouhých zdrojových textech. Vkládání je popsáno v kapitole Příkazy pro jmenné záložky a pohyb mezi nimi je uveden v kapitole Pohyb mezi jmennými záložkami.
3.1.2.14.1 Pohyb mezi jmennými záložkami
Položky menu :
© 2004 HYPEL®
45
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesové zkratky : "ALT + 0..9" Funkce : Slouží pro pohyb mezi jmennými záložek v dokumentu.
3.1.2.15 Menu Více záložek Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Popis : Toto menu obsahuje tzv. anonymní záložky, které slouží pro rychlé presouvání v dlouhých zdrojových textech. Pohyb mezi temito záložkami je urcen nejbližší další záložkou.
3.1.2.15.1 Příkaz Vlož záložku
Položky menu :
Tlacítko na nástrojové lište :
© 2004 HYPEL®
46
47
HypEd4 - Uživatelská příručka
Klávesové zkratky : "CTRL + B" nebo "CTRL + F2" Funkce : Vloží/odstraní anonymní záložku na aktuální pozici kurzoru.
Těchto záložek může být vloženo velké množství, ale pak ztrácejí na významu, protože pohyb mezi nimi se stane stejně účelný, jako pohyb kurzorovými klávesami.
© 2004 HYPEL®
Editor zdrojových textů
3.1.2.15.2 Příkaz Další záložka
Položky menu :
Tlacítko na nástrojové lište :
Klávesové zkratky : "F2" Funkce : Slouží pro skok na další anonymní záložku.
© 2004 HYPEL®
48
49
HypEd4 - Uživatelská příručka
3.1.2.15.3 Příkaz Předchozí záložka
Položky menu :
Tlacítko na nástrojové lište :
Klávesové zkratky : "SHIFT + F2" Funkce : Slouží pro skok na předchozí anonymní záložku.
© 2004 HYPEL®
Editor zdrojových textů
3.1.2.15.4 Příkaz Vymaž všechny záložky
Položky menu :
Tlacítko na nástrojové lište :
Klávesové zkratky : "F2" Funkce : Odstraní všechny anonymní záložky v dokumentu.
3.1.2.16 Příkaz Přejít na Položka menu :
© 2004 HYPEL®
50
51
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "CTRL + G" Funkce : Zobrazí dialog pro výběr řádku v dokumentu, kam chcete přesnout kurzor.
© 2004 HYPEL®
Editor zdrojových textů
3.1.3
52
Menu Nástroje Tato položka obsahuje veškeré příkazy pro spouštění pomocných nástrojů. Popis jednotlivých nástrojů naleznete v sekci Nástroje pro vývoj aplikací.
Jednotlivé příkazy menu : · Přeložit · Dowload · Překlad + Download · Setup · Viewer · Verifikace · Archivace DNL
© 2004 HYPEL®
53
3.1.3.1
HypEd4 - Uživatelská příručka
Příkaz Přeložit Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "ALT + F9" Funkce : Spustí Překladač SIMPLE3, který přeloží aktuální zdrojový soubor do binárního souboru, určeného pro automat. Více informací naleznete v sekci Překladač.
3.1.3.2
Příkaz Dowload Položka menu :
Tlacítko na nástrojové lište :
© 2004 HYPEL®
Editor zdrojových textů
Klávesová zkratka : "CTRL + F9" Funkce : Spustí nástroj Loader. Loader nahraje přeložený soubor do určeného automatu. Download lze spustit pouze tehdy, pokud je aktuální soubor bezchybně přeložen. Více informací naleznete v sekci Loader.
3.1.3.3
Příkaz Překlad + Download Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "F7" Funkce : Spustí Překladač SIMPLE3 a pokud nebyla pri prekladu zjištena chyba, automaticky spustí Loader.
3.1.3.4
Příkaz Setup Položka menu :
© 2004 HYPEL®
54
55
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "ALT + F8" Funkce : Spustí nástroj Setup, sloužící pro nastavení parametru automatu. Více informací naleznete v sekci Setup.
© 2004 HYPEL®
Editor zdrojových textů
3.1.3.5
Příkaz Viewer Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "ALT + F10" Funkce : Spustí nástroj Viewer, sloužící pro prímé ladení aplikace bežící v síti automatu. Více informací naleznete v sekci Viewer.
© 2004 HYPEL®
56
57
3.1.3.6
HypEd4 - Uživatelská příručka
Příkaz Verifikace Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Spustí nástroj Loader v režimu verifikace, který provede kontrolu, zda automat obsahuje aktuálne otevrený program.
3.1.3.7
Příkaz Archivace DNL Položka menu :
Tlacítko na nástrojové lište : "není"
© 2004 HYPEL®
Editor zdrojových textů
58
Klávesová zkratka : "není" Funkce : Spustí nástroj DNLGrabber, sloužící pro archivaci aplikace, uložené v automatu, do souboru DNL. Více informací naleznete v sekci DNLGrabber.
3.1.4
Menu Ladění Tato položka obsahuje veškeré příkazy pro spouštění aplikací v režimu simulace. Popis tohoto menu a více informací o simulaci naleznete v sekci Simulátor průmyslových automatu HYPEL.
V režimu editace textu, mají význam pouze tyto příkazy : · Spustit program · Restartovat program · Animovat · Krok · Krok přes · Vložit/odstranit breakpoint
© 2004 HYPEL®
59
3.1.4.1
HypEd4 - Uživatelská příručka
Příkaz Spustit program Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "F5" Funkce : Restartuje a spustí aktuální program v režimu simulace. Program lze spustit, pouze pokud proběhl předchozí překlad bezchybně.
3.1.4.2
Příkaz Restartovat program Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
60
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Restartuje aktuální program, to znamená, že spustí program v režimu simulace. Program včak bude ve stavu stop.
3.1.4.3
Příkaz Animovat Položka menu :
© 2004 HYPEL®
61
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Restartuje a spustí aktuální program v režimu simulace, ale program nepoběží plnou rychlostí, ale po krocích. Při každém kroku se označí právě řádek odpovídající danému kroku.
3.1.4.4
Příkaz Krok Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
62
Tlacítko na nástrojové lište :
Klávesová zkratka : "F10" Funkce : Restartuje aktuální program (viz. Příkaz Restartovat program) a poté provede jeden krok programu. V režimu Simulátor vždy provede jeden krok programu.
3.1.4.5
Příkaz Krok přes Položka menu :
© 2004 HYPEL®
63
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "F11" Funkce : Restartuje aktuální program(viz. Příkaz Restartovat program) a provede jeden krok přes v programu. V režimu Simulátor provede jeden krok programu, pokud se jedná o funkci, nebo proceduru, tak se automaticky provede celé její tělo.
3.1.4.6
Příkaz Vložit/odstranit breakpoint Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
64
Tlacítko na nástrojové lište :
Klávesová zkratka : "F8" Funkce : Vloží na aktuální pozici kurzoru v aktuálním programu tzv.breakpoint. Tedy bod, na kterém se při simulaci, běžící program pozastaví, pokud se má tento řádek vykonat.
3.1.5
Menu Volby Tato položka obsahuje veškeré příkazy pro nastavení parametrů pomocných programů, zobrazení/skrytí nástrojových lišt, atd.
© 2004 HYPEL®
65
HypEd4 - Uživatelská příručka
Jednotlivé příkazi menu : · Nastavení · Překladač · Loader · Viewer · Nastavení komunikačních konstant · Nastavení syntaxe · Notebook mód · Status bar · Nástrojová lišta Soubor · Nástrojová lišta Úpravy · Nástrojová lišta Nástroje · Nástrojová lišta Ladění · Číslování řádek · Celá obrazovka
3.1.5.1
Příkaz Nastavení Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište :
Klávesová zkratka : "ALT + F5" Funkce : Spustí následující dialog :
© 2004 HYPEL®
66
67
HypEd4 - Uživatelská příručka
Adresář pro externí programy - vybraný adresář v tomto seznamu bude použit jako základní cesta k externím programům, jako např. Setup, Loader, ... . Standardne se jedná o adresár, kde je program HYPED4 nainstalován. Komunikacní port - zde se uvádí císlo komunikacního portu, kde je pripojen prevodník CA1.
3.1.5.2
Příkaz Překladač Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
68
Tlacítko na nástrojové lište :
Klávesová zkratka : "ALT + F6" Funkce : Spustí následující dialog :
Generovat soubor *.SYM s výpisem symbolu - pokud je tato volba zaškrtnuta, tak se pri prekladu vytvorí soubor s príponou SYM, který bude obsahovat seznam všech symbolu použitých v daném programu. Vypisovat jména procedur a funkcí - pokud je tato volba zaškrtnuta, budou se behem prekladu vypisovat jména procedur a funkcí v daném programu. Nastavit zacátek RAM ... - pokud je tato volba zaškrtnuta, mužete do editacního pole zadat pocátecní adresu pro uživatelsky definované promenné.
3.1.5.3
Příkaz Loader Položka menu :
© 2004 HYPEL®
69
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Spustí následující dialog :
Nastavit adresu stanice - pokud je tato volba zaškrtlá, mužete zadat císlo stanice, do které se aktuální program nahraje. Automaticky odemknout pred downloadem - pokud je tato volba zaškrtlá, nebudete pri © 2004 HYPEL®
Editor zdrojových textů
70
downloadu programu do automatu, pokud bude programová pamet uzamcena , dotazování na odemknutí pameti. Automaticky zamknout po downloadu - pokud je tato volba zaškrtlá, bude se po každém downloadu programu automaticky uzamykat programová pamet. Toto uzamcení je hardwarové. Heslo - pokud máte automat chránený heslem, zde ho mužete uvést a Loader, už ho nebude požadovat.
3.1.5.4
Příkaz Viewer Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Spustí následující dialog :
© 2004 HYPEL®
71
HypEd4 - Uživatelská příručka
Adresa stanice - urcuje císlo stanice, s kterou se bude pracovat. Heslo - pokud máte automat chránený heslem, zde ho mužete uvést a Viewer, už ho nebude požadovat. Rychlé obnovování dat - pokud zaškrtnete tuto volbu bude standardní doba nacítání dat z automatu zkrácena na polovinu. Tato doba je závislá na prenosové rychlosti.
3.1.5.5
Příkaz Nastavení komunikačních konstant Položka menu :
Tlacítko na nástrojové lište : "není"
© 2004 HYPEL®
Editor zdrojových textů
Klávesová zkratka : "není" Funkce : Spustí následující dialog :
V tomto dialogu lze nastavit casové konstanty pro jednotlivé prenosové rychlosti. Tlacítko Puvodní nastaví originální hodnoty techto konstant.
© 2004 HYPEL®
72
73
3.1.5.6
HypEd4 - Uživatelská příručka
Příkaz Nastavení syntaxe Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Spustí následující dialog :
© 2004 HYPEL®
Editor zdrojových textů
74
V seznamu jsou uvedeny jednotlivé typy syntaktických elementů, jeho volbou a použitím tlačítek Pozadí a Text, nastavíte barvu textu a pozadí. Tlačítka Pozadí a Text zobrazí dialog pro volbu barvy. Tlačítko Nastavit výchozí nastaví výchozí barvy syntaxe všech elementů.
3.1.5.7
Příkaz Notebook mód Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz slouží pro nastavení větší velikost fontu v editoru HypEd.
3.1.5.8
Příkaz Status bar Položka menu :
© 2004 HYPEL®
75
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje stavový řádek.
3.1.5.9
Příkaz Nástrojová lišta Soubor Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje nástrojový panel Soubor :
3.1.5.10 Příkaz Nástrojová lišta Úpravy Položka menu :
© 2004 HYPEL®
76
77
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje nástrojový panel Úpravy :
3.1.5.11 Příkaz Nástrojová lišta Nástroje Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje nástrojový panel Nástroje :
3.1.5.12 Příkaz Nástrojová lišta Ladění Položka menu :
© 2004 HYPEL®
78
79
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje nástrojový panel Ladění :
3.1.5.13 Příkaz Číslování řádek Položka menu :
© 2004 HYPEL®
Editor zdrojových textů
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zapne/vypne informativní číslování řádek dokumentu.
3.1.5.14 Příkaz Celá obrazovka Položka menu :
© 2004 HYPEL®
80
81
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Tento příkaz přepne okno editoru na celu obrazovku :
© 2004 HYPEL®
Editor zdrojových textů
82
Pro návrat do normálního režimu editace opet stisknete tlacítko Celá obrazovka.
3.1.6
Menu Okna Tato položka obsahuje veškeré příkazy pro prácí s okny editoru. Příkazy tohoto menu jsou standardními příkazy systému Windows.
3.1.7
Menu Nápověda Tato položka obsahuje veškeré příkazy pro volání souborů nápovědy a informace o programu.
© 2004 HYPEL®
83
HypEd4 - Uživatelská příručka
Následující príkazy slouží pro volání souboru nápovedy v ruzném režimu : · Obsah · Rejstrík · Hledat téma Príkaz Nápoveda k nápovede spustí nápovedu systému Windows týkající se práce s nápovedou. Príkaz O programu zobrazí dialog s informacemi o programu :
3.2
Nástroje pro vývoj aplikací Mezi základní nástroje pro běžný vývoj aplikací určených pro automaty firmy HYPEL patří : · Překladač · Loader · Viewer
© 2004 HYPEL®
Editor zdrojových textů
84
· Setup Dále je k dispozici podpůrný nástroj DNLGrabber.
3.2.1
Překladač Překladač je základní nástroj, který vytvoří z vámi napsaného zdrojového textu v jazyku SIMPLE3 soubor, který je čitelný pro automaty firmy HYPEL. Aby jste mohli překladač spustit, musíte mít v editoru otevřený soubor s některou z následujících přípon : *.stp, *.bas, *.lib. Pokud budete mít soubor otevřený, budete mít k dispozici Menu Nástroje a vněm Příkaz Přeložit. Po spuštění tohoto příkazu se objeví následující dialog :
Tento dialog obsahuje informace o průběhu překladu, délce výsledného kódu, ... . Pokud dojde k chybě pří překladu je tato chyba zobrazena v dialogu :
© 2004 HYPEL®
85
HypEd4 - Uživatelská příručka
Po stisknutí tlačítka OK je v editoru indikován řádek s chybou a text chybového hlášení :
© 2004 HYPEL®
Editor zdrojových textů
86
Parametry překladu lze nastavit pomocí Nastavení Překladače.
3.2.2
Loader Loader slouží pro nahrání přeloženého souboru(viz. Překladač) do automatu firmy HYPEL. Program HypEd umí také nahrát již existující program ze souboru typu *.DNL. Pro spuštění programu Loader je nutné mít otevřený jeden z následujících typů souboru *.STP, *.LIB, *.BAS, nebo *.DNL. Programy ve zdrojovém jazyku SIMPLE3(*.STP, *.LIB, *.BAS) je nejprve nutné přeložit pomocí překladače(viz. Překladač). Soubory typu *.DNL se překládat nemusí, protože tento typ souboru, už je výsledkem překladu, pomocí překladače. Samotné nahrání programu do automatu se provede příkazem Download, který spustí následující dialog :
© 2004 HYPEL®
87
HypEd4 - Uživatelská příručka
Pokud byl download bezchybný objeví se následující dialog :
Jestliže dojde při downloadu k chybě oběví se dialog s popisem, ke které chybě došlo. Příklad chyby :
Nastavení parametrů downloadu lze nastavit pomocí Nastavení programu Loader.
© 2004 HYPEL®
Editor zdrojových textů
3.2.3
88
Setup Program Setup slouží pro nastavování základních parametru automatu firmy HYPEL. Pro spuštení použijte Příkaz Setup. Po jeho spuštení se objeví následující dialog :
· Zámek pameti hardwarove zajistí zablokování programové pameti proti zápisu. · Ochrana heslem slouží pro úplné zablokování automatu. To znamená, že pří použití programů Loader, nebo DNLGrabber, bude pri každém spuštení vyžadováno heslo. Tlacítko Informace slouží pro nactení a následný výpis aktuálního stavu a konfigurace automatu. Tlacítko Nastavit nastaví vámi požadované údaje do automatu. Príklad výpisu programu Setup po stisknutí tlacítka Informace :
Príklad výpisu programu Setup po stisknutí tlacítka Nastavit, pri nastavené konfiguraci z 1.obrázku :
© 2004 HYPEL®
89
3.2.4
HypEd4 - Uživatelská příručka
Viewer Program Viewer slouží pro ladění aplikací na konkrétním automatu, sledování proměnných a jejich editaci. Pro spuštění programu Viewer použijte Příkaz Viewer. Pokud nemáte v aktuálně otevřeném programu, nebo v nastavení Příkaz Nastavení programu Viewer určeno číslo stanice a součastně máte v síti více jak jednu aktivní stanici, budete dotázáni na stanici, ke které se chcete připojit : obr. Následně se zobrazí hlavní okno programu Viewer :
© 2004 HYPEL®
Editor zdrojových textů
90
Tlačítko Zastavit/Spustit slouží pro pozastavení/spuštění programové smyčky automatu. Tlačítko Restartovat provede restart celého automatu. Tlačítko Konec ukončí program Viewer. Tlačítko Najít zobrazí dialog pro nalezení proměnné v okně "Seznam proměnných" :
Okno Seznam proměnných obsahuje strom proměnných dostupných v automatu. Položka Definované uživatelem obsahuje proměnné, které jsou deklarovány v aktuálně otevřeném programu. V rámci této položky jsou definovány dvě skupiny proměnných : Pole, Proměnné. Položka Pole obsahuje seznam proměnných, které jsou ve zdrojovém textu deklarovány jako pole. Položka Proměnné obsahuje ostatní uživatelem deklarované proměnné. Proměnné v tomto stromu jsou dále odlišeny ikonou, která udává typ proměnné : · proměnná typu BIT · proměnná typu WORD · proměnná typu INT · proměnná typu REAL
© 2004 HYPEL®
91
HypEd4 - Uživatelská příručka
Okno Sledované proměnné obsahuje uživatelem vybrané proměnné, u kterých chce sledovat, nebo měnit jejich hodnotu. Tyto proměnné jsou vyčteny z automatu periodicky po 3 vteřinách. Periodu vyčtení lze snížit pomocí Nastavení Viewer-u. Hodnotu proměnné lze změnit dvoj klikem levým tlačítkem myši na vybranou proměnnou.
3.2.5
DNLGrabber Program DNLGrabber je určen pro archivaci programu v automatu. Program není ve formě zdrojového souboru, ale pouze ve formě binárních dat pro automat a je uložen, jako DNL soubor do zvoleného adresáře. Z toho vyplývá, že takto získaný program nelze zpětně editovat a je určen pouze pro záložní účely. Program lze samozřejmě opět nahrát do automatu pomocí programu Loader. Pro spuštění programu slouží Příkaz Archivace, po jeho spuštění se zobrazí následující dialog :
Pole Informace slouží pro zobrazení informací o průběhu stahování programu. Editační pole DNL soubor slouží pro specifikaci názvu a umístění výsledného DNL souboru. Tlačítko Změnit slouží pro změnu adresáře pro výstupní DNL soubor. Editační pole Komunikační port sloučí pro nastavení čísla komunikačního portu, na který se chcete připojit. © 2004 HYPEL®
Editor zdrojových textů
Tlačítko Stáhnout slouží pro spuštění stahování programu z automatu. Tlačítko Konec ukončí program DNLGrabber.
3.3
Často kladené dotazy
© 2004 HYPEL®
92
Kapitola
IV
Simulátor průmyslových automatu firmy HYPEL
4
94
Simulátor průmyslových automatu firmy HYPEL Simulátor je určen pro efektivní a snadné ladění programů, napsaných v jazyku SIMPLE3, bez použití fyzického automatu. Z toho vyplívá, že automat je pouze emulovaný. Z toho vyplívají následující omezení : prozatím nelze ladit sériovou komunikaci, odezva na klávesnice a displeje je pomalejší, než na reálném automatu. Simulátor emuluje i časovou základnu pro časovače. Pro snadnější ladění ovšem hodinová frekvence časové základny, neodpovídá reálnému běhu hodin v automatu. Proto je jeden tik hodin generován jednou za vteřinu. V režimu ladění jsou k dispozici navíc některé příkazy menu, jejich seznam a popis je uveden v kapitole Menu Ladění. Do režimu simulace se lze dostat hned několika způsoby : · pomocí příkazu Restartovat program(provede restart programu a program bude ve stavu stop) · pomocí příkazu Spustit program(restartuje program a začne s jeho simulací) · pomocí příkazu Animovat(restartuje program a začne s jeho simulaci, kterou animuje) · pomocí příkazu Krok(provede restart programu, následně provede jeden krok v programu a zůstane ve stavu stop) · pomocí příkazu Krok přes(provede restart programu, následně provede jeden krok v programu a zůstane ve stavu stop) Během simulace je Editor zdrojových textů přepnut do režimu "pouze pro čtení" a je použit pro zobrazování průběhu simulace. Zdrojový text programu tedy nelze během simulace editovat, pokud chcete program změnit, je nutné simulaci ukončit pomocí příkazu Ukončit ladění.
4.1
Menu Ladění Tato položka obsahuje veškeré příkazy pro práci s programem v režimu simulace.
© 2004 HYPEL®
95
HypEd4 - Uživatelská příručka
V režimu editace textu, mají význam pouze tyto příkazy : · Spustit program · Restartovat program · Animovat · Krok · Krok přes · Vložit/odstranit breakpoint V režimu simulace jsou dále k dispozici následující príkazy : · Pozastavit program · Ukončit ladění · Okno paměti · Watch · Časová základna · Terminál · Vložit/odstranit breakpoint
4.1.1
Pozastavit program Položka menu :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
96
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Pozastaví aktuálně spuštěný program v režimu simulace. Po pozastavení běhu programu se zobrazí aktuální řádek programu, který se má v následujícím kroku, před pozastavením zpracovat :
Při pozastavení programu nedojde k pozastavení časové základny. Pro pozastavení časové základny, lze použít okno Časová základna. Pro opětovné spuštění simulace lze použít příkaz Spustit program, nebo je možné pokračovat pomocí příkazu Krok, nebo Krok přes. © 2004 HYPEL®
97
4.1.2
HypEd4 - Uživatelská příručka
Ukončit ladění Položka menu :
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Tento příkaz ukončí aktuálně spuštěnou simulaci a provede návrat do režimu Editor zdrojových textů.
4.1.3
Okno paměti Položka menu :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
98
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Tento příkaz slouží jako přepínač pro zobrazení/skrytí okna paměti. Okno paměti je následující :
V tomto okně je možné zobrazovat aktuální obsah paměti automatu. Veškeré hodnoty jsou zobrazeny, jako hexadecimální čísla.
4.1.4
Watch Položka menu :
© 2004 HYPEL®
99
HypEd4 - Uživatelská příručka
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Toto menu obsahuje dva příkazi pro práci s oknem Watch : · Watch pohled · Přidat Proměnou
4.1.4.1
Watch pohled Položka menu :
Tlacítko na nástrojové lište :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
100
Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje okno Watch :
Toto okno slouží pro zobrazení a editaci proměnných použitých v aktuálně simulovaném programu. Pokud chcete přidat proměnnou do okna Watch, spusťte příkaz Přidat Proměnou.
4.1.4.2
Přidat Proměnou Položka menu :
Tlacítko na nástrojové lište :
© 2004 HYPEL®
101
HypEd4 - Uživatelská příručka
Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje okno Watch :
Toto okno slouží pro zobrazení a editaci proměnných použitých v aktuálně simulovaném programu. Pokud chcete přidat proměnnou do okna Watch, spusťte příkaz Přidat Proměnou.
4.1.5
Časová základna Položka menu :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
102
Tlacítko na nástrojové lište :
Klávesová zkratka : "není" Funkce : Tento příkaz slouží jako přepínač pro zobrazení/skrytí okna časová základna :
Tlačítko Spustit spustí časovou základnu, která bude generovat pro simulátor hodinový signál s periodou 500ms. Tlačítko Zastavit zastaví časovou základnu. Časová základna generuje, z důvodu ulehčení ladění, hodinový signál mnohem pomaleji, nežli skutečný automat. Časovou základnu lze spustit pouze pomocí předcházejícího okna a nikdy není automaticky spouštěna! Veškeré časovače v programu v jazyku SIMPLE3 jsou vázány právě na tuto časovou základnu. Pokud nechcete čekat na dosažení určité hodnoty časovače, je možné přidat proměnnou, která časovač reprezentuje, do okna Watch pomocí příkazu Přidat Proměnou. A poté její hodnotu jednoduše změnit.
© 2004 HYPEL®
103
4.1.6
HypEd4 - Uživatelská příručka
Terminál Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Toto podmenu obsahuje následující příkazy, sloužící pro zobrazení prvků terminálu : · Klávesnice · Display
4.1.6.1
Klávesnice Položka menu :
Tlacítko na nástrojové lište :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
"není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje okno klávesnice :
Toto okno simuluje klávesnici u terminálů automatů firmy HYPEL.
© 2004 HYPEL®
104
105
4.1.6.2
HypEd4 - Uživatelská příručka
Display Položka menu :
Tlacítko na nástrojové lište : "není" Klávesová zkratka : "není" Funkce : Tento příkaz zobrazí/skryje okno Display :
Toto okno simuluje display terminálů u automatů firmy HYPEL.
4.1.7
Vložit/odstrait breakpoint Položka menu :
© 2004 HYPEL®
Simulátor průmyslových automatu firmy HYPEL
106
Tlacítko na nástrojové lište :
Klávesová zkratka : "F8" Funkce : Vloží na aktuální pozici kurzoru v aktuálním programu tzv.breakpoint. Tedy bod, na kterém se při simulaci, běžící program pozastaví, pokud se má tento řádek vykonat.
4.2
Často kladené dotazy
© 2004 HYPEL®
Kapitola
V
Jazyk Simple3
5
108
Jazyk Simple3 Programovací jazyk SIMPLE3 slouží k vyjádření řídících algoritmů v průmyslových automatech, programovatelných terminálech a kompaktních řídících stanicích vyráběných firmou HYPEL. Program je prováděn od začátku až do příkazu "END", odkud se běh programu vrací zpět na první instrukci. Program tedy vždy probíhá v jediné smyčce a neumožňuje žádné skoky. Tato pevně předepsaná struktura programové smyčky znemožňuje vznik fatálních chyb, především "bloudění" programu a "zatuhnutí" v nekonečné smyčce. Vlastní zpracování uživatelského programu probíhá v několika fázích : · Vytvoření zdrojového textu programu v jazyce SIMPLE3. Lze provést libovolným textovým editorem, např. editorem Norton Commanderu, XTree atd. nebo je možné tvorbu zdrojového textu provádět v dodávaném integrovaném prostředí HYPED4. · Přeložení zdrojového textu překladačem SIMPLE3. Pokud překlad proběhne bez chyb, vygeneruje překladač soubor *.DNL, obsahující kód pro mikropočítač v automatu. · Natažení ("Dowload") hotového programu do automatu. Provádí se přes převodník RS232->RS485 (PCA1), připojený na některý sériový port COM1 až COM4. Download obstarává program Loader, který zavede do automatu kód ze souboru *.DNL. Zatažení programu do automatu je možné přímo z prostředí HYPED4.
5.1
Struktura programu Programové vybavení je členěno do dvou vrstev. · První tvoří systémový firmware, umístěný výrobcem v pevné paměti, který řeší veškeré vazby na obvodové vybavení automatu a propojení stanice do sítě. · Druhou vrstvou je uživatelský aplikační program, tedy program vytvořený přímo uživatelem, přeložený překladačem a zavedený do paměti automatu. Obě vrstvy si mezi sebou předávají data prostřednictvím sdílených proměnných, umístěných v paměti RAM. Po zapojení napájení se spouští systémový firmware. Automat nejprve čeká zhruba 1-2 sekundy na případnou komunikaci po lince RS485 z počítače PC (pokud je na PC právě spuštěn program Loader nebo Viewer). Pokud detekuje žádost o komunikaci, čeká na další příkazy z linky. Když po tuto dobu žádná žádost nepřijde (na PC neběží žádný program pro komunikaci s automatem, nebo je linka úplně odpojena), automat zahájí přípravy na spuštění uživatelský programu. · Zjistí, zda je v paměti zatažen uživatelský program. · Zkontroluje, zda souhlasí kontrolní součet paměti programu. · Zkontroluje, zda je nastaven příznak AUTORUN pro automatické spouštění programu (tento příznak nastavuje program Loader po každém zatažení programu).
© 2004 HYPEL®
109
HypEd4 - Uživatelská příručka
Pokud jsou všechny tři body splněny, automat odstartuje uložený program. Ten je tvořen posloupností příkazů, která se může různě větvit, avšak nikdy nevytvoří cyklus. Dosáhne-li uživatelský program poslední instrukce skončí a odevzdá řízení opět systémovému firmware. Ten provede potřebné ošetření HW, uložení výstupních proměnných na fyzické výstupy a načtení hodnot fyzických vstupů a opět předá řízení aplikačnímu programu. Z hlediska programátora aplikační program vytváří jedinou nekonečnou smyčku, která se cyklicky vykonává. Při běhu automatu aplikační program pracuje s proměnnými uloženými v RAM mikropočítače a to i tehdy, jedná-li se o vnější proměnné ( vstupy nebo výstupy). V tomto případě se vlastně pracuje nad záchytnými registry, kam jsou přepisovány úrovně (logické i analogové) z fyzických vstupů, resp. odkud jsou obsahy přepisovány na fyzické výstupy. Tento přepis probíhá vždy na začátku programové smyčky. To v praxi znamená, že se během jednoho běhu programové smyčky nemohou změnit obsahy vstupních proměnných a zároveň se jakékoliv změny výstupních proměnných během běhu smyčky na skutečných výstupech neprojeví. Při psaní uživatelských programů je velmi důležité si tento princip uvědomit a jeho opomenutí může v určitých případech vést k problémům a zdánlivě špatné funkci programu. Výjimku z tohoto principu tvoří časovače. Tam probíhá čítání neustále - tedy při testování obsahu čítače/časovače je třeba počítat s tím, že hodnoty (T0 - T7) se při běhu programu průběžně mění.
5.2
Programování v jazyku Simple3
5.2.1
Uživatelský program a jeho zápis Uživatelský program je tvořen, tak jak je běžné u programovacích jazyků, sledem deklarací, definicí, direktiv a příkazů jazyka, zakončený klíčovým slovem END. Textový soubor resp. soubory, obsahující program, nazýváme zdrojovým textem. Ten může být pořízen libovolným textovým editorem, který pracuje s prostým textem, tedy bez tučných textů, kurzív, různých fontů, velikostí písma atd. Takovéto editory se běžně používají pro přípravu zdrojových textů v různých programovacích jazycích. Je-li zdrojový text připraven, je jej možné přeložit překladačem Simple3. Překladač "čte" zdrojový text a vytváří kód pro procesor automatu tak, aby se vykonala popsaná činnost. Program není tvořen jen prostým sledem příkazů, které se transformují překladem na kód procesoru. Jsou v něm i výše zmíněné definice, deklarace a direktivy. Definice ve zdrojovém textu jsou sděleními pro překladač, že nějaký objekt má námi určené vlastnosti. Chceme-li například konstantu 3.141592 pojmenovat Pi a dále toto jméno v programu používat, použijeme definici konstanty. Sdělíme tím překladači svůj požadavek. Ten si uloží jméno Pi a jemu přiřazenou hodnotu do svých tabulek, bezprostředně však nevytváří žádný kód pro procesor. Deklarace jsou žádostí překladači o vytvoření místa v paměti pro objekt uvedených vlastností. Typicky se jedná o deklarace proměnných. V nich například sdělujeme překladači, že potřebujeme pole reálných proměnných o dimenzi čtyři a chceme jej pojmenovat třeba Data. © 2004 HYPEL®
Jazyk Simple3
110
Překladač vymezí místo v paměti pro toto pole a uloží si do svých tabulek informaci, kde se pole Data nachází a že je to pole čtyř reálných proměnných. Opět se v tomto okamžiku nevytváří žádný kód pro procesor. Direktivy jsou určeny pro řízení průběhu překladu. Sdělujeme jimi překladači, jakým způsobem má vytvářet výsledný kód, kdy přepnout na překlad z jiného souboru atd. Pro příklad si uveďme jednoduchý program v jazyce SIMPLE 3, ve kterém je deklarace jedné proměnné a jeden příkaz. K podrobnému vysvětlení syntaxe zápisů se pochopitelně dostaneme později. Příklad jednoduchého programu v SIMPLE 3.1 var i : word; end i=i+1; end V tomto kratičkém programu je vytvořena proměnná i typu word. Ve druhém řádku programu je příkaz, který přiřazuje do proměnné i hodnotu, která se získá součtem původní hodnoty proměnné i a jedničky. Jak již bylo řečeno dříve, je program vykonáván cyklicky, takže se nám s každým průchodem bude hodnota proměnné i zvyšovat o jedničku.
5.2.2
Úprava textu Ve snaze umožnit programátorovi přehlednou úpravu zdrojových textů, tvorbu dlouhých, samo vysvětlujících identifikátorů a vhodné umísťování komentářů, jsou požadavky na úpravu zdrojového textu velmi volné. Jednotlivé příkazy, i jejich části mohou být na jednom řádku nebo "rozházeny" na více řádcích. Počet mezer mezi klíčovými slovy, klíčovými znaky a identifikátory je neomezený. Konec řádku je vnímán překladačem jako znak mezery (s výjimkou řádkového komentáře). Jednotlivé příkazy mohou být od sebe oddělovány středníkem (jako v jazyce C nebo Pascalu). Překladač oddělovače příkazů nevyžaduje. Pro přehlednost je však doporučujeme. 1. Příklad volného uspořádání zdrojového textu var i : word ;
end
i=i+1; end
2. Příklad volného uspořádání zdrojového textu var i : word ; i = i + 1; end
© 2004 HYPEL®
end
111
5.2.3
HypEd4 - Uživatelská příručka
Komentáře Komentáře jsou dvojího druhu : · Řádkový - uvozený dvojznakem // , ignoruje znaky až do konce řádku · Strukturovaný - uvozený znakem { a ukončený znakem } Strukturované komentáře je možné do sebe vnořovat. Strukturovaný komentář se hodí zejména k "vystřihování" částí zdrojového textu, který chceme dočasně potlačit. Komentář vnímá překladač jako mezeru. Příklad řádkového komentáře var i : word ; i=i+1; end
end
// deklarace proměnné i // přičítání jedničky // konec programu
Příklad strukturovaného komentáře var i,j,k : word ; i=i+1; { dočasně vyjmuto j=2*i; k=3*j; } end
5.2.4
end
Identifikátory V programu pojmenováváme jednotlivé objekty, například proměnné, procedury a funkce, jmény, kterým souhrnně říkáme identifikátory. Identifikátor musí začínat písmenem, dále může obsahovat písmena, číslice a znak '_'. Počet znaků identifikátoru je omezen na 80. Je-li identifikátor definován, je překladači znám až do konce překladu, s výjimkou formálních parametrů a lokálních proměnných procedur a funkcí, které jsou zapomenuty s ukončením definice procedury či funkce. Při definici nového identifikátoru překladač vyžaduje, aby nebyl shodný s některým již dříve definovaným identifikátorem, nebo předdefinovanou proměnnou. Při porovnávání identifikátorů nejsou rozlišována malá a velká písmena. Příklady správně vytvořených identifikátorů i x185 DvereDoKravinaOtevreny Ventilator325 Regulator_Spustit Příklady nesprávně vytvořených identifikátorů 7_Statecnych // první je číslice x01234567890123456789012345678901234567890123456789012345678901234567 © 2004 HYPEL®
Jazyk Simple3
112
890123456789 VentilOtevren?
// příliš dlouhý identifikátor // znak otazník není přípustný
Následující identifikátory v jednom řádku jsou považovány za shodné i x185 Ventil
5.2.5
I X185 ventil
VENTIL
vEnTiL
Typy Každá proměnná, konstanta nebo funkce nese resp. vrací hodnotu, která zabírá nějaké místo v paměti a je nějak interpretována. Například na stejnou šestnáctici bitů se můžeme dívat jako na přirozené číslo v rozsahu {0,65535}, nebo na celé číslo v rozsahu {-32768 , 32767} atd. Souhrn těchto vlastností objektu nazýváme typ. SIMPLE3 rozlišuje čtyři základní datové typy. Jsou jimi BIT, WORD, INT a REAL. U typu BIT a WORD se rozeznává ještě varianta IN_BIT a IN_WORD, ze kterých lze informace pouze číst. BIT
nese 1-bitovou logickou informaci o dvou možných hodnotách - pravda, nepravda - 1,0
IN_BIT WORD
nese 1-bitovou logickou informaci o dvou možných hodnotách - pravda, nepravda - 1,0. Pouze ke čtení nese 16-bitové kladné číslo v rozsahu {0,65535}
IN_WORD
nese 16-bitové kladné číslo v rozsahu {0,65535}. Pouze ke čtení.
INT
nese 16-bitové celé číslo v rozsahu {-32768 , 32767}
REAL
nese 32-bitové reálné číslo ve tvaru dle normy IEEE 754. Jedná se o čísla kódovaná v semilogaritmickém tvaru (znaménko)(mantisa)(znaménko exponentu)(exponent). Rozsah hodnot je {-3.4x1038,...,-1.5x10-45, 0 , 1.5x10-45,..., 3.4x1038} Přesnost čísla je 7-8 dekadických řádů
Zmíněné čtyři typy budeme nazývat
. Z proměnných základních typů lze vytvářet pole. Podle počtu dimenzí pole rozsahu indexů a typu prvků pak vzniká nepřeberné množství nových odvozených typů.
5.2.6
Konstanty Prakticky v každém programu se vyskytují kromě proměnných také konstanty. Jsou to čísla, písmena atd., kterými plníme proměnné, přičítáme je, násobíme jimi apod. O způsobu zápisu těchto konstant v SIMPLE3 pojednává tato kapitola.
© 2004 HYPEL®
113
5.2.6.1
HypEd4 - Uživatelská příručka
Konstanty typu BIT Konstanty typu BIT se v SIMPLE 3.0 nepoužívají. Přiřazení log 1 nebo log 0 se provádí speciálním příkazem nastavení či nulování. V logických výrazech použití konstant ztrácí smysl. Pokud se použití konstanty zdá výhodné, například z důvodů čitelnosti programu, je možné vyhradit dvě bitové proměnné, které na začátku programu inicializujeme.
5.2.6.2
Konstanty typu WORD a INT Konstanty typu WORD a INT se zapisují stejně, jediný rozdíl je v tom, že znaménko mínus '-' může mít pouze INT. K zápisu hodnoty lze použít jednoho ze čtyř způsobů : · · · ·
Desítkové číslo - sled decimálních cifer Hexadecimální číslo - sled hexadecimálních cifer uvozených 0x Binární číslo - sled binárních cifer uvozených 0b Znaková konstanta - znak v apostrofech (hodnota je ASCII kód znaku) Příklad zápisu konstant typu WORD:
123 0x2E3 0b010011 'A' -0xF3 -'0'
// // // // // //
desítkové číslo hexadecimální číslo binární číslo znaková konstanta záporné hexadecimální číslo (INT) záporně vzatý kód číslice 0
© 2004 HYPEL®
Jazyk Simple3
5.2.6.3
114
Konstanty typu REAL Konstanty typu REAL zapisujeme obvyklým způsobem s použitím desetinné tečky a případného exponentu. Příklad je asi nejlepší: Příklad zápisu reálných čísel: 1. -.0025 1.3E+3 -0.00000001E-20 1000000.
5.2.6.4
Definice konstant V programech bývá účelné pojmenovávat konstanty jmény, která pak hodnotu konstanty zastupují. Usnadňuje se tak případná změna konstanty, která se pak provede na jediném místě. S výhodou se také použije pojmenovaných konstant na rozlišování stavů automatu, kódování prvků množin atd. Definice konstant má v SIMPLE3 následující podobu Definice konstant je uvozena klíčovým slovem CONST. Následují definice jednotlivých identifikátorů. K přiřazení hodnoty identifikátoru je zvolen znak '#'. Na levé straně definice může být jak konstanta, tak i výraz, který lze vypočítat v době překladu. Mohou se v něm vyskytovat jak konstanty, tak identifikátory již definovaných konstant. Na pravé straně je nově definovaný identifikátor následovaný ukončovacím znakem ';'. Zvláštní možnost je definice ENUM. Za tímto klíčovým slovem následuje seznam nově definovaných identifikátorů, oddělovaných čárkami. Jednotlivým identifikátorům jsou přiřazovány postupně hodnoty 0,1, atd. Definice je ukončena opět středníkem. Celý blok definic je ukončen klíčovým slovem END. Příklad definice konstant: CONST 123 # CisloA ; 3.141592 # Pi ; 2*Pi # DvePi ; ENUM Po,Ut,ST,Ct,Pa,SO,Ne ; ENUM Sever,Vychod,Jih,Zapad ;
// Konstanta typu WORD // Konstanta typu REAL
END
5.2.7
Proměnné SIMPLE3 používá soubor předdefinovaných proměnných, které jsou pevně umístěny v paměti a z nichž některé mají speciální funkce. Navíc si můžete příkazem var dodefinovat další proměnné, které se umísťují ve vlastním paměťovém prostoru. Tyto proměnné mohou být typu BIT,WORD,INT nebo REAL, mohou z nich být vytvářena jedno i vícerozměrná pole. Navíc je
© 2004 HYPEL®
115
HypEd4 - Uživatelská příručka
umožněno více proměnným sdílet shodné paměťové místo, a tak ke stejnému místu přistupovat například jako k bitovému poli a WORDu zároveň. A teď již k definici podrobněji.
5.2.7.1
Vstupní, výstupní a předdefinované proměnné Uživatelský program pracuje s proměnnými v paměti RAM, které v některých případech reprezentují fyzické vstupy a výstupy, které potom systémový firmware ošetří. K tomuto účelu je v paměti RAM automatu vyhrazena oblast, ve které jsou takto využívané proměnné umístěny. Z hlediska programování mají svá předdefinovaná jména (identifikátory), prostřednictvím kterých k nim v rámci aplikačního programu přistupujeme. Pokud systémový firmware nevyužívá danou proměnnou jako obraz fyzického vstupu, výstupu, nebo proměnné plnící speciální funkci, může být využita jako volná proměnná k potřebě programu. BIT
nese 1-bitovou logickou informaci o dvou možných hodnotách - pravda, nepravda - 1,0
IN_BIT WORD
nese 1-bitovou logickou informaci o dvou možných hodnotách - pravda, nepravda - 1,0. Pouze ke čtení nese 16-bitové kladné číslo v rozsahu {0,65535}
IN_WORD
nese 16-bitové kladné číslo v rozsahu {0,65535}. Pouze ke čtení.
INT
nese 16-bitové celé číslo v rozsahu {-32768 , 32767}
REAL
nese 32-bitové reálné číslo ve tvaru dle normy IEEE 754. Jedná se o čísla kódovaná v semilogaritmickém tvaru (znaménko)(mantisa)(znaménko exponentu)(exponent). Rozsah hodnot je {-3.4x1038,...,-1.5x10-45, 0 , 1.5x10-45,..., 3.4x1038} Přesnost čísla je 7-8 dekadických řádů
Podle typu automatu se mění počet vstupních a výstupních proměnných využitých jako obraz fyzických vstupů a výstupů. Proměnné, uvedené v tabulce můžeme používat, aniž bychom je museli deklarovat. Překladač o nich "ví" od začátku překladu. Některé z těchto proměnných, mající speciální funkci, mají definována ještě druhá jména. I tato jména jsou překladačem SIMPLE 3 rozeznávána.
5.2.7.2
Deklarace proměnných Blok deklarací proměnných je uvozen klíčovým slovem VAR a ukončen klíčovým slovem END. Mezi nimi se nacházejí jednotlivé deklarace, které mohou být několika typů. Připomeňme, že hranaté závorky (pokud nejsou tučně) v popisu syntaxe vyjadřují volitelný prvek, složené libovolný počet opakování uzavřeného vzoru, tučně jsou vyznačena klíčová slova či znaky. Typ proměnné je buď základní typ, nebo jedno či vícerozměrné pole, vytvořené na základě základní proměnné.
© 2004 HYPEL®
Jazyk Simple3
5.2.7.3
116
Nově deklarované proměnné Syntaxe <jednotlivé deklarace proměnné>: {,} : ; Syntaxe : array [{,}] of Popis syntaxe říká, že napřed vyjmenujeme nově definované identifikátory nově definovaných proměnných, pak napíšeme dvojtečku a za ní uvedeme typ právě definovaných proměnných. Typ může být buď identifikátor základního typu, tedy BIT, WORD, INT nebo REAL, nebo může být odvozeným typem - polem. V případě pole píšeme klíčové slovo array, následuje výčet dimenzí v hranatých závorkách, potom následuje klíčové slovo of a základní typ, ze kterého je pole vytvořeno. Deklarace proměnných - příklad VAR
Flag1,Flag2 i,j,k znaménkem aa,bb znaménka r1,r2,r3,r4 pole END
: BIT ; : INT ;
// bitové // celočíselné se
: WORD ;
// celočíselné bez
: REAL ; // reálné : ARRAY [5,12] OF INT ; // dvourozměrné pole
Konstanta v definici dimenzí pole může být i pochopitelně i identifikátorem konstanty. Konstanta určuje nejvyšší možný index na daném místě. Nejnižší index je 0. Indexujeme tedy počínaje nulou. Pole p[5] má tedy celkem 6 prvků a to p[0], p[1], p[2], p[3], p[4], p[5]. V případě vícerozměrného pole se index nejvíce vpravo "mění nejrychleji". Tím chceme říci, že například prvky m[3,2] a m[3,3] leží v paměti za sebou. Ukládání bitů a bitových polí se řídí následovně. Každá jednotlivá deklarace začíná na hranici celého bytu. Jednotlivé bity či bitová pole jsou umisťována v paměti postupně a to "bez mezer". Překročení meze pole Překladač SIMPLE3 kontroluje překročení oblasti pole jak při překladu, pokud jsou indexy konstantní, tak i za běhu programu. Pokud by operace vedla k vybočení z oblasti paměti, vymezené pro dané pole, provede se operace s položkou pole s nejvyššími možnými indexy. Reakce na překročení mezí pole - příklad pole[6,0] // překročena oblast, pracuje se s prvkem pole[5,12] pole[0,15] // překročena mez indexu, ale není překročena oblast pro pole. // Prvek je totožný s prvkem pole[1,2]
© 2004 HYPEL®
117
5.2.7.4
HypEd4 - Uživatelská příručka
Synonyma proměnných K již existující proměnné můžeme vytvořit synonymum, které může být stejného, nebo jiného typu. Lze tak jednu proměnnou zpřístupnit více jmény, nebo umožnit do stejného paměťového prostoru ukládání objektů různého typu. Hodí se takto například "wordový" přístup k bitovým polím apod. Syntaxe : # ] [: ] ; Při kombinování přístupu WORD resp. INT a BIT je třeba mít na paměti, že proměnné WORD a INT jsou ukládány v paměti tak, že nižší byte leží na vyšší adrese, vyšší byte na nižší adrese. Bity a prvky bitových polí jsou ukládány vzestupně tak, že po sobě následují bity D0, D1, až D7 bytu, pak se přechází na D0 bytu s adresou o jedničku vyšší atd. Deklarace proměnných - příklad Flag1,Flag2 : BIT ; i,j,k : INT ; znaménkem aa,bb : WORD ; znaménka r1,r2,r3,r4 : REAL ; aa # Baa : ARRAY [15] OF BIT ; aa # Xaa : ARRAY [3,3] OF BIT ; END VAR
5.2.8
// bitové // celočíselné se // celočíselné bez // reálné // jiný přístup k aa // jiný přístup k aa
Výrazy Jedním ze základních stavebních kamenů každého programovacího jazyka je výraz. Hodnoty výrazů ukládáme do proměnných, nebo jsou v případě hodnot typu BIT používány jako podmínky při větvení programů. Prvkem výrazu v SIMPLE 3.0 může být: · · · · ·
Konstanta Proměnná, nebo prvek pole Volání standardní funkce Volání uživatelovy funkce Výraz v závorce
Každý prvek má svůj typ. Kontrolu slučitelnosti typů a případné konverze provádí kompilátor. Nemusíme se proto o převody starat. Je však vhodné mít o procesu konverze jasnou představu, protože se tak můžeme vyvarovat některým záhadným situacím. Provedení operace mezi dvěma číselnými prvky (tj. typu INT, WORD nebo REAL) v případě rozdílnosti typů předchází konverze nižšího typu na vyšší. Pro tento účel je voleno následující uspořádání číselných typů : INT < WORD < REAL Konverze mezi INT a WORD nepředstavuje žádnou změnu bitové reprezentace objektu. Záporné číslo typu INT tak může způsobit překvapení zejména při porovnání . Číslo -1 © 2004 HYPEL®
Jazyk Simple3
118
konvertováno na WORD se totiž stává číslem 65535. Na tento efekt je třeba dát zvlášť dobrý pozor. Konverze na typ REAL nepřináší žádná úskalí, neboť REAL umí pojmout čísla typu INT i WORD bez omezení. Při konverzi se provádí transformace bitové reprezentace na 32-bitový formát dle IEEE 754.
5.2.8.1
Operátory a jejich priorita Prvky jsou ve výrazu vázány logickými operátory. Ty mohou být tzv. unární, vztahující se pouze k jednomu prvku, nebo binární, vážící dva sousední prvky. Operátory pro tvorbu výrazů jsou uvedeny v následující tabulce v pořadí jejich priorit (nejvyšší je 0). Priorita určuje pořadí vykonávání operací v případě, že není určena závorkováním. Název
výsledný typ
unární/binární
BIT
unární
- (před prvkem)
číselný
unární
Číselné dělení
/
číselný
binární
Číselné násobení
*
číselný
binární
Číselné sčítání
+
číselný
binární
Číselné odčítání
-
číselný
binární
Logické násobení
&
číselný
binární
Logický součet
|
číselný
binární
Logický exclusive or
^
číselný
binární
Číselné menší
<
BIT
binární
Číselné menší nebo rovno Číselné větší
<=
BIT
binární
>
BIT
binární
Číselné větší nebo rovno Číselné rovno
>=
BIT
binární
=
BIT
binární
Číselné nerovno
<>
BIT
binární
Logické násobení
and
BIT
binární
Logický součet
or
BIT
binární
Exclusive or
xor
BIT
binární
Logická negace Unární mínus
operátor
' (za prvkem)
Priority - příklad O1 + O2 * 123 X1' or O1<5 and O1>=3
© 2004 HYPEL®
// vypočte se nejprve součin, potom součet // provede negaci X1, pak porovnání, // pak and a nakonec or
119
5.2.8.2
HypEd4 - Uživatelská příručka
Závorky Jednotlivé části výrazu lze přirozeným způsobem závorkovat a tak buď zvýrazňovat, nebo měnit prioritu operací. Hloubka závorkování je omezena využitím paměti procesoru, které určité omezení hloubky přináší. Pokud však nepovažujete za omezení hloubku závorek cca 10, nenarazíte na žádnou překážku. Výrazy - příklad O1 + 123 O1 + 123. 2*(O1+O2)/pole[i,j] + r1 X1' or (r1<5.) and (r1>=3.) -(i+3*j)
5.2.8.3
// // // // //
výraz výraz výraz výraz výraz
typu typu typu typu typu
WORD REAL REAL BIT INT
Standardní funkce K dispozici jsou následující standardní funkce : absolutní hodnota (klíčové slovo abs ) výsledný typ odpovídá typu skutečného parametru celá část reálného čísla (klíčové slovo trunc ) výsledný typ je REAL Skutečným parametrem funkcí je číselný výraz. Volání standardní funkce - příklad abs(i+O1) trunc(r1/r2) abs(abs(r1)-trunc(r1))
5.2.9
Definice symbolů Definice symbolů nám umožňuje definovat identifikátor, který zastupuje úsek zdrojového textu, majícího význam výrazu. Při překladu je pak identifikátor symbolu nahrazován tímto úsekem. Symbol oceníme zejména při označování vstupních a výstupních bitů, které mohou v průběhu vývoje aplikace změnit svou "logiku". Změnu pak lze provést na jediném místě právě v definici © 2004 HYPEL®
Jazyk Simple3
120
symbolu. Stejně tak nám může symbol být prospěšný, pokud potřebujeme označit prvek uvnitř pole. Blok definic je uvozen klíčovým slovem SYMBOL a ukončen klíčovým slovem END. Jednotlivé definice mají syntaxi: Syntaxe <jednotlivé definice symbolu>: # ; Definice symbolů - příklad SYMBOL X1' # HorniHladina ; X2 # DolniHladina ; HorniHladina' and DolniHladina' Y0' # StykacCerpadla ; Baa[5] # ChybaObsluhy ;
#
Mezipoloha ;
END
5.2.10 Jednoduché příkazy V následujících kapitolách se seznámíme se základními typy jednoduchých příkazů jazyka SIMPLE.
5.2.10.1 Přiřazení Příkaz přiřazení umožňuje do proměnné, nebo prvku pole na levé straně příkazu přiřadit hodnotu výrazu na pravé straně příkazu. Hodnota výrazu je před uložením konvertována na typ proměnné. Znakem přiřazení je =. Na levé straně smí být i negace bitového objektu. Příkaz přiřazení - příklad i = j + ABS(i+O1); y1' = (r1
© 2004 HYPEL®
121
HypEd4 - Uživatelská příručka
5.2.10.2 Nastavení Příkaz nastavení umožňuje definování hodnoty bitové proměnné, nebo negaci jejího obsahu. · Nastavení na 1 provedeme samostatným uvedením identifikátoru bitové proměnné, nebo prvku bitového pole. · Nastavení na 0 provedeme uvedením znaku negace ' za identifikátorem proměnné nebo prvku bitového pole. · Negace se provede uvedením znaku vykřičník ! před identifikátorem proměnné nebo prvku bitového pole. Příkaz nastavení - příklad Y0; Y0'; !Y0; Baa[i]';
// // // //
nastavení Y0 na hodnotu 1 nastavení Y0 na hodnotu 0 negace hodnoty Y0 nastavení prvku bitového pole na 0
5.2.10.3 Volání procedury Za jednoduchý příkaz je považováno i volání procedury (subroutine). Na rozdíl od předchozí verze SIMPLE může mít procedura i funkce v jazyce SIMPLE 3.0 formální parametry. Více je o volání procedur a funkcí v kapitole Procedury a funkce.
5.2.10.4 Zobrazení Příkaz zobrazení se svým zápisem podobá příkazu přiřazení. Na levé straně se však nachází fiktivní proměnná DISPLAY, na pravé je buď výraz typu WORD, nebo řetězec v uvozovkách. Zobrazení čísla typu WORD se řídí ještě obsahem proměnné FORMAT. Příkaz zobrazení - příklad display = O1; display = "Doba uderu-derovac 1";
5.2.11 Programové struktury Programové struktury jsou jazykové konstrukce, které nám slouží ke větvení programu na základě hodnot výrazů. V běžných programovacích jazycích jsou používány struktury jak pro větvení, tak i pro vytváření cyklů. Cykly jsou však v SIMPLE 3.0 záměrně vynechány, aby
© 2004 HYPEL®
Jazyk Simple3
122
nemohl uživatel v žádném případě vytvořit program, který by nikdy nepředal řízení zpět systémové vrstvě a tak zcela "zatuhl".
5.2.11.1 Struktura IF Pro větvení programu na základě pravdivosti logického výrazu slouží struktura IF. Syntaxe <struktura IF>: if then { elseif [ else ] endif
then
}
Slovem blok rozumějme sled jednoduchých příkazů nebo programových struktur. Jak je patrné ze syntaxe, uvozuje strukturu klíčové slovo if. Za ním je logický výraz. Za ním slovo then. Následuje blok. Ve struktuře může být několik větví elseif a nejvýše jedna větev else. Struktura je uzavřena klíčovým slovem endif. Vysvětleme si význam struktury nejdříve na nejjednodušším případu, kdy nejsou větve elseif a else použity. IF-THEN-ENDIF - příklad IF
x1 THEN
y1; y3;
ENDIF
V uvedeném příkladu program otestuje hodnotu x1. Je-li hodnota rovna log.1, provede se sled příkazů za, tedy nastavení y1 a y3, a pokračuje za slovem endif. Pokud je hodnota x1 rovna log.0, přeskočí program blok za then a pokračuje rovnou za slovem endif. Přidáním větve else získáme strukturu, která umožňuje rozvětvit program na dvě cesty. IF-THEN-ELSE-ENDIF - příklad IF x1 THEN y1; y3; ELSE y2; y4; ENDIF V uvedeném příkladu program otestuje hodnotu x1. Je-li hodnota rovna log.1, provede se sled příkazů za then , tedy nastavení y1 a y3, a pokračuje za slovem endif. Pokud je hodnota x1 rovna log.0, přeskočí program blok za then a pokračuje za slovem else, provede tedy nastavení y2 a y4. Potom pokračuje za slovem endif. Přidáním větví elseif získáme strukturu, která umožňuje rozvětvit program na více cest. IF-THEN-ELSE-ENDIF - příklad IF ELSEIF
© 2004 HYPEL®
x1 x1
and x2 THEN and x2' THEN
y1; y3; y2; y4;
123
HypEd4 - Uživatelská příručka
ELSE ENDIF
y1; y4;
V uvedeném příkladu program otestuje hodnotu logického výrazu (x1 and x2). Je-li hodnota rovna log.1, provede se sled příkazů za then , tedy nastavení y1 a y3, a pokračuje za slovem endif. Pokud je hodnota rovna log.0, vyhodnocuje se hodnota logického výrazu (x1 and x2'). Je-li tato hodnota rovna log.1, provede se sled příkazů za then , tedy nastavení y2 a y4, a pokračuje za slovem endif. Pokud je hodnota výrazu rovna log.0, přeskočí program blok za then a pokračuje za slovem else, provede tedy nastavení y1 a y4. Potom pokračuje za slovem endif. Příklad vnořených struktur IF IF Vst1 THEN y1; y2; ELSEIF Vst2 THEN IF Pocet>4 THEN DISPLAY='*'; ELSE DISPLAY=' '; ENDIF !y3; !y2; ELSE y2' ENDIF
5.2.11.2 Struktura CASE Další programovou strukturou je struktura CASE-OF-ELSE-ENDCASE. Slouží k rozskokům dle hodnoty celočíselného výrazu. Syntaxe <struktura CASE>: case { of then } [ else ] endcase Jednotlivé alternativy za klíčovými slovy OF musejí být celočíselné konstantní výrazy, tj. hodnoty, vypočitatelné již při překladu. Alternativa ELSE je nepovinná. Struktura CASE je vlastně zjednodušeným zápisem speciálního případu struktury IF. Hodnota celočíselného výrazu za case se postupně porovnává s konstantními hodnotami za slovy of, dokud nenastane shoda. Pokud nastane, provede se blok za then a pokračuje se za slovem endcase. Zbylé konstanty se již neporovnávají. Nenastane-li shoda ani v jednom případě, provede se blok za slovem else, pokud existuje. Potom se pokračuje za slovem endcase. CASE-OF-THEN-ELSE-ENDCASE - příklad CASE den OF 1 OF 2 OF 3 OF 4 OF 5 OF 6 OF 7 ELSE ENDCASE
THEN THEN THEN THEN THEN THEN THEN
DISPLAY="Po" DISPLAY="Ut" DISPLAY="St" DISPLAY="Ct" DISPLAY="Pa" DISPLAY="So" DISPLAY="Ne" DISPLAY="??"
© 2004 HYPEL®
Jazyk Simple3
124
5.2.12 Procedury a funkce Procedury a funkce jsou části programu, které je možné pojmenovat identifikátorem a poté tento identifikátor použít jako příkaz programu. Výsledkem uvedení identifikátoru funkce nebo procedury je provedení činnosti, kterou jsme dříve tímto identifikátorem pojmenovali. Překladač v místě uvedení identifikátoru procedury či funkce neumísťuje znovu a znovu celý sled operací, který identifikátor reprezentuje, ale umísťuje pouze instrukci volání, která přesměruje chod programu do takzvaného těla procedury. Sekvence operací procedury či funkce tak existuje v paměti programu pouze jednou. Samotné volání zabírá minimální prostor v paměti. Používání procedur a funkcí je nejen prostředkem k šetření paměti programu, ale také, ne-li především, k zpřehledňování textu programu a zvyšování jeho čitelnosti. Procedury i funkce mohou mít formální parametry, i lokální proměnné. Vysvětleme si co to znamená :
5.2.12.1 Formální parametry Formální parametry jsou při definici procedury nebo funkce uvedeny v závorce za jejím identifikátorem. Formální parametry - příklad SUBROUTINE PROCEDURE
ZobrazDen(den, kam : WORD ) ZvysOJednaModulo(var co : WORD; mod : WORD )
Budeme-li chápat; proceduru jako předpis k provedení určité složitější operace, představuje formální parametr (parametry) objekt, se kterým, nebo s jehož pomocí, se má operace provést. Příkladem může být procedura, která zobrazuje námi definovaným způsobem den v týdnu, který máme číselně kódován. Číslo dne předáme proceduře jako parametr. Při předávání parametru můžeme mít rozdílné požadavky. U zmíněného zobrazení dne stačí proceduře sdělit hodnotu. Pokud však potřebujeme, aby procedura "opracovala" objekt, předání hodnoty nestačí. Chceme-li zvýšit hodnotu proměnné o jedna modulo základ, musíme proceduře zpřístupnit proměnnou celou, nejen "pro čtení" , ale i pro "zápis". Musíme proceduře sdělit, kde leží. Proto jsou procedurám a funkcím umožněny dva způsoby přístupu k formálním parametrům: Předání hodnotou Při předání hodnotou je formální parametr představován vnitřní proměnnou procedury, do které si procedura uloží předávanou hodnotu. Pokud se v proceduře objeví identifikátor formálního parametru, pracuje se s takto vytvořenou proměnnou. Skutečným parametrem, předaným proceduře, pak může být i výraz. © 2004 HYPEL®
125
HypEd4 - Uživatelská příručka
Předání odkazem Při předání odkazem je identifikátor formálního parametru zástupným jménem pro proměnnou, která bude skutečným parametrem při volání. Všechny operace procedury s formálním parametrem se při zavolání provedou přímo s proměnnou, která je proceduře předána. Skutečným parametrem smí být pouze proměnná nebo prvek pole. Definice formálních parametrů Definice formálních parametrů je uváděna za identifikátorem nově definované procedury nebo funkce. Je uzavřena v kulatých závorkách. Syntaxe <definice formálních parametrů>: ({[var]{,}:;}) Klíčové slovo var předznamenává parametry předávané odkazem, ostatní jsou předávány hodnotou. Formální parametry - příklad SUBROUTINE Cosi( // a,b // ii,jj // bb
var a,b : REAL ; ii, jj : INT ; bb : BIT ) jsou parametry typu REAL předávané odkazem jsou parametry typu INT předávané hodnotou je parametr typu BIT předávaný hodnotou
Definice procedury Definice procedury je uvozena klíčovým slovem PROCEDURE nebo SUBROUTINE. Ukončena je klíčovým slovem RETURN. Syntaxe <definice procedury>: PROCEDURE <definice formálních parametrů> { [<deklarace lokálních proměnných>] [<definice symbolů>] [<definice konstant>] } { } RETURN Za definicí identifikátoru procedury a formálních parametrů může následovat deklarace lokálních proměnných, konstant a symbolů. Lokální proměnné jsou proměnné, které procedura používá pro svou činnost a jsou nepřístupné mimo právě definovanou proceduru. Mohou sloužit například jako pomocné. S ukončením definice procedury jsou identifikátory formálních parametrů i lokálních proměnných překladačem zapomenuty, a lze je tedy v programu použít znovu. Jsou jim pak přiřazeny zcela nové objekty. V SIMPLE3 získávají lokální proměnné pevné místo v paměti. Procedura tedy najde jejich obsah při příštím zavolání ve stavu, v jakém je naposledy zanechala. Toho lze v programech s výhodou využívat k sumacím, uchovávání stavové informace apod. Samotné tělo procedury je sledem jednoduchých příkazů nebo programových struktur. Zdůrazněme, že jména všech globálních objektů, jako jsou proměnné, symboly a konstanty, definované mimo těla procedur a funkcí, jsou normálně přístupná. Nejsme tedy omezeni pouze na lokální objekty. Definice procedury - příklad PROCEDURE PrictiJednaModulo( var kam : word ; mod : word ) © 2004 HYPEL®
Jazyk Simple3
126
kam = kam + 1; IF kam>=mod THEN kam = 0 ENDIF RETURN Definice procedury - příklad SUBROUTINE ZobrazDen( POSITION = kam; CASE den OF 1 THEN OF 2 THEN OF 3 THEN OF 4 THEN OF 5 THEN OF 6 THEN OF 7 THEN ELSE ENDCASE RETURN
den,kam:WORD ) DISPLAY="Po" DISPLAY="Ut" DISPLAY="St" DISPLAY="Ct" DISPLAY="Pa" DISPLAY="So" DISPLAY="Ne" DISPLAY="??"
5.2.12.2 Volání procedury Volání procedury se provede uvedením jejího identifikátoru a předáním skutečných parametrů. Skutečné parametry jsou uvedeny v závorce a mezi sebou odděleny čárkami. Pořadí skutečných parametrů odpovídá pořadí formálních parametrů. Musí jich být stejný počet jako je formálních parametrů a musejí mít kompatibilní typ. Číselné parametry předávané hodnotou jsou kompatibilní v tom smyslu, že kompilátor hodnotu před předáním v případě rozdílnosti typů převede na typ požadovaný. Konverze mezi číslem a parametrem BIT však není možná, stejně tak musejí být shodné typy u parametrů předávaných odkazem. Příklad definice procedury PROCEDURE
Cosi( var a,b : REAL ; ii, jj : INT ; bb : BIT ) // a,b jsou parametry typu REAL předávané odkazem // ii,jj jsou parametry typu INT předávané hodnotou // bb je parametr typu BIT předávaný hodnotou Příklad volání procedury
Cosi( r1,r2,(i+j)/3,15,O2<100 );
// správné volání procedury
Příklad chybného volání procedury Cosi( 3.14,r2,i,j,x0 ); // chyba - první parametr je třeba předat odkazem, // musí tedy být identifikátor proměnné Cosi( r1,r2,i,j );
// chybný počet parametrů
Cosi( r1,r2,Y0,r3,x0 ); // chyba - třetí parametr neodpovídá typem
© 2004 HYPEL®
127
HypEd4 - Uživatelská příručka
5.2.12.3 Definice funkce Funkce se svou definicí příliš neliší od procedur. Na rozdíl od procedur však vracejí hodnotu. Proto je jim přiřazen typ. Hodnota funkce se předává přiřazovacím příkazem, na jehož levé straně je identifikátor definované funkce. Syntaxe <definice funkce>: FUNCTION <definice formálních parametrů> : ; { [<deklarace lokálních proměnných>] [<definice symbolů>] [<definice konstant>] } { } RETURN Definice funkce - příklad FUNCTION RegulacePI( VAR Sum :REAL; e,p,i :REAL ) : REAL ; Sum = Sum+e ; RegulacePI = p*e+i*Sum; RETURN Tělo programu Každý příkaz, definovaný mimo proceduru či funkci, je příkazem základní programové smyčky. I když je tak umožněno vzájemné prolínaní textu základního programu a procedur či funkcí, nelze takovýto programátorský styl doporučit. Za vhodné považujeme nejdříve definovat všechny procedury a funkce, teprve nakonec definovat tělo programu. Není na škodu komentářem zdůraznit začátek. Konec programu je vyznačen povinným klíčovým slovem END.
5.2.13 Direktivy Direktivy modifikují způsob překladu zdrojového textu. Mezi direktivy SIMPLE 3.0 patří příkaz #INCLUDE, NetAddr, #pragma $LJ a #pragma $SJ.
5.2.13.1 #INCLUDE Direktiva #INCLUDE umožňuje přepnout překlad do jiného souboru, a po jeho skončení se vrátit do původního. Direktivu #INCLUDE je možné použít na libovolném počtu úrovní. Toto členění zdrojového textu umožňuje sdílet některou část více programy a udržovat ji tak jen v jednom exempláři. Obsahem include souboru může být jedna nebo více definic konstant, symbolů, proměnných, procedur a funkcí. Syntaxe #INCLUDE "<soubor>" ;
© 2004 HYPEL®
Jazyk Simple3
128
5.2.13.2 NetAddr Direktiva NetAddr definuje adresu stanice v síti PESNET, pro kterou je daný program určen. Syntaxe NetAddr ();
5.2.13.3 Pragma Při generování kódu používá překladač pro větvení programu podmíněné skoky. Ty jsou u procesoru řady 8051 omezeny délkou skoku o 127 bytů. Instrukce těchto skoků zabírají málo místa v paměti a jsou rychlé, nestačí však vždy našim požadavkům. Pokud je větší počet příkazů za klíčovým slovem THEN, nebo používáme vnořené struktury, brzy na hranici 127 bytů narazíme. Direktiva #pragma $LJ; přepíná překladač do režimu, ve kterém tyto krátké skoky nahrazuje dvojicí krátkého podmíněného a dlouhého nepodmíněného skoku. Tato kombinace zabírá o něco více místa v paměti, o pár taktů procesoru prodlužuje vykonání programu, avšak umožňuje nám se vyjádřit tak, jak jsme chtěli. Direktiva #pragma $SJ; přepíná překladač zpět do původního režimu. Máme tak možnost určit, ve které části programu má být použit který způsob překladu.
5.3
Speciální funkce Mimo proměnných, reprezentujících fyzické vstupy a výstupy má celá řada předdefinovaných proměnných speciální význam. Zápisem do nich můžeme ovlivňovat funkci terminálu, řídit jeho činnost nebo se dovídat o jeho stavu. Jsou to vnitřní časovače, reálný čas, informace o rychlosti systému atd. Pro realizaci speciálních funkcí se využívají některé bity ze sady B0 B127 a některé registry ze sady W0 - W127. Všechny proměnné, které mají speciální funkce, mají napevno přiřazen ještě jeden identifikátor, kterým se symbolicky vyjadřuje jeho funkce. Doporučujeme všude v programu používat tyto názvy - klesá možnost omylů. Následující tabulka dává jejich základní přehled. I když většina bitů B a registrů W je zatím neobsazena, není vhodné je v programu využívat jako obecné proměnné (z důvodů kompatibility s dalšími verzemi jazyka SIMLE do budoucna).
© 2004 HYPEL®
129
5.3.1
HypEd4 - Uživatelská příručka
Identifikátor
Umístění
Popis funkce
RESET
B126
počáteční inicializace systému
T0-T7
W0-W7
šestnáctibitové časovače
TEN0-TEN7
B0-B7
povolení čítání
TDM0-TDM7
B8-B15
čítání dolů
TPA0-TPA7
B16-B23
předdělič stem
TOE0-TOE7
B24-B31
čítání přes přetečení
TOF0-TOF7
B32-B39
příznak přetečení
CLK0-CLK7
B40-B47
asynchronní impuls na časovač
SPEED
W15
rychlost systému
CALIB0-7
W18-W25
kalibrace analogových vstupů
ADCMODE0-7
W26-W33
nastavení modu A/D ( jen u vybraných typů)
SECOND
W8
sekundy reálného času. (1..59)
MINUTE
W9
minuty reálného času (0-59)
HOUR
W10
hodiny reálného času (0-23)
DAY
W11
dny v měsíci (1-28..31)
MONTH
W12
kalendářní měsíc (1-12)
YEAR
W13
roky století (0-99)
WEEK
W14
dny v týdnu (1-7)
HOLD
B48
vzorkování reálného času
POSITION
W34
pozice kursoru
FORMAT
W35
formát zobrazení znaku
KBCODE
W36
kód stisknuté klávesy
KBDELAY
W37
prodleva "autorepetu"
KBREPEAT
W38
rychlost "autorepetu"
CRLSEC
B49
zaokrouhlení na minuty
KBREPEN
B50
povolení autorepetu
KBSOUND
B51
aktivace zvukové odezvy klávesnice
LOADGEN
B52
aktivace uživatelských znaků
FASTADC
B53
nastavení modu rychlého AD převodu
Reset RESET je speciální funkční bit, který je automaticky nastaven vždy po zapnutí automatu a též vždy po spuštění programu. Tento bit lze využít v programu na počáteční inicializace a pak jej vynulovat, nebo se může použít i jinak, je však třeba počítat s tím, že po každém restartu automatu se tento bit nastaví. © 2004 HYPEL®
Jazyk Simple3
5.3.2
Symbol
Umístění
Popis funkce
RESET
B126
počáteční inicializace systému
130
Rychlost systému V automatu je průběžně aktualizována proměnná SPEED, ve které je uveden počet průchodů celým programem za sekundu. V aplikacích náročných na rychlost odezvy lze například tento registr testovat a kontrolovat, zda se regulační program nedostává do časového skluzu.
5.3.3
Symbol
Umístění
Popis funkce
SPEED
W15
rychlost systému
Časovače Časovače jsou reprezentovány specielními funkčními registry ( WORD) se symbolickými názvy T0 až T7. Všech osm čítačů je zcela nezávislých a se shodnými funkcemi. Činnost každého časovače souvisí se samostatnou šesticí funkčních bitů TENn, TPAn, CLKn,TOEn, TOFn, TDMn, kde n=0-7 specifikuje příslušný čítač. Funkci těchto bitů naznačuje obrázek. Časovač T a jeho řídící bity:
© 2004 HYPEL®
131
HypEd4 - Uživatelská příručka
Symbol
Umístění
Popis funkce
T0-T7
W0-W7
šestnáctibitové časovače
TEN0-TEN7
B0-B7
povolení čítání
TDM0-TDM7
B8-B15
čítání dolů
TPA0-TPA7
B16-B23
předdělič stem
TOE0-TOE7
B24-B31
čítání přes přetečení
TOF0-TOF7
B32-B39
příznak přetečení
CLK0-CLK7
B40-B47
asynchronní impuls na časovač
TEN povolení čítání časovače TEN0=0 časovač T0 stojí TEN0=1 časovač T0 čítá TPA zařazuje předdělič 1/100 TPA0=0 časovač T0 čítá po 10 ms TPA0=1 časovač T0 čítá po 1 s CLK vygeneruje 1 impuls na časovač (nezávisle na TEN) a ihned se vynuluje. Tímto způsobem lze asynchronně přidávat impulsy na časovač. TOE povoluje čítání přes přetečení TOE0=0 časovač T0 zastaví na 65535 (čítá-li nahoru), nebo na 0 (čítá-li dolů) TOE0=1 časovač T0 po dosažení meze nezastavuje, ale přetéká (při čítání nahoru 65535->0, při čítání dolů 0->65535) TOF
informace o přetečení časovače ( musí být nulován programem)
TDM směr čítání časovače TDM0=0 časovač T0 čítá nahoru TDM0=1 časovač T0 čítá dolů Příklad: ovládání výstupů Y0 a Y1 podle časových průběhů na obrázku
IF THEN
RESET Y0'; Y1'; TEN0; TPA0; TDM0'; TOE0'; T0=0; RESET';
ELSE IF (T0=> 5) ELSEIF(T0=> 7) ELSEIF(T0=> 9) ELSEIF(T0=>10) ENDIF
THEN THEN THEN THEN
Y0; Y1; Y1'; Y0'; Y1';T0=0;
ENDIF END
© 2004 HYPEL®
Jazyk Simple3
5.3.4
132
Reálný čas V jazyce SIMPLE3 můžou být programovány automaty, mající prostředky pro práci s reálným časem. V tomto případě jsou uživateli přístupné ve speciálních funkčních registrech údaje o sekundách, minutách a hodinách reálného času. Kromě toho jsou k dispozici i registry s informací o dnech v měsíci, o měsících, letopočtu a dnech v týdnu. Hodinové údaje jsou ve 24 hodinových cyklech. Kalendář nectí přestupné roky. Dny v týdnu nejsou závislé na datu, čili se jedná o nezávislý čítač modulo 7 (1až7). Je tedy na uživateli, kterým dnem bude začínat týden. Provede-li se však nastavení podle systémového času osobního počítače pomocí programu Loader nebo Setup, potom týden začíná nedělí. Funkční bit HOLD slouží ke vzorkování reálného času. Po nastavení tohoto bitu se údaje v časových registrech nemění, čas však nadále běží na pozadí. Po vynulování tohoto bitu se opět v registrech objeví údaje odpovídající reálnému času. Nastavením bitu CLRSEC se zaokrouhluje reálný čas na celé minuty. Je vynulován obsah sekundového registru, a pokud je před nulováním obsah sekundového registru větší než 29, je zároveň inkrementován obsah minutového registru. Tento funkční bit je po zaokrouhlení času automaticky nulován. Proměnné vyhrazené pro reálný čas jsou: Symbol
Umístění
Rozsah
SECOND
W8
0 - 59
Popis funkce
sekundy reálného času. (1..59) MINUTE W9 0 - 59 minuty reálného času (0-59) HOUR W10 0 - 23 hodiny reálného času (0-23) DAY W11 1 - 31 dny v měsíci (1-28..31) MONTH W12 1 - 12 kalendářní měsíc (1-12) YEAR W13 0 - 99 roky století (099) WEEK W14 1-7 dny v týdnu (1-7) HOLD B48 0 registry reálného času neustále aktualizovány 1 registry reálného času "drží" poslední hodnotu CRLSEC B49 0-1 zaokrouhlení na minuty Pozn.: Při pokusu o využití služeb reálného času na automatech, kde není obvod reálného času osazen, je třeba počítat s tím, že v registrech budou nesmyslné hodnoty. Příklad použití reálného času:
© 2004 HYPEL®
133
HypEd4 - Uživatelská příručka
{----------------------Deklarace--------------------------} VAR X0 # Cidlo1; // Infra čidlo uhlavního vchodu X1 # Cidlo2; // Infra čidlo u zadního vchodu Y0 # Ochranka; // signalizace pro ochranku M0 # VolnyPruchod; X2 # Tlacitko; // Kvitovaci tlacitko END SYMBOL VolnyPruchod' # ZakazanyPruchod; (Week=7) # Sobota; (Week=1) # Nedele; ((Hour>=5) and (Hour<=17)) # Pracovni_doba; ((Day =28) and (Month=10)) # Statni_svatek; END {----------------------Program----------------------------} ZakazanyPruchod = (Sobota or Nedele or Statni_svatek or Pracovni_doba') IF VolnyPruchod' and (Cidlo1 or Cidlo2) THEN Ochranka; // Zapnuti alarmu ENDIF IF Tlacitko THEN Ochranka'; ENDIF
// Vypnuti alarmu
END
5.3.5
A/D převodník U automatů s analogovými vstupy se hodnoty těchto vstupů objevují v proměnných I0, I1 ...atd. Rozsah těchto hodnot může být obecně 0.....65535. Jednotky, ve kterých je daná veličina měřená a její maximální rozsah, je dán konkrétním typem analogového vstupu. Například typ A3 měří v jednotkách 0,01 mA, typ A6 může měřit teplotu v jednotkách 0,1 °K nebo odpor v jednotkách 0,01W apod.
5.3.5.1
Rychlost A/D převodu U standardních analogových vstupů (vyjma vstupů pro odporová čidla) je prováděna automatická digitální filtrace. Krok jednoho měření přes všechny vstupy trvá 350 ms. Aktuální hodnoty jsou do proměnných I0..In přepsány vždy na začátku programové smyčky a v celém průběhu programu smyčkou se nemění. V případě, že je potřeba zrychlit měření je to možné nastavením speciálního funkčního bitu FASTADC, v tomto případě je krok měření 50 ms. Zrychlení se samozřejmě děje na úkor přesnosti měření.
© 2004 HYPEL®
Jazyk Simple3
5.3.5.2
134
Kalibrace analogových vstupů Kalibrace analogových vstupů se provádí pomocí speciálních funkčních proměnných CALIB0 až CALIB7 (max. počet podporovaných analogových vstupů je 8) Po resetu programu je v těchto proměnných vždy hodnota 10 000. Tato hodnota je chápána jako 1,0000 - a může být měněna uživatelským programem od 0,0 do 1,6000 (zápisem hodnot 0..16000 do proměnných CALIB0 až CALIB7) Tato hodnota funguje jako násobná pro každý kanál, lze tedy chápat převod každého kanálu In takto: In= (nominální hodnota analog. vstupu) * (CALIBn/10000) Máme čidlo, připojené na vstup I2 automatu AnneX, které má výstup 0-20 mA a chceme výslednou veličinu na vstupu I2 vidět přímo v procentech ( tedy 0-100). Standardně se kanál I2 zobrazuje v 0.01mA, viděli bychom tedy hodnoty od 0 do 2000. Pokud tedy po resetu přestavíme CALIB2 na hodnotu 500, bude se výsledná hodnota násobit koeficientem 0.500 a v I2 nyní uvidíme hodnoty 0..100. Příklad zápisu v programu: VAR Y0 # DOLNI_POLOVINA; Y1 # HORNI_POLOVINA; END IF RESET THEN CALIB2=500; RESET'; ENDIF DOLNI_POLOVINA = I2 < 50; HORNI_POLOVINA = I2 > 50; END
5.3.5.3
Módy funkce analogových vstupů pro měření odporu U automatů a řídících stanic vybavených analogovými vstupy pro přímé připojení odporových čidel je možné zvolit mód činnosti respektující způsob připojení čidla a měřící rozsah. Uvedený mód činnosti se volí nastavením funkční proměnné ADCMODE. Možnosti nastavení módu činnosti analogových vstupů
© 2004 HYPEL®
ADCMODE
Měřící rozsah
Zobrazovaná hodnota
Připojení čidel
0
500W
odpor s rozlišením 0.01W
Třívodičově
4
5kW
odpor s rozlišením 0.1W
8
500W
teplota s rozlišením 0.1K
16
500W
odpor s rozlišením 0.01W
20
5kW
odpor s rozlišením 0.1W
24
500W
teplota s rozlišením 0.1K
Dvouvodičově
135
HypEd4 - Uživatelská příručka
Funkční proměnné pro ovládání A/D převodu
5.3.5.4
Symbol
Umístění
Popis funkce
CALIB0-7
W18-W25
kalibrace analogových vstupů
ADCMODE
W26
nastavení modu A/D ( jen u vybraných typů)
FASTADC
B53
nastavení modu rychlého AD převodu
Ukládání dat do paměti EEPROM V jistých případech je výhodné zálohovat určitý malý objem "důležitých" dat zápisem do paměti EEPROM. Tento způsob zálohování je přínosný především u takových konfigurací automatů, které nejsou vybaveny datovou pamětí typu NVRAM. Nastavení funkčního bitu EESAVE dojde k přepisu právě aktuelního obsahu proměnných D0 až D29 a M0 až M31 do zálohové paměti EEPROM. V případě, že tato uložená data chceme vyčíst, provedeme nastavení funkčního bitu EELOAD. Oblast proměnných D0 až D19 a M0 až M31 se naplní daty z EEPROM. Je třeba zdůraznit, že zápis dat do EEPROM je nutné provádět pouze při splnění nadefinované podmínky, a to proto, aby se zápis neprováděl vždy při každém průchodu tělem programu. Paměť typu EEPROM má totiž omezený počet zápisů (50 000). Proto je toto zálohování třeba provádět uváženě. Počet již provedených zápisů je možno zjistit vyčtením hodnoty specielní funkční proměnné EEWR_COUNT. Symbol
Umístění
Popis funkce
EESAVE
B54
EELOAD
B55
zápis proměnných D0 - D29,M0 - M31 do EEPROM čtení proměnných z EEPROM do D0-D29,M0M31 udává počet již provedených zápisů do EEPROM
EEWR_COUNT W39
Příklad: IF RESET THEN EELOAD;RESET'; ENDIF {Naplní po startu oblasti promìnných D0 - D29 a M0 - M31 døíve uloženými daty.} IF KBCODE=8 THEN EESAVE; ENDIF {Klávesou F1 zapiseme oblasti promenných D0 - D29 a M0 - M31 do zalohovaci pameti.} IF KBCODE=9 THEN POSITION=0; DISPLAY=CITAC; ENDIF {Klávesou F2 vypiseme na display pocet provedenych zapisu do zalohovaci pameti}
© 2004 HYPEL®
Jazyk Simple3
5.4
136
Terminálové funkce Programovatelné terminály řady "T" a kompaktní řídící stanice řady "PP" vyráběné firmou HYPEL jsou shodně vybaveny klávesnicí a displayem. Na tyto periferie musí samozřejmě vhodně přistupovat uživatelským programem a k tomuto má jazyk SIMPLE3 příslušné nástroje.
5.4.1
Klávesnice Všechny programovatelné terminály řady "T" a kompaktní řídící stanice řady "PP" mají membránovou klávesnici s 21 tlačítky s mechanickou odezvou. Vstupní informace z klávesnice je kódována do funkčního registru KBCODE tak, že každému tlačítku odpovídá určitý číselný kód. Pokud je stisknuto více kláves současně, je v proměnné KBCODE číselný kód jen jedné z nich. Tento kód se do KBCODE nastaví vždy na začátku programové smyčky a na jejím konci se automaticky vynuluje. Proměnná KBCODE je tedy po stisku klávesy aktivní právě po dobu jednoho průchodu programovou smyčkou. K opětovnému nastavení KBCODE je třeba tlačítko pustit a znovu zmáčknout (výjimkou je autorepeat). Pokud je klávesnice v klidu, je KBCODE=0. Kódování kláves
5.4.1.1
klávesa
KBCODE ASCII
klávesa
KBCODE ASCII
klávesa
KBCODE ASCII
r
1
F1
8
4
52
"4"
t
2
F2
9
5
53
"5"
m
5
F3
10
6
54
"6"
o
6
0
48
"0"
7
55
"7"
ESC
3
1
49
"1"
8
56
"8"
ENT
4
2
50
"2"
9
57
"9"
+/-
7
3
51
"3"
.
46
"."
Autorepeat Aby nebylo nutné pro určité akce (např. pro posuv kursoru, rolování menu apod.) vícekrát mačkat tutéž klávesu, je možné nastavit "AUTOREPEAT". Pokud stiskneme některé tlačítko a držíme je stisknuté, potom po určité (nastavitelné) prodlevě bude do KBCODE znovu nastavován kód tlačítka (s nastavitelnou rychlostí opakování). Efekt je tentýž jako bychom neustále rychle mačkali tlačítko. Funkce se zapíná nastavením bitu KBREPEN, počáteční prodleva se nastavuje registrem KBDELAY (v desítkách milisekund) a délka intervalu mezi jednotlivými "pseudo-stisky" registrem KBREPEAT (v desítkách milisekund).
© 2004 HYPEL®
137
HypEd4 - Uživatelská příručka
Příklad zapnutí funkce autorepeat s počáteční prodlevou 1 sec. a opakováním po 0.2 sec. : KBREPEN; KBDELAY = 100; KBREPEAT = 20;
5.4.1.2
Akustická indikace Stisk tlačítka (a případně i "pseudo-stisky" při zapnuté funkci AUTOREPEAT) je možné automaticky indikovat akusticky krátkým pípnutím vestavěného bzučáku. Funkce se zapíná nastavením funkčního bitu KBSOUND (bit je automaticky nastaven vždy po zapnutí).
5.4.2
Displej Programovatelné terminály řady T3 a kompaktní řídící stanice řady PP jsou vyráběny ve dvou modifikacích. Se znakovým LC displejem a sedmisegmenovým LED displejem.
5.4.2.1
LC Displej Filosofie ovládání displeje je pro všechny uvedené automatizační prostředky stejná, i když mohou mít LCD s různým počtem řádků a různým počtem znaků. Texty, čísla nebo uživatelské symboly se vždy tisknou na virtuální obrazovku velikosti 4 řádky x 40 znaků. Pozice znaků na obrazovce se počítají od levého horního rohu počínaje nulou. Na terminálu je potom zobrazeno jen tolik řádků a sloupců z virtuální obrazovky, kolik umožňuje použitý displej. Číslování pozic znaků na virtuální obrazovce
Příklady skutečného zobrazení na různých typech displayů
Díky tomuto způsobu ovládání jsou programy navzájem přenositelné pro všechny typy
© 2004 HYPEL®
Jazyk Simple3
138
displejů. Vytvoříme-li program pro terminál s 4x20 znaky, poběží úplně stejně i na terminálu s 2x16 znaky, ovšem spodní 2 řádky a poslední 4 znaky již nebudou zobrazeny. Pro tisk na displej je vyhrazena speciální proměnná DISPLAY, do které lze kromě konstant a proměnných přiřazovat i text (píše se do uvozovek). Pozici, odkud se bude vypisovat, lze volně nastavit pomocí funkční proměnné POSITION. Pokud chceme tisknout položky za sebou, není třeba počítat nové hodnoty do proměnné POSITION, neboť obsah této proměnné se automaticky po tisku každého znaku zvětší o 1. Tisk textů je přímý, tj. to co je napsáno v uvozovkách a přiřazeno do proměnné DISPLAY je zobrazeno od pozice dané proměnnou POSITION.
5.4.2.2
Formáty zobrazování eíselných hodnot Jazyk SIMPLE3 podporuje práci s proměnnými typu bit, word, integer a real. Při výstupu jakéhokoliv čísla na dispaly je třeba v uživatelském programu zvolit formát jakým je dané číslo zobrazováno. Volba formátu se provádí naplněním proměnné FORMAT příslušnou konstantou. Jednotlivé řády formátu určují specifické vlastnosti zobrazení.
5.4.2.2.1 Typ BIT
Pro tento číselný typ mají smysl pouze formáty 0 až 4. Zobrazení čísla typu bit v závislosti na obsahu proměnné FORMAT je patrné z následující tabulky. Formát
Způsob zobrazení
0
zobrazí hodnotu 0 nebo 1
1
zobrazí znak "L" nebo "H"
2
zobrazí znak - nebo +
3
zobrazí nápis LOW nebo HIGH
4
zobrazí nápis VYP nebo ZAP
5.4.2.2.2 Typ WORD
Řád jednotek se při zobrazování tohoto typu neuplatní. Řád desítek formátu udává nejmenší počet míst, na nějž je číslo zobrazováno. Pojem "nejmenší počet míst" znamená, že pokud má zobrazované číslo větší počet platných číslic než udává formát, jsou samozřejmě zobrazovány všechny číslice. Řád stovek určuje způsob zarovnání. Je-li nulový, číslo je zarovnáno vpravo, je-li jedničkový, provádí se zarovnání vlevo. Řád stovek hodnoty větší než 1 nemá pro čísla typu word smysl. Řád tisíců různý od nuly nemá u formátu čísel typu word význam. © 2004 HYPEL®
139
HypEd4 - Uživatelská příručka
Příklad: D0 = 123; FORMAT = 50; DISPLAY = D0; //Cislo se zobrazi ve tvaru __123.(Tedy na pet mist, dve mezery na zacatku) FORMAT = 140; DISPLAY = D0; //Cislo se zobrazi ve tvaru 123_.(Ted na ctyri mista, jedna mezera na konci) FORMAT = 10; DISPLAY = D0; //Cislo se zobrazi ve tvaru 123.(Cislo ma vice platnych cislic //nez urcuje format)
5.4.2.2.3 Typ INTEGER
Je-li řád tisíců jedna, zobrazuje se u kladného čísla na začátku znaménko + (U záporných čísel se znaménko - zobrazuje vždy). Řád desítek formátu udává nejmenší počet míst, na nějž je číslo zobrazováno. Tento počet míst je uvažován včetně znaménka. Řád stovek určuje způsob zarovnání. Je-li nulový, číslo je zarovnáno vpravo, je-li jedničkový, provádí se zarovnání vlevo. Řád stovek hodnoty větší než 1 nemá pro čísla typu integer smysl. Příklad: Cislo = 456; FORMAT = 40; DISPLAY = Cislo; mista,
//Cislo se zobrazi ve tvaru _456.(Tedy na ctyri //jedna mezera na zacatku, bez znamenka)
FORMAT = 1150; DISPLAY = Cislo;
//Cislo se zobrazi ve tvaru +456_.(Ted na pet mist, //jedna mezera na konci, se znamenkem)
5.4.2.2.4 Typ REAL
Je-li řád tisíců jedna, zobrazuje se u kladného čísla na začátku znaménko + (U záporných čísel se znaménko - zobrazuje vždy). Řád jednotek určuje počet zobrazovaných desetinných míst. Řád desítek formátu udává nejmenší počet míst, na nějž je číslo zobrazováno. Tento počet míst je uvažován včetně znaménka a řádové tečky. Řád stovek určuje způsob zarovnání. Je-li nulový, číslo je zarovnáno vpravo, je-li jedničkový, provádí se zarovnání vlevo. Je-li řád stovek roven 2, potom je číslo zobrazováno v semilogaritmickém tvaru. Příklad: Cislo = 78.9; FORMAT = 62; DISPLAY = Cislo; mist,
//Cislo se zobrazi ve tvaru _78.90.(Tedy na sest //jedna mezera na zacatku, dve destina mista)
© 2004 HYPEL®
Jazyk Simple3
FORMAT = 1072; DISPLAY = Cislo; mist,
140
//Cislo se zobrazi ve tvaru _+78.90.(Tedy na sedm //jedna mezera na zacatku, znamenko polarity, dve
desetinna cisla) FORMAT = 161; DISPLAY = Cislo; mist,
//Cislo se zobrazi ve tvaru 78.9__.(Tedy na sest //dve mezery na konci, jedno desetinne misto, bez
znamenka) FORMAT = 203; DISPLAY = Cislo; //Cislo se zobrazi ve tvaru 7.890E01.(Tedy v semilogaritmickem tvaru, //tri desetina mista)
5.4.2.2.5 Formát pro tisk znaků
Je-li použit formát 220, je vstupní hodnota interpretována jako číslo znaku a vytiskne na display jeden znak daný tímto číslem. Tento formát umožňuje tisknout i znaky, které nejsou běžně dostupné a nelze je tedy při psaní programu napsat z klávesnice do zadání textu pro textový výstup. Kód znaku musí být v rozsahu 0 ... 255. Kód
Typy znaků
0...7
vlastní předefinovatelné znaky, grafické symboly
32...122
abecední a číslicové znaky, kódované podle mezinárodního standardu ASCII další užitečné znaky (např. japonská abeceda Katakana)
160...255
Například znak "C" lze v jazyce SIMPLE3 zobrazit několika způsoby: DISPLAY = "C"; FORMAT=220; DISPLAY=67; D1=67; FORMAT=220; DISPLAY=D1; Tabulka kódů nejpoužívanějších znaků pro LC display:
© 2004 HYPEL®
141
HypEd4 - Uživatelská příručka
kód
znak
32
kód
znak
kód
znak
kód
znak
kód
znak
kód
znak
kód
48
0
64
@
80
P
96
`
112
p
161
33
!
49
1
65
A
81
Q
97
a
113
q
219
34
"
50
2
66
B
82
R
98
b
114
r
223
35
#
51
3
67
C
83
S
99
c
115
s
224
36
$
52
4
68
D
84
T
100
d
116
t
225
37
%
53
5
69
E
85
U
101
e
117
u
226
38
&
54
6
70
F
86
V
102
f
118
v
227
39
'
55
7
71
G
87
W
103
g
119
w
228
40
(
56
8
72
H
88
X
104
h
120
x
229
41
)
57
9
73
I
89
Y
105
i
121
y
230
42
*
58
:
74
J
90
Z
106
j
122
z
235
43
+
59
;
75
K
91
[
107
k
123
{
239
44
,
60
<
76
L
92
108
l
124
|
244
45
-
61
=
77
M
93
]
109
m
125
}
245
46
.
62
>
78
N
94
^
110
n
126
®
246
47
/
63
?
79
O
95
_
111
o
127
¬
255
5.4.2.2.6 Definování vlastních grafických symbolů na LC disleji
Terminály řady "T" a kompaktní řídící stanice "PP" s LC displejem umožňují vytvořit až 8 vlastních grafických symbolů, které se dají vytisknout na displeji jako kterýkoliv jiný znak. Znaky jsou v tabulce znaků kódovány pod čísly 0 až 7 a lze je tisknout prostřednictvím formátu 221. Tuto zajímavou funkci můžeme využít např. pro tvorbu a tisk znaků české abecedy. Všechny znaky jsou tvořeny maticí z 8 grafických řádků, kde každý řádek obsahuje 5 bodů. U stanic s LED displejem je uživatelský symbol tvořen pouze jedním číslem, které odpovídá binárnímu kódu pro sedmisegmentový znak. U standardní pevné sady znaků se spodní řádek nevyužívá. U sady programovatelných znaků můžeme využít všech 8 řádek. Celkem můžeme definovat 64 grafických řádků, tvořících 8 kompletních znaků. Definování znaků začíná nastavením hodnoty 221 do proměnné FORMAT. Po nastavení formátu 221 se displej přepne z režimu tisku do režimu programování znaků. Proměnné DISPLAY a POSITION mají v tomto režimu jinou funkci. Proměnná POSITION určuje, který grafický řádek budeme měnit a do proměnné DISPLAY zapisujeme data, určující obsah řádku. POSITION i v tomto režimu funguje tak, že po zápisu grafického řádku se automaticky zvětší o 1 a posune se tak na další řádek. Programování znaků ukončíme nastavením proměnné FORMAT na jinou hodnotu. Po návratu z programovacího režimu se do proměnné POSITION nevrací původní hodnota, je tedy nutné ji před dalším tiskem opět nastavit. Umístění pozic grafických řádků
© 2004 HYPEL®
Jazyk Simple3
142
znak 0
znak 1
znak 2
znak 3
znak 4
znak 5
0
8
16
24
32
40
1
9
17
25
33
41
2
10
18
26
34
42
3
11
19
27
35
43
4
12
20
28
36
44
5
13
21
29
37
45
6
14
22
30
38
46
7
15
23
31
39
47
Každý bod řádku má svoji numerickou váhu (odpovídá binárnímu kódování). Numerickou reprezentaci jednoho grafického řádku získáme sečtením hodnot odpovídajících jednotlivým bodům. číselné vyjádření bodů na grafickém řádku je toto:
Například tento grafický řádek
má číselné vyjádření 25. Příklad:
Chceme zadefinovat grafický symbol (např. podle následujícího obrázku) a vytisknout na LC displej. Znak chceme zadefinovat do tabulky znaků například pod kódem 2.
FORMAT=221; // formát pro definování znaků POSITION=16; // 0. grafický řádek znaku 2 DISPLAY=14; // zápis grafických řádků DISPLAY=31; DISPLAY=21;
© 2004 HYPEL®
143
HypEd4 - Uživatelská příručka
DISPLAY=27; DISPLAY=31; DISPLAY=17; DISPLAY=10; DISPLAY=14; FORMAT=220; // budeme tisknout znak podle kódu POSITION=0; // na 1. pozici na 1. řádku DISPLAY=2; // bude se tisknout znak číslo 2
5.4.2.2.7 Princip zobrazování
Tisk na virtuální obrazovku a vlastní fyzický zápis dat do obvodů displaye jsou dva zcela nezávislé děje, které běží v automatu paralelně. Odezva displaye je totiž pomalá a kdyby měl uživatelský program čekat, až se skutečně zobrazí nějaký delší text, došlo by v daném bodě k jeho neúnosnému zdržení. Celý tisk přes proměnnou DISPLAY se proto uloží do paměti RAM (zde je ta virtuální obrazovka) a zároveň s programem běží na pozadí proces, který tyto znaky zobrazuje. Tato metoda sice nezdržuje uživatelský program, avšak skýtá jednu záludnost. Chceme-li například smazat řádek displaye a vytisknout na něj novou informaci, můžeme to provést např. takto : POSITION=40; // budeme pracovat s 2. řádkem DISPLAY=" "; //tisk mezer přes celý řádek POSITION=40; DISPLAY="NOVY TEXT"; //na začátek řádku nový text Přepsání celého displeje trvá asi 200 ms. Pokud budeme tuto proceduru volat často (alespoň 3x až 4x za sekundu), může se stát, že zrovna po vytisknutí prázdného řádku se několik těchto znaků přenese na displej a bude trvat asi 200 ms, než dojde k jejich přepisu novou hodnotou. A shodou náhod může být v tento okamžik obslužný program zase v bodě, kdy do inkriminované oblasti opět píše mezery... Obraz potom různě chaoticky problikává. Řešením je buď omezit frekvenci volání takové procedury (max. 2x za sekundu), nebo tisknout na display tak, aby nedocházelo bezprostředně po sobě k přepisu týchž pozic různou informací. Např. takto : POSITION=40 ; DISPLAY="NOVY TEXT
5.5
";
//budeme pracovat s 2. řádkem //tisk textu a mezer až do konce
Síťová vrstva Všechny řídící prostředky vyráběné firmou HYPEL je možno bez úprav či modifikací přímo použít k vytváření decentralizovaných řídících systémů s distribuovanou inteligencí.
© 2004 HYPEL®
Jazyk Simple3
5.5.1
144
Popis komunikace Síťová vrstva umožňuje komunikaci mezi automaty navzájem (podmínkou je pouze nastavení stejné komunikační rychlosti u všech automatů v síti a nastavení odlišných adres pro všechny automaty v síti). Stanic může být zapojeno ve společné síti max. 31.
5.5.2
Síťové proměnné Aby se dalo jednoduše komunikovat mezi automaty pomocí prostředků jazyka SIMPLE, byl zvolen tento způsob : Horní polovina uživatelských bitů M (tedy M63 až M127) a horní polovina uživatelských proměnných D (tedy D32 až D63) je sdílená všemi automaty v síti. Pokud tedy program v automatu zapíše hodnotu do některé této proměnné (nastaví nebo nuluje bit - např. M64 : M65' nebo zapíše hodnotu do proměnné např. D32=3568; D33=D11 / 120 apod.), automat při nejbližší možné příležitosti odvysílá do sítě adresu a hodnotu této proměnné. Ostatní automaty tuto zprávu zachytí a automaticky si do těchto proměnných zapíší nové hodnoty. Tato metoda je velmi jednoduchá a lehce pochopitelná, má však svá úskalí. Jednak je komunikace poměrně pomalá a přenos dat může tímto způsobem trvat za nepříznivých okolností i jednu sekundu. Dále není zaručena přesná sekvence přenosu síťových proměnných tak, jak by to odpovídalo pořadí zápisů do proměnných z programu automatu. Nejpodstatnější je ovšem fakt, že jelikož jsou obsahy síťových proměnných posílány všem stanicím v síti současně, nemohou být přijetí těchto zpráv již od principu potvrzováno. Jiným slovy máme sice jistotu, že nemohou dorazit na místo určení chybná data, ale nemůžeme zaručit, že aktuálně platná data vůbec dorazí. Přenos proměnné je aktivován vždy pouze po jejím zapsání z programu v automatu. Pokud však právě v tuto chvíli dojde ke krátkodobému výpadku sítě, ostatní automaty v síti se o změně obsahu dané síťové proměnné již nedozvědí. Proto lze doporučit tuto jednoduchou metodu bez obav pouze v tom případě, že je aktuální hodnota do síťové proměnné zapisována neustále. Například pokud máme decentralizovaný řídící systém v němž jedna stanice měří na jednom svém analogovém vstupu teplotu a chceme, aby byla tato teplota "viditelná" pro všechny automaty v síti provedeme to takto: V hlavním těle programové smyčky zapíšeme například následující řádek. D32=I0; Potom budeme moci ve všech automatech v síti číst z proměnné D32 aktuální hodnotu měřené teploty. Pokud v tomto případě dojde ke krátkodobému výpadku komunikace nebude to na závadu, protože hodnota proměnné bude aktualizována bezprostředně po jejím obnovení. Použití metody sdílených proměnných je v tomto případě na místě.
5.5.3
Adresné zprávy Přenos dat mezi automaty v síti pomocí adresných zpráv je z hlediska uživatelského programu
© 2004 HYPEL®
145
HypEd4 - Uživatelská příručka
poněkud komplikovanější, ale má mnoho předností. Především můžeme zapisovat z kteréhokoliv automatu v síti do kterékoliv proměnné libovolného jiného automatu a obdobně i číst. Nejsme tedy omezeni jen na oblast síťových proměnných a můžeme provést zápis například i do proměnných výstupních či například deklarovaných proměnných (var). Tato volnost sebou samozřejmě přináší větší rizika při neopatrném použití. Druhou značnou výhodou této metody je fakt, že přenášené zprávy jsou vždy potvrzované a tudíž máme vždy jistotu, že byla požadovaná data přenesena do určené stanice. Velmi podstatné také je, že přenos dat je podstatně rychlejší oproti metodě sdílených proměnných. K vysílání adresných zpráv slouží sada funkčních proměnných . Jsou to: SENDCODE, SENDADDR, MEMADDR, BITADDR, SENDDATA, SENDBIT, MYADDR
5.5.3.1
SendAddr Do této proměnné zapisujeme adresu stanice již je zpráva určena. To znamená, že je možno zapsat hodnotu 0 až 30. Je nevhodné zapisovat do proměnné vlastní adresu.
5.5.3.2
MemAddr Obsah této proměnné určuje adresu v paměti vybrané stanice na kterou se bude zapisovat případně z ní číst.
5.5.3.3
BitAddr Obsah této proměnné se uplatní pouze u operací s bitovými proměnnými. Určuje adresu bitu v bytu určeném proměnnou MemAddr. Může nabývat hodnot 0 až 7. Jelikož se proměnné adresují přímo v RAM automatu je zde uvedena tabulka umístění základních proměnných. Adresy jsou udány jak v hexadecimální tak dekadické reprezentaci.
© 2004 HYPEL®
Jazyk Simple3
146
Proměnné volně deklarované (var) jsou v RAM automatu ukládány od adresy 4096. Při jejich využití v síťovém provozu je ne vhodné postupovat takto. Nejdříve napíšeme zdrojový text cílové stanice. Deklarace proměnných, které mají být využity k síťovému přenosu deklarujeme jako první. Zdrojový text bude i nadále možno při ladění aplikace měnit, ale jakékoliv nové proměnné je třeba deklarovat až definice původní. Provedeme překlad programu a adresy daných proměnných nalezneme přímo ve vygenerovaném "dnl" souboru.
5.5.3.4
SendData Při vysílání je přenášena do cílové stanice obsah právě této proměnné. Naopak při čtení ze sítě jsou do této proměnné ukládána přijatá data. Používáme-li operace pro přenos bytů je využit pouze spodní byte této proměnné.
5.5.3.5
SendBit Toto je funkční obdoba proměnné SendData, ale pro bitové operace. Je-li SendBit nastaven je nastaven i cílový bit v druhém automatu a nopak. Při operacích čtení je SendBit naplněn hodnotou příslušného bitu druhého automatu.
5.5.3.6
SendCode Obsah této proměnné určuje jaká síťová operace se bude provádět. Zápisem příslušného kódu do této proměnné se zahájí provádění této operace a je-li úspěšně provedena je obsah
© 2004 HYPEL®
147
HypEd4 - Uživatelská příručka
proměnné automaticky nulován.
5.5.3.7
Odesílání zpráv Pokud chceme z programu zapsat do proměnné jiného automatu nejdříve zkontrolujeme je-li obsah proměnné SendCode roven nule, což znamená, že již byla úspěšně odeslána předešlá zpráva. Odesílání předešlé zprávy můžeme též stornovat tím, že do SendCode zapíšeme nulu. Potom nastavíme adresu cílové stanice do proměnné SendAddr, adresu cílové proměnné do MemAddr, případně i do BitAddr, (jedná-li se o zápis do bitové proměnné) a požadovanými daty naplníme proměnnou SendData, případně SendBit. Vlastní odesílání se zahájí zápisem příslušného kódu do proměnné SendCode. Obsah SendCode se automaticky vynuluje po úspěšném přenosu zprávy. Například chceme-li zapsat z programu nastavit automatu s adresou 5 na analogovém výstupu O0 hodnotu 1500 provedeme to takto: symbol 5 # WriteWord; end if SendCode=0 then SendAddr=5; MemAddr=64; SendData=1500; SendCode=WriteWord; endif Při čtení z proměnné druhého automatu Naplníme proměnné SendAddr, MemAddr, případně BitAddr. Dále nastavíme příslušný kód operace do proměnné SendCode. Dále testujeme obsah proměnné SendCode. Jakmile je vynulována čteme z proměnné SendData nebo SendBit platná data. Chceme-li například číst hodnotu vstupu X1 z automatu s adresou 7 a tuto hodnotu stále ukládat do proměnné M0 provedeme to takto: symbol 2 # ReadBit; end if SendCode=0 then M0=SendBit; SendAddr=7; MemAddr=512; BitAddr=1; SendCode=ReadBit; endif
© 2004 HYPEL®
Jazyk Simple3
5.5.4
148
Příprava automatů pro provoz v síti Nejprve je třeba všem automatům nastavit stejnou komunikační rychlost a různé adresy. Nastavení se zapisuje do EEPROM v automatech a provádí se podpůrným programem Setup. Tento program vyžaduje připojení jen jedné stanice na lince. To lze provést např. tak, že postupně připojujeme jeden automat po druhém a provádíme nastavení, anebo zapojíme kompletně celou síť včetně instalace všech automatů a nastavování provádíme s postupným zapínáním a vypínáním jednotlivých automatů.
5.5.4.1
Volba komunikační rychlosti Musí být u všech automatů stejná a lze si vybrat z hodnot 9600 Bd, 19200 Bd a 57600 Bd. Nastavování se provádí programem Setup. Pokud celková délka kabeláže nepřesahuje 100 metrů, lze provozovat síť na rychlosti 57600 Bd, při délkách do 500 metrů doporučujeme použití rychlosti 19200 Bd, při silném rušení nebo větších délkách kabeláže je vhodné použít 9600 Bd. Samozřejmě na komunikační rychlosti přímo závisí datová propustnost sítě a s tím související např. odezvy automatů na změny sdílených síťových proměnných.
5.5.4.2
Tipy pro používání sítě Vysílání hodnot do sítě se děje vždy po zápisu do příslušné proměnné v automatu. Chceme-li tedy, aby některá důležitá hodnota byla stále k dispozici (např. po RESETU) nastavíme v programu hodnotu takto: IF RESET THEN D35=2500; RESET'; ENDIF Pokud tuto hodnotu potřebujeme nutně v druhém automatu a tento automat zapneme až po startu prvního, už se tato hodnota přenášet nebude. Je tedy vhodné u takovýchto důležitých proměnných provést čas od času "občerstvení" - vyhradíme si např. čítač T7 pro tyto potřeby a např. každé 2 sekundy provedeme nové přiřazení: IF IF
RESET THEN TEN7; TPA7; RESET'; ENDIF (T7 > 2) THEN T7=0; D35=OTACKY; D36=POLOHA; IF M1 THEN M64; ENDIF ENDIF Samozřejmě můžeme přiřazovat do síťové proměnné neustále při každém průchodu programovou smyčkou, je však třeba počítat s tím, že datová propustnost sítě klesne. I tak je však zajištěno, že tabulky proměnných se prohledávají cyklicky a nemůže se tedy stát, že by některá často používaná síťová proměnná zablokovala přenos ostatních proměnných. Rovněž se nemůže stát, aby některý automat (který zapisuje do velkého počtu síťových proměnných) "kradl" vysílací čas na úkor automatů ostatních. Pokud tedy pro chod celé aplikace není třeba zvlášť vysoké odezvy (řádově 0.1 sec), není nutné se problémem zatížení sítě nikterak zabývat. © 2004 HYPEL®
149
HypEd4 - Uživatelská příručka
Pro snazší download programů po síti a snazší ladění po síti prostřednictvím programu Viewer doporučujeme následující postup: Vytvoříme pro každý automat zdrojový program s odlišným jménem souboru (například MERIC1.SIM, MERIC2.SIM, MERIC3.SIM, HLASIC.SIM) a v každém programu na začátku použijeme direktivu NetAddr vždy s adresou toho automatu, kterého se program týká. Potom už stačí jen v cyklu volat Loader nebo Viewer a měnit jen parametr název souboru - programy už budou pracovat s kýženou adresou.
5.6
Tipy pro užívání SIMPLE Některé konstrukce, které oproti jazyku SIMPLE2 přináší SIMPLE3 mohou v některých případech značně zjednodušit zápis zdrojového textu a tím zefektivnit práci na tvorbě aplikace.
© 2004 HYPEL®
Jazyk Simple3
5.6.1
150
Využívání definice konstant ENUM Definice konstant ENUM umožňuje jednoduše nadefinovat množinu konstant, které mají samovysvětlující identifikátory, zvyšující přehlednost programu. Příklad CONST ENUM Nic,Pondeli,Utery,STreda,Ctvrtek,Patek,Sobota,Nedele ; END CASE Den OF 1 OF 2 OF 3 OF 4 OF 5 OF 6 OF 7 ELSE ENDCASE
THEN THEN THEN THEN THEN THEN THEN
DISPLAY="Po" DISPLAY="Ut" DISPLAY="St" DISPLAY="Ct" DISPLAY="Pa" DISPLAY="So" DISPLAY="Ne" DISPLAY="??"
Pojmenování konstant může posloužit pro udržení přehledu v polích: Příklad CONST ENUM END
Chodby,Telocvicna,Kuchyn,Ucebny; //regulacni okruhy
VAR PozadHodnota : array [Ucebny] of real ; END PozadHodnota[Telocvicna] = 18.0; V případě, že při úpravách programu dojde k vypuštění okruhu, nebo naopak k rozšíření počtu okruhů, jsou úpravy mnohem jednodušší.
5.6.2
Konečný automat Každý řídicí program je, ať již si to uvědomujeme či ne, realizací tzv. konečného automatu. Ten má soubor vstupů, výstupů a vnitřních stavů. V každém "taktu" dochází na základě hodnot vstupů a vnitřního stavu ke generování hodnot na výstupech a k určení nového vnitřního stavu. Vstupy a výstupy bývají jasně definovány již samotným zadáním řídicí úlohy. Volnost je dána programátorovi při definování počtu a způsobu reprezentování vnitřních stavů a tím i způsobu popisu funkcí, které rozhodují o výstupu a novém vnitřním stavu programu. Častým způsobem definování vnitřních stavů je soubor "flagů", tedy bitových proměnných, které se různě nastavují a nulují, jak je potřeba. Funkce přechodu mezi stavy jsou pak soustavou logických rovnic. Tento způsob je obvykle kombinován s hodnotami číselných
© 2004 HYPEL®
151
HypEd4 - Uživatelská příručka
proměnných, které se pak porovnávají s různými konstantami. SIMPLE3 nabízí možnost rozlišovat stavy hodnotami jedné nebo více stavových proměnných typu WORD nebo INT. Jednotlivé stavy vyjmenovat v definici konstant pomocí ENUM, aniž bychom se starali o konkrétní hodnoty, které jim jsou přiřazeny. Struktura CASE pak větví program podle hodnoty stavové proměnné. Tento styl doporučujeme především pro zvýšení přehlednosti a čitelnosti programu. Mějme jednoduchou úlohu jako součást nějakého složitějšího systému - poruchová signalizace s potvrzením. Požadujeme následující funkci : · · · ·
Pokud není porucha, signálka nesvítí Objeví-li se porucha, signálka začne blikat. Pomine-li porucha sama, signálka zůstane rozsvícená až do stisku potvrzení. Pokud poruchu kvitujeme, signálka svítí až do pominutí poruchy.
Zmíněnou metodou můžeme úlohu řešit například takto: CONST ENUM 50
BezPoruchy,JePorucha,Pominula,Potvrzena ; # PeriodaBlikani ; // v desitkach milisekund
END VAR
Stav : WORD ; BlikajiciBit : BIT ; X0 # Kvitace ; X1 # Porucha ; Y0 # Signalka ;
END {-- programova smycka ---------------------------------------} IF RESET THEN TEN0; TPA0'; TOE0; T0=0; RESET'; ENDIF IF T0>=PeriodaBlikani THEN !BlikajiciBit; T0=0; ENDIF CASE
Stav OF
BezPoruchy
OF
JePorucha
OF OF
Pominula Potvrzena
THEN Signalka'; IF Porucha THEN THEN Signalka = IF Porucha' THEN IF Kvitace THEN THEN Signalka; IF Kvitace THEN IF Porucha THEN THEN Signalka; IF Porucha' THEN
Stav=JePorucha; BlikajiciBit ; Stav=Pominula; Stav=Potvrzena;
ENDIF ENDIF ENDIF
Stav=BezPoruchy; ENDIF THEN=JePorucha; ENDIF THEN=BezPoruchy; ENDIF
ENDCASE END V uvedeném příkladě jsme zanedbali zpoždění jednoho cyklu programu mezi zjištěním poruchy a reakcí signálky. Pokud by zpoždění z nějakých důvodů vadilo, musela by být reakce signálky uvedena již v podmíněném příkazu IF. Chtěli jsme být co nejstručnější.
© 2004 HYPEL®
Rejstřík
Rejstřík
-{{
-''
-|-
118, 121
|
---
-!-
+
-#-&&
118
111
-+-
121
#INCLUDE
118
-}-
118
}
!
111
127
118
-<<= <>
118 118
-=-
-(-
=
(
->-
119
120
-)-
>=
)
-A-
119
-**
118
-// //
118 111
-^^
118
© 2004 HYPEL®
118
A/D převodník 133 ADCMODE 134 Adresné zprávy 144 Akustická indikace 137 and 118 Archivace programu 91 Autorepeat 136
-BBIT 112 BITADDR breakpoint
144, 145 105
152
153
HypEd4 - Uživatelská příručka
-C-
-H-
CALIB 134 CASE 123 CLK 130 CLRSEC 132 CONST 114 Časovače 130
Historie 26 Hlavní menu aplikace HOLD 132 HOUR 132
-I-
-DD 144 DAY 132 Debugger 94 Definice symbolů 119 Definování vlastních grafických symbolů Direktivy 127 DISPLAY 121, 137 Displej 137 DNLGrabber 91 Download *.DNL souboru 86
141
I 133 Identifikátory 111 IF 122 IN_BIT 112 IN_WORD 112 Instalace 9 INT 112
-JJednoduché příkazy 120 Jmenné záložky 44 pohyb 44
-E-
-K-
Editace proměnných 89 Editor 12 EELOAD 135 EESAVE 135 EEWR_COUNT 135 ENUM 114, 150
-FFASTADC 133, 134 FORMAT 138 Formát pro tisk znaků 140 Formát pro typ BIT 138 Formát pro typ INTEGER 139 Formát pro typ REAL 139 Formát pro typ WORD 138 Formáty zobrazování číselných hodnot Funkce 124 Funkce ABS 119 Funkce definice 127 Funkce TRUNC 119
13
138
Kalibrace analogových vstupů KBCODE 136 KBDELAY 136 KBREPEAT 136 KBREPEN 136 KBSOUND 137 Klávesnice 136 Komentáře 111 Komunikační konstanty 71 Konečný automat 150 Konstanty 112 Konstanty definice 114 Konstanty typu BIT 113 Konstanty typu INT 113 Konstanty typu REAL 114 Konstanty typu WORD 113
134
-LLC Displej
137 © 2004 HYPEL®
Rejstřík
Loader
154
86
-MM 144 MEMADDR 144, 145 Menu Jdi na záložku 43 Menu Ladění 58, 94 Menu Nástroje 52 Menu Okna 82 Menu Soubor 13 Menu Terminál 103 Menu Úpravy 27 Menu Více záložek 45 Menu Volby 64 Menu Watch 98 Menu Záložky 41 MINUTE 132 Módy funkce analogových vstupů pro měření odporu 134 MONTH 132 MYADDR 144
-NNápověda 82 Nápověda další 6 Nápověda použití 6 Nastavení automatu 88 Nastavení hesla 88 Nastavení přenosové rychlosti 88 Nastavení zámku paměti 88 Nástroje pro vývoj aplikací 83 NetAddr 128 Nově deklarované proměnné 116 Novinky 6
-OO 133 Odesílání zpráv 147 Odstranění programu 10 Okno Časová základna 101 Okno Display 105 Okno Klávesnice 103 Operátory a jejich priorita 118 or 118 © 2004 HYPEL®
-PParametry formální 124 definice 124 Popis komunikace 144 Popis menu 13 Popis příkazů menu 13 POSITION 137 Pozastavení simulace 95 Pragma 128 Princip zobrazování 143 Procedura definice 124 Procedura volání 126 PROCEDURE 124 Procedury 124 Programové struktury 121 Proměnné 114 Proměnné deklarace 115 Proměnné vstupní 115 výstupní ,předdefinované 115 Předání hodnotou 124 odkazem 124 Překladač 84 Příkaz Animovat 60 Příkaz Archivace DNL 57 Příkaz Celá obrazovka 80 Příkaz Časová základna 101 Příkaz Číslování řádek 79 Příkaz Další záložka 48 Příkaz Display 105 Příkaz Dowload 53 Příkaz Klávesnice 103 Příkaz Konec 26 Příkaz Kopírovat 31 Příkaz Krok 61 Příkaz Krok přes 62 Příkaz Loader 68 Příkaz Náhled 21 Příkaz Nahradit 38 Příkaz Najít 35 Příkaz Najít další 37 Příkaz Najít předchozí 37 Příkaz Nastavení 65 Příkaz Nastavení komunikačních konstant Příkaz nastavení proměnné 121 Příkaz Nastavení syntaxe 73 Příkaz Nastavení tiskárny 24
71
155
HypEd4 - Uživatelská příručka
Příkaz Nástrojová lišta Ladění 78 Příkaz Nástrojová lišta Nástroje 77 Příkaz Nástrojová lišta Soubor 75 Příkaz Nástrojová lišta Úpravy 76 Příkaz Notebook mód 74 Příkaz Nový 15 Příkaz Odstranit 33 Příkaz Okno paměti 97 Příkaz Otevřít 16 Příkaz Pouze pro čtení 40 Příkaz Pozastavit program 95 Příkaz Předchozí záložka 49 Příkaz Přejít na 50 Příkaz Překlad + Download 54 Příkaz Překladač 67 Příkaz Přeložit 53 Příkaz Přidat Proměnnou 100 Příkaz Restartovat program 59 Příkaz Setup 54 Příkaz Spustit program 59 Příkaz Status bar 74 Příkaz Tisk 19 Příkaz Ukončit ladění 97 Příkaz Uložit 17 Příkaz Uložit jako 18 Příkaz Verifikace 57 Příkaz Viewer 56, 70 Příkaz Vlož záložku 46 Příkaz Vložit 32 Příkaz Vložit/odstranit breakpoint 63, 105 Příkaz Vybrat vše 34 Příkaz Vyjmout 30 Příkaz Vymaž všechny záložky 50 Příkaz Vzhled stránky 22 Příkaz Watch pohled 99 Příkaz Znovu 30 Příkaz Zpět 28 Příkazy pro jmenné záložky 42 Příprava automatů pro provoz v síti 148 Přiřazení 120
-RREAL 112 Reálný čas 132 RESET 129 RETURN 124 Rychlost A/D převodu
Rychlost systému
130
-SSECOND 132 SENDADDR 144, 145 SENDBIT 144, 146 SENDCODE 144, 146 SENDDATA 144, 146 Setup 88 Simple3 84 Simple3 úvod 108 Simulátor 94 Síťová vrstva 143 Síťové proměnné 144 Sledování proměnných 89 Speciální funkce 128 SPEED 130 Spuštění automatu 89 Stáhnutí programu z automatu Standardní funkce 119 SUBRUTINE 124 Synonyma proměnných 117
91
-TT 130 TDM 130 TEN 130 Terminálové funkce 136 Timer 130 Tipy pro používání sítě 148 Tipy pro užívání SIMPLE 149 TOE 130 TOF 130 TPA 130 Typy proměnných 112
-UUkládání dat do paměti EEPROM Ukončení simulace 97 Upgrade 10 Uzamčení paměti 88
135
133 © 2004 HYPEL®
Rejstřík
-VViewer 89 Volání procedury 121 Volba komunikační rychlosti 148 Výrazy 117 Využívání definice konstant ENUM
-WWEEK WORD
132 112
-Xxor
118
-YYEAR
132
-ZZapnutí časové základny zarážka 105 Zastavení automatu 89 Závorky 119 Zobrazení 121 Zobrazení paměti 97
© 2004 HYPEL®
101
150
156
© 2004 HYPEL®