AMiTsys Expert. Střední průmyslová škola elektrotechnická, Havířov 2007/2008 ŘÍZENÍ KŘIŽOVATKY

Podobné dokumenty
BASPELIN CPM. Popis obsluhy čtyřkanálového prostorového termostatu CPM CCU02

MI Video rozhraní pro vozidla Renault. Přepínání mezi jednotlivými vstupy a ovládání přehrávání

SPÍNACÍ HODINY. Nastavení hodin a předvolby. Obr. 1

ZÁSKOKOVÝ AUTOMAT MODI ZB pro jističe Modeion POPIS K790

OVLÁDACÍ PANEL HÁZENÁ

Regulace klimatizace v laboratoři Viničná

Systém řízení Autoklávu

NÁVOD PRO OBSLUHU UČEBNY NC 517

Návod k obsluze Ovládací jednotka WTC3

BASPELIN CPM EQ21. Popis obsluhy ekvitermního regulátoru CPM EQ21

Systém řízení Autoklávu s PLC AMIT

MI1249. Video rozhraní pro vozidla Citroen C5 a Peugeot 508

Příručka uživatele DÁLKOVÝ OVLADAČ R05/BGE

MI Video rozhraní pro vozidla Rover a Jaguar (od roku 2011)

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

Stručný návod na ovládání a zapojení CCTV Videotelefonu *H1017

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

BASPELIN CPL. Popis obsluhy ekvitermního regulátoru CPL EQ23/EQ24

BASPELIN MRP Popis obsluhy indikační a řídicí jednotky MRP T2

Systém pro indikaci doby taktu - uživatelský a instalační návod

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část Program pro regulaci kaskády čerpadel v závislosti na tlaku SGC3

Řídící systém MS 510 Uživatelský manuál. Regulátor řady MST 510 v aplikaci pro vzduchotechniku UŽIVATELSKÝ MANUÁL

Uživatelská příručka. 06/2018 Technické změny vyhrazeny.

Signalizace a ovládací prvky. Konektory a připojení

2. Rozbalení Laser Interceptor Bluetooth modulu (LI BTM)

NÁVOD K OBSLUZE konfigurační SW CS-484

7 ŘÍZENÍ A MONITOROVÁNÍ STATICKÉ ZDROJOVNY PŘES ETHERNET

Manuál pro ovládání a nastavení regulátoru ERAM spol s.r.o

Pro správnou funkci jednotky je třeba aktivovat lithiovou baterii vytažením plastového pásku na zadní straně ovládacího panelu jednotky. Baterie udržu

Návod na použití portálu 802

Servisní manuál. Řídící systém MS 300. v aplikaci pro vzduchotechniku SERVISNÍ MANUÁL

Aktivace REŽIMU ČASOVÉHO ŘÍZENÍ

Manuál Systém pro řízení výstražných signalizačních světel pro hasiče

Voltmetr pro elektromobil. Technická dokumentace

Popis displeje: (tlačítka a zobrazované symboly)

SPÍNACÍ HODINY. - Topení na výkon - Topení na teplotu - Větrání

Návod pro používání Automaticky Čtených Učebních Pomůcek vytvořených v rámci projektu ARET

Digitální tlačítkové moduly pro DUO systém TD2100MA

Nápověda pro ovládání automaticky čtené učebnice

REGULÁTOR SYMETRIE ZATÍŽENÍ SERP

Jak rychle začít s novým CCTV Videotelefonem *H1027 / *H1028?

Pokojová jednotka RDC

Vizualizace a evidence výroby a prostojů

Průvodce aplikací FS Karta

iloft videotelefon Uživatelský manuál

Návod k obsluze řídící jednotky TSC48-2

FLOW 33 BT Setup. Manuál k užívání nastavovacího softwaru FLOW 33 BT Setup prostřednictvím komunikace Bluetooth.

00:02:51. Utišit bzučák. Potvrzení. Reset. Vyp. zpoždění popl. Obsluha přítomna

Uživatelská příručka

Uživatelská příručka

Návod k obsluze Řídící automat čerpací stanice odpadních vod S-3302

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4

PROGRAMOVATELNÝ TERMOSTAT CT Citherm 6.0 Návod k obsluze

GPS Loc. Uživatelský manuál. webové rozhraní. pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu

Motocyklový alarm s integrovaným pagerem SENTINEL 1100 MOTO. uživatelský manuál

4.1 Binární vstupní modul 07 DI binárních vstupů 24 V DC, galvanicky oddělených po skupinách, CS31 - linie

Bezdrátová komunikační brána (RS485 Gateway)

Ovládací panel pro nastavení a monitorování funkce interního teplotního regulátoru modulu UTI-INV-xx TECHNICKÝ MANUÁL. UTI-ATWD ovládací panel

MI1308 Video rozhraní pro vozidla Volvo s displejem 5

Dotyková obrázovká v prográmu TRIFID

Pro správnou funkci jednotky je třeba aktivovat lithiovou baterii vytažením plastového pásku na pravé horní straně ovládacího panelu jednotky. Baterie

Uživatelská příručka

Ovládání ústředny Visonic přes mobilní telefon

9. Rozšiřující desky Evb_Display a Evb_keyboard

Technické podmínky a návod k použití zdroje NZ23

T850 KVADRÁTOR BAREVNÝ HK-404

2 -drátový systém videovrátných. DPC-D244-K Uživatelský manuál * 0 #

MI Video rozhraní pro vozidla Hyundai a Kia

OBSAH. 1. Bezpečnostní pokyny. 1. Bezpečnostní pokyny Popis produktu Ovládání Instalace a zapojení Technické parametry 14

1.2 Vzhled a rozměry Materiály a rozměry plášť je vyroben z PC (polykarbonát). Rozhraní z tekutých krystalů je vyrobeno z tvrzeného akrylu.

Návod na montáž a údržbu regulátoru ZR11

manuál Manuál Kód + karta samostatný provoz / Wiegand 26 Dokumentace vytvořena dne JM VARIANT plus s.r.o. strana 1

Průvodce programováním AMiNi-E jazykem STL Dipl. Ing. Pavel Votrubec

SV 92 DVR Návod k použití Uživatelská příručka

Klávesnice EKB3. Stručný uživatelský návod k použití. Verze 1.00

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

Vysílací modul ECT-16

Domovní videotelefon PM-473M

Návod k obsluze [CZ] VMS 08 Heineken. Řídící jednotka pro přesné měření spotřeby nápojů. Verze: 1.1 Datum: Vypracoval: Vilímek

2 ZAPOJENÍ, OŽIVENÍ A PROGRAMOVÁNÍ SYSTÉMOVÉ

MI Rozhraní pro vozidla Ford Focus, Edge a Fusion. Montážní příručka

Logické řízení výšky hladiny v nádržích

NÁVOD K MONTÁŽI A OBSLUZE PROSTOROVÉHO PŘÍSTROJE SIEMENS POL

GPS Loc. Uživatelský manuál. mobilní aplikace. pro online přístup do systému GPS Loc pomocí mobilní aplikace

Uživatelský manuál. KNXgal

Instrukce pro montáž, obsluhu a údržbu

Digitální elektroměry MGDIZ

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

Manuál k programu ProBaze SKLAD

T7560A, B DIGITÁLNÍ NÁSTĚNNÝ MODUL PRO EXCEL10 A EXCEL 5000

Klávesnice EKB2. Stručný uživatelský návod k použití. Verze 1.00

PRACOVNÍ NÁVOD. Řídící jednotka průtoku vody HSP4

WILKOP - trade, spol. s r.o., Hlavní 823, Zubří. EKOREG - BXC UŽIVATELSKÝ MANUÁL. Verze 1.1

Návod k instalaci, provozu a údržbě brány MODBUS. Návod k instalaci, provozu a údržbě. Brána Modbus

NASTAVENÍ PROPORCIONÁLNÍO REGULÁTORU

CLIMATIX POL Seznam parametrů

VoiceOver v ios s QWERTY klávesnicí

Ovládání TV platformy a funkce Chytrá TV

Autonomní zámek LOG2

Transkript:

AMiTsys Expert Střední průmyslová škola elektrotechnická, Havířov 2007/2008 ŘÍZENÍ KŘIŽOVATKY Havířov 2008 Ing. Václav Sedlák Vedoucí pedagog Martin Čala Vypracoval

Děkuji firmě AMiT za možnost zúčastnit se soutěže AMiTsys Expert a také za vybavení učebny, ve které tento projekt vznikal. Děkuji také panu Ing. Václavu Sedlákovi za jeho obětavé a odborné vedení. 1

OBSAH 1. Úvod...3 2. Zadání...4 3. Cíle...5 3.1. Projekt řeší...5 3.2. Projekt neřeší...5 4. Metodika...6 4.1. Rozvržení prostředků...6 4.2. Realizace cyklického opakování...6 5. Výsledky...8 5.1. Proměnné...8 5.2. Aliasy proměnných...9 5.3. Procesy...9 5.3.1. Stanice č. 4...10 5.3.2. Stanice č. 5...10 5.4. Obrazovky...11 5.5. Hardwarové nastavení...11 6. Splnění cílů...12 7. Závěr...13 8. Odkazy...14 2

1. Úvod Od školního roku 2005/2006 jsem studentem oboru Automatizační technika na Střední průmyslové škole elektrotechnické v Havířově. V druhém ročníku jsem začal navštěvovat kroužek Automatizace pod vedením učitele Ing. Václava Sedláka a dozvěděl jsem se o Vaší soutěži AMiTsys Expert. Doprava na pozemních komunikacích roste stále větším tempem, a zákonitě musí růst i počet uzlů, např. ve formě křižovatek. Tyto uzly je ale třeba nějakým způsobem ovládat. Proto jsem se rozhodl pro projekt, který bude ovládat křižovatku. 3

2. Zadání Sestavit program pro ovládání křižovatky. Program bude ovládat semafory pro auta a chodce. V obou směrech budou pro dopravní prostředky semafory pro jízdu rovně, doleva a doprava. Pro směr rovně a doleva budou semafory s červeným, oranžovým a zeleným světlem. Směr doprava bude signalizován pouze zeleným světlem. Pro chodce budou ovládány vždy semafory se zelenou a červenou. Křižovatka bude pro zjednodušení symetrická, takže když přijede dopravní prostředek z jakékoli větve křižovatky, bude mít stejné podmínky jako dopravní prostředek přijíždějící z jakéhokoli jiného směru. Křižovatka bude rozlišovat pracovní dny od víkendů. V pracovní dny budou nastávat tři stavy. První z nich bude Noční režim, jehož trvání bude od 22:00 do 6:00 hodin. Druhý bude Normální režim, který bude aktivován od 6:00 do 22:00 hodin, ale od 12:00 do 16:00 hodin bude rozšířen na třetí režim Dopravní špičku. V tomto stavu bude muset chodec zmáčknout tlačítko, aby se mu na semaforu rozsvítila zelená. Jinak bude mít stále červenou. O víkendech nebude stav Dopravní špička aktivní, ostatní bude identické s chováním v pracovní dny. Přihlášený uživatel bude moci měnit provozní parametry a to přímo na stanici pomocí displeje a klávesnice. Přihlašovací údaje budou nastaveny v programu. 4

3. Cíle Budu se snažit udělat takovou křižovatku, která bude částečně modifikovatelná uživatelem, čímž se zvýší její flexibilita. Obrazovky budu tvořit tak, aby jejich ovládání bylo pro obsluhu intuitivní a přehledné. Chtěl bych také minimalizovat potřebné finanční náklady na realizaci tohoto projektu. Tvořit budu s ohledem na jednoduchost a účelnost. 3.1. Projekt řeší Tento projekt řeší pouze vytvoření programu a realizaci propojení řídících systémů k zajištění jejich správné komunikace. 3.2. Projekt neřeší Projekt neřeší fyzické zapojení vstupů a výstupů. Dále v něm není uvažována žádná kabeláž ani stavební úpravy a zásahy potřebné pro realizaci. 5

4. Metodika Ve škole mám k dispozici řídící systém AMiNi2D firmy AMiT. Je to kompaktní řídící systém s displejem a klávesnicí s osmi tlačítky. 4.1. Rozvržení prostředků Nejprve jsem si rozvrhnul rozestavení semaforů (příloha č. 1). Zjistil jsem, že v každé větvi křižovatky bude potřeba sedm digitálních výstupů pro auta po třech pro směr rovně a doleva a jeden výstup pro směr doprava. U chodců jsou to dva výstupy na každou větev. Pro jeden směr je tedy potřeba celkem 9 výstupů, celkem je to tedy 36 digitálních výstupů. Protilehlé větve křižovatky budou ale ovládány symetricky, takže se počet výstupů omezí na polovinu, tedy 18. Tolik výstupů na řídícím systému ale není, dospěl jsem tedy k závěru, že budu muset počet digitálních výstupů zvětšit spojením více řídících systémů. Nechtěl jsem totiž používat žádný externí obvod chovající se jako dekodér, kterým by se tato situace dala řešit. K pokrytí všech výstupů by bylo třeba třech stanic, protože AMiNi2D má 8 digitálních výstupů. Já si ale vystačím pouze s dvěma stanicemi. Na každé z nich využiji 8 digitálních výstupů a zbývající jeden zobrazím pomocí na analogového výstupu, jehož hodnoty napětí v log. 0 a log. 1 budou externě upraveny na hodnoty stejné jako mají výstupy digitální, tj. od 0 do 24 V. Tato možnost bude finančně úspornější oproti použití třech stanic. Posílání dat do druhé stanice jsem zařídil pomocí linky RS485. Oproti Ethernetu je jednodušší v aplikaci i samotném nastavení, a k danému účelu mi poslouží přibližně stejně. Takto budu posílat proměnné z hlavní stanice do druhé, která bude hodnoty zobrazovat na fyzických výstupech. Hlavní stanice bude přijímat veškeré vstupy (i z obrazovek) a bude v ní celý řídící algoritmus. K propojení obou stanic jsem použil kroucenou dvojlinku, třetí vodič jsem nezapojoval. Není to sice úplně správné řešení, ale propojení jsem zkoušel v laboratorních podmínkách, kde je riziko rušení malé. Komunikace při testu fungovala. 4.2. Realizace cyklického opakování Když jsem se rozhodoval, jak realizovat přechod z jednoho stavu křižovatky do druhého a zařídit tak cyklické opakování, nejdříve mě napadlo klasické řešení pomocí čítače, který by postupně inkrementoval vnitřní hodnotu a na výstupu by se podle ní zobrazovala určitá kombinace rozsvícených nebo zhasnutých světel na semaforech. Po uplynutí všech cyklů by se výstup resetoval na nulu a čítání by probíhalo od začátku. 6

Já jsem ale chtěl mít možnost měnit délky průběhu jednotlivých stavů bez nutnosti zásahu do programu, takže jsem byl nucen tuto metodu opustit. Nakonec jsem nalezl jiný způsob, ve kterém využiji zpožďovací modul TON. Ten zpozdí vstupní signál IN o čas trvání celé periody křižovatky (signál PT). Z tohoto modulu použiji výstup ET, ve kterém je ukládán průběžný čas od začátku zpožďování vstupního signálu, a jeho hodnotu budu porovnávat s nastavenými konstantami. Podle toho budou nastavovány hodnoty na výstupu. V okamžiku zobrazení log. 1 na výstupu Q bude hodnota na vstupu resetována a čítání bude probíhat znovu od začátku. Bude ale nutné splnit podmínku, aby součet jednotlivých časových konstant byl roven délce celé jedné periody, jinak by se program choval nepředvídatelně. Podmínka bude hlídána v programu. Hodnoty jednotlivých konstant bude moci měnit uživatel na obrazovkách po platném přihlášení. Rozsvěcování jednotlivých semaforů jsem navrhnul tak, aby se při dodržení světelné signalizace nemohly střetnout auta ani chodci jedoucí nebo jdoucí různými směry. Podrobné rozkreslení všech stavů jednotlivých semaforů je v příloze č. 2. 7

5. Výsledky 5.1. Proměnné Výpis proměnných je v příloze č. 3. DI0 proměnná pro uchování veškerých fyzických vstupů na ŘS, do které jsou ukládány bitové informace zapnutí a vypnutí křižovatky a také tlačítka chodců, DO00 uchování hodnot pro rozsvěcování světel semaforů na hlavní větvi křižovatky (stanice 4), DO10 uchování hodnot pro rozsvěcování světel semaforů na vedlejší větvi křižovatky (uchována ve stanici 5), A1Z rozšíření proměnné DO00 o devátý bit hodnota je analogová, A2Z obdoba proměnné A1Z pro proměnnou DO10, je umístěna ve stanici 5, stav uchování informace o režimu křižovatky (rozlišení normálního stavu, dopravní špičky a nočního režimu) a rozlišení všedních dnů od víkendových, stavx obdoba proměnné stav, ve které jsou hodnoty upraveny pro obrazovky, tk1 úložiště hodnot časových konstant pro stav noční režim, tk2 obdoba proměnné tk1 pro normální režim a dopravní špičku, prubeh1 průbežný čas od začátku jedné periody v nočním režimu, prubeh2 průběžný čas od začátku jedné periody v normálním režimu a dopravní špičce, komb1 proměnná, používaná v nočním režimu, určující jednotlivý stav křižovatky, podle kterého se rozsvěcují požadované světla na semaforech, komb21 obdoba proměnné komb1 pro normální stav a dopravní špičku, komb22 rozšíření 16 bitů z proměnné komb21 na 20, ch_tl uložení informace o zmáčknutí tlačítek pro chodce po celou dobu trvání jedné periody, ve stavu noční režim není používaná, cas uložení času ve stanici, používán je formát DB-Net, cas_hodn aktuální čas rozdělený do položek, podle kterých je určován režim křižovatky, cas_zmena signalizace změny času, prihlasen proměnná používaná pouze v rámci obrazovek, signalizuje zda je uživatel přihlášen nebo ne, 8

5.2. Aliasy proměnných Seznam aliasů proměnných lze nalézt v příloze č. 4. @zapnout bit, kterým se zapne běh křižovatky, @vypnout bit, kterým se vypne běh křižovatky, @A1RZ zelené světlo v hlavním směru pro auta rovně, @A1RO oranžové světlo v hlavním směru pro auta rovně, @A1RC červené světlo v hlavním směru pro auta rovně, @A1LZ zelené světlo v hlavním směru pro auta doleva, @A1LO oranžové světlo v hlavním směru pro auta doleva, @A1LC červené světlo v hlavním směru pro auta doleva, @Ch1Z červené světlo v hlavním směru pro chodce, @Ch1C zelené světlo v hlavním směru pro chodce, @A2RZ zelené světlo ve vedlejším směru pro auta rovně, @A2RO oranžové světlo ve vedlejším směru pro auta rovně, @A2RC červené světlo ve vedlejším směru pro auta rovně, @A2LZ zelené světlo ve vedlejším směru pro auta doleva, @A2LO oranžové světlo ve vedlejším směru pro auta doleva, @A2LC červené světlo ve vedlejším směru pro auta doleva, @Ch2Z červené světlo ve vedlejším směru pro chodce, @Ch2C zelené světlo ve vedlejším směru pro chodce, @beh signalizace běhu křižovatky, @Ch1Tl tlačítko pro chodce v hlavním směru, @Ch2Tl tlačítko pro chodce ve vedlejším směru, @znovu1 bit pro resetování náběhu jedné periody pro noční režim, @znovu2 bit pro resetování náběhu jedné periody pro normální režim a dopravní špičku. 5.3. Procesy Zdrojové kódy procesů jsou v příloze č. 5. 9

5.3.1. Stanice č. 4 proces0 Definice vazeb na analogové vstupy a digitální vstupy a výstupy. proces1 V tomto procesu je realizováno zapnutí a vypnutí běhu křižovatky. Dále je zde podle konkrétního stavu pomocí modulu TON navyšována hodnota proměnné prubeh1 nebo prubeh2 a tato hodnota je dále zpracována v procesu proces2. Překročení povolené délky periody je zde ošetřeno pomocí aliasu @znovu1 resp. @znovu2, který modul při překročení hodnoty prvku proměnné tk1[0,0] resp. tk2[0,0] TON vynuluje a náběh probíhá opět od začátku. Proces také řeší vstupy z tlačítek chodců, kde alias @Ch1Tl resp. @Ch2Tl je vstup z tlačítek. Při zmáčknutí tlačítka klopný obvod RS aktivuje výstup (0., resp. 1. bit proměnné ch_tl ) nutný pro zapamatování. Pomocí 5. a 6. bitů proměnné ch_tl lze výstup RS klopného obvodu deaktivovat. proces2 Tento proces je nejobsáhlejší. Nejdříve jsou v něm sečteny dílčí časy pro jednotlivé stavy v hlavní, podle kterého je řízena délka celé jedné periody. Poté je zpracován čas ve stanici do položek reprezentujících jednotlivé údaje. Podle jedné z nich dne v týdnu je určeno, zda se jedná o všední den či o víkend. Pak je podle aktuální hodiny určen jeden ze tří stavů, které mohou nastat. O víkendech jsou pouze dva (bez dopravní špičky). Podle stavu jsou nastaveny hodnoty proměnné stav. Je nastavována také hodnota proměnné stavx kvůli zobrazení aktivního stavu i na obrazovkách. Podle stavu a aktuálního času jsou nastaveny proměnné komb1 resp. komb21 ( komb22 ). Nakonec je těmto stavům přiřazena odpovídající kombinace výstupů. Nakonec je ještě upravena signalizace při stavu dopravní špička, kdy si musí chodec zmáčknout tlačítko, aby mohl přejít na zelenou. proces3 Proces pro zajištění vazby s obrazovkami. 5.3.2. Stanice č. 5 proces0 Vazba na digitální a analogové výstupy. 10

proces1 Obdoba procesu proces3 ve stanici č. 4 pro zajištění vazby na obrazovky. 5.4. Obrazovky Soupis obrazovek a jejich náhled je ke zhlédnutí příloze č. 6. Úvodní obrazovka zobrazuje informace o dni v týdnu, stavu křižovatky (noční režim, normální režim a dopravní špička) a aktuálním času na stanici, podle kterého se stavy určují. Na další obrazovce je dialog pro přihlášení uživatele. Nadefinoval jsem 3 uživatele, každý má své uživatelské jméno, heslo a skupinu: Martin (heslo 9008) můj testovací účet, AMiT (6592) tento účet může používat skupina vývojářů, DP (3920) účet pro dopravní podnik, který může křižovatku používat. Uživatelské skupiny zde nemají velký význam, mají totiž stejná oprávnění. Po platném přihlášení je uživateli zpřístupněna další sada obrazovek, ve kterých může nastavovat časové konstanty nebo odhlásit se. Mezi obrazovkami se pohybuje pomocí tlačítek doleva a doprava. Na stanici č. 5 je pouze jedna obrazovka, která odkazuje uživatele ke stanici č. 4. 5.5. Hardwarové nastavení Pro komunikaci přes rozhraní RS485 je nutné jej správně zapojit. Stačí vzájemně spojit kroucenými stíněnými vodiči vývody A a B na stanicích. Spojení vývodů GND není nutné, ale doporučuje se. Vhodné je pro spojení použít stínění kabelu a omezit tak potenciální rušení. Proti odrazům signálů ve vedení se musí zapojit zakončovací odpory a definice klidových stavů. Takto je už ale AMiNi2D zapojeno z výroby, takže není třeba jej měnit. Pro aktivaci rozhraní RS485 je nutné nadefinovat DIP přepínače pro softwarovou konfiguraci. Nutné je nastavit pro obě stanice stejnou přenosovou rychlost (přepínače 6 a 7) a po nahrání programů do obou stanic nastavit přepínačům 8 hodnotu zapnuto (tento bit přepíná mezi rozhraním RS232 a RS485). Přepínače 1 až 5 určují binárně číslo stanice, na první (hlavní) je to číslo 4, na druhé číslo 5. Po změně nastavení přepínačů je nutné resetovat napájení, aby se projevily provedené změny. Poté už může být zahájen provoz. Nastavovat lze i jiné přepínače, ale ty přímo nesouvisí s nastavením komunikace. 11

6. Splnění cílů Podařilo se mi vytvořit program, který bude daný problém ovládat. Domnívám se, že po ekonomické stránce je můj projekt poměrně úsporný. Mohl by být ale ještě levnější, kdybych místo dvou stanic použil rozšiřující moduly pro digitální výstupy, ale realizace komunikace pro mně byla zajímavou zkušeností, kterou budu moci v budoucnu dobře využít. Kvůli malému počtu řádků na displeji jsem v obrazovkách pro nastavení časových konstant pro normální režim a dopravní špičku odstranil kontrastní horní pásek s nadpisem. Namísto něj jsem umístil do pravého dolního rohu označení obrazovek skládající se z písmene a čísla, které by mělo pásek nahradit a pomoci tak identifikovat konkrétní obrazovku obsluze. 12

7. Závěr Tvorba tohoto projektu pro mne byla novou a zajímavou zkušeností. Mnou provedený projekt by našel asi jen malé využití, protože je navrhnut pro jeden konkrétní typ křižovatky. Program by ale šlo modifikovat na více typů křižovatek při zachování stejného principu. Nové dovednosti, které jsem si osvojil, jistě využiji v dalším studiu a budu se je snažit dále rozšiřovat. 13

8. Odkazy www.amit.cz technická podpora projektantská příručka firmy AMiT manuál k ŘS AMiNi2D 14

Příloha č. 1 - Rozmístění jednotlivých semaforů Z Č Č Z Z Z Z Z Z Č O O Č Č Č Z Č O Z Z O Č Č O Z Z O Č Z Č Č Č O O Č Z Z Z Z Z Svisle - hlavní směr Vodorovně - vedlejší směr Z Č Č Z

Příloha č. 2 - Stavy 1. Normální provoz 2. Dopravní špička - chodec si musí zmáčknout tlačítko, aby mohl přejít, jinak má červenou 3. Noční režim - chodci mají semafory vypnuté, autům bliká oranžová. Normální provoz Hlavní směr Vedlejší směr Vlevo Rovně Vpravo Pěší Vlevo Rovně Vpravo Pěší Č O Z Č O Z Z Č Z Č O Z Č O Z Z Č Z 1 1 1 1 1 1 Dopravní špička Hlavní směr Vedlejší směr Vlevo Rovně Vpravo Pěší Vlevo Rovně Vpravo Pěší Č O Z Č O Z Z Č Z Č O Z Č O Z Z Č Z 1 1 1 1 1 1

Noční režim Hlavní směr Vedlejší směr Vlevo Rovně Vpravo Pěší Vlevo Rovně Vpravo Pěší Č O Z Č O Z Z Č Z Č O Z Č O Z Z Č Z 1 1 1 1

Příloha č. 3 - Seznam proměnných Hlavní stanice Jméno WID Typ Stanice Komentář DI0 4000 dbtint 4 hlavni zap/vyp + tlacitka chodci DO00 4001 dbtint 4 hl. smer semafory auta stavx 4002 dbtintmtx 4 prom. `stav` pro obrazovky prihlasen 4003 dbtint 4 prihlasen-prihlaseni na obrazovce tk1 4005 dbtlongmtx 4 cas. konst. nocni rezim tk2 4006 dbtlongmtx 4 cas. konst. normal+dopr. spicka cas 4007 dbtlong 4 aktualni cas na stanici cas_hodn 4008 dbtintmtx 4 cas v jednotlivych polozkach cas_zmena 4009 dbtint 4 indikace zmeny nejake polozky ch_tl 4010 dbtint 4 tl. chodci + stav kriz. stav 4011 dbtint 4 konkretni stav prubeh1 4012 dbtlong 4 prubezny cas nocni rezim komb1 4013 dbtint 4 kombinace vystupu nocni rezim komb21 4014 dbtint 4 vystupy norm. stav+spicka #1 komb22 4015 dbtint 4 vystupy norm. stav+spicka #2 A1Z 4016 dbtfloat 4 auta zelena doprava hl. smer prubeh2 4018 dbtlong 4 prubezny cas norm+dopr. spicka DO10 5001 dbtint 5 vedl. smer semafory auta A2Z 5002 dbtfloat 5 auta zelena doprava vedl. smer Vedlejší stanice Jméno WID Typ Stanice Komentář DO10 5001 dbtint 5 semafory auta hl. smer+doleva, chodci A2Z 5002 dbtfloat 5 auta doprava vedl. smer

Příloha č. 4 - Seznam aliasů Hlavní stanice Alias Proměnná Komentář @zapnout DI0.2 zapnuti krizovatky @vypnout DI0.3 vypnuti krizovatky @A1RZ DO00.0 1 auta rovne zelena @A1RO DO00.1 1 auta rovne oranzova @A1RC DO00.2 1 auta rovne cervena @A1LZ DO00.3 1 auta leva zelena @A1LO DO00.4 1 auta leva oranzova @A1LC DO00.5 1 auta leva cervena @Ch1Z DO00.6 1 chodci zelena @Ch1C DO00.7 1 chodci cervena @A2RZ DO10.0 2 auta rovne zelena @A2RO DO10.1 2 auta rovne oranzova @A2RC DO10.2 2 auta rovne cervena @A2LZ DO10.3 2 auta leva zelena @A2LO DO10.4 2 auta leva oranzova @A2LC DO10.5 2 auta leva cervena @Ch2Z DO10.6 2 chodci zelena @Ch2C DO10.7 2 chodci cervena @beh ch_tl.2 indikace behu krizovatky @Ch1Tl DI0.0 1 chodci tlacitko @Ch2Tl DI0.1 2 chodci tlacitko @znovu1 ch_tl.3 reset nabehu nocni rezim @znovu2 ch_tl.4 reset nabehu norm.+dopr. spicka Vedlejší stanice Ve vedlejší stanici nejsou použity žádné aliasy proměnných.

Příloha č. 5 - Seznam procesů Hlavní stanice Proces Typ Perioda Ofs/Hrana Komentář proces0 Pse 100 0 definice I/O promennych proces1 RS 100 0 hlavni vypinac + tlacitka chodci proces2 Pse 200 0 nastaveni vystupu podle stavu proces3 Pse 1000 0 vazba na obrazovky proces0 // vazba na digitalni vstup (tl. chodci, hl. vyp.) DigIn #0, DI0, 0x0000 // vazba na digitalni vystup (hl. smer) DigOut DO00, #0, 0x0000 // nahrazka dig. vystupu (hl. smer) AnOut #0.0, A1Z, 10.000, 0.000, 10.000, 0.000, 10.000 proces1

proces2 // soucet celkoveho casu pro 1 periodu (nocni rezim) let tk1[0,0] = tk1[1,0]+tk1[2,0] // soucet celk. casu pro 1 periodu (dopr. spicka + normal. provoz) let tk2[0,0] = tk2[1,0]+tk2[2,0]+tk2[3,0]+tk2[4,0]+tk2[5,0]+tk2[6,0]+tk2[7,0]+tk2[8,0]+tk2[9,0]+t k2[10,0] let tk2[0,0] = tk2[0,0]+tk2[11,0]+tk2[12,0]+tk2[13,0]+tk2[14,0]+tk2[15,0]+tk2[16,0]+tk2[17,0]+tk2 [18,0]+tk2[19,0]+tk2[20,0] // zpracovani casu do polozek gettime cas, cas_hodn, cas_zmena // NASTAVENI PRAC. STAVU PODLE DNE V TYDNU A HODINY // stav.3 urcuje pracovni den let stav.3 = if((cas_hodn[6,0]==0)or or(cas_hodn[6,0]==6), false, true) if stav.3, :NONE // pracovni dny (stavx[y,z] je pro obrazovky) // dopravni spicka let stavx[0,0] = if((cas_hodn[2,0]>=12)and and(cas_hodn[2,0]<=15), 1, 0) // nocni rezim let stavx[1,0] = if((cas_hodn[2,0]>5)and and(cas_hodn[2,0]<22), 0, 1) // normalni provoz let stavx[2,0] = if(stavx[1,0]==1, 0, 1) // nocni rezim let stav.0 = if((cas_hodn[2,0]>5)and and(cas_hodn[2,0]<22), false, true) // dopravni spicka let stav.1 = if((cas_hodn[2,0]>=12)and and(cas_hodn[2,0]<=15), true, false) // normalni provoz let stav.2 = if(stav.0==false false, true, false) else :NONE // soboty a nedele (pouze nocni rezim a normalni provoz) // dopravni spicka let stavx[0,0] = 0 // nocni rezim let stavx[1,0] = if((cas_hodn[2,0]>5)and and(cas_hodn[2,0]<22), 0, 1) // normalni provoz let stavx[2,0] = if(stavx[1,0]==1, 0, 1) // nocni rezim let stav.0 = if((cas_hodn[2,0]>5)and and(cas_hodn[2,0]<22), false, true) // dopravni spicka let stav.1 = false // normalni provoz let stav.2 = if(stav.0==false false, true, false) // NASTAVOVANI JEDNOTLIVYCH STAVU ------------------------------------------- if stav.0, :NONE // nocni rezim Let komb1.0 = if((prubeh1<=tk1[1,0])and and(prubeh1>0), true, false) Let komb1.1 = if((prubeh1<=tk1[2,0])and and(prubeh1>tk1[1,0]), true, false) // zkontrolovat, zda bude fungovat u obou if stav.2, :NONE // normalni provoz a dopravni spicka Let komb21.0 = if((prubeh2<=tk2[1,0])and and(prubeh2>0), true, false) Let komb21.1 = if((prubeh2<=tk2[2,0])and and(prubeh2>tk2[1,0]), true, false) Let komb21.2 = if((prubeh2<=tk2[3,0])and and(prubeh2>tk2[2,0]), true, false) Let komb21.3 = if((prubeh2<=tk2[4,0])and and(prubeh2>tk2[3,0]), true, false) Let komb21.4 = if((prubeh2<=tk2[5,0])and and(prubeh2>tk2[4,0]), true, false) Let komb21.5 = if((prubeh2<=tk2[6,0])and and(prubeh2>tk2[5,0]), true, false) Let komb21.6 = if((prubeh2<=tk2[7,0])and and(prubeh2>tk2[6,0]), true, false) Let komb21.7 = if((prubeh2<=tk2[8,0])and and(prubeh2>tk2[7,0]), true, false) Let komb21.8 = if((prubeh2<=tk2[9,0])and and(prubeh2>tk2[8,0]), true, false) Let komb21.9 = if((prubeh2<=tk2[10,0])and and(prubeh2>tk2[9,0]), true, false) Let komb21.10 = if((prubeh2<=tk2[11,0])and and(prubeh2>tk2[10,0]), true, false) Let komb21.11 = if((prubeh2<=tk2[12,0])and and(prubeh2>tk2[11,0]), true, false) Let komb21.12 = if((prubeh2<=tk2[13,0])and and(prubeh2>tk2[12,0]), true, false) Let komb21.13 = if((prubeh2<=tk2[14,0])and and(prubeh2>tk2[13,0]), true, false)

Let komb21.14 = if((prubeh2<=tk2[15,0])and and(prubeh2>tk2[14,0]), true, false) Let komb21.15 = if((prubeh2<=tk2[16,0])and and(prubeh2>tk2[15,0]), true, false) Let komb22.0 = if((prubeh2<=tk2[17,0])and and(prubeh2>tk2[16,0]), true, false) Let komb22.1 = if((prubeh2<=tk2[18,0])and and(prubeh2>tk2[17,0]), true, false) Let komb22.2 = if((prubeh2<=tk2[19,0])and and(prubeh2>tk2[18,0]), true, false) Let komb22.3 = if((prubeh2<=tk2[20,0])and and(prubeh2>tk2[19,0]), true, false) // SAMOTNE ROZSVECOVANI SEMAFORU // rozsviceni semaforu nocni rezim if komb1.0, :NONE let @A1RC = false let @A1RO = true let @A1RZ = false let @A1LC = false let @A1LO = true let @A1LZ = false let @Ch1C = false let @Ch1Z = false let A1Z = 0.0 let @A2RC = false let @A2RO = true let @A2RZ = false let @A2LC = false let @A2LO = true let @A2LZ = false let @Ch2C = false let @Ch2Z = false let A2Z = 0.0 if komb1.1, :NONE let @A1RO = false let @A1LO = false let @A2RO = false let @A2LO = false // rozsviceni semaforu normalni provoz + dopravni spicka if stav.2, :NONE if komb21.0, :NONE let @A1RC = true let @A1RO = false let @A1RZ = false let @A1LC = true let @A1LO = false let @A1LZ = false let @Ch1C = true let @Ch1Z = false let A1Z = 0.0 let @A2RC = true let @A2RO = false let @A2RZ = false let @A2LC = true let @A2LO = false let @A2LZ = false let @Ch2C = true let @Ch2Z = false let A2Z = 0.0 if komb21.1, :NONE let @A1RO = true let @Ch2C = false let @Ch2Z = true if komb21.2, :NONE let @A1RC = false let @A1RO = false let @A1RZ = true if komb21.3, :NONE let @Ch2C = true

let @Ch2Z = false if komb21.4, :NONE let A1Z = 10.0 if komb21.5, :NONE let @A1RO = true let @A1RZ = false let A1Z = 0.0 if komb21.6, :NONE let @A1RC = true let @A1RO = false if komb21.7, :NONE let @A1LO = true if komb21.8, :NONE let @A1LC = false let @A1LO = false let @A1LZ = true if komb21.9, :NONE let @A1LO = true let @A1LZ = false if komb21.10, :NONE let @A1LC = true let @A1LO = false if komb21.11, :NONE let @Ch1C = false let @Ch1Z = true let @A2RO = true if komb21.12, :NONE let @A2RC = false let @A2RO = false let @A2RZ = true if komb21.13, :NONE let @Ch1C = true let @Ch1Z = false if komb21.14, :NONE let A2Z = 10.0 if komb21.15, :NONE let @A2RO = true let @A2RZ = false let A2Z = 0.0 if komb22.0, :NONE let @A2RC = true let @A2RO = false if komb22.1, :NONE let @A2LO = true if komb22.2, :NONE let @A2LC = false let @A2LO = false let @A2LZ = true if komb22.3, :NONE let @A2LO = true let @A2LZ = false // reset tlacitek chodci let ch_tl.5 = true let ch_tl.6 = true // uprava semaforu pro chodce pri zmacknuti tlacitka // je-li aktivni stav `dopravni spicka`

if stav.1, :NONE // tl. hlavni smer if ch_tl.0, :NONE else :NONE // neni zmacknute let @Ch1C = true let @Ch1Z = false // tl. vedlejsi smer if ch_tl.1, :NONE else :NONE // neni zmacknute let @Ch2C = true let @Ch2Z = false proces3 Lcw3Idle NONE Vedlejší stanice Proces Typ Perioda Ofs/Hrana Komentář proces0 Pse 100 0 vazba na vystupy proces1 Pse 1000 0 vazba na obrazovky proces0 // semafory auta rovne, doleva vedl. smer + chodci DigOut DO10, #0, 0x0000 // semafor zelena auta doprava AnOut #0.0, A2Z, 10.000, 0.000, 10.000, 0.000, 10.000 proces1 Lcw3Idle NONE

Příloha č. 6 - Seznam obrazovek Hlavní stanice Obrazovka Počet prvků Komentář Screen1 17 uvodni informace (stav, den, cas) Screen2 4 prihlaseni uzivatele Screen3 11 editace cas. konst. nocni rezim Screen4 12 editace cas. konst. normal.+dopr. spicka #1 Screen5 12 editace cas. konst. normal.+dopr. spicka #2 Screen6 10 editace cas. konst. normal.+dopr. spicka #3 Screen7 6 odhlaseni uzivatele Screen1 event Screen1_OnOpen() Screen1.FocusFirstControl(); // labely 5 (nocni), 6 (normalni), 7 (dopr. spicka) Label5.Visible = false; Label6.Visible = false; Label7.Visible = false; if(stavx[0,0] == 1) then Label7.Visible = true; ; if(stavx[1,0] == 1) then Label5.Visible = true; ; if(stavx[2,0] == 1) then Label6.Visible = true; ; // dny v týdnu (Label8..Label14) Label8.Visible = false; Label9.Visible = false; Label10.Visible = false; Label11.Visible = false; Label12.Visible = false; Label13.Visible = false; Label14.Visible = false; if(cas_hodn[6,0] == 1) then // pondeli Label8.Visible = true; else if(cas_hodn[6,0] == 2) then // utery Label9.Visible = true; else if(cas_hodn[6,0] == 3) then // streda Label10.Visible = true; else if(cas_hodn[6,0] == 4) then // ctvrtek Label11.Visible = true; else if(cas_hodn[6,0] == 5) then // patek Label12.Visible = true; else

if(cas_hodn[6,0] == 6) then // sobota Label13.Visible = true; else // nedele Label14.Visible = true; ; ; ; ; ; ; // tl. doleva event Key1_OnKeyPress() if(prihlasen.0 == true) then Screen7.Show(); else // prihlaseni Screen2.Show(); ; // tl. doprava event Key2_OnKeyPress() if(prihlasen.0 == true) then Screen3.Show(); else // prihlaseni Screen2.Show(); ; Screen2 event Screen2_OnOpen() Screen2.FocusFirstControl(); // muze delat problemy prihlasen.0 = false; // zadal-li spravne uziv. jm. a heslo, je prihlasen event Login1_OnAccessGrant() prihlasen.0 = true; Screen3.Show(); // tl. doleva event Key1_OnKeyPress() Screen1.Show(); // tl. doprava event Key2_OnKeyPress() if(prihlasen.0 == true) then // mozna ani nemusi byt Screen3.Show(); else Screen1.Show(); ;

Screen3 event Screen3_OnOpen() Screen3.FocusFirstControl(); // tl. doleva event Key1_OnKeyPress() Screen1.Show(); // tl. doprava event Key2_OnKeyPress() Screen4.Show(); // tl. dolu event Key3_OnKeyPress() Screen3.NextFocus(); Screen4 event Screen4_OnOpen() Screen4.FocusFirstControl(); // tl. doleva event Key1_OnKeyPress() Screen3.Show(); // tl. doprava event Key2_OnKeyPress() Screen5.Show(); // tl. dolu event Key3_OnKeyPress() Screen4.NextFocus(); Screen5 event Screen5_OnOpen() Screen5.FocusFirstControl(); // tl. doleva event Key1_OnKeyPress() Screen4.Show();

// tl. doprava event Key2_OnKeyPress() Screen6.Show(); // tl. dolu event Key3_OnKeyPress() Screen5.NextFocus(); Screen6 event Screen6_OnOpen() Screen6.FocusFirstControl(); // tl. doleva event Key1_OnKeyPress() Screen5.Show(); // tl. doprava event Key2_OnKeyPress() Screen7.Show(); // tl. dolu event Key3_OnKeyPress() Screen6.NextFocus(); Screen7 event Screen7_OnOpen() Screen7.FocusFirstControl(); // tl. doleva event Key1_OnKeyPress() Screen6.Show(); // tl. doprava event Key2_OnKeyPress() Screen1.Show(); // odhlaseni event Key3_OnKeyPress() prihlasen.0 = false; Screen1.Show();

Vedlejší stanice Obrazovka Počet prvků Komentář Screen1 3 odkazani na druhou stanici Screen1 event Screen1_OnOpen() Screen1.FocusFirstControl();

Řízení křižovatky Návod k obsluze Martin Čala

Ovládací panel Ovládací panel (obr. 1) je umístěn na čelní straně AMiNi2D. Je překryt průhledným plastovým dvířkem, které umožňuje vidět hodnoty na displeji, ale pro ovládání tlačítek je nutné kryt odklopit. Obr. 1 pohled na displej s klávesnicí AMiNi2D Hlavní stanice (stanice č. 4) Obr. 2 úvodní obrazovka na první stanici Na hlavní obrazovce (obr. 2) lze vidět stav, ve kterém se křižovatka nachází. Ten je zobrazen na druhém řádku. Na dalším řádku je den v týdnu, který je závislý na času ve stanici. Na obrazovce není chyba, jednotlivé položky jsou totiž navrstveny na sobě a přebývající písmeno k je ze dne čtvrtek. Na posledním řádku je zobrazen čas, který je také závislý na interním času stanice. Položka Stav a Den se změní pouze při opětovném zobrazení této obrazovky. Může se tedy stát, že budou tyto informace zobrazeny nesprávně, ale při přechodu na jinou obrazovku a návratu zpět se už zobrazí správné údaje. Přihlášení Obr. 3 přihlašovací dialog 1

Přihlašovací formulář je na další obrazovce (obr. 3). Šipkami nahoru a dolů se v položce Jméno mění jeden ze tří nastavených uživatelů (Martin, AMiT nebo DP). Po vybrání se tlačítkem Enter přenese kurzor na položku Heslo. Nastavení čtyřmístného hesla se provádí po jednotlivých cifrách. Po zadání údajů se stiskne opět tlačítko Enter. Při správnosti zadaných údajů je uživatel přihlášen a je mu zpřístupněna sekce s nastavováním časových konstant. Obr. 4 nastavování časových konstant pro noční režim Po přihlášení je aktivní další obrazovka, ve které se nastavují časové konstanty pro noční režim (obr. 4). Tlačítkem dolů se posouvá aktivní prvek, na kterém je možné měnit hodnotu určité konstanty. Nastavování číselných hodnot se opět provádí postupně po jednotlivých cifrách. Celkový čas (položka Celkem ) se po nastavení dílčích časů přepočítá automaticky. Tato obrazovka má označení A1, které v následujících obrazovkách nahrazuje horní kontrastní pásek a zlepšuje tak přehlednost. Obr. 5-7 nastavování časových konstant pro normální stav a dopravní špičku Obrazovky pro nastavování ostatních časových konstant (obr. 5-7) jsou velice podobné té předcházející. Pořadí prvků jde po sloupcích, při stisku tlačítka dolů je aktivován následující prvek. Protože je hodnot pro nastavení 20, byly rozloženy celkem na 3 obrazovky. 2

Na té poslední (obr. 7) je i celkový čas trvání periody, který se přepočítává opět automaticky. Orientaci mezi obrazovkami usnadňuje označení v pravém dolním rohu (B1 - B3). Obr. 8 odhlášení uživatele Při přechodu na poslední obrazovku se objeví obrazovka, na které je možné uživatele odhlásit. Po odhlášení je přepnuto na první obrazovku se zobrazením stavu křižovatky. Pak je uživateli povolen přístup pouze k prvním dvěma obrazovkám. Vedlejší stanice (stanice č. 5) Obr. 9 vedlejší stanice Druhá stanice má pouze jednu obrazovku (obr. 9), která nemá žádný vliv na funkčnost procesu. Pouze odvolává uživatele k displeji hlavní stanice. 3