ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka ˇ´ıdic´ı techniky Katedra r
´ PRACE ´ DIPLOMOVA Model ˇ zeleznice
Praha, 2004
Duˇ san Havl´ık
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem zadanou diplomovou pr´aci zpracoval samostatnˇe s pˇrispˇen´ım vedouc´ıho diplomov´e pr´ace a pouˇz´ıval jsem pouze literaturu v pr´aci uvedenou. Prohlaˇsuji, ˇze nem´am n´amitek proti vyuˇzit´ı v´ ysledk˚ u t´eto pr´ace fakultou ani proti zveˇrejˇ nov´an´ı nebo p˚ ujˇcov´an´ı se souhlasem vedouc´ıho diplomov´e pr´ace.
II
Podˇ ekov´ an´ı Dˇekuji sv´e vedouc´ı diplomov´e pr´ace Ing. Martinˇe Sv´adov´e za veden´ı diplomov´e ˇ pr´ace a za cenn´e rady pˇri jej´ı realizaci. D´ale dˇekuji Ing. Radku Sindel´ aˇrovi za konzultace, bez kter´ ych by nemohl b´ yt realizov´an model ˇzeleznice a ˇr´ızen´ı lokomotiv by bylo podstatnˇe sloˇzitˇejˇs´ı. A v neposledn´ı ˇradˇe dˇekuji i sv´ ym rodiˇc˚ u za podporu a trpˇelivost bˇehem diplomov´e pr´ace.
III
Abstrakt Diplomov´a pr´ace se zab´ yv´a stavbou modelu ˇzeleznice a jeho ˇr´ızen´ım pomoc´ı PLC Simatic S7-315 2DP. Model ˇzeleznice se skl´ad´a ze tˇr´ı n´adraˇz´ı s v´ yhybkami a semafory. ˇ ızen´ı Ke sledov´an´ı pohybu lokomotiv po kolejiˇsti jsou pouˇzity proudov´e sn´ımaˇce. R´ pohybu lokomotiv se prov´ad´ı pomoc´ı DCC syst´emu. K ovl´ad´an´ı v´ yhybek, semafor˚ u a lokomotiv se pouˇz´ıv´a ˇr´ıdic´ı elektronika, kter´a zajiˇst’uje komunikaci s nadˇr´ızen´ ym syst´emem. Uk´azkov´ y ˇr´ıdic´ı algoritmus v PLC Simatic S7-315 2DP ˇr´ıd´ı jednak re´aln´ y model ˇzeleznice ale i virtu´aln´ı model ˇzeleznice, kter´ y je naprogramov´an ve visualizaˇcn´ım prostˇred´ı InTouch. Visualizace jak re´aln´eho tak i virtu´aln´ıho kolejiˇste je provedna ve visualizaˇcn´ım prostˇred´ı InTouch.
IV
Abstract This master thesis presents a railway model built for an assessment of possibilities of model simulations. Imitating a real railway structure the model incorporates three platforms with shunts and semaphores and feedback sensors together with two locomotives with carriages. Through a PIC16F877 microcontroller it is possible to control semaphores and shunt positions, monitor Locomotive model locations and digitally control movements the locomotive models via Digital Control Command standard. To allow a simulation of more complex control processes the microcontroller is managed by Simatic S7-315 2DP PLC, which is able of generating paths between desired points and to transfer the locomotion models between them. Easier to control, the entire control process is visualized via InTouch environment.
V
Obsah ´ 1 Uvod
1
2 Stavba modelu
3
2.1
2.2
2.3
Zp˚ usoby ˇreˇsen´ı ˇr´ızen´ı pohybu lokomotiv . . . . . . . . . . . . . . . . .
3
2.1.1
Konvenˇcn´ı ˇr´ızen´ı . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1.2
DCC ˇr´ızen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Mechanick´a ˇc´ast modelu . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.1
Kolejivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.2
V´ yhybky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.3 Pˇrestavn´ıky v´ yhybek . . . . . . . . . . . . . . . . . . . . . . . ˇ ıdic´ı elektronika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R´
6
2.3.1
Centr´aln´ı ˇr´ıdic´ı jednotka . . . . . . . . . . . . . . . . . . . . .
8
2.3.1.1
N´ap´ajen´ı centr´aln´ı ˇr´ıdic´ı jednotky . . . . . . . . . . .
8
2.3.1.2
Mikrokontrol´er PIC16F877
8
2.3.1.3
Obvod MAX232 . . . . . . . . . . . . . . . . . . . . 11
2.3.1.4
DCC v´ ystup . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1.5
Paraleln´ı sbˇernice . . . . . . . . . . . . . . . . . . . . 12
2.3.2
DCC zesilovaˇc . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3
Proudov´e sn´ımaˇce . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.4
Ovl´ad´an´ı v´ yhybek . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5
Semafory
2.3.6
Nap´ajen´ı modelu ˇzeleznice . . . . . . . . . . . . . . . . . . . . 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Programov´ an´ı PIC16F84 3.1
. . . . . . . . . . . . . .
7
18
Programov´an´ı PIC16F84 . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1.1
Mikrokontrol´er PIC16F84 . . . . . . . . . . . . . . . . . . . . 18
3.1.2
Programov´an´ı PIC16F84 . . . . . . . . . . . . . . . . . . . . . 19
4 Programov´ an´ı PIC16F877
21
4.1
Mikrokontrol´er PIC16F877 . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2
Programov´an´ı PIC16F877 . . . . . . . . . . . . . . . . . . . . . . . . 21 VI
4.2.1
Organizace pamˇeti RAM . . . . . . . . . . . . . . . . . . . . . 21
4.2.2
Nepˇr´ım´e adresov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.3
Konfigurace pˇreruˇsen´ı . . . . . . . . . . . . . . . . . . . . . . 22
4.2.4
Konfigurace USART . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.5
Konfigurace I 2 C
4.2.6
Konfigurace ˇcasovaˇce TMR0 . . . . . . . . . . . . . . . . . . . 28
4.2.7
Popis programu . . . . . . . . . . . . . . . . . . . . . . . . . . 28
. . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.7.1
Podprogram Sorting . . . . . . . . . . . . . . . . . . 29
4.2.7.2
Podprogram Switchs . . . . . . . . . . . . . . . . . . 30
4.2.7.3
Podprogram Light . . . . . . . . . . . . . . . . . . . 30
4.2.7.4
Podprogram Measure . . . . . . . . . . . . . . . . . . 32
4.2.7.5
Podprogram Transmit . . . . . . . . . . . . . . . . . 32
4.2.7.6
Pˇreruˇsen´ı . . . . . . . . . . . . . . . . . . . . . . . . 33
ˇ ıdic´ı algoritmus v PLC 5 R´ 5.1
Hardwarov´a konfigurace . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.1.1
5.2
35
Hardwarov´a konfigurace PLC . . . . . . . . . . . . . . . . . . 35
5.1.2 Hardwarov´a konfigurace Wago Serial Interface RS232 . . . . . 36 ˇ ıdic´ı algoritmus v PLC . . . . . . . . . . . . . . . . . . . . . . . . . 37 R´ 5.2.1
Komunikace modulem WAGO 750-650 . . . . . . . . . . . . . 39
5.2.2
Funkˇcn´ı bloky . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.3
5.2.4
5.2.2.1
Funkˇcn´ı blok FB1 - ˇr´ızen´ı lokomotivy . . . . . . . . . 40
5.2.2.2
Funkˇcn´ı blok FB2, FB4, FB6 a FB8 - Vlakov´e cesty
43
Funkce FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.3.1
Funkce FC100 - zpracov´an´ı dat pˇrijat´ ych po RS232 . 44
5.2.3.2
Funkce FC101 - Ovl´ad´an´ı v´ yhybek . . . . . . . . . . 44
5.2.3.3 5.2.3.4
Funkce FC102 - Zamyk´an´ı a odemyk´an´ı v´ yhybek . . 44 Funkce FC106 - Inicilizace tabulky trat’ov´ ych u ´sek˚ u . 45
5.2.3.5
Funkce FC107 - Ovl´ad´an´ı semafor˚ u . . . . . . . . . . 45
Hlavn´ı program . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6 Visualizace
48
6.1
Konfigurace I/O serveru S7 . . . . . . . . . . . . . . . . . . . . . . . 48
6.2
Visualizace v prostˇred´ı InTouch . . . . . . . . . . . . . . . . . . . . . 49 6.2.1
Z´akladn´ı nastaven´ı v prostˇred´ı InTouch . . . . . . . . . . . . . 49
6.2.2
Visualizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.2.2.1
Visualizace n´adraˇz´ı . . . . . . . . . . . . . . . . . . . 50
6.2.2.2
Visualizace cel´eho modelu kolejiˇstˇe . . . . . . . . . . 51
6.2.2.3
Ovl´adan´ı lokomotivy BR221 a V180 . . . . . . . . . 52 VII
7 Z´ avˇ er
54
Literatura
55
A Pouˇ zit´ e zkratky
57
B Sch´ emata
58
B.1 Sch´ema centr´aln´ı ˇr´ıdic´ı jednotky . . . . . . . . . . . . . . . . . . . . . 59 B.2 Sch´ema DCC zesilovaˇce . . . . . . . . . . . . . . . . . . . . . . . . . . 60 B.3 Sch´ema proudov´ ych sn´ımaˇc˚ u . . . . . . . . . . . . . . . . . . . . . . . 61 B.4 Sch´ema ovl´ad´an´ı v´ yhybek . . . . . . . . . . . . . . . . . . . . . . . . 62 B.5 Sch´ema ovl´ad´an´ı semafor˚ u . . . . . . . . . . . . . . . . . . . . . . . . 63 B.6 Sch´ema multiplexoru paraleln´ı sbˇernice . . . . . . . . . . . . . . . . . 64 C Obsah CD
65
D N´ akres kolejiˇ stˇ e
66
VIII
Seznam obr´ azk˚ u 2.1
DCC Paket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
K´odov´an´ı DCC sign´alu . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
Pˇrestavn´ık FULGUREX . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
Blokov´e sch´ema ˇr´ıdic´ı elektroniky . . . . . . . . . . . . . . . . . . . .
7
2.5
Nap´ajec´ı zdroj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.6
Mikrokontrol´er PIC16F877 . . . . . . . . . . . . . . . . . . . . . . . .
9
2.7
Blokov´e sch´ema mikrokontrol´eru PIC16F877 . . . . . . . . . . . . . . 10
2.8
Typick´e zapojen´ı obvodu MAX232 . . . . . . . . . . . . . . . . . . . 12
2.9
Vstupy DCC zesilovaˇce . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.10 M˚ ustkov´ y zesilovaˇc L6203 . . . . . . . . . . . . . . . . . . . . . . . . 14 2.11 Sch´ema proudov´eho sn´ımaˇce . . . . . . . . . . . . . . . . . . . . . . . 15 4.1
Poˇc´ateˇcn´ı podm´ınka komunikace na sbˇernici I 2 C . . . . . . . . . . . . 24
4.2
Koncov´a podm´ınka komunikace na sbˇernici I 2 C . . . . . . . . . . . . 24
4.3
Pˇrenos jednoho bytu na sbˇernici I 2 C . . . . . . . . . . . . . . . . . . 25
5.1
Konfigurace Simaticu . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2
Konfigurace profibusov´eho modulu WAGO 750-650 . . . . . . . . . . 36
5.3
Nastaven´ı adresy profibusov´eho modulu . . . . . . . . . . . . . . . . . 36
5.4
Konfigurace modulu WAGO 750-650/003-000 . . . . . . . . . . . . . 37
6.1
Nastaven´ı DDE serveru . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2
Nastaven´ı karty v poˇc´ıtaˇci . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3
Konfigurace pˇr´ıstupov´eho bodu . . . . . . . . . . . . . . . . . . . . . 50
6.4
Visualizace n´adraˇz´ı Marketta . . . . . . . . . . . . . . . . . . . . . . 51
6.5
Visualizace cel´eho modelu . . . . . . . . . . . . . . . . . . . . . . . . 52
6.6
Ovl´ad´an´ı lokomotivy BR221 . . . . . . . . . . . . . . . . . . . . . . . 52
D.1 N´akres kolejiˇstˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
IX
Seznam tabulek 2.1
DCC sign´al na v´ ystupu zesilovaˇce . . . . . . . . . . . . . . . . . . . .
5
2.2
DCC sign´al na vstupu dekod´eru
5
4.1
Struktura pˇr´ıkaz˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2
Rozˇrazen´ı v´ yhybek k jednotliv´ ym v´ ystup˚ um expand´eru . . . . . . . . 31
4.3
Rozˇrazen´ı semafor˚ u k jednotliv´ ym expand´er˚ um PCF8574 . . . . . . . 31
4.4
Form´at data pˇri odes´ıl´an´ı po RS232 . . . . . . . . . . . . . . . . . . . 33
5.1
´ u . . . . . . . . . . . . . . . . . . . . 38 Struktura ˇr´adku v tabulce Usek˚
5.2
Struktura stavov´eho bytu . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3
Control byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.4
Status byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5
Poˇzadavek na inicializaci . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.6
Potvrzen´ı na inicializace . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.7
Odjezdov´ y semafor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.8
Vjezdovy semafor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.9
Data urˇcen´a k pˇrenosu do modelu . . . . . . . . . . . . . . . . . . . . 47
X
. . . . . . . . . . . . . . . . . . . .
Kapitola 1 ´ Uvod Modelov´a ˇzeleznice je svˇet model˚ u lokomotiv, vag´on˚ u, semafor˚ u a n´adraˇz´ı doplnˇen´ y figurkami v´ ypravˇc´ıch, pr˚ uvodˇc´ıch, strojv˚ udc˚ u a ˇzelezniˇc´aˇr˚ u zasazen´ y do krajiny. Ze strany model´aˇre a technika je tento svˇet d´an souhrnem pravidel, kter´ y zajist´ı fungov´an´ı syst´emu dopravy. Tato diplomov´a pr´ace mˇela dva hlavn´ı c´ıle. Prvn´ım c´ılem bylo postavit model ˇ ıdic´ı ˇzeleznice, kter´ y budou v budoucnu vyuˇz´ıvat studenti ve cviˇcen´ı v pˇredmˇetu R´ syst´emy. Druh´ ym c´ılem bylo naprogramov´an´ı uk´azkov´e ˇr´ıdic´ı aplikace. Diplomov´a pr´ace je rozdˇelena do sedmi kapitol. Prvn´ı kapitola n´as seznamuje s obsahem diplomov´e pr´ace a s motivem, proˇc tato diplomov´a pr´ace vznikla. Druh´a kapitola se zab´ yv´a stavbou modelu ˇzeleznice. Stavba modelu ˇzeleznice je rozdˇelena na dvˇe na sebe navazuj´ıc´ı ˇc´asti. Prvn´ı ˇc´ast´ı je mechanick´a stavba kolejiˇstˇe. Do t´eto ˇc´asti patˇr´ı v´ ybˇer vhodn´eho druhu kolejiva a pˇrestavn´ık˚ u v´ yhybek. Druh´a ˇ ıdic´ı elektronika moˇc´ast kapitoly je vˇenov´ana ˇr´ıdic´ı elektronice modelu ˇzeleznice. R´ delu zajiˇst’uje komunikaˇcn´ı rozhran´ı mezi modelem a nadˇr´ızen´ ym syst´emem, ovl´ad´a vˇsechny v´ yhybky, semafory a ˇr´ıd´ı pohyb lokomotiv po kolejiˇsti. Tˇret´ı kapitola je urˇcena programov´an´ı mikrokontrol´eru PIC16F84, kter´ y je pouˇzit v DCC zesilovaˇci. V kapitole jsou nejprve uvedeny z´akladn´ı informace o mikrokontrol´eru a potom je pops´an ˇr´ıdic´ı program mikrokontrol´eru. ˇ Ctvrt´ a kapitola se vˇenuje programov´an´ı mikrokontrol´eru PIC16F877, kter´ y je j´adrem centr´aln´ı ˇr´ıdic´ı jednotky. Na zaˇc´atku kapitoly jsou nejdˇr´ıve uvedeny z´akladn´ı informace o mikrokontrol´eru a n´aslednˇe je pops´ana struktura programu, kter´ y jednak generuje pˇr´ıkazy pro ovl´adan´ı lokomotiv, ovl´ad´a v´ yhybky, semafory a sb´ır´a data z kolejiˇste o pohybu lokomotiv. D´ale tento program zajiˇst’uje komunikaci s nadˇr´ızen´ ym syst´emem. P´at´a kapitola se zab´ yv´a ˇr´ıdic´ım algoritmem v PLC automatu Simatic S7-315 2DP. Na zaˇc´atku kapitoly je pops´ana hardwarov´a konfigurace PLC. N´aslednˇe na to je uve1
´ KAPITOLA 1. UVOD
2
den popis komunikace s profibusov´ ym modulem WAGO 750-650, coˇz je pˇrevodn´ık profibus-s´eriov´a linka RS232. D´ale n´asleduje popis programu, kter´ y je rozdˇelen na funkce, funkˇcn´ı bloky a hlavn´ı program. ˇ a kapitola se vˇenuje visualizaci jak skuteˇcn´ Sest´ ych modelov´ ych n´adraˇz´ı tak i softwarovˇe vytvoˇren´ ych n´adraˇz´ı ve visualizaˇcn´ım prostˇred´ı InTouch. Na zaˇc´atku kapitoly je uvedena uk´azka konfigurace DDE serveru a z´akladn´ıho nastaven´ı prostˇred´ı InTouch. N´aslednˇe je uvedena struktura visualizaˇcn´ıch oken a ovl´ad´an´ı modelu prostˇrednictv´ım visualizace. Posledn´ı sedm´a kapitola obsahuje zhodnocen´ı v´ ysledk˚ u diplomov´e pr´ace s doporuˇcen´ım pro pr´aci s modelem.
Kapitola 2 Stavba modelu 2.1
Zp˚ usoby ˇ reˇ sen´ı ˇ r´ızen´ı pohybu lokomotiv
Vˇsechny elektrick´e modely lokomotiv potˇrebuj´ı ke sv´emu pohybu po kolejiˇsti elektrick´e napˇet´ı, kter´e sb´ıraj´ı z kolej´ı. K ˇr´ızen´ı pohybu lokomotivy po kolejiˇsti se pouˇz´ıvaj´ı dva z´akladn´ı typy ˇr´ızen´ı. Prvn´ı typ je tzv. konvenˇcn´ı ˇr´ızen´ı a druh´ y typ je DCC ˇr´ızen´ı. Oba tyto typy ˇr´ızen´ı budou pops´any v n´asleduj´ıc´ıch kapitol´ach.
2.1.1
Konvenˇ cn´ı ˇ r´ızen´ı
Pˇri konvenˇcn´ım ˇr´ızen´ı je cel´e kolejiˇstˇe rozdˇeleno na jednotliv´e od sebe elektricky izolovan´e kolejov´e u ´seky. V kaˇzd´em u ´seku m˚ uˇze b´ yt pouze jedna lokomotiva nebo jedna souprava lokomotiv. Pˇripojen´ım stejnosmˇern´eho napˇet´ı k u ´seku se uvede lokomotiva do pohybu. Rychlost pohybu je urˇcena velikost´ı stejnosmˇern´eho napˇet´ı a smˇer pohybu je urˇcen polaritou stejnosmˇern´eho napˇet´ı, kter´e je pˇrivedeno do lokomotivy. V´ yhodou tohoto zp˚ usobu ˇr´ızen´ı je jednoduchost ovl´adac´ı elektroniky modelu a n´ızk´e n´aklady na jej´ı stavbu pˇri menˇs´ıch rozmˇerech kolejiˇstˇe. Dalˇs´ı v´ yhodou je, ˇze v lokomotivˇe nen´ı potˇreba ˇz´adn´a dalˇs´ı elektronika. Hlavn´ı nev´ yhodu konvenˇcn´ıho ˇr´ızen´ı je to, ˇze nelze ovl´adat nez´avisle na sobˇe dvˇe a v´ıce lokomotiv v jednom kolejov´em u ´seku. V pˇr´ıpadˇe rozs´ahl´ ych model˚ u je dalˇs´ı nev´ yhodou velk´a sloˇzitost zapojen´ı ovl´adac´ı elektroniky v porovn´an´ı s druhou metodou.
2.1.2
DCC ˇ r´ızen´ı
Pˇri pouˇzit´ı DCC1 ˇr´ızen´ı nen´ı nezbytnˇe nutn´e rozdˇelit kolejiˇstˇe na jednotliv´e od sebe elektricky izolovan´e u ´seky, protoˇze DCC ˇr´ızen´ı umoˇzn ˇuje na sobˇe nez´avisl´e ˇr´ızen´ı dvou a v´ıce lokomotiv v jednom kolejov´em u ´seku. DCC ˇr´ızen´ı je zaloˇzen´e na pos´ıl´an´ı 1
DCC - Digital Command Control
3
KAPITOLA 2. STAVBA MODELU
4
paket˚ u zaˇr´ızen´ım, kter´e jsou pˇripojen´e ke kolej´ım. Pakety jsou rozdˇeleny do tˇr´ı z´akladn´ıch typ˚ u. Prvn´ım typem jsou pakety, kter´e jsou adresov´any konkr´etn´ım lokomotiv´am a zaˇr´ızen´ım, druh´ ym typem jsou pakety, kter´e jsou urˇceny vˇsem zaˇr´ızen´ım najednou a tˇret´ım typem jsou IDLE pakety, kter´e se pos´ılaj´ı v pˇr´ıpadˇe, ˇze nen´ı co pos´ılat. Pokud byl do kolej´ı vysl´an paket prvn´ıho typu, lokomotiva si ho sv´ ym dekod´erem pˇr´ıjme a pˇreˇcte. V pˇr´ıpadˇe, ˇze byl urˇcen pro ni, zaˇcne vykon´avat pˇr´ıkaz obsaˇzen´ y v paketu. Pokud pˇrijat´ y paket nebyl urˇcen pro ni, pokraˇcuje ve sv´e dosavadn´ı ˇcinnosti. Zcela stejnˇe by se zachovalo kter´ekoliv jin´e zaˇr´ızen´ı pˇripojen´e ke kolej´ım. Kaˇzd´ y paket (obr.2.1) je sloˇzen z preambule, adresy zaˇr´ızen´ı, dat a kontroln´ıho souˇctu pˇredch´azej´ıc´ıch dat paketu.
Obr´azek 2.1: DCC Paket Preambule je hlaviˇcka paketu, kter´a se skl´ad´a minim´alnˇe z 11 po sobˇe jdouc´ıch log.1. Adresa urˇcuje zaˇr´ızen´ı, kter´emu je paket urˇcen. Pokud se adresa skl´ad´a z osmi po sobˇe jdouc´ıch log.0, pak je paket urˇcen pro vˇsechny zaˇr´ızen´ı pˇripojen´e ke kolej´ım. Data obsahuj´ı pˇr´ıkaz, kter´ y m´a zaˇr´ızen´ı prov´est a kontroln´ı souˇcet je urˇcen pro kontrolu pˇr´ıjmut´ ych dat. Obsah paketu je reprezentov´an posloupnost´ı log.0 a log.1, kter´e jsou k´odov´any podle normy NMRA 9.2.12 . K´od log.1 je definov´an jako obd´eln´ıkov´ y pr˚ ubˇeh napˇet´ı. V pˇr´ıpadˇe modelu ˇzeleznice se napˇet´ı pohybuje v rozmez´ı +12 V a -12 V . Definice d´elky jednotliv´ ych ˇc´asti k´odu DCC sign´alu je rozdˇelen´a na definici DCC sign´alu vych´azej´ıc´ıho ze zesilovaˇce (tab.2.1) a na definici DCC sign´alu akceptovan´eho dekod´erem (tab.2.2). 2
NMRA - National Model Railway Association
KAPITOLA 2. STAVBA MODELU
5
Obr´azek 2.2: K´odov´an´ı DCC sign´alu
ˇ Casov´ y pr˚ ubˇeh pro log.1 periodaA < 55µs nebo periodaA > 61µs
V´ ysledek ˇ Spatnˇ e
periodaA = periodaB
Dobˇre
|periodaA − periodaB| ⇐ 3µs
Dobˇre ˇ Spatnˇ e
|periodaA − periodaB| > 3µs
Tabulka 2.1: DCC sign´al na v´ ystupu zesilovaˇce
ˇ Casov´ y pr˚ ubˇeh pro log.1
V´ ysledek
periodaA ≥ 52µs nebo periodaA ≤ 64µs
Dobˇre
periodaA = periodaB
Dobˇre
|periodaA − periodaB| ⇐ 6µs
Dobˇre
Tabulka 2.2: DCC sign´al na vstupu dekod´eru K´od log.0 je definov´an stejnˇe jako k´od log.1 s t´ım rozd´ılem, ˇze d´elka jednotliv´ ych ˇc´ast´ı je minim´alnˇe 100 µs a z´aroveˇ n je menˇs´ı neˇz 6000 µs. Rychlost pˇrebˇehu stejnosmˇern´eho napˇet´ı mus´ı b´ yt minim´alnˇe 2, 5 V /µs. Hlavn´ı v´ yhodou tohoto zp˚ usobu ˇr´ızen´ı je moˇznost ovl´adat nˇekolik lokomotiv v jednom kolejov´e u ´seku nez´avisle na sobˇe, coˇz u prv´eho zp˚ usobu nebylo moˇzn´e. Dalˇs´ı v´ yhodou je menˇs´ı sloˇzitost zapojen´ı ovl´adac´ı elektroniky pˇri pouˇzit´ı na stˇrednˇe velk´em modelu ˇzeleznice oproti prv´emu zp˚ usobu. Hlavn´ı nev´ yhodou DCC ˇr´ızen´ı je finanˇcn´ı n´akladnost DCC ˇr´ızen´ı pˇri pouˇzit´ı na mal´em modelu ˇzeleznice. Pˇri porovn´av´an´ı obou z´akladn´ıch zp˚ usob˚ u ˇr´ızen´ı pohybu lokomotivy po kolejiˇsti bylo vybr´ano DCC ˇr´ızen´ı, protoˇze pˇri zam´ yˇslen´em rozmˇeru kolejiˇstˇe a zp˚ usobu ˇr´ızen´ı byl tento zp˚ usob levnˇejˇs´ı a jednoduˇsˇs´ı neˇz prvn´ı zp˚ usob.
KAPITOLA 2. STAVBA MODELU
2.2
6
Mechanick´ aˇ c´ ast modelu
2.2.1
Kolejivo
Pro stavbu modelu ˇzeleznice bylo vybr´ano ”modelov´e kolejivo”, protoˇze je vhodn´e pro DCC ˇr´ızen´ı. Kolejivo se skl´ad´a z umˇelohmotn´ ych v´ ylisk˚ u praˇzc˚ u a z kovov´ ych kolejnic. V´ ysledn´a kolej se vytvoˇr´ı sloˇzen´ım tˇechto dvou d´ıl˚ u dohromady. Umˇelohmotn´ y v´ ylisek praˇzc˚ u tvoˇr´ı bud’ rovn´ y u ´sek o d´elce 166 mm nebo oblouk o polomˇeru 315 mm a u ´hlu 300 . Profil kovov´e kolejnice je stejn´ y jako profil skuteˇcn´e ˇzelezn´e kolejnice.
2.2.2
V´ yhybky
Vzhledem k tomu, ˇze pro stavbu modelu bylo vybr´ano ”modelov´e kolejivo”, byly vybr´any v´ yhybky urˇcen´e pro ”modelov´e kolejivo” s u ´hlem odboˇcen´ı 12, 50 a d´elkou rovn´e koleje 129,5 mm.
2.2.3
Pˇ restavn´ıky v´ yhybek
K pˇrestavov´an´ı v´ yhybek byl vybr´an pˇrestavn´ık FULGUREX (obr. 2.3), kter´ y k pˇrestavˇen´ı v´ yhybky pouˇz´ıv´a posuvn´ y mostek.
Obr´azek 2.3: Pˇrestavn´ık FULGUREX Mostek je posunov´an pˇres ˇsnek motorkem. Aby motorek nebyl ve zkratu pˇri pˇresunut´ı v´ yhybky do krajn´ı polohy, jsou na kaˇzd´e stranˇe posuvn´eho mostku koncov´e
KAPITOLA 2. STAVBA MODELU
7
sp´ınaˇce, kter´e odpoj´ı motorek od napˇet´ı. K opˇetovn´emu pˇresunu v´ yhybky dojde pouze po zmˇenˇe polarity nap´ajec´ıho napˇet´ı. V´ yhodou pˇrestavn´ıku FULGUREX jsou zpˇetn´e kontakty, kter´e se nechaj´ı vyuˇz´ıt ve zpˇetn´e vazbˇe pro ˇr´ızen´ı modelu.
2.3
ˇ ıdic´ı elektronika R´
PLC automat Simatic S7-315 2DP pouˇzit´ y pro ˇr´ızen´ı modelu ˇzeleznice je pˇr´ıliˇs pomal´ y pro generov´an´ı pˇr´ıkaz˚ u pouˇzit´ ych pˇri DCC ˇr´ızen´ı. Proto byl vloˇzen mezi PLC automat a model ˇzeleznice elektronick´ y syst´em (obr. 2.4), kter´ y generuje pˇr´ıkazy pro ovl´adan´ı lokomotiv, ovl´ad´a v´ yhybky, semafory a sb´ır´a data z kolejiˇste o pohybu lokomotiv. D´ale tento elektronick´ y syst´em komunikuje s nadˇr´ızen´ ym syst´emem po s´eriov´e lince RS232.
Obr´azek 2.4: Blokov´e sch´ema ˇr´ıdic´ı elektroniky
KAPITOLA 2. STAVBA MODELU
2.3.1
8
Centr´ aln´ı ˇ r´ıdic´ı jednotka
Centr´aln´ı ˇr´ıdic´ı jednotka se skl´ad´a z mikrokontrol´eru PIC16F877 od firmy Microchip, z nap´ajec´ıch zdroj˚ u, kter´e jsou urˇceny pro nap´ajen´ı jak samotn´e desky tak i pro nap´ajen´ı periferi´ı pˇripojen´ ych k desce. D´ale centr´aln´ı ˇr´ıdic´ı jednotka obsahuje s´eriovou linku RS232, sbˇernici I 2 C, paraleln´ı sbˇernici a v´ ystup pro DCC ˇr´ızen´ı. K indikaci nap´ajec´ıho napˇet´ı slouˇz´ı velk´a ˇcerven´a LED dioda, k resetov´an´ı mikrokontrol´eru slouˇz´ı ˇcerven´e tlaˇc´ıtko, kter´e je pˇridˇel´ano k desce stolu. Elektrick´e sch´ema je uvedeno v pˇr´ıloze A na str.1. Cel´a deska je nap´ajena stejnosmˇern´ ym napˇet´ım +12 V DC. Celkov´ y odbˇer proudu je z´avisl´ y na poˇctu pˇripojen´ ych periferi´ı, ale nepˇres´ahne hodnotu 1 A. 2.3.1.1
N´ ap´ ajen´ı centr´ aln´ı ˇ r´ıdic´ı jednotky
Deska centr´aln´ı ˇr´ıdic´ı jednotky je nap´ajena stejnosmˇern´ ym napˇet´ım +12 V DC. Toto napˇet´ı je pˇrivedeno na vstup dvou zdroj˚ u stabilizovan´eho stejnosmˇern´eho napˇet´ı +5V DC (obr.2.5). Prvn´ı zdroj je urˇcen v´ yhradnˇe pro nap´ajen´ı obvod˚ u na desce, druh´ y zdroj je urˇcen k nap´ajen´ı zaˇr´ızen´ı pˇripojen´ ych k desce. J´adrem tˇechto zdroj˚ u jsou stabiliz´atory napˇet´ı LM7805, kter´e jsou schopny s dostateˇcn´ ym chlazen´ım dodat proud 1.5A. Kondenz´atory na vstupu stabiliz´atoru sniˇzuj´ı zvlnˇen´ı vstupn´ıho stejnosmˇern´eho napˇet´ı a kondenz´atory na v´ ystupu sniˇzuj´ı zvlnˇen´ı v´ ystupn´ıho napˇet´ı.
Obr´azek 2.5: Nap´ajec´ı zdroj 2.3.1.2
Mikrokontrol´ er PIC16F877
Mikrokontrol´er je jeden z nejd˚ uleˇzitˇejˇs´ıch prvk˚ u cel´e ovl´adac´ı elektroniky modelu ˇzeleznice. Pˇri v´ ybˇeru vhodn´eho mikrokontrol´eru bylo nutn´e splnit dvˇe hlavn´ı podm´ınky.
KAPITOLA 2. STAVBA MODELU
9
Obr´azek 2.6: Mikrokontrol´er PIC16F877 Prvn´ı podm´ınkou byla implementace podpory rozhran´ı RS232 a I 2 C uvnitˇr mikrokontrol´eru. Druhou podm´ınkou byla snadn´a dostupnost v´ yvojov´eho prostˇred´ı. Obˇe tyto podm´ınky splnil mikrokontrol´er PIC16F877 (obr. 2.6) od firmy Microchip. V n´asleduj´ıc´ım textu t´eto kapitoly bude mikrokontrol´er pops´an z hardwarov´eho pohledu a z pohledu program´atora bude pops´an v kapitole 4, kter´a se zab´ yv´a programem v mikrokontrol´eru. Mikrokontrol´er PIC16F877 m´a architekturu RISC (Reduced Instruction Set Computer), kter´a je zaloˇzena na pˇredpokladu, ˇze frekvence pouˇz´ıv´an´ı sloˇzit´ ych instrukc´ı je tak mal´a, ˇze se nevyplat´ı pro nˇe pl´ ytvat plochou na ˇcipu a v pˇr´ıpadˇe potˇreby jsou nahrazeny posloupnost´ı jednoduch´ ych instrukc´ı. Instrukˇcn´ı sada obsahuje 35 jednoduch´ ych instrukc´ı. V´ ykon instrukce s v´ yjimkou komunikace s pamˇet´ı je jeden strojov´ y cyklus. Vnitˇrn´ı struktura mikrokontrol´eru je zobrazena na obr.2.7. Mikrokontrol´er m´a celkem 33 vstupnˇe-v´ ystupn´ıch pin˚ u rozdˇelˇen´ ych do pˇeti port˚ u A aˇz E. Z´apisem do konfiguraˇcn´ıch registr˚ u tˇechto port˚ u se urˇc´ı kter´ y pin jak´eho portu bude vstup a kter´ y pin bude v´ ystup. Piny portu A je moˇzno nakonfigurovat jako vstup A/D pˇrevodn´ıku nebo jako digit´aln´ı vstupy ˇci v´ ystupy. Piny port˚ u B, C, a E je moˇzn´e nakonfigurovat jen jako digit´aln´ı vstupy ˇci v´ ystupy. U portu B lze jeˇstˇe konfigurac´ı urˇcit, zda se budou k pin˚ um pˇripojovat zvyˇsovac´ı odpory. Mikrokontrol´er m´a na sv´em ˇcipu pamˇet’ rozdˇelenou na pamˇet’ programu a na pamˇet’ dat. Pamˇet’ programu je typu FLASH a m´a velikost 8192B. K tomuto typu mikrokontrol´eru nelze pˇripojit extern´ı pamˇet’ programu jako napˇr. u mikrokontrol´eru ˇrady ’51, protoˇze by to v´ yraznˇe zpomalovalo v´ ykon´av´an´ı programu a ztratily by se v´ yhody RISC architektury. Pamˇet’ dat je rozdˇelena na dynamickou pamˇet’ RAM o velikosti 368B a na pamˇet’ typu EEPROM o velikosti 128B. Dynamick´a pamˇet’ RAM slouˇz´ı k uchov´avan´ı dat bˇehem vykon´av´an´ı programu. Pokud dojde k v´ ypadku nap´ajec´ıho napˇet´ı, data se z t´eto pamˇeti ztrat´ı. Po restartu vynucen´em n´abˇehem nap´ajec´ıho napˇet´ı se v pamˇeti RAM objev´ı n´ahodn´ y obsah log. nul a
KAPITOLA 2. STAVBA MODELU
Obr´azek 2.7: Blokov´e sch´ema mikrokontrol´eru PIC16F877
10
KAPITOLA 2. STAVBA MODELU
11
jedniˇcek. Pamˇet’ EEPROM slouˇz´ı k uchov´an´ı dat i v pˇr´ıpadˇe, ˇze dojde k vypnut´ı nap´ajec´ıho napˇet´ı, protoˇze pamˇet’ typu EEPROM nepotˇrebuje pro uchov´an´ı dat v sobˇe zapsan´ ych nap´ajec´ı napˇet´ı. Mikrokontrol´er PIC16F877 m´a dvˇe komunikaˇcn´ı rozhran´ı. Prvn´ı rozhran´ı je univerz´aln´ı synchronn´ı – asynchronn´ı vys´ılaˇc – pˇrij´ımaˇc v katalogov´em listu oznaˇcovan´e jako USART 3 . Druh´e rozhran´ı je synchronn´ı s´eriov´ y port, kter´ y lze na konfigurovat jako komunikaˇcn´ı rozhran´ı pro sbˇernici SPI
4
nebo I2 C. Rozhran´ı USART
lze nastavit pomoc´ı konfiguraˇcn´ıch registr˚ u jako plnˇe duplexn´ı asynchronn´ı syst´em, jehoˇz prostˇrednictv´ım mikrokontrol´er m˚ uˇze komunikovat se zaˇr´ızen´ımi jako je osobn´ı poˇc´ıtaˇc. D´ale lze rozhran´ı USART nakonfigurovat jako poloviˇcn´ı duplexn´ı synchronn´ı syst´em, kter´ ym mikrokontrol´er m˚ uˇze komunikovat se zaˇr´ızen´ımi jako jsou A/D a D/A pˇrevodn´ıky, nebo s´eriov´e pamˇeti EEPROM apod. Rozhran´ı synchronn´ıho s´eriov´eho portu lze nakonfigurovat pomoc´ı konfiguraˇcn´ıch registr˚ u bud’ jako rozhran´ı pro sbˇernici SPI nebo jako rozhran´ı pro sbˇernici I2 C. V obou moˇznostech se mikrokontrol´er m˚ uˇze chovat na sbˇernici jako nadˇr´ızen´e ˇci podˇr´ızen´e zaˇr´ızen´ı. Obˇe sbˇernice se pouˇz´ıvaj´ı ke komunikaci s pamˇetmi, ovladaˇcemi displej˚ u a podobn´ ymi zaˇr´ızen´ımi. V centr´aln´ı ˇr´ıdic´ı jednotce bylo pouˇzito rozhran´ı pro sbˇernici I2 C, jehoˇz konfigurace je pops´ana v kapitole 4.2.5. Pˇri pouˇzit´ı sbˇernice I2 C je nutn´e pˇripojit mezi piny RC3, RC4 a nap´ajen´ı zvyˇsovac´ı rezistory s hodnotou 1kΩ. 2.3.1.3
Obvod MAX232
Pro pˇrevod napˇet’ov´ ych u ´rovn´ı z TTL na V24 je pouˇzit obvod MAX232 v typick´em zapojen´ı (obr. 2.8), kter´e je uvedeno v katalogov´em listu tohoto obvodu. U tohoto obvodu je velice d˚ uleˇzit´e si d´avat pozor na typ obvodu, protoˇze kaˇzd´ y typ obvodu potˇrebuje ke sv´e spr´avn´e funkci extern´ı kondenz´atory s r˚ uzn´ ymi hodnotami. V modelu byl pouˇzit obvod MAX232CPE s extern´ımi kondenz´atory 1 µF . 2.3.1.4
DCC v´ ystup
DCC sign´al je generov´an mikrokontrol´erem na pinech RC0 a RC1. Odtud je sign´al pˇriveden pˇr´ımo do galvanicky izolovan´eho vstupu zesilovaˇce, kter´ y tento sign´al v´ ykonovˇe zes´ıl´ı. Pokud na pinu RC0 je log.1, tak na pinu RC1 je log.0 a naopak. Odeb´ıran´ y proud z pin˚ u RC0 a RC1 je cca 2 mA. DCC sign´al generovan´ y mikrokontrol´erem je v napˇet’ov´e u ´rovni TTL. 3 4
USART - Universal Synchronous Asynchronous Receiver Transmitter SPI - Serial Peripheral Interface
KAPITOLA 2. STAVBA MODELU
12
Obr´azek 2.8: Typick´e zapojen´ı obvodu MAX232 2.3.1.5
Paraleln´ı sbˇ ernice
Paraleln´ı sbˇernice pˇripojuje proudov´e sn´ımaˇce k centr´aln´ı ˇr´ıdic´ı jednotce. V´ ybˇer proudov´ ych sn´ımaˇc˚ u, kter´e jsou pˇripojeny ke sbˇernici, se prov´ad´ı pomoc´ı obvodu 74HCT154, coˇz je multiplexer 1 z 16. Multiplexer 74HCT154 ovl´ad´a sbˇernicov´e budiˇce 74HCT541 na desk´ach proudov´ ych sn´ımaˇc˚ u. Rychlost pˇrenosu dat po paralen´ı sbˇernici je cca 10kHz. Vˇetˇs´ı frekvence nen´ı jednak ˇz´adouc´ı, protoˇze by mohlo doch´azet k ruˇsen´ı vedlejˇs´ıch vodiˇc˚ u a jednak nen´ı tˇreba tak ˇcasto sb´ırat data z modelu.
2.3.2
DCC zesilovaˇ c
DCC zesilovaˇc je jednou z nejd˚ uleˇzitˇejˇs´ı ˇc´ast´ı ovl´adac´ı elektroniky modelu, bez kter´e by nebylo moˇzn´e ovl´adat lokomotivy pohybuj´ıc´ı se po kolejiˇsti. DCC zesilovaˇc v´ ykonovˇe zesiluje DCC sign´al generovan´ y v centr´aln´ı ˇr´ıdic´ı jednotce a nap´aj´ı j´ım cel´e kolejiˇstˇe. Protoˇze se po kolejiˇsti budou pohybovat pouze dvˇe lokomotivy staˇc´ı, aby minim´aln´ı dostateˇcn´ y v´ ykon dod´avan´ y do kolejiˇste byl 24 W tj. aby pˇri 12 V DC mohl b´ yt odbˇer proudu 2 A. Vzhledem k tomu, ˇze na internetu bylo nalezeno hned nˇekolik zaj´ımav´ ych volnˇe ˇs´ıˇriteln´ ych zapojen´ı DCC zesilovaˇc˚ u, nebylo tˇreba vym´ yˇslet u ´plnˇe nov´e zapojen´ı. Jako nejv´ıce vyhovuj´ıc´ı zapojen´ı bylo vybr´ano elektrick´e sch´ema, kter´e vytvoˇril Dipl. Ing. Stefan Haack. Toto zapojen´ı je sloˇzeno ze ˇctyˇr funkˇcn´ıch ˇc´ast´ı. Prvn´ı ˇc´ast´ı jsou galvanicky oddˇelen´e sign´alov´e vstupy (obr. 2.9) DCC sign´alu , kter´ y pˇrich´az´ı z centr´aln´ı ˇr´ıdic´ı
KAPITOLA 2. STAVBA MODELU
13
jednotky. Pro galvanick´e oddˇelen´ı sign´alu byly pouˇzity optoˇcleny 6N137. V´ yhodou tˇechto optoˇclen˚ u je, ˇze v´ ystup je pˇr´ımo v napˇet’ov´e u ´rovni TTL a jsou schopny pˇren´aˇset sign´al o frekvenci nˇekolika jednotek MHz.
Obr´azek 2.9: Vstupy DCC zesilovaˇce Dalˇs´ı funkˇcn´ı ˇc´ast´ı DCC zesilovaˇce je m˚ ustkov´ y zesilovaˇc L6203 (obr. 2.10) spolu s extern´ımi kondenz´atory C1 aˇz C3 a odporem R5. Obvod L6203 je tvoˇren ˇctveˇric´ı unipol´arn´ıch v´ ykonov´ ych tranzistor˚ u zapojen´ ych do m˚ ustku a logick´ ymi obvody, kter´e sp´ınaj´ı dan´e tranzistory podle sign´al˚ u na vstupech IN1 a IN2. Souˇc´ast´ı obvodu L6203 je i v´ ystup SENSE, kter´ y je ve skuteˇcnosti v´ ykonov´ ym vstupem tranzistorov´eho m˚ ustku. Mezi tento v´ ystup a zem je pˇripojen rezistor R5 slouˇz´ıc´ı k sn´ıman´ı velikosti odeb´ıran´eho proudu obvodem L6203. Pokud je hodnota proudu vˇetˇs´ı neˇz 2,5 A, vytvoˇr´ı se na rezistoru napˇet´ı, kter´e sepne tranzistor T1. Sepnut´ y tranzistor T1 pˇrivede na pin RB3 mikrokontrol´eru PIC16F84 zem tj. log.0 a t´ım signalizuje mikrokontrol´eru PIC16F84 v´ ykonov´e pˇret´ıˇzen´ı v´ ystupu zesilovaˇce. Mikrokontrol´er okamˇzitˇe odpoj´ı v´ ystup obvodu L6203 od zdroje napˇet´ı pomoc´ı vstupu ENABLE. Tˇret´ı funkˇcn´ı ˇc´ast´ı DCC zesilovaˇce je mikrokontrol´er PIC16F84. Mikrokontrol´er m´a v zapojen´ı DCC zesilovaˇce dvˇe z´akladn´ı funkce. Prvn´ı z´akladn´ı funkc´ı je kontrola pˇr´ıtomnosti DCC sign´alu na vstupu zesilovaˇce. V pˇr´ıpadˇe, ˇze na vstupu zesilovaˇce nen´ı ˇz´adn´ y sign´al, tak pomoc´ı vstupu ENABLE obvodu L6203 odpoj´ı v´ ystup zesilovaˇce od nap´ajec´ıho zdroje. Druhou z´akladn´ı funkc´ı je odpojen´ı v´ ystupu zesilovaˇce od nap´ajec´ıho zdroje v pˇr´ıpadˇe v´ ykonov´eho pˇret´ıˇzen´ı v´ ystupu DCC zesilovaˇce. Program uvnitˇr mikrokontrol´eru se skl´ad´a pouze z detekce hran na vstupu
KAPITOLA 2. STAVBA MODELU
14
Obr´azek 2.10: M˚ ustkov´ y zesilovaˇc L6203 RB0, v pˇr´ıpadˇe detekce DCC sign´alu a detekce hran vstupu RB3 v pˇr´ıpadˇe detekce v´ ykonov´eho pˇret´ıˇzen´ı zesilovaˇce. Pokud DCC zesilovaˇc pracuje spr´avnˇe, je rozsv´ıcena pouze LED ˇc.1, pokud nen´ı sign´al na vstupu DCC zesilovaˇce sv´ıt´ı LED ˇc.1 i LED ˇc.2. V pˇr´ıpadˇe, ˇze nastalo v´ ykonov´e pˇret´ıˇzen´ı v´ ystupu zesilovaˇce rozsv´ıt´ı se LED ˇc.2 a LED ˇc.1 zhasne. Posledn´ı funkˇcn´ı ˇc´ast´ı jsou dva stabilizovan´e napˇet’ov´e zdroje. Prvn´ı napˇet’ov´ y zdroj, na jehoˇz v´ ystupu je +15 V DC, slouˇz´ı k nap´ajen´ı obvodu L6203 a druh´ y zdroj, jehoˇz v´ ystupn´ı napˇet´ı je +5 V DC, slouˇz´ı k nap´ajen´ı mikrokontrol´eru PIC16F84 a optoˇclen˚ u 6N137.
2.3.3
Proudov´ e sn´ımaˇ ce
Proudov´e sn´ımaˇce (obr.2.11) jsou jedn´ım z nejd˚ uleˇzitˇejˇs´ıch prvk˚ u zpˇetn´e vazby modelu ˇzeleznice. Poskytuj´ı totiˇz informaci o tom, kter´ y u ´sek kolejiˇstˇe je obsazen a kter´ y nen´ı. V modelu ˇzeleznice bylo pouˇzito celkem 54 proudov´ ych sn´ımaˇc˚ u. Kaˇzd´ y sledovan´ y u ´sek kolejiˇstˇe m´a svoji vnˇejˇs´ı kolej elektricky izolovanou od sousedn´ıho u ´seku. Kaˇzd´a tato vnˇejˇs´ı kolej je extra nap´ajena z DCC zesilovaˇce pˇres dva p´ary usmˇerˇ novac´ıch diod, kter´e jsou v˚ uˇci sobˇe antiparalelnˇe zapojeny. Pokud napˇr. lokomotiva vjede do hl´ıdan´eho u ´seku, uzavˇre se pˇres motor elektrick´ y obvod tvoˇren´ y motorem lokomotivy, kolejemi, sn´ımac´ımi usmˇerˇ novac´ımi diodami a DCC zesilovaˇcem. Na sn´ımac´ıch usmˇerˇ novac´ıch diod´ach vznikne u ´bytek napˇet´ı. Paralelnˇe k tˇemto usmˇerˇ novac´ım diod´am je pˇripojen vstup optoˇclenu TLP627-4, kter´ y
KAPITOLA 2. STAVBA MODELU
15
pˇri vzniku u ´bytku napˇet´ı na usmˇerˇ novac´ıch diod´ach sepne sv˚ uj v´ ystupn´ı tranzistor. Sepnut´ım v´ ystupn´ıho tranzistoru optoˇclenu se na vstup sbˇernicov´eho budiˇce 74HCT541 pˇrivede napˇet´ı +5 V znamenaj´ıc´ı log.1.
Obr´azek 2.11: Sch´ema proudov´eho sn´ımaˇce Vzhledem k vysok´emu poˇctu pouˇzit´ ych sn´ımaˇc˚ u v modelu ˇzeleznice byly proudov´e sn´ımaˇce rozdˇeleny do skupin po osmi sn´ımaˇc´ıch. Kaˇzd´a skupina sn´ımaˇc˚ u je na jedn´e desce, kter´a je pˇripojena paraleln´ı sbˇernic´ı k centr´aln´ı ˇr´ıdic´ı jednotce a z´aroveˇ n je z n´ı nap´ajena. Jeden proudov´ y sn´ımaˇc se skl´ad´a ze tˇr´ı ˇc´ast´ı, sn´ımac´ı ˇc´asti: pˇrevodn´ı ˇc´asti a v´ ystupn´ı ˇc´asti. Sn´ımac´ı ˇc´ast je tvoˇrena dvojic´ı p´aru antiparalelnˇe zapojen´ ych usmˇerˇ novac´ıch diod 1N5408, na kter´ ych pˇri pr˚ uchodu proudu vznik´a u ´bytek napˇet´ı cca 1,2 − 1,4 V. K tˇemto antiparalelnˇe zapojen´ ym usmˇerˇ novac´ım diod´am je paralelnˇe pˇres rezistor 39 Ω pˇripojen vstup optoˇclenu TLP627-4. Vstup toho optoˇclenu tvoˇr´ı dvˇe antiparalelnˇe zapojen´e LED diody, kter´ ymi prot´ek´a proud cca 20 mA. Maxim´aln´ı propustn´ y proud usmˇerˇ novac´ımi diodami 1N5408 je 3 A a u ´bytek napˇet´ı na jedn´e usmˇerˇ novac´ı diodˇe pˇri tomto proudu je 1,5 V . Pokud by poˇzadovan´ y propustn´ y proud usmˇern ˇovac´ımi diodami byl vˇetˇs´ı, lze tyto usmˇerˇ novac´ı diody zamˇenit za jin´ y v´ ykonˇejˇs´ı typ. Pˇrevodn´ı ˇc´ast se skl´ad´a z optoˇclenu a RC ˇcl´anku pˇripojen´eho na v´ ystup optoˇclenu. Kdyˇz vstupem optoˇclenu zaˇcne prot´ekat proud cca 20 mA, sepne se v´ ystupn´ı tranzistor optoˇclenu. Protoˇze vstupn´ı napˇet´ı m´a obd´eln´ıkov´ y pr˚ ubˇeh a proch´az´ı obˇema polaritami, doch´az´ı na v´ ystupu ke kmit´an´ı v´ ystupn´ıho napˇet´ı optoˇclenu. Toto kmit´an´ı je nepˇr´ıpustn´e. Mohlo by se totiˇz st´at, ˇze pˇresnˇe v momentu, kdy bude napˇet´ı na sn´ımac´ıch usmˇerˇ novac´ıch diod´ach proch´azet nulou, bude se odeˇc´ıtat hodnota na v´ ystupu sn´ımaˇce. Odeˇc´ıtan´a hodnota bude v tento moment log.0, protoˇze u ´bytek napˇet´ı na sn´ımac´ıch usmˇerˇ novac´ıch diod´ach bude nulov´ y a vstupem optoˇclenu nepoteˇce ˇz´adn´ y proud. N´asledkem toho bude v´ ystup optoˇclenu zavˇren´ y a vstup sbˇernicov´eho budiˇce bude uzemˇen pˇres rezistor na zem. Proto je na v´ ystup d´an jeˇstˇe kon-
KAPITOLA 2. STAVBA MODELU
16
denz´ator 50 µF , kter´ y vyfiltruje tyto kmity a zabezpeˇc´ı tak log.1 po celou dobu, kdy ˇ na sn´ımac´ıch usmˇerˇ novac´ıch diod´ach je u ´bytek napˇet´ı. Casov´ a konstanta RC ˇcl´anku je 5 ms. V´ ystupn´ı ˇc´ast´ı proudov´eho sn´ımaˇce je sbˇernicov´ y budiˇc 74HCT541, jehoˇz v´ ystup je tˇr´ıstavov´ y tj. log.0 , log.1 a stav vysok´e impedance. Log.0 je reprezentov´ana napˇet´ım do 0,8 V a log.1 napˇet´ım od 3,5 V - 5 V . Vˇsech osm proudov´ ych sn´ımaˇc˚ u je pˇripojeno pˇres sbˇernicov´ y budiˇc na paraleln´ı sbˇernici o ˇs´ıˇrce 8 bit˚ u. K paraleln´ı sbˇernici je pˇripojeno celkem sedm desek proudov´ ych sn´ımaˇc˚ u. V´ ybˇer, ze kter´e desky se budou ˇc´ıst v´ ystupy proudov´ ych sn´ımaˇc˚ u se prov´ad´ı pomoc´ı multiplexeru 74HCT154, kter´ y bud’ pˇripoj´ı v´ ystup sbˇernicov´eho budiˇce ke sbˇernici nebo ho odpoj´ı tj. ho uvede do stavu vysok´e impedance. Frekvence pˇripojov´an´ı jednotliv´ ych desek ke sbˇernici je cca 100 µs.
2.3.4
Ovl´ ad´ an´ı v´ yhybek
Deska ovl´ad´an´ı v´ yhybek je principi´alnˇe velice jednoduch´a. Skl´ad´a se ze vstupnˇev´ ystupn´ıho expand´eru PCF8574P, kter´ y pˇres galvanick´e oddˇelen´ı ovl´ad´a v´ ystupn´ı rel´e. Rel´e sv´ ym sepnut´ım ˇci rozepnut´ım kontakt˚ u pak pˇrivede bud’ kladnou nebo z´apornou polaritu napˇet´ı na vstup pˇrestavn´ık˚ u v´ yhybek. Sch´ema desky ovl´adan´ı v´ yhybek je uvedeno v pˇr´ıloze A na str.4. Ovl´ad´an´ı v´ yhybek funguje tak, ˇze centr´aln´ı ˇr´ıdic´ı jednotka po sbˇernici I 2 C poˇsle pˇr´ıkaz vstupnˇe-v´ ystupn´ımu expand´eru PCF8574AP, kter´e v´ ystupy m´a nastavit do stavu log.1 a kter´e do stavu log.0. Nastaven´ım v´ ystupu expand´eru do stavu log.1 nastane situace, kdy vstup optoˇclenu TLP627-4 je pˇripojen mezi v´ ystupn´ı napˇet´ı expand´eru a nap´ajec´ı napˇet´ı +5 V . Protoˇze v´ ystupn´ı napˇet´ı expand´eru je +5 V , vstupem optoˇclenu neproch´az´ı ˇz´adn´ y proud a v´ ystup optoˇclenu a rel´e jsou v z´akladn´ı pozici. Nastaven´ım v´ ystupu expand´eru do stavu log.0 zaˇcne vstupem optoˇclenu proch´azet proud, protoˇze vstup optoˇclenu je sepnut´ım v´ ystupn´ıho tranzistoru expand´eru pˇripojen mezi nap´ajec´ı napˇet´ı +5 V a zem. Proud prot´ekaj´ıc´ı vstupem optoˇclenu je omezen rezistorem na cca 10 mA. Pr˚ uchodem proudu vstupem optoˇclenu se sepne v´ ystupn´ı tranzistor optoˇclenu a t´ım zaˇcne c´ıvkou rel´e proch´azet proud. C´ıvka sepne rel´eov´e kontakty a zmˇen´ı polaritu napˇet´ı na pˇrestavn´ıku v´ yhybky a t´ım polohu v´ yhybky. V´ ystupn´ım tranzistorem optoˇclenu proch´az´ı proud 50 mA, kter´ y je dan´ y pouze odporem c´ıvky rel´e. V´ ykonov´a ztr´ata na v´ ystupn´ım tranzistoru optoˇclenu nen´ı zanedbateln´a, ale nevyˇzaduje v laboratorn´ıch podm´ınk´ach ˇz´adn´e pˇr´ıdavn´e chlazen´ı. Kontakty rel´e jsou dimenzov´any aˇz na proud 10 A, ale tento proud jimi nebude kromˇe zkratu prot´ekat. Pˇri norm´aln´ı provozu pˇrestavn´ık˚ u je nejvyˇsˇs´ı moˇzn´ y proud 1 A a to v pˇr´ıpadˇe, ˇze motorek pˇrestavn´ıku bude zabrˇzdˇen a nebude
KAPITOLA 2. STAVBA MODELU
17
se moci roztoˇcit. Deska ovl´ad´an´ı v´ yhybek m´a dvˇe nez´avisl´a nap´ajen´ı. Prvn´ı nap´ajec´ı napˇet´ı je +5 V , kter´e je pˇrivedeno z centr´aln´ı ˇr´ıdic´ı jednotky. T´ımto napˇet´ım je nap´ajen expand´er PCF8574P a vstupn´ı ˇc´ast optoˇclenu TLP627-4. Celkov´ y maxim´aln´ı odb´ıran´ y proud je cca 200 mA. Pˇri tomto proudu jsou vˇsechny v´ ystupy expand´eru ve stavu log.0. Druh´ ym nap´ajec´ım napˇet´ım je +12 V , kter´e slouˇz´ı k nap´ajen´ı rel´eov´ ych c´ıvek a pˇrestavn´ık˚ u v´ yhybek. Celkov´ y odeb´ıran´ y proud ze zdroje +12 V je z´avisl´ y na poˇctu sepnut´ ych rel´e a na momentu, jestli se nˇekter´a z v´ yhybek nepˇrestavuje. Maxim´aln´ı pr˚ umˇern´ y namˇeˇren´ y proud pˇri pˇrestavov´an´ı vˇsech v´ yhybek byl 5 A.
2.3.5
Semafory
V modelu ˇzeleznice je pouˇzito celkem 12 semafor˚ u, kter´e maj´ı ˇctyˇri svˇetla. Vˇzdy jedna dvojice semafor˚ u je ovl´ad´ana jedn´ım vstupnˇe-v´ ystupn´ımi expand´erem PCF8574P. Kaˇzd´e svˇetlo je reprezentov´ano jednou LED diodou, ktr´er´a je pˇripojena pˇres ochrann´ y rezistor mezi nap´ajec´ı napˇet´ı expand´eru a v´ ystup expand´eru. Maxim´aln´ı proud diodou je cca 2mA. Komunikace mezi centr´aln´ı ˇr´ıdic´ı jednotkou a deskou ovl´ad´an´ı semafor˚ u prob´ıh´a po sbˇernici I 2 C. Nap´ajen´ı semafor˚ u se prov´ad´ı pˇr´ımo z centr´aln´ı ˇr´ıdic´ı jednotky, kde je um´ıstˇen stabilizovan´ y zdroj +5V slouˇz´ıc´ı pr´avˇe pro nap´ajen´ı periferi´ı pˇripojen´ ych k centr´aln´ı ˇr´ıdic´ı jednotce.
2.3.6
Nap´ ajen´ı modelu ˇ zeleznice
Protoˇze model se nach´az´ı v laboratoˇri bylo rozhodnuto, ˇze se vyuˇzije napˇet’ov´ ych zdroj˚ u um´ıstˇen´ ych ve stolech, kter´e jsou v laboratoˇri. Model je tedy nap´ajen stejnosmˇern´ ym napˇet´ımi +15V , +12V a +24V .
Kapitola 3 Programov´ an´ı PIC16F84 3.1
Programov´ an´ı PIC16F84
Tato kapitola je vˇenov´ana popisu programu, kter´ y je v mikrokontrol´eru PIC16F84 um´ıstˇen´em v DCC zesilovaˇci. Kromˇe popisu programu jsou tu uvedeny i potˇrebn´e informace k jeho naps´an´ı. K naprogramov´an´ı mikrokontrol´eru PIC16F84 byl pouˇzit program´ator PICCOLO od firmy ASIX a programovac´ı prostˇred´ı UIP od firmy Microchip. Kompletn´ı informace o mikrokontrol´eru PIC16F84 jsou uvedeny v katalogov´em listu uloˇzen´em na CD, kter´e je souˇc´ast´ı t´eto diplomov´e pr´ace. Na CD je rovnˇeˇz uloˇzeno i programovac´ı prostˇred´ı UIP.
3.1.1
Mikrokontrol´ er PIC16F84
Mikrokontrol´er PIC16F84 je vhodn´ y pouze na jednoduch´e funkce jako je generov´an´ı PWM sign´alu, ˇcasovac´ı funkce nebo pro s´eriovou komunikaci. M´a 13 vstupnˇe v´ ystupn´ıch pin˚ u, kde kaˇzd´ y pin lze nakonfigurovat bud’ jako vstup nebo v´ ystup a to z´apisem do registru T risa u portu A a u portu B do registru T risb. Pamˇet’ mikrokontrol´eru je rozdˇelena na pamˇet’ programu a na pamˇet’ dat. Pamˇet’ programu, kter´a je typu FLASH, m´a velikost 1 kB. Pamˇet’ dat je d´ale rozdˇelena na pamet’ typu RAM a pamˇet’ typu EEPROM. Pamˇet’ RAM slouˇz´ı k doˇcasn´emu ukl´adan´ı dat, tj. kdyˇz dojde k v´ ypadku nap´ajec´ıho napˇet´ı, ztrat´ı se vˇsechna data. Pamˇet’ typu EEPROM se pouˇz´ıv´a k trval´emu uloˇzen´ı dat tj. kdyˇz dojde k v´ ypadku dat, tak se vˇsechna uloˇzen´a data uchovaj´ı v pamˇeti. Velikost pamˇeti RAM je 68 B a velikost pamˇeti EEPROM je 64 B. Maxim´aln´ı hodinov´ y kmitoˇcet mikrokontrol´eru je 10MHz, ale v zapojen´ı DCC zesilovaˇce je hodinov´ y kmitoˇcet 4MHz. D´elka jednoho strojov´eho cyklu je rovna 1/4 pˇrevr´acen´e hodnoty hodinov´eho kmitoˇctu. Pˇri kmitoˇctu 4MHz je d´elka strojov´eho cyklu rovna 1 µs. U mikrokontrol´eru se vyskytuje operaˇcn´ı registr, kter´ y je oznaˇcov´an p´ısmen W . Pˇres tento registr, kter´ y nem´a definovanou
18
´ ´I PIC16F84 KAPITOLA 3. PROGRAMOVAN
19
adresu, se prov´adˇej´ı veˇsker´e aritmeticko-logick´e operace a pˇresuny dat mezi registry a pamˇet´ı a opaˇcnˇe. Velice d˚ uleˇzitou souˇc´ast´ı mikrokrontrol´eru je registr Status, kde se uchov´avaj´ı pˇr´ıznaky charakterizuj´ıc´ı stav programu. D´ale mikrokontrol´er obsahuje jeden watchdog a jeden ˇcasovaˇc TMR0. Protoˇze ˇcasovaˇc TMR0 je pouze 8-bitov´ y, je souˇc´ast´ı mikrokontrol´eru pˇreddˇeliˇcka hodinov´eho kmitoˇctu, kter´a se nech´a bud’ pˇripojit pˇred ˇcasovaˇc nebo pˇred watchdog.
3.1.2
Programov´ an´ı PIC16F84
Program v mikrokontrol´eru PIC16F84 slouˇz´ı k hl´ıdan´ı pˇr´ıtomnosti DCC sign´alu na vstupu DCC zesilovaˇce. V pˇr´ıpadˇe, ˇze na vstupu zesilovaˇce nen´ı pˇr´ıtomen pulsn´ı sign´al s minim´aln´ı frekvenc´ı 1kHz, mikrokontrol´er zmˇen´ı stav pinu RB3 z log.1 na log.0 a t´ım odpoj´ı v´ ystup m˚ ustkov´eho zesilovaˇce L6023 od nap´ajec´ıho napˇet´ı. Tento stav je signalizov´an dvojic´ı LED, kter´e jsou rozsv´ıceny. D´ale program slouˇz´ı k odpojen´ı v´ ystupu zesilovaˇce v pˇr´ıpadˇe, ˇze v´ ystup zesilovaˇce je v´ ykonovˇe pˇret´ıˇzen. Tento stav je opˇet signalizov´an dvojic´ı LED, pˇriˇcemˇz LED ˇc.2 je rozsv´ıcena a LED ˇc.1 je zhasnuta. V pˇr´ıpadˇe, ˇze DCC zesilovaˇc pracuje spr´avnˇe, je rozsv´ıcena LED ˇc.1 a LED ˇc.2 je zhasnuta. Pokud na vstupu DCC zesilovaˇce nen´ı sign´al, jsou rozsv´ıceny obˇe dvˇe LED diody. Vzhledem k tomu, ˇze program v mikrokontrol´eru vyuˇz´ıv´a pˇreruˇsen´ı od n´abˇeˇzn´e hrany na pinu RB0, bude nejdˇr´ıve pops´an zp˚ usob obsluhy pˇreruˇsen´ı a jeho povolen´ı. Pokud nastane situace, kter´a vyvol´a pˇreruˇsen´ı, mikrokontrol´er provede rozpracovanou instrukci. Potom si uloˇz´ı do z´asobn´ıku adresu moment´aln´ıho m´ısta v programu, kde se zrovna nach´az´ı, a skoˇc´ı na adresu 0x04h v pamˇeti programu. Na t´eto adrese se nach´az´ı poˇc´atek programu, kter´ y obsluhuje vznikl´e pˇreruˇsen´ı. Pˇri pˇrechodu mikrokontrol´eru na obsluhu ud´alosti, jeˇz vyvolala pˇreruˇsen´ı, se neuchov´av´a obsah pracovn´ıho registru W a registru Status. Proto je nutn´e hned na zaˇc´atku programu obsluhuj´ıc´ıho pˇreruˇsen´ı si obsah tˇechto registr˚ u uchovat v pamˇeti dat jak ukazuje n´ıˇze uveden´a ˇc´ast k´odu. INTSIG movwf MEM_W movf
STATUS,W
movwf MEM_STAT . Vzhledem k tomu, ˇze mikrokontrol´er m´a pouze jednu adresu, na kterou pˇrech´az´ı v pˇr´ıpadˇe vzniku jak´ehokoliv pˇreruˇsen´ı, je d´ale nutn´e na zaˇc´atku urˇcit o jak´ y typ pˇreruˇsen´ı se jedn´a tj. mus´ı se pomoc´ı test˚ u jednotliv´ ych bitu v registru Intcon
´ ´I PIC16F84 KAPITOLA 3. PROGRAMOVAN
20
zjistit, kter´a ud´alost vyvolala pˇreruˇsen´ı a tuto ud´alost zpracovat. Prioritu ud´alost´ı si program´ator stanovuje s´am, podle toho v jak´em sledu seˇrad´ı testovac´ı podm´ınky jednotliv´ ych bit˚ u. Na konci obsluhy pˇreruˇsen´ı se mus´ı opˇet vr´atit uschovan´ y obsah registr˚ u W a ST AT U S z doby pˇred pˇreruˇsen´ım do registr˚ u W a ST AT U S, coˇz se provede n´asleduj´ıc´ım k´odem. . movf
MEM_STAT,W
movwf STATUS swapf MEM_W,F swapf MEM_W,W retfie Program v mikrokontrol´eru vyuˇz´ıv´a obsluhy pˇreruˇsen´ı vyvolan´e n´abˇeˇznou hranou na pinu RB0. Toto pˇreruˇsen´ı se nastav´ı pomoc´ı nˇekolika d˚ uleˇzit´ ych bit˚ u v registrech Option reg a Intcon. V registru Option reg nastav´ıme bit 6 na hodnotu log.1, tj. bude povoleno pˇreruˇsen´ı od n´abˇeˇzn´e hrany na pinu RB0. V registru INTCON nastav´ıme bity GIE, INTE na hodnotu log.1. Pˇri inicializaci je nutn´e bit INTF v registru Intcon vynulovat. Ostatn´ı bity registru Intcon, kter´e se net´ ykaj´ı pˇreruˇsen´ı od n´abˇeˇzn´e hrany, se taky vynuluj´ı, protoˇze jejich funkce nejsou v programu pouˇzity. Vlastn´ı program se skl´ad´a z inicializace, hlavn´ı programov´e smyˇcky a z pˇreruˇsen´ı. Pˇri inicializaci se porty A a B vynuluj´ı. Piny RB0, RB1, RB6 a RB7 portu B se nastav´ı z´apisem hodnoty 0x63h do registru T risb jako vstupy. Ostatn´ı piny portu B jsou nastaveny jako v´ ystupy. Piny portu A se nastav´ı z´apisem hodnoty 0x00 do registru T risa jako v´ ystupy. D´ale se v inicializaci nastaven´ım pˇr´ısluˇsn´ ych bit˚ u registrech Option reg a Intcon nastav´ı a inicializuje pˇreruˇsen´ı od n´abˇeˇzn´e hrany na pinu RB0. Hlavn´ı program je tvoˇren smyˇckou, kter´a se vykon´av´a neust´ale dokola. Bˇehem n´ı se testuje pin RB3 na portu B a bity v pamˇet’ov´e registru Intb. V pˇr´ıpadˇe pozitivn´ıho testu se odskoˇc´ı na obslouˇzen´ı dan´eho stavu, kter´ y je reprezentov´an pozitivn´ım testem. V pamˇet’ov´em registru Intb se testuje zda bit 0 nen´ı ve stavu log.0. Pokud je bit je ve stavu log.0, tak je vˇse v poˇr´adku, protoˇze na pinu RB0 se objevila n´abˇeˇzn´a hrana od doby posledn´ı kontroly. Mikrokontrol´er pˇreskoˇc´ı n´asleduj´ıc´ı instrukci a neguje testovan´ y bit. V pˇr´ıpadˇe, ˇze se tak nestalo, je bit v log.1 a to zp˚ usob´ı odskok na rozsv´ıcen´ı obou LED na pinech RB3 a RB4. Vynulovan´ı bitu 0 v registru Intb se prov´ad´ı v obsluze pˇreruˇsen´ı, kter´e vzniklo na z´akladˇe n´abˇeˇzn´e hrany na pinu RB0.
Kapitola 4 Programov´ an´ı PIC16F877 4.1
Mikrokontrol´ er PIC16F877
Z hlediska hardwaru byl mikrokontrol´er jiˇz pops´an v kapitole 2.3.1.2. Mikrokontrol´er PIC16F877 byl programov´an pomoc´ı program´atoru MPLAB-ICD od firmy ASIX a v´ yvojov´eho prostˇred´ı MPLAB 5.7. V´ yvojov´e prostˇred´ı je uloˇzeno na CD, kter´e je souˇc´ast´ı diplomov´e pr´ace.
4.2
Programov´ an´ı PIC16F877
V programu se vyuˇz´ıv´a pˇreruˇsen´ı, asynchronn´ı s´eriov´e komunikace a s´eriov´e synchronn´ı komunikace po sbˇernici I 2 C. Princip obsluhy pˇreruˇsen´ı je stejn´ y jako u mikrokontrol´eru PIC16F84.
4.2.1
Organizace pamˇ eti RAM
Velikost pamˇeti RAM je 368B, ale tato pamˇet’ nejde adresovat cel´a najednou. Proto je datov´a pamˇet’ rozdˇelena do ˇctyˇr registrov´ ych bank v nichˇz jsou jiˇz jednotliv´a pamˇet’ov´a m´ısta pˇr´ımo adresovateln´e. Pomoc´ı bitu RP1 a RP0 v registru Status se urˇc´ı, kter´a registrov´a banka se bude adresovat. Protoˇze je nutn´e, aby nˇekter´e ˇr´ıdic´ı registry byly pˇr´ıstupn´e bez nutnosti pˇrep´ınat registrov´e banky, maj´ı tyto registry nˇekolik absolutnˇe adresovateln´ ych adres.
4.2.2
Nepˇ r´ım´ e adresov´ an´ı
K pˇr´ıstupu do pamˇet’i dat typu RAM lze kromˇe pˇr´ım´eho adresovan´ı pouˇz´ıt i nepˇr´ım´e adresov´an´ı. K nepˇr´ım´emu adresov´an´ı se pouˇz´ıvaj´ı dva registry - registr Indf a F sr a bit 7 v registru Status. Registr Indf je fiktivn´ı tj. nelze ho nijak adresovat.
21
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
22
Prostˇrednictv´ım registru Indf se zapisuje hodnota do pamˇet’ov´eho m´ısta dan´eho obsahem registru F sr a bitem 7 v registru Status (viz. n´asleduj´ıc´ı ˇc´ast k´odu). Stejn´ y zp˚ usobem se i ˇcte hodnota z pamˇeti. MOVLW
0x20
;pocatecni adresa v pameti dat
MOVWF
FSR
;vlozeni do FSR
CLRFR
INDF
;nulovani pameti
INCF
FSR,F
;inkrementace FSR
BTFSS
FSR,4
;test 4.bitu FSR
GOTO
NEXT
NEXT
CONTINUE .
4.2.3
Konfigurace pˇ reruˇ sen´ı
Poˇc´ateˇcn´ı adresa programu obsluhuj´ıc´ı pˇreruˇsen´ı je 0x04h. Povolen´ı pˇreruˇsen´ı se provede nastaven´ım bitu GIE v registru Intcon na hodnotu log.1. D´ale se je nutn´e povolit pˇreruˇsen´ı periferi´ı, coˇz se provede nastaven´ım log.1 v bitu PEIE v registru Intcon. bsf INTCON,GIE bsf INTCON, PEIE
4.2.4
Konfigurace USART
Pˇred konfigurac´ı asynchronn´ıho s´eriov´eho pˇrenosu zn´ameho pˇredevˇs´ım jako RS232 je vhodn´e vˇedˇet, v jak´em form´atu vys´ılaˇc pˇr´ıjm´a data a jakou rychlost´ı. V pˇr´ıpadˇe modelu ˇzeleznice komunikace prob´ıh´a ve form´atu 1 start-bit, 8 datov´ ych bit˚ u, 1 stop-bit a bez parity. Rychlost pˇrenosu je 9600 baud/s. Z urˇcen´e rychlosti pˇrenosu ˇ se podle tabulky v katalogov´em listu urˇc´ı hodnota ˇcasovaˇce. Casovaˇ c slouˇz´ı k urˇcen´ı rychlosti vys´ıl´an´ı bitu po s´eriov´e lince. V pˇr´ıpadˇe modelu ˇzeleznice je to hodnota 0x81h a tato hodnota se zap´ıˇse do registru Spbrg. D´ale je nutn´e nastavit vys´ıl´an´ı dat. Z´apisem hodnoty 0x24h do registru T xsta se nastav´ı osmibitov´a ˇs´ıˇrka dat, asynchronn´ı vys´ıl´an´ı, povol´ı se vys´ıl´an´ı a inicializuje se vys´ılac´ı buffer. Po nastaven´ı vys´ılan´ı se nastav´ı pˇrij´ımaˇc asynchronn´ıho s´eriov´eho kan´alu. Z´apisem hodnoty 0x90h do registru Rcsta se povol´ı pˇr´ıjem a vys´ıl´an´ı dat na pinech RC6 a RC7, nastav´ı se pˇr´ıjem osmi datov´ ych bit˚ u, povol´ı se kontinu´aln´ı pˇr´ıjem dat po s´eriov´e lince a inicializuje se pˇrij´ımaˇc. Jelikoˇz lze dokonˇcen´ım pˇr´ıjmu dat ze s´eriov´e linky ˇci ukonˇcen´ım vys´ıl´an´ı dat na s´eriovou linku vyvolat pˇreruˇsen´ı, mus´ı se nastavit jeˇstˇe bity TXIE
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
23
a RCIE v registru P ie1. Bit TXIE se nastav´ı do stavu log.0, protoˇze se nepouˇz´ıv´a pˇreruˇsen´ı k vys´ılan´ı dat po s´eriov´e lince a bit RCIE se nastav´ı na hodnotu log. 1, protoˇze se pouˇz´ıv´a pˇreruˇsen´ı vznikaj´ıc´ı pˇr´ıjmem 1B dat. Pokud by se nepouˇz´ıvalo pˇreruˇsen´ı u pˇrijmu dat, doˇslo by bud’ k zablokov´an´ı cel´eho ˇr´ızen´ı modelu nebo by doˇslo ke ztr´atˇe dat pˇri pˇrenosu z nadˇr´ızen´eho syst´emu, coˇz nen´ı pˇr´ıpustn´e.
4.2.5
movlw
0x81
; nastaveni rychlosti - 9600 Baud
movwf
SPBRG
;
movlw
0x24
;
movwf
TXSTA
;
bcf
STATUS,RP0
; nastaveni registrove banky 0
movlw
0x90
; nastaveni prijimani
movwf
RCSTA
;
bsf
STATUS,RP0
; nastaveni prvni registrove banky
bcf
PIE1,TXIE
; zakazani preruseni vysilani
bsf
PIE1,RCIE
; povoleni preruseni prijimani
bsf
INTCON,GIE
;
bsf
INTCON,PEIE
; povoleni periferijni preruseni
bcf
STATUS,RP0
;
nastaveni vysilani
Konfigurace I 2 C
Sbˇernice I 2 C (Inter Integrated Circuit) je dvouvodiˇcovou s´eriovou sbˇernic´ı. Tuto sbˇernici vyvinula firma Philips pro komunikaci integrovan´ ych obvod˚ u. Standardn´ı komunikaˇcn´ı rychlost je do 100kb/s. V reˇzimu fast lze dos´ahnout rychlosti aˇz 400kb/s. V reˇzimu high-speed lze dos´ahnout rychlosti aˇz 3.4Mb/s (verze 2.0). Sbˇernice se skl´ad´a ze dvou vodiˇc˚ u - SDA (Serial Data) a SCL (Serial Clock). V nejjednoduˇsˇs´ım pˇr´ıpadˇe je na sbˇernici jedno zaˇr´ızen´ı MASTER a jedno nebo v´ıce zaˇr´ızen´ı SLAVE. Zaˇr´ızen´ı, kter´e pracuje jako MASTER, ˇr´ıd´ı sbˇernici. Pokud si zaˇr´ızen´ı MASTER pˇreje zah´ajit komunikaci, vyˇsle nejprve 7-bitovou adresu c´ılov´eho zaˇr´ızen´ı a bit reˇzimu komunikace. Zaˇr´ızen´ı SLAVE poslouchaj´ı na sbˇernici. Pokud nˇekter´e zaˇr´ızen´ı SLAVE zjist´ı, ˇze byla zaˇr´ızen´ım MASTER vysl´ana jeho adresa, potvrd´ı pˇrijet´ı pomoc´ı sign´alu -ACK (pˇridrˇz´ı SDA ve stavu L) po dobu dev´at´eho hodinov´eho impulzu. Pokud je bit reˇzimu komunikace nastaven na 1, bude se ze zaˇr´ızen´ı SLAVE ˇc´ıst. V opaˇcn´em pˇr´ıpadˇe bude proveden z´apis. Na zaˇc´atku kaˇzd´e komunikace vys´ıl´a zaˇr´ızen´ı MASTER start sekvenci. Na konci komunikace potom zaˇr´ızen´ı MASTER vyˇsle stop sekvenci. Stav vodiˇce SDA je moˇzn´e mˇenit pouze tehdy, pokud je vodiˇc SCL ve stavu L. Pokud je vodiˇc SCL ve stavu H, povaˇzuje se stav na vodiˇci SDA za platn´a data. V´ yjimku z tohoto pravidla tvoˇr´ı
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
24
pouze start sekvence a stop sekvence. Zaˇr´ızen´ı jsou na sbˇernici pˇripojena pomoc´ı elektronick´ ych. obvod˚ u v zapojen´ı ´ open-collector. Uroveˇ n H je na sbˇernici v klidov´em stavu tvoˇrena up´ınac´ımi rezistory, kter´e jsou pˇripojeny na nap´ajec´ı napˇet´ı. To znamen´a, ˇze kter´ekoliv zaˇr´ızen´ı m˚ uˇze ovlivˇ novat stav na vodiˇc´ıch SDA a SCL bez nebezpeˇc´ı zniˇcen´ı jin´eho zaˇr´ızen´ı. T´eto pˇrednosti se tak´e vyuˇz´ıv´a pro ˇr´ızen´ı toku dat. Pokud dojde pˇri komunikaci dvou zaˇr´ızen´ı k tomu, ˇze jedno zaˇr´ızen´ı je zanepr´azdnˇeno a nem˚ uˇze pokraˇcovat v komunikaci, pˇridrˇz´ı stav vodiˇce SCL na u ´rovni L a t´ım signalizuje stav wait. Komunikace je pozastavena a pokraˇcuje se aˇz po uvolnˇen´ı vodiˇce SCL. V klidov´em stavu je na sbˇernici napˇet´ı +5 V . Komunikace na sbˇernici I 2 C se zah´aj´ı start podm´ınkou (obr. 4.1), kdy se sign´al SCL ponech´a na napˇet´ı +5 V a provede se staˇzen´ı sign´alu SDA k nule, nakonec se st´ahne k nule i sign´al SCL.
Obr´azek 4.1: Poˇc´ateˇcn´ı podm´ınka komunikace na sbˇernici I 2 C Komunikace na sbˇernici I 2 C se ukonˇc´ı nastaven´ı sign´alu SDA na +5 V pˇri nastaven´em sign´alu SCL na +5 V (obr. 4.2). Nˇekter´e obvody funguj´ı i kdyˇz se stop podm´ınka nepouˇz´ıv´a.
Obr´azek 4.2: Koncov´a podm´ınka komunikace na sbˇernici I 2 C Samotn´ y pˇrenos dat (obr. 4.3) prob´ıh´a tak, ˇze 8bitov´a data se pˇren´aˇs´ı od nejv´ yznamnˇejˇs´ıho bitu k nejm´enˇe v´ yznamn´emu. Stav sign´alu SDA se sm´ı mˇenit pouze pokud je sign´al SCL v nule. Nastaven´ı sign´alu SCL oznamuje obvodu platnost dat. Pˇri ˇcten´ı ze sbˇernice I 2 C se sign´al SDA nastav´ı na +5 V a data se naˇc´ıtaj´ı pˇri nastaven´em sign´alu SCL na +5 V . Na konci pˇrenosu kaˇzd´eho bytu se jeˇstˇe pˇrenese 9. kontroln´ı bit ACK. Vynulov´an´ım bitu ACK obvod provede potvrzen´ı pˇr´ıjmu. Pˇri pˇr´ıjmu dat nuluje tento bit ˇr´ıd´ıc´ı obvod a to v pˇr´ıpadˇe, ˇze m´a d´ale prob´ıhat komunikace mezi nadˇr´ızen´ ym a podˇr´ızen´ ym obvodem. Pokud bude po pˇr´ıjmu n´asledovat podm´ınka stop, pak se tento posledn´ı bit nastav´ı do stavu log.1.
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
25
Obr´azek 4.3: Pˇrenos jednoho bytu na sbˇernici I 2 C Ke konfiguraci modulu synchronn´ıho s´eriov´eho portu se pouˇz´ıvaj´ı registry Sspcon, Sspcon2, Sspstat a Sspadd. Zaps´an´ım hodnoty 0x18h do registru Sspcon se nastav´ı I 2 C m´od synchronn´ıho s´eriov´eho portu, kter´ y bude na sbˇernici vystupovat jako nadˇr´ızen´ y syst´em s frekvenc´ı hodinov´eho sign´alu danou n´asleduj´ıc´ım vztahem: F osc = (SSP AD + 1) ÷ 4 D´ale se v registru Sspstat vynuluj´ı pˇr´ıznaky SM P a CKE, kter´e se pouˇz´ıvaj´ı pˇri samotn´e komunikaci po sbˇernici I 2 C. Registr Sspad je ve skuteˇcnosti ˇcasovaˇc urˇcuj´ıc´ı frekvenci hodinov´eho sign´alu sbˇernice I 2 C. Z´apisem hodnoty 0x31h do registru Sspad nastav´ıme frekvenci 100kHz pˇri 20MHz kmitoˇctu mikrokontrol´eru PIC1F877. Config bcf
STATUS,RP0
; registrova banka 0
bsf
SSPCON,SSPEN
; povoleni I2C mode
bsf
SSPCON,SSPM3
; nastaveni I2C
bcf
SSPCON,SSPM2
;
bcf
SSPCON,SSPM1
;
bcf
SSPCON,SSPM0
;
bsf
STATUS,RP0
; registrova banka 1
clrf
SSPCON2
;
bcf
SSPSTAT,SMP
;
bcf
SSPSTAT,CKE
; nastaveni I2C Levels
movlw
0x31
; nastaveni
movwf
SSPADD
; 100k at 20Mhz kmitoˇ ctu
bcf
STATUS,RP0
; registrova banka 0
rychlosti I2C
return Komunikace po sbˇernici I 2 C prob´ıh´a podle dan´eho protokolu. Ke zlepˇsen´ı obsluhy komunikace po sbˇernici I 2 C byly naps´any podprogramy, kter´e zahajuj´ı komunikaci, pos´ılaj´ı potvrzen´ı pˇr´ıjmu dat a ukonˇcuj´ı komunikaci s podˇr´ızen´ ym syst´emem. Prvn´ım z tˇechto podprogram˚ u je podprogram pro zah´ajen´ı komunikace. Zah´ajen´ı komunikace se provede nastaven´ım bitu SEN v registru SSPCON2 do stavu log.1 a n´asledn´ ym ˇcek´an´ım na potvrzen´ı od podˇr´ızen´eho zaˇr´ızen´ı.
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
26
I2CStart bsf
STATUS,RP0
;registrova banka 1
bsf
SSPCON2,SEN
;inicializace START podminky
bcf
STATUS,RP0
;registrova banka 0
call
I2CWait
;cekani
return K pˇrenosu dat slouˇz´ı podprogram I2CSend. Pˇred zavol´an´ım tohoto podprogramu se naˇcte do pracovn´ıho registru W jeden byte pos´ılan´ ych dat. Zavolan´ y podprogram pˇresune obsah pracovn´ıho registru W do vys´ılac´ıho bufferu Sspbuf . T´ımto pˇresunem je hardwarovˇe inicializov´ano vys´ıl´an´ı dat. Odesl´an´ı obsahu bufferu je potom signalizov´ano nastaven´ım bitu SSP IF v registru P ir1 do stavu log.1. Tento pˇr´ıznak je nutn´e softwarovˇe mazat, aby mohl byt vys´ılac´ı buffer opˇetovnˇe pouˇzit. I2CSend movwf
SSPBUF
;presun do SSPBUF
btfss
PIR1,SSPIF
;cekani na odeslani
goto
$-1
;
bcf
PIR1,SSPIF
;cekani na potvrzeni
return Pro pˇr´ıjem dat ze sbˇernice I 2 C slouˇz´ı podprogram I2CReceive. V podprogramu se nejdˇr´ıve provede test na skonˇcen´ı vys´ılan´ı dat, kter´e by jeˇste v dobˇe pˇrij´ım´an´ı mohly b´ yt ve vys´ılac´ım bufferu. K pˇrij´ıman´ı a vys´ılan´ı se totiˇz pouˇz´ıv´a stejn´ y registr Sspbuf . Po u ´spˇeˇsn´em testu tj. nen´ı nic ve vys´ılac´ım bufferu, se povol´ı pˇr´ıjem dat nastaven´ım bitu RCEN do stavu log.1 a ˇcek´a se do doby neˇz bude pˇrij´ımac´ı buffer Sspbuf naplnˇen pˇr´ıchoz´ımi daty. Naplnˇen´ı pˇrij´ımac´ıho bufferu je signalizov´ano nastaven´ım bitu SSPIF do stavu log.1, kter´ y je potom nutn´e softwarovˇe nulovat. Podprogram nakonec vyzvedne obsah pˇrij´ımac´ıho bufferu a zap´ıˇse ho do pamˇeti. I2CReceive bsf
STATUS, RP0
; registrova banka 1
btfsc
SSPSTAT,2
; test na stav vysilani
goto
$-1
;
bsf
SSPCON2, RCEN
; povoleni prijimu dat
bcf
STATUS, RP0
; registrova banka 0
call
I2CWait
; cekani
movf
SSPBUF,0
; vyzvednuti dat z SSPBUF
movwf
TMP_SSPBUF
;
return
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
27
K ukonˇcen´ı komunikace na sbˇernici slouˇz´ı podprogram I2CStop, kter´ y nastaven´ım bitu P EN v registru Sspcobn2 do stavu log.1 vygeneruje ukonˇcen´ı komunikace. I2CStop bsf
STATUS,RP0
;registrova banka 1
bsf
SSPCON2,PEN
;generovani STOP komunikace
bcf
STATUS,RP0
;registrova banka 0
call
I2CWait
;cekani
return V nˇekter´ ych pˇr´ıpadech m˚ uˇze doj´ıt k uv´aznut´ı komunikace na sbˇernici a pro tento stav je pˇripraven podprogram I2CRestart, kter´ y provede reinicilizaci komunikace. Podprogram je stejn´ y jako podprogram pro inicializaci komunikace, pouze se liˇs´ı v tom, ˇze nastavuje do stavu log.1 v registru Sspcon2 bit RSEN m´ısto bitu SEN . I2CRestart bsf
STATUS,RP0
;registrova banka 1
bsf
SSPCON2,RSEN
;inicializace START podminky
bcf
STATUS,RP0
;registrova banka 0
call
I2CWait
;cekani
return Protoˇze komunikace po sbˇernici I 2 C je komunikac´ı potvrzovanou, jsou vytvoˇreny i podprogramy pro pos´ıl´an´ı potvrzen´ı pˇri pˇr´ıjmu dat. I2CAck bsf
STATUS,RP0
;registrova banka 1
bcf
SSPCON2,ACKDT
;nastaveni
bsf
SSPCON2,ACKEN
;poslani ACK
bcf
STATUS,RP0
;registrova banka
call I2CWait
ACK 0
;cekani
return I2CNak bsf
STATUS,RP0
;registrova banka
bsf
SSPCON2,ACKDT
;nastaveni NAK
bsf
SSPCON2,ACKEN
;poslani NAK
bcf
STATUS,RP0
;registrova banka
call I2CWait return
;cekani
1
0
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
28
Posledn´ım ˇcasto vyuˇz´ıvan´ ym podprogram je ˇcek´an´ı na dokonˇcen´ı operace na sbˇernici I 2 C. Dokonˇcen´ı operace je vˇzdy signalizov´ano hardwarov´ ym nastaven´ım bitu SSP IF v registru P ir1 do stavu log.1, kter´e se mus´ı potom softwarovˇe nulovat. I2CWait btfss
PIR1,SSPIF
goto
$-1
;cekani na dokonceni operace
bcf
PIR1,SSPIF
;nulovani priznaku
return
4.2.6
Konfigurace ˇ casovaˇ ce TMR0
Norma NMRA9.21 klade na ˇcasov´ y pr˚ ubˇeh sign´alu DCC velice pˇr´ısn´e poˇzadavky, kter´e byly uvedeny v kapitole 2.1.1. a vzhledem k rozsahu programu nelze generovat DCC sign´al jinak neˇz pomoc´ı pˇreruˇsen´ı od ˇcasovaˇce TMR0. Toto pˇreruˇsen´ı se nastav´ı v registru INTCON pomoc´ı bitu 5, kter´ y se uvede do stavu log.1, a v registru OPTION REG pomoc´ı bitu 5, kter´ y urˇc´ı, ˇze registr TMR0 bude plnit funkci ˇcasovaˇce. bcf
OPTION_REG,5
bsf INTCON,5
4.2.7
;nastaveni TMR0 jako casovace ;povolujeme preruseni od TMR0
Popis programu
Program je rozdˇelen do tˇr´ı ˇc´ast´ı - inicializace mikrokontrol´eru, hlavn´ı program s podprogramy a obsluha pˇreruˇsen´ı. Bˇehem inicializace se provede konfigurace obsluhy pˇreruˇsen´ı, konfigurace sbˇernice I 2 C a USART, konfigurace ˇcasovaˇce T M R0 a z´akladn´ı nastaven´ı obsahu pouˇz´ıvan´ ych registr˚ u. Hlavn´ı program je tvoˇren cyklem, ve kter´em se testuj´ı jednotliv´e bity v pˇr´ıznakov´em registru Control. Kaˇzd´ y testovan´ y bit reprezentuje poˇzadavek na obslouˇzen´ı urˇcit´e ud´alosti. Bit 1 v registru Control reprezentuje poˇzadavek na aktualizaci v´ ystup˚ u ovl´adaj´ıc´ı polohu v´ yhybek. Pokud je bit ve stavu log.1, zavol´a se podprogram Switchs. V pˇr´ıpadˇe, ˇze vznikl poˇzadavek na aktualizaci v´ ystup˚ u sp´ınaj´ıc´ı LED diody v semaforech, je bit 2 v registru Control nastaven na log.1. Nastaven´ım bitu 2 registru Control na log.1 se vyvol´a podprogram Light urˇcen´ y k aktualizaci stavu semafor˚ u. Bit 5 registru Control signalizuje poˇzadavek nadˇr´ızen´eho syst´emu, aby mu byla posl´ana data o pohyby lokomotivy. V pˇr´ıpadˇe, ˇze bit 4 registru Control je ve stavu log.1 je zavol´an podprogram Transmit, kter´ y odeˇsle data po RS232. Pokud mikrokontrol´er pˇr´ıjme data od nadˇr´ızen´eho syst´emu, nastav´ı se bit 5 registru Control. Nastaven´ım bitu 5 se zavol´a podprogram Sorting prov´adˇej´ıc´ı aktualizaci dat periferi´ı. V kaˇzd´em cyklu
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
29
hlavn´ı programov´e smyˇcky se prov´ad´ı sb´ıran´ı dat o pohybu lokomotiv po kolejiˇsti. Sbˇer dat prov´ad´ı podprogram MEASURE. K pˇr´ıjmu dat po RS232 a ke generov´an´ı DCC sign´alu se vyuˇz´ıv´a pˇreruˇsen´ı mikrokontrol´eru. 4.2.7.1
Podprogram Sorting
Podprogram Sorting na z´akladˇe dat pˇrijat´ ych od nadˇr´ızen´eho syst´emu aktualizuje data jednotliv´ ych periferi´ı. Pˇr´ıkazy pos´ılan´e po s´eriov´e lince maj´ı pevnˇe danou strukturu (tab. 4.1). Na zaˇc´atku je vˇzdy adresa zaˇr´ızen´ı, kter´e je urˇcen n´asleduj´ıc´ı jeden byte data. Potom je posl´an jeden byte dat a za n´ım kontroln´ı souˇcet adresy zaˇr´ızen´ı a dat. adresa
data
CRC
popis
0x10h
DDDDDDDDD
CCCCCCCC
rychlost lokomotivy BR221
0x11h
DDDDDDDDD
CCCCCCCC
rychlost lokomotivy V180
0x20h
0000DDDDD
CCCCCCCC
v´ yhybky 1 − 4
0x21h
0000DDDDD
CCCCCCCC
v´ yhybky 4 − 8
0x22h
0000DDDDD
CCCCCCCC
v´ yhybky 9 − 12
0x23h
0000DDDDD
CCCCCCCC
v´ yhybky 13 − 15
0x40h
0000DDDDD
CCCCCCCC
semafor ˇc.6
0x41h
0000DDDDD
CCCCCCCC
semafor ˇc.8
0x42h
0000DDDDD
CCCCCCCC
semafor ˇc.7
0x43h
0000DDDDD
CCCCCCCC
semafor ˇc.11
0x44h
0000DDDDD
CCCCCCCC
semafor ˇc.3
0x45h
0000DDDDD
CCCCCCCC
semafor ˇc.4
0x46h
0000DDDDD
CCCCCCCC
semafor ˇc.12
0x47h
0000DDDDD
CCCCCCCC
semafor ˇc.5
0x48h
0000DDDDD
CCCCCCCC
semafor ˇc.1
0x49h
0000DDDDD
CCCCCCCC
semafor ˇc.2
0x4Ah 0000DDDDD
CCCCCCCC
semafor ˇc.10
0x4Bh
CCCCCCCC
semafor ˇc.19
0000DDDDD
Tabulka 4.1: Struktura pˇr´ıkaz˚ u Vˇsechny data pˇrijat´e po s´eriov´e lince se ukl´adaj´ı do z´asobn´ıku, ze kter´eho se pˇr´ıjmou prvn´ı tˇri byte podprogramem Sorting k dalˇs´ımu zpracov´an´ı. Pˇred zpracov´an´ım se nejdˇr´ıve provede kontrola spr´avnosti pˇrijat´ ych dat. Kontrola se prov´ad´ı souˇctem XOR adresy zaˇr´ızen´ı a dat. V´ ysledek se potom porovn´a s tˇret´ım bytem. Pokud se v´ ysledek XOR souˇctu rovn´a tˇret´ımu bytu, pˇrijat´a data jsou platn´a. Pokud se sobˇe nerovnaj´ı, pˇrijat´a data nejsou platn´a a zahod´ı se. Po kontrole platnosti dat
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
30
se zjist´ı, kter´emu zaˇr´ızen´ı jsou data urˇcena. V pˇr´ıpadˇe, ˇze jsou urˇceny lokomotivˇe BR221, skoˇc´ı se do ˇc´asti programu obsluhuj´ıc´ı aktualizaci dat lokomotivy BR221. Aktualizace prob´ıh´a tak, ˇze se zap´ıˇs´ı data do pˇripraven´e datov´e struktury a n´aslednˇe se provede pˇrepoˇcet obsahu datov´e struktury, kter´ y je z´avisl´ y na mˇen´ıc´ıch se datech. Tento postup je stejn´ y i u ostatn´ıch zaˇr´ızen´ı, pouze se mˇen´ı m´ısto, kam se data zapisuj´ı. Po zaps´an´ı dat se hodnota ukazatele z´asobn´ıku, sn´ıˇz´ı o hodnotu 3 a provede se dalˇs´ı naˇcten´ı tˇr´ı byt˚ u. Pokud hodnota ukazatele klesne pod 0xA0h, je tˇr´ıdˇen´ı dat zastaveno, protoˇze se cel´ y z´asobn´ık pˇrijat´ ych dat zpracoval. Vzhledem k tomu, ˇze komunikace mezi modelem a nadˇr´ızen´ ym syst´emem nen´ı tolik intenzivn´ı, postaˇcilo toto ˇreˇsen´ı vyrovn´avac´ıho bufferu, protoˇze do pˇr´ıchodu dalˇs´ıch dat se pˇrijat´a data zpracuj´ı. 4.2.7.2
Podprogram Switchs
Podprogram Switchs aktualizuje stavy na v´ ystupu vstupnˇe-v´ ystupn´ıho expand´eru PCF8574, kter´ y pˇrep´ın´a polohu v´ yhybek. Stavy v´ ystup˚ u expand´eru PCF8574 se ovl´adaj´ı pˇres sbˇernici I 2 C. Prvn´ı skupina v´ yhybek m´a na sbˇernici I 2 C adresu 0x44h, druh´a skupina adresu 0x42h. Do prvn´ı skupiny patˇr´ı vˇsechny v´ yhybky v n´adraˇz´ı ”Marketta” a prvn´ı vstupn´ı v´ yhybka n´adraˇz´ı ”Hawkey”. Ve druh´e skupinˇe jsou vˇsechny ostatn´ı v´ yhybky. V n´asleduj´ıc´ı tabulce 4.3 je zn´azornˇeno kter´ y bit odpov´ıd´a kter´ y v´ yhybce. Podprogram funguje tak, ˇze se vol´an´ım podprogramu I2CStart zah´aj´ı komunikace na sbˇernici I2C. Potom se uloˇz´ı do pracovn´ıho registru adresa 0x44 expand´eru PCF8574, kter´ y obsluhuje prvn´ı skupinu v´ yhybek a zavol´a se podprogram I2CSend. Ten si vezme adresu z pracovn´ıho registru a poˇsle ji na sbˇernici I2C. Potom se do pracovn´ıho registru pˇresune obsah registru V yhy01 a opˇet se zavol´a podprogram I2CSend, kter´ y poˇsle po sbˇernici data uloˇzen´a v pracovn´ım registru. V registru V yhy01 jsou uloˇzen´e informace o poloze v´ yhybek prvn´ı skupiny. Posl´an´ı dat se jeˇste jednou zopakuje a n´aslednˇe se zavol´a podprogram I2CStop, kter´ y ukonˇc´ı komunikaci s expand´erem PCF8574 adresy 0x44h. Stejn´ ym postupem se komunikuje i s expand´erem PCF8574, kter´ y obsluhuje druhou skupinu v´ yhybek, pouze se zmˇen´ı adresa 0x44h na adresu 0x42h a registr V yhy01 na registr V yhy02. Pˇred n´avratem do hlavn´ıho programu se jeˇstˇe vynuluje bit 1 registru Control, ˇc´ımˇz se signalizuje obslouˇzen´ı poˇzadavku na aktualizaci stavu v´ ystup˚ u ovl´adaj´ı polohu v´ yhybek. 4.2.7.3
Podprogram Light
Princip funkce podprogramu Light je podobn´ y jako princip funkce podprogramu Switchs. Jedin´ y rozd´ıl je v adres´ach expand´er˚ u PCF8574, kter´e sp´ınaj´ı jednotliv´e
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
31
Adresa na I2C
ˇ ıslo bitu C´
ˇ ıslo v´ C´ yhybky
0x44
bit 0
v´ yhybka 01
0x44
bit 1
v´ yhybka 02
0x44
bit 2
v´ yhybka 03
0x44
bit 3
v´ yhybka 04
0x44
bit 4
v´ yhybka 05
0x44
bit 5
v´ yhybka 06
0x44
bit 6
v´ yhybka 07
0x44
bit 7
v´ yhybka 08
0x42
bit 0
v´ yhybka 09
0x42
bit 1
v´ yhybka 10
0x42
bit 2
v´ yhybka 11
0x42
bit 3
v´ yhybka 12
0x42
bit 4
v´ yhybka 13
0x42
bit 5
v´ yhybka 14
0x42
bit 6
v´ yhybka 15
0x42
bit 7
Tabulka 4.2: Rozˇrazen´ı v´ yhybek k jednotliv´ ym v´ ystup˚ um expand´eru LED diody v semaforech a v registrech, ve kter´ ych jsou uloˇzeny informace o stavech jednotliv´ ych svˇetel semafor˚ u. Bity 7 a 3 odpov´ıdaj´ı LED diod´am pˇrestavuj´ıc´ı nejv´ yˇse um´ıstˇen´e svˇetlo semaforu. Adresa na I2C
Skupina bit˚ u Oznaˇcen´ı semaforu
0x40
0−3
semafor ˇc.6
0x40
4−7
semafor ˇc.8
0x48
0−3
semafor ˇc.10
0x48
4−7
semafor ˇc.9
0x46
0−3
semafor ˇc.1
0x46
4−7
semafor ˇc.2
0x4A
0−3
semafor ˇc.7
0x4A
4−7
semafor ˇc.11
0x4C
0−3
semafor ˇc.12
0x4C
4−7
semafor ˇc.5
0x4E
0−3
semafor ˇc.3
0x4E
4−7
semafor ˇc.4
Tabulka 4.3: Rozˇrazen´ı semafor˚ u k jednotliv´ ym expand´er˚ um PCF8574
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN 4.2.7.4
32
Podprogram Measure
Podprogram M easure zajiˇst’uje sb´ır´an´ı dat z proudov´ ych sn´ımaˇc˚ u a pˇrestavn´ık˚ u v´ yhybek pˇripojen´ ych pˇres multiplexor 74HC154 k portu B a jejich ukl´adan´ı do pamˇeti. Ukl´ad´an´ı dat se prov´ad´ı pomoc´ı nepˇr´ım´eho adresov´an´ı. Na zaˇc´atku podprogramu se provede inicializace podprogramu. Registr T imer pouˇz´ıvan´ y k vytv´aˇren´ı zpoˇzdˇen´ı mezi jednotliv´ ymi ˇcten´ımi portu B je naplnˇen hodnotou 0xF F h. Hodnota 0xF F h odpov´ıd´a 20 µs mezi jednotliv´ ymi ˇcten´ımi portu B. D´ale je do registru Countsen, kter´ y je ve funkci poˇc´ıtadla, zaps´ana hodnota 0x0Bh. Hodnota odpov´ıd´a poˇctu skupin proudov´ ych sn´ımaˇc˚ u a poˇctu sn´ımaˇc˚ u poloh pˇrestavn´ık˚ u. A nakonec je inicializov´ano nepˇr´ım´e adresovan´ı. Do registru F SR slouˇz´ıc´ıho jako ukazatel do pamˇeti dat pˇri nepˇr´ım´em adresov´an´ı, se zap´ıˇse poˇc´ateˇcn´ı adresa pamˇeti, kam se budou ukl´adat pˇreˇcten´a data z portu B. Potom uˇz n´asleduje hlavn´ı cyklus podprogramu. Provede se dekrementace se obsahu registru Countsen o hodnotu 1 a v´ ysledek dekrementace se uloˇz´ı do pracovn´ıho registru W , odkud se zap´ıˇse na port A. T´ım se urˇc´ı, kter´a skupina sn´ımaˇc˚ u se pˇripoj´ı na paraleln´ı sbˇernici pˇripojenou na port B. Poˇck´a se dokud obsah registru T imer nebude nulov´ y a potom se stav portu B uloˇz´ı pomoc´ı registru INDF do pamˇeti. Inkrementuje se registr F SR a dekrementuje se registr Countsen. Tento cyklus se prov´ad´ı tak dlouho, dokud nen´ı obsah registru Countsen nulov´ y tj. dokud se neaktualizuj´ı vˇsechny data ze sn´ımaˇc˚ u. Po opuˇstˇen´ı cyklu se mikrokontrol´er vr´at´ı do hlavn´ıho programu. 4.2.7.5
Podprogram Transmit
Podprogram T ransmit zajiˇst’uje odes´ıl´an´ı dat ze sn´ımaˇc˚ u, kter´e jsou uloˇzeny v pamˇeti dat. Poˇc´ateˇcn´ı adresa pamˇeti je 0x64h. Tato adresa se zap´ıˇse do registru F SR. D´ale se inicializuje registr Countsen, kter´ y je poˇc´ıtadlem odeslan´ ych byt˚ u dat. Komunikace mikrokontrol´eru s nadˇr´ızen´ ym syst´emem prob´ıh´a podle pˇredem pevnˇe stanoven´eho protokolu. Na vyˇz´ad´an´ı nadˇr´ızen´eho syst´emu mikrokontrol´er zaˇcne pos´ılat data ve form´atu, kter´ y je uveden v tabulce (tab. 4.4). Pos´ılan´a data jsou zakonˇcena tˇremi byty s hodnotou 0xF F h. Velikost pos´ılan´ ych dat je 36B a tato velikost se nemˇen´ı.
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
33
adresa
data
CRC
ˇc´ıslo u ´seku nebo v´ yhybky
0x10h
DDDDDDDDD
CCCCCCCC
45 47 53 46 06 42 48 44
0x11h
DDDDDDDDD
CCCCCCCC
34 33 32 31 52 51 50 49
0x12h
DDDDDDDDD
CCCCCCCC
22 03 23 24 27 26 28 25
0x13h
DDDDDDDDD
CCCCCCCC
39 XX XX XX 29 04 38 30
0x14h
DDDDDDDDD
CCCCCCCC
09 08 07 01 10 11 13 12
0x15h
DDDDDDDDD
CCCCCCCC
40 43 05 41 14 15 16 17
0x16h
DDDDDDDDD
CCCCCCCC
21 20 19 02 36 18 37 35
0x17h
DDDDDDDDD
CCCCCCCC
SXX SXX SXX SXX SXX SXX SXX SXX
0x18h
DDDDDDDDD
CCCCCCCC
SXX SXX SXX SXX SXX SXX SXX SXX
0x19h
DDDDDDDDD
CCCCCCCC
SXX SXX SXX SXX SXX SXX SXX SXX
0x1Ah DDDDDDDDD
CCCCCCCC
SXX SXX SXX SXX SXX SXX SXX SXX
Tabulka 4.4: Form´at data pˇri odes´ıl´an´ı po RS232 Vˇzdy pˇred odesl´an´ım dalˇs´ıho bytu dat se testem na nulu v registru Countsen zjist´ı, zda se uˇz odeslaly vˇsechny data sn´ımaˇc˚ u. V pˇr´ıpadˇe, ˇze obsah registru Countsen bude nulov´ y tj. uˇz se odeslaly vˇsechny data, provede se skok na odesl´an´ı zakonˇcovac´ı znaˇcky pos´ılan´ ych dat a potom podprogram T ransmit skonˇc´ı. Pokud obsah registru Countsen nen´ı nulov´ y, naˇcte se do registru Datre1 pos´ılan´ y byte dat. Obsah registru Datarail, ve kter´em je adresa pos´ılan´ ych dat, se inkrementuje o hodnotu 1 a poˇsle se podprogramem Send po RS232 nadˇr´ızen´emu syst´emu. Potom se podprogramem SEND poˇsle obsah registru DATRE1. Po odesl´an´ı se provede XOR souˇcet obsah˚ u registr˚ u Datre1 a Datarail a v´ ysledek se uloˇz´ı do pracovn´ıho registru W a odeˇsle podprogramem SEN D na RS232. Po odesl´an´ı vˇsech dat podprogram vynuluje bit 4 registru Control. 4.2.7.6
Pˇ reruˇ sen´ı
Mikrokontrol´er pˇri pˇreruˇsen´ı skoˇc´ı vˇzdy na adresu 0x04h v pamˇeti programu, kde oˇcek´av´a program obsluhuj´ı ud´alost, kter´a vyvolala pˇreruˇsen´ı. Priorita obslouˇzen´ı ud´alost´ı se ponech´av´a na uv´aˇzen´ı program´atora. D´ale se ponech´av´a na program´atorovi ukl´ad´an´ı si stavu registru Status a pracovn´ıho registru W . Na zaˇc´atku obsluhy pˇreruˇsen´ı se provede uloˇzen´ı stav˚ u registru Status a pracovn´ıho registru W . N´aslednˇe se testov´an´ım bitu T 0IF registru Intcon a bitu RCIF registru P ir1 zjist´ı zdroj pˇreruˇsen´ı. Pokud by test na log.1 u bitu T0IF registru Intcon byl pozitivn´ı, mikrokontrol´er pˇreskoˇc´ı na obsluhu pˇreruˇsen´ı, kter´e vyvolalo pˇreteˇcen´ı ˇcasovaˇce T mr0. Tento ˇcasovaˇc se pouˇz´ıv´a ke generov´an´ı DCC sign´alu. Pokud by test na log.1 u bitu registru P ir1 byl pozitivn´ı, bude obslouˇzeno pˇreruˇsen´ı, kter´e znamen´a jednoho bytu dat po s´eriov´em kan´alu RS232.
´ ´I PIC16F877 KAPITOLA 4. PROGRAMOVAN
34
Generov´an´ı DCC sign´alu prob´ıh´a tak, ˇze v pamˇeti dat je pˇripravena pro obˇe lokomotivy datov´a struktura pˇresnˇe odpov´ıdaj´ıc´ı struktuˇre DCC paketu pos´ılan´eho lokomotiv´am. Tyto struktury jsou v pamˇeti celkem ˇctyˇri, prvn´ım dvˇema se obsah mˇen´ı, tˇret´ı je stabilnˇe pln´a log.1 a ˇctvrt´a se pouˇz´ıv´a k vys´ıl´an´ı. Vˇsechny tˇri datov´e struktury se cyklicky vys´ılaj´ı na DCC v´ ystup. Na zaˇc´atku generov´an´ı DCC sign´alu se nastav´ı poˇc´ateˇcn´ı hodnota registru T mr0. Pˇri vzniku pˇreruˇsen´ı vyvolan´eho pˇreteˇcen´ım registru ˇcasovaˇce T mr0 se zjist´ı, kolik bit˚ u DCC paketu zb´ yv´a k vysl´an´ı na DCC v´ ystup. V pˇr´ıpadˇe, ˇze nezb´ yv´a ˇz´adn´ y bit, tak se do pracovn´ı struktury nahraje v poˇrad´ı dalˇs´ı datov´a struktura DCC paketu a zaˇcne se vys´ılat na DCC v´ ystup. Vys´ıl´an´ı jednotliv´ ych bit˚ u se prov´ad´ı rotac´ı datov´e struktury pˇres bit CARRY registru Status. Vys´ıl´an´ı jednoho bitu je rozdˇeleno na dvˇe ˇc´asti. V prvn´ı ˇc´asti je pin RC0 ve stavu log.1 a pin RC1 ve stavu log.0 a v druh´e ˇc´asti je to opaˇcnˇe. D´elka setrv´an´ı v tˇechto stavech je d´ana t´ım, zda se vys´ıl´a log.0 nebo log.1, tj. t´ım zda bit CARRY registru Status je ve stavu log.1 ˇci log.0. Podle tohoto bitu se do registru T mr0 nahraje konstanta pro odmˇeˇrov´an´ı doby pro log.1 nebo log.0. Na konec rotovan´e datov´e struktury se naˇc´ıtaj´ı log.1. Po zmˇenˇe stavu na pinech RC0 a RC1 se skoˇc´ı na n´avracen´ı z pˇreruˇsen´ı. Pˇri obsluze pˇreruˇsen´ı od pˇrijet´ı jednoho bytu poslan´eho s´eriov´ ym kan´alem RS232 se nejprve pˇresune obsah pˇrij´ımac´ıho bufferu Rcreg do registru Rcw. N´aslednˇe se otestuje, zda pos´ılan´ y byte je koncov´a znaˇcka 0xF F h. Pokud pos´ılan´ y byte je koncov´a znaˇcka, nastav´ı se bit 4 registru CON T ROL do stavu log.1. T´ımto bitem se signalizuje, ˇze se m´a prov´est zpracov´an´ı pˇrijat´ ych dat. V pˇr´ıpadˇe, ˇze pˇrijat´ y byte dat nen´ı koncov´a znaˇcka, pˇresune se byte do m´ısta, kter´e je urˇceno obsahem registru F sr. Po zaps´an´ı tohoto bytu dat se provede inkrementace registru F sr o hodnotu 1 a skok na navr´at z pˇreruˇsen´ı.
Kapitola 5 ˇ ıdic´ı algoritmus v PLC R´ 5.1
Hardwarov´ a konfigurace
Aby se model mohl ˇr´ıdit pomoc´ı PLC automatu Simatic S7-315 2DP, bylo nutn´e k PLC pˇripojit bud’ pˇr´ımo kartu se s´eriov´ ym v´ ystupem nebo pˇres sbˇernici profibus pˇripojit pˇrevodn´ık Profibus/S´eriov´ y kan´al. Vzhledem k tomu, ˇze pˇrevodn´ık profibus/s´eriov´ y kan´al od firmy WAGO je levnˇejˇs´ı neˇz karta od firmy Siemens a l´epe se s n´ım pracuje v ˇr´ıdic´ım programu, byla ke komunikaci vybr´ana druh´a varianta. Od firmy WAGO byl vybr´an modul 750-650/003-000 Serial Interfaces RS232.
5.1.1
Hardwarov´ a konfigurace PLC
Hardwarov´a konfigurace Simaticu se provede podle n´asleduj´ıc´ıho obr´azk˚ u obr. 5.1 a obr. 5.2. Rychlost sbˇernice profibus je nastavena 1,5Mb/s.
Obr´azek 5.1: Konfigurace Simaticu
35
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
36
Obr´azek 5.2: Konfigurace profibusov´eho modulu WAGO 750-650
5.1.2
Hardwarov´ a konfigurace Wago Serial Interface RS232
Konfigurace modulu WAGO 750-650/003-000 Serial Interface RS232 se provede podle n´asleduj´ıc´ıho obr´azk˚ u. D˚ uleˇzit´e je zak´azat kontinu´aln´ı vys´ıl´an´ı dat. Pokud se tento bit nezak´aˇze, tak nastane situace, ˇze lze pˇrij´ımat data po RS232, ale nelze je vys´ılat.
Obr´azek 5.3: Nastaven´ı adresy profibusov´eho modulu
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
37
Obr´azek 5.4: Konfigurace modulu WAGO 750-650/003-000
5.2
ˇ ıdic´ı algoritmus v PLC R´
ˇ ıdic´ı algoritmus se skl´ad´a z hlavn´ıho programu um´ıstˇen´em v organizaˇcn´ım bloku R´ ˇ ıdic´ı alOB1 a z funkˇcn´ıch blok˚ u a funkc´ı volan´ ych z organizaˇcn´ıho bloku OB1. R´ goritmus byl rozdˇelen na nˇekolik vz´ajemnˇe se ovlivˇ nuj´ıc´ıch se ˇc´ast´ı . Prvn´ı ˇc´ast´ı je ˇr´ızen´ı pohybu lokomotivy po kolejiˇsti, v ˇr´ıdic´ım algoritmu tuto ˇc´ast pˇredstavuje funkˇcn´ı blok FB1. Druhou ˇc´ast´ı je ovl´ad´an´ı zhlav´ı vˇsech n´adraˇz´ı, v algoritmu je reprezentov´ano funkcemi FC101, FC107. Tˇret´ı ˇc´ast´ı je stavba vlakov´ ych cest mezi sousedn´ımi n´adraˇz´ımi, v algoritmu reprezentovan´a funkˇcn´ı bloky FB2, FB4 a FB6 a FB7. Vzhledem k tomu, ˇze lokomotivy maj´ı v sobˇe dekod´er urˇcuj´ıc´ı smˇer pohybu lokomotivy, nelze sv´evolnˇe postavit lokomotivu na koleje. Lokomotiva mus´ı b´ yt postavena tak, ˇze pˇredn´ı ˇc´ast lokomotivy BR221 (ˇcern´ y kom´ın) a zadn´ı ˇc´ast lokomotivy V180 (ˇcern´ y kom´ın) smˇeˇruj´ı k na levou stranu n´adraˇz´ı ”Marketta”. Pokud lokomotivy budou opaˇcnˇe postaven´e, algoritmus nebude fungovat. Cel´e kolejiˇstˇe je v pamˇeti PLC pops´ano rozs´ahlou tabulkou, kter´a se nach´az´ı v datov´em bloku DB4 - Useky. Tabulka je rozdˇelena na tˇri ˇc´asti. V prvn´ı ˇc´asti tj. od adresy 0 do adresy 480 je pops´ano re´aln´e kolejiˇstˇe, v druh´e ˇc´asti tj. od adresy 500 do adresy 980 je pops´ana virtu´aln´ı ˇc´ast kolejiˇstˇe. V obou tˇechto ˇc´astech se nejsou pops´any trat’ov´e u ´seky, ve kter´ ych jsou v´ yhybky. Tyto u ´seky jsou pops´any ve tˇret´ı ˇc´asti, kter´a je od adresy 1500. Jeden fiktivn´ı ˇr´adek tabulky pˇredstavuje jeden u ´sek. Struktura jednoho ˇr´adku vypad´a takto:
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
38
Poloˇzka Velikost popis ˇ ıslo u C´ ´seku 1B ˇc´ıslo u ´seku Adresa01
2B
adresa n´asleduj´ıc´ıho u ´seku
Adresa02
2B
adresa pˇredch´azej´ıc´ıho u ´seku
Stav
1B
stav u ´seku
Rychlost
1B
hodnota rychlosti pro automatick´e ˇr´ızen´ı
Atributy
1B
atributy u ´seku
Voln´ y byte
1B
Semafor
1B
adresa semaforu, kter´ y m´a b´ yt sledov´an
´ u Tabulka 5.1: Struktura ˇr´adku v tabulce Usek˚ Prvn´ı byty je ˇc´ıslo u ´seku. Dalˇs´ı dva byty jsou adresa n´asleduj´ıc´ıho u ´seku tj. u ´seku, kter´ y je od nˇeho na prav´e stranˇe pˇri pohledu od hrany stolu kolejiˇstˇe. Dalˇs´ı dva byty tvoˇr´ı adresu u ´seku pˇredch´azej´ıc´ıho tj. u ´seku, kter´ y je na lev´e stranˇe u ´seku pˇri pohledu od strany stolu kolejiˇstˇe. Dalˇs´ı byte, v poˇrad´ı ˇsest´ y, je stavov´ y byte. Tento byte pod´av´a informaci o tom, zda a k´ ym je dan´ y u ´sek je obsazen. Pˇresn´a struktura bytu je zobrazena n´asleduj´ıc´ı tabulkou 5.2. Bit
Popis
bit 0 bit 1 v u ´seku je lokomotiva BR221 bit 2 v u ´seku je lokomotiva V180 bit 3 u ´sek je obsazen bit 4 bit 5 bit 6 u ´sek je zamknut lokomotivou V180 bit 7 u ´sek je zamknut lokomotivou BR221 Tabulka 5.2: Struktura stavov´eho bytu Dalˇs´ım bytem je hodnota rychlosti pohybu lokomotivy po kolejiˇsti. Tato rychlost se pouˇz´ıv´a v pˇr´ıpadˇe, ˇze lokomotiva je ovl´adan´a automatem. Osm´ y byte je u re´aln´eho u ´seku kolejiˇstˇe voln´ y, u virtu´aln´ıho u ´seku se v nˇem nach´az´ı d´elka virtu´aln´ıho u ´seku. V posledn´ım bytu pomysln´eho ˇr´adku tabulky je relativn´ı adresa semaforu, kter´ y lokomotiva sleduje v pr˚ ubˇehu pˇrejezdu dan´eho u ´seku. Vˇsechny data semafor˚ u se nach´azej´ı v datov´em bloku DB3.
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
5.2.1
39
Komunikace modulem WAGO 750-650
Profibusov´ y modul Wago 750-650 je nakonfigurov´an tak, ˇze na periferijn´ı v´ ystup lze zapsat aˇz 6B a z periferijn´ıho vstupu lze ˇc´ıst taky aˇz 6B. Pˇri z´apisu je skladba dat n´asleduj´ıc´ı. Prvn´ı byte dat je ˇr´ıdic´ı byte (tab. 5.3), kter´ y nese informace kolik byt˚ u se bude zapisovat a d´ale jsou v nˇem ˇr´ıdic´ı pˇr´ıznaky pro inicializaci, ˇcten´ı a z´apis. Ostatn´ı byte jsou datov´e. Pˇri ˇcten´ı je prvn´ı byte dat stavov´ y (tab. 5.4). Obsahuje informace o poˇctu pˇrij´ıman´ ych byt˚ u a ˇr´ıdic´ıch pˇr´ıznac´ıch pro inicializaci, ˇcten´ı a z´apis. Vzhledem k tomu, ˇze se mezi modulem Wago a PLC pˇren´aˇs´ı aˇz 6B, bylo nutn´e k pˇrenosu dat pouˇz´ıt funkce SFC15 a SFC14. Funkce SFC14 pˇrenese z modulu 6B do PLC a funkce SFC15 pˇrenese 6B z PLC do modulu Wago. bit
Oznaˇcen´ı Popis
bit 0 TR
poˇzadavek na vys´ıl´an´ı
bit 1 RA
potvrzen´ı pˇr´ıjmu
bit 2 IR
poˇzadavek na inicializaci
bit 3 0
vˇzdy je nula
bit 4 OL0 bit 5 OL1
OL0,OL1 a OL2 ud´avaj´ı celkov´ y poˇcet vys´ılan´ ych datov´ ych byt˚ u
bit 6 OL2 bit 7 0
vˇzdy je nula Tabulka 5.3: Control byte
bit
Oznaˇcen´ı Popis
bit 0 TA
potvrzen´ı vys´ılan´ı
bit 1 RR
poˇzadavek na pˇr´ıjem
bit 2 IA
potvrzen´ı inicializace
bit 3 BUF F
vstupn´ı buffer je pln´ y
bit 4 IL0 bit 5 IL1
IL0,IL1 a IL2 ud´avaj´ı celkov´ y poˇcet pˇr´ıjmut´ ych datov´ ych byt˚ u
bit 6 IL2 bit 7 0
vˇzdy je nula Tabulka 5.4: Status byte
Pˇred samotnou komunikac´ı po RS232 je nutn´e modul Wago inicilizovat. Inicializace se provede z´apisem ˇr´ıdic´ıho bytu, kter´ y m´a v nastaven bit IR na log.1 a ostatn´ı bity jsou nulov´e. Na zb´ yvaj´ıc´ıch ˇsesti bytech nez´aleˇz´ı.
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R Control byte
Output byte
Output byte
Output byte
0000 0100
0000 0000
0000 0000
0000 0000
40 Output byte Output byte 0000 0000
0000 0000
Tabulka 5.5: Poˇzadavek na inicializaci Kdyˇz modul Wago vr´at´ı v odpovˇed’n´ıch 6B dat, kter´e se pˇreˇctou funkc´ı SFC14, n´asleduj´ıc´ı sekvenci bitu. Je modul inicializov´an. V opaˇcn´em pˇr´ıpadˇe nen´ı a mus´ı se opakovat ˇcten´ı funkc´ı SFC14. P´ısmena ”X” znamenaj´ı, ˇze na stavu tohoto bitu nez´aleˇz´ı. Po uspˇeˇsn´e inicializaci se m˚ uˇze zaˇc´ıt s komunikac´ı po RS232. Status byte 0XXX 01XX
Input byte Input byte Input byte Input byte Input byte 0xXXh
0xXXh
0xXXh
0xXXh
0xXXh
Tabulka 5.6: Potvrzen´ı na inicializace Z´apis na sbˇernici RS232 se prov´ad´ı pomoc´ı bytu 2 aˇz 6, kter´e se pln´ı daty. Pokud je dat m´enˇe neˇz 5 byt˚ u, napln´ı se jen ty nejniˇzˇs´ı. Do ˇr´ıdic´ıho bytu se zap´ıˇse kolik byt˚ u bude pos´ılano a invertuje se bit TR v ˇr´ıdic´ım bytu. Dalˇs´ı z´apis lze prov´est aˇz kdyˇz modul Wago vr´at´ı ve stavov´em bytu na pozici bitu 0 stejnou hodnotu jak´a mu byla posl´ana. ˇ ı ze sbˇernice RS232 je podobn´e. Nejprve se mus´ı poslat modulu ˇz´adost o Cten´ ˇcten´ı dat. Pˇri pos´ıl´an´ı ˇz´adosti mus´ı b´ yt bit 3 nulov´ y a bit 1 mus´ı b´ yt invertovan´ y oproti posledn´ı operaci ˇcten´ı z RS232. Pokud modul vr´at´ı stavov´ y byte se stejnou hodnotou bitu 1 jak´a mu byla posl´ana, tak jsou pˇr´ıchoz´ı data platn´a a v horn´ım niblu stavov´eho bytu je poˇcet platn´ ych dat. V pˇr´ıpadˇe, ˇze se bude ve ˇcten´ı pokraˇcovat, je nutn´e zinvertovat bit 1 v ˇr´ıdic´ım bytu a poslat ho funkc´ı SFC15 modulu Wago.
5.2.2
Funkˇ cn´ı bloky
5.2.2.1
Funkˇ cn´ı blok FB1 - ˇ r´ızen´ı lokomotivy
Funkˇcn´ı blok FB1 ovl´ad´a pohyb lokomotivy jak po re´aln´em kolejiˇsti tak i virtu´aln´ım. ˇ ıd´ı jej´ı rychlost, kontroluje volnost n´asleduj´ıc´ıch vlakov´ R´ ych u ´sek˚ u, kontroluje semafory a uzamˇcen´ı u ´seku, star´a se o pˇrechod mezi virtu´aln´ı a re´alnou ˇc´ast´ı kolejiˇstˇe. Pˇri pˇrechodu z re´aln´e ˇc´asti do virtu´aln´ı bezpeˇcnˇe odveze skuteˇcnou lokomotivu na odstavn´e n´adraˇz´ı, kde ˇcek´a aˇz virtu´aln´ı lokomotiva projede celou virtu´aln´ı ˇc´ast. Funkˇcn´ı blok FB1 je rozdˇelen na tˇri ˇc´asti. Prvn´ı ˇc´ast ovl´ad´a re´alnou lokomotivu fyzicky pˇr´ıtomnou na modelu ˇzeleznice. Druh´a ˇc´ast ovl´ad´a virtu´aln´ı lokomotivu tj. lokomotivu, kter´a se pohybuje po kolejiˇsti naprogramovan´em ve vizualizaˇcn´ım prostˇred´ı InTouch. Tˇreˇr´ı ˇc´ast zajiˇst’uje pˇrechod mezi virtu´aln´ı a re´alnou lokomotivou. Prvn´ı dvˇe ˇc´asti jsou z velk´e ˇc´asti identick´e, jedin´ y rozd´ıl je ve zp˚ usobu pˇrechodu mezi jednotliv´ ymi trat’ov´ ymi u ´seky.
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
41
Pˇred pouˇzit´ım sledov´an´ı pohybu lokomotivy, se mus´ı nejdˇr´ıve lokomotiva ruˇcnˇe pˇriv´est na synchronizaˇcn´ı u ´sek v re´aln´em kolejiˇsti, kde se do pamˇeti lokomotivy zap´ıˇse aktu´aln´ı poloha lokomotivy a nastav´ı se v´ ychoz´ı hodnoty registr˚ u. Od t´eto inicializace lokomotiva sleduje sv˚ uj pohyb po kolejiˇsti v tabulce trat’ov´ ych u ´seku. Sledov´an´ı funguje tak, ˇze lokomotiva si pamatuje adresu ˇr´adku popisuj´ıc´ı trat’ov´ y u ´sek, ve kter´em se lokomotiva pr´avˇe nach´az´ı. Od t´eto adresy se potom pomoc´ı ukazatele smˇeru pohybu lokomotivy odv´ıj´ı i znalost dvou bezprostˇrednˇe navazuj´ıc´ıch trat’ov´ ych u ´sek˚ u. Sledov´an´ı pohybu lokomotivy prob´ıh´a tak, ˇze lokomotiva si do sv´e pamˇeti naˇcte adresy a stavy dvou bezprostˇrednˇe n´asleduj´ıc´ıch u ´sek˚ u. Pokud naˇc´ıtan´a adresa n´asleduj´ıc´ıho u ´seku, kter´ y bezprostˇrednˇe nesoused´ı s aktu´aln´ım u ´sekem, je rovna hodnotˇe 0xF F h zap´ıˇse, se do pamˇeti pro tento u ´sek adresa patˇr´ıc´ı bezprostˇrednˇe n´asleduj´ıc´ımu u ´seku. V pˇr´ıpadˇe, ˇze naˇc´ıtan´a adresa bezprostˇrednˇe n´asleduj´ıc´ıho u ´seku je rovna hodnotˇe 0xF F h, je do m´ısta pro tento u ´sek nahr´ana adresa aktu´aln´ıho u ´seku a lokomotiva je zastavena. Pokud nastane situace, kdy u ´sek, kter´ y je veden jako bezprostˇrednˇe n´asleduj´ıc´ı se stane aktivn´ım, tj. bude se v nˇem lokomotiva nal´ezat, nastane pˇresun ukazatele aktu´aln´ıho u ´seku ze souˇcasn´eho u ´seku na u ´sek n´asleduj´ıc´ı a aktualizuj´ı se stavy tˇechto u ´seku. V pˇr´ıpadˇe, ˇze lokomotiva pˇred sebou tlaˇc´ı vag´ony, k pˇresunu ukazatele dojde v momentˇe, kdy se aktivn´ı u ´sek stane neaktivn´ı tj. lokomotiva ho opust´ı. Situace, kdy na kaˇzd´e stranˇe lokomotivy je vag´on, nen´ı pˇr´ıpustn´a. Funkˇcn´ı blok FB1 umoˇzn ˇuje ˇr´ıdit rychlost lokomotivy bud’ oper´atorem nebo automaticky. Pokud lokomotiva m´a nastaveno automatick´e ˇr´ızen´ı, hodnota rychlosti je d´ana naˇctenou hodnotou z tabulky trat’ov´ ych u ´sek˚ u. V t´eto tabulce nejsou maxim´aln´ı rychlosti, kterou se nech´a projet dan´ yu ´sek, ale rychlosti urˇcen´e pro automatick´e ˇr´ızen´ı. V cel´em kolejiˇsti lokomotiva m˚ uˇze jet maxim´aln´ı nejvyˇsˇs´ı rychlost´ı. Pˇri pohybu po kolejiˇsti si lokomotiva kontroluje volnost druh´eho n´asleduj´ıc´ıho trat’ov´eho u ´seku. V pˇr´ıpadˇe, ˇze lokomotiva pˇred sebou tlaˇc´ı vag´ony, tato kontrola se neprov´ad´ı a bezpeˇcnost z´avis´ı na oper´atorovi. Pˇr´ıpadˇe, ˇze prob´ıh´a oper´atorem ˇr´ızen´ y posun vlaku, bezpeˇcnost z´avis´ı na oper´atorovi. Automatick´e zastaven´ı lokomotivy je moˇzn´e prov´est nˇekolika zp˚ usoby. Prvn´ı zp˚ usobem je zastaven´ı lokomotivy je rozsv´ıcen´ı ˇcerven´eho svˇetla na pˇr´ısluˇsn´em semaforu v n´adraˇz´ı. Druh´ ym zp˚ usobem je chybnˇe pˇrehozen´a v´ yhybka. V tomto pˇr´ıpadˇe, pˇr´ıjde pˇr´ıkaz k zastaven´ı od kontroly n´avaznosti u ´sek˚ u. Tˇret´ım zp˚ usobem je zastaven´ı lokomotivy na z´akladˇe pˇr´ıjezdu lokomotivy do koneˇcn´eho trat’ov´eho u ´seku vlakov´e cesty. Pˇredposledn´ım zp˚ usobem je zastaven´ı lokomotivy od kontroly zamknut´ı u ´sek˚ u a posledn´ı moˇznost´ı je pˇr´ıkaz od kontroly volnosti vlakov´e cesty. Prvn´ı ˇctyˇri uveden´e zp˚ usoby zastaven´ı lokomotivy uvedou lokomotivu do stavu STOP. Opˇetovn´e povo-
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
42
len´ı j´ızdy mus´ı potom prov´est oper´ator. Pˇri posledn´ım zp˚ usobu se lokomotivˇe sn´ıˇz´ı rychlost na nulu a to do doby neˇz se hl´ıdan´ y trat’ov´ yu ´sek stane voln´ ym. Jakmile se u ´sek stane voln´ ym, lokomotiva se rozjede rychlost´ı jakou jela pˇred zastaven´ım. Na konci prvn´ı ˇc´asti se aktualizuj´ı data o rychlosti a smˇeru pohybu lokomotivy, kter´a se budou pos´ılat lokomotivˇe. Druh´a ˇc´ast funkˇcn´ıho bloku FB1 je principi´alnˇe stejn´a jako prvn´ı, kter´a ovl´ad´a skuteˇcnou lokomotivu. Jedin´ y z´asadn´ı rozd´ıl oproti ˇr´ızen´ı skuteˇcn´e lokomotivy spoˇc´ıv´a v urˇcen´ı momentu, kdy se lokomotiva pˇresune z jednoho trat’ov´eho u ´seku do druh´eho a s n´ım souvisej´ıc´ı potˇrebn´e nastaven´ı registr˚ u. V pˇr´ıpadˇe skuteˇcn´e lokomotivy staˇc´ı sledovat stav n´asleduj´ıc´ıho trat’ov´eho u ´seku, do kter´eho se lokomotiva m´a pˇresunout tj. staˇc´ı hl´ıdat, kdy se n´asleduj´ıc´ı trat’ov´ yu ´sek stane obsazen´ y. V pˇr´ıpadˇe virtu´aln´ı lokomotivy toto nelze a proto bylo nutn´e virtu´aln´ı lokomotivˇe implementovat jednoduch´e vlastn´ı poˇc´ıtadlo odpoˇc´ıt´avaj´ıc´ı dobu, za kterou lokomotiva dan´ yu ´sek projede. Sledov´an´ı pohybu lokomotivy po virtu´aln´ım kolejiˇsti je stejn´e jako u skuteˇcn´e lokomotivy. Pˇrejezd z jednoho trat’ov´eho u ´seku do druh´eho se ale liˇs´ı. Lokomotiva sleduje, kdy se stane trat’ov´ yu ´sek, ve kter´em se lokomotiva nach´az´ı, neaktivn´ım. V momentˇe, kdy tento okamˇzik nastane, se pˇresune adresa z pamˇeti pro n´asleduj´ıc´ı trat’ov´ yu ´sek do pamˇeti pro aktu´aln´ı trat’ov´ yu ´sek. Po tomto pˇresunu se z tabulky trat’ov´ ych u ´seku naˇcte u ´daj o rychlosti, kterou m´a lokomotiva dan´ y u ´sek projet ´ a u ´daj o d´elce u ´seku vyn´asoben´ y hodnotou 0xF F F F h. Udaj o d´elce je potom pˇresunut do poˇc´ıtadla pouˇz´ıvan´ y k urˇcen´ı d´elce doby, kterou lokomotiva potˇrebuje k pˇrejezdu tohoto trat’ov´eho u ´seku. D´ale se zap´ıˇse pˇr´ıznak obsazenosti trat’ov´eho u ´seku do tabulky v datov´em bloku DB4. Potom jsou stejn´ y zp˚ usobem jako u skuteˇcn´e lokomotivy naˇcteny adresy dvou po sobˇe n´asleduj´ıc´ıch u ´sek˚ u. K urˇcen´ı se d´elky doby pˇrejezdu dan´eho u ´seku se pouˇz´ıv´a 32-bitov´ y registr Timer, do kter´eho se naˇcte hodnota pˇredstavuj´ıc´ı d´elku trat’ov´eho u ´seku. Od tohoto registru se odeˇc´ıt´a hodnota uloˇzen´a v registru Virtual Autodata. Hodnota registru Virtual Autodata z´aleˇz´ı na situaci, ve kter´e se lokomotiva nach´az´ı. V pˇr´ıpadˇe, ˇze je ˇr´ızen´ı pˇrepnuto na automatick´e ˇr´ızen´ı, je hodnota registru Virtual Autodata naˇc´ıtan´a z tabulky trat’ov´ ych u ´sek˚ u. V pˇr´ıpadˇe, ˇze m´a lokomotiva zastavit sv˚ uj pohyb je do registru Virtual Autodata naˇctena hodnota 0. Skuteˇcn´e a virtu´aln´ı kolejiˇstˇe se st´ ykaj´ı ve dvou pevnˇe dan´ ych bodech. Prvn´ı bod tvoˇr´ı trat’ov´e u ´seky, kter´e jsou v tabulce trat’ov´ ych u ´sek˚ u na adres´ach 260 a 500. Druh´ ym bodem jsou trat’ov´e u ´seky zaˇc´ınaj´ıc´ı na adrese 120 a 840. Trat’ov´ yu ´sek na adrese 260 bude zkr´acenˇe oznaˇcov´an u ´sekem 260 a podobnˇe budou oznaˇcov´any i ostatn´ı trat’ov´e u ´seky. Pˇrechod mezi virtu´aln´ı a re´alnou ˇc´ast´ı je rozdˇelˇen na pˇrechod z re´aln´e ˇc´asti do virtu´aln´ı a na pˇrechod z virtu´aln´ı ˇc´asti do re´aln´e. Pˇrechod z re´aln´e ˇc´asti do virtu´aln´ı se m˚ uˇze uskuteˇcnit ve dvou pˇr´ıpadech. Prvn´ı pˇr´ıpad nastane v
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
43
momentˇe, kdy lokomotiva vjede z u ´seku 270 do u ´seku 260. Druh´ y pˇr´ıpad nastane, kdyˇz lokomotiva vjede z u ´seku 110 do u ´seku 120. Pokud nastane prvn´ı pˇr´ıpad, zjist´ı se obsazenost odstavn´eho n´adraˇz´ı ”Editta”. Pokud jsou vˇsechny koleje voln´e, nastav´ı se v´ yhybky tak, ˇze lokomotiva pˇrijede na tˇret´ı kolej. V pˇr´ıpadˇe, ˇze tˇret´ı kolej nen´ı voln´a, pˇrestav´ı se v´ yhybky na prvn´ı kolej. Pokud je obsazena i prvn´ı kolej v´ yhybky se pˇrestav´ı na druhou kolej. V pˇr´ıpadˇe, ˇze nen´ı voln´a kolej, lokomotiva se zastav´ı a bude st´at na vstupu do n´adraˇz´ı. Po nastaven´ı v´ yhybek skuteˇcn´a lokomotiva automaticky odjede na odstavn´e n´adraˇz´ı ”Editta”. Pˇri pˇrechodu z re´aln´e ˇc´asti do virtu´aln´ı je nutn´e pˇredat ˇr´ızen´ı lokomotivy automatu, kter´ y provede pˇrejezd z re´aln´e ˇc´asti do virtu´aln´ı. Druh´ y pˇr´ıpad je stejn´ y jako prvn´ı, rozd´ıl je pouze v prioritˇe odstavn´ ych kolej´ı na n´adraˇz´ı ”Editta”’. Jako prvn´ı se testuje na obsazenost prvn´ı koleje, potom tˇret´ı koleje a na konec koleje druh´e. Sign´al k pˇrechodu z virtu´aln´ı ˇc´asti do re´aln´e se objev´ı v momentˇe, kdy se stane aktivn´ım trat’ov´ yu ´sek 840 nebo 500. Pˇri pˇrechodu z virtu´aln´ı ˇc´asti do re´aln´e se nejprve zjist´ı, na kter´e koleji lokomotiva stoj´ı a zda v´ yhybky nejsou uzamˇceny. Pokud v´ yhybky nejsou uzamˇceny, pˇrestav´ı se na kolej, na kter´e stoj´ı lokomotiva. Po pˇrestavˇen´ı v´ yhybek se lokomotiva rozjede. Vjezdem do trat’ov´eho u ´seku 120 resp. 260 se ukonˇc´ı aktivita trat’ov´eho u ´seku 840 resp. 500. Pˇrechod z virtu´aln´ı ˇc´asti do re´aln´e mus´ı prov´est automat lokomotivy. 5.2.2.2
Funkˇ cn´ı blok FB2, FB4, FB6 a FB8 - Vlakov´ e cesty
Funkˇcn´ı bloky FB2 a FB4 stav´ı jednotliv´e vlakov´e cesty mezi sousedn´ımi n´adraˇz´ımi. Stavba vlakov´e cesty prob´ıh´a n´asleduj´ıc´ım zp˚ usobem. Nejprve zkontroluje volnost a zamknut´ı trat’ov´ ych u ´sek˚ u mezi sousedn´ımi n´adraˇz´ımi. Pokud je nˇekter´ y z trat’ov´ ych u ´sek˚ u obsazen, ukonˇc´ı se stavba vlakov´e cesty. V opaˇcn´em pˇr´ıpadˇe se provede se kontrola zamknut´ı v´ yhybek. Pokud jsou v´ yhybky voln´e, zjist´ı se, na n´asleduj´ıc´ım n´adraˇz´ı, na kter´ y m´a pˇrijet lokomotiva, je voln´a kolej. Pokud je na n´adraˇz´ı alespoˇ n jedna voln´a nezamknut´a kolej, provede se stavba vlakov´e cesty. Zamkne se jedna voln´a kolej na pˇr´ıjezdov´em n´adraˇz´ı. Syst´em v´ ybˇeru voln´e koleje pro zamknut´ı je proveden tak, ˇze se jako prvn´ı vybere kolej, kter´a se pˇr´ım´a. Jestliˇze pˇr´ım´a kolej nen´ı voln´a, vybere se nejbliˇzˇs´ı voln´a kolej. Po zamknut´ı voln´e koleje se provede pˇrestaven´ı v´ yhybky na zamknutou kolej a zamkne se i v´ yhybka. D´ale se provede zamknut´ı cel´eho u ´seku mezi n´adraˇz´ımi. N´aslednˇe na to, se zjist´ı v´ ychoz´ı kolej n´adraˇz´ı, ze kter´eho lokomotiva bude odj´ıˇzdˇet a pˇrestav´ı se v´ yhybky na ni a zamknou se. Nakonec se nastav´ı svˇetla na vˇsech semaforech na dan´e vlakov´e cestˇe. Po nastaven´ı semafor˚ u m˚ uˇze lokomotiva dostat povel k rozjezdu. Tento povel d´av´a oper´ator. Funkˇcn´ı bloky FB2 a FB6 stav´ı vlakov´e cesty pro lokomotivu BR221 a funkˇcn´ı bloky FB4 a FB8 stav´ı vlakov´e cesty pro lokomotivu V180.
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
5.2.3
Funkce FC
5.2.3.1
Funkce FC100 - zpracov´ an´ı dat pˇ rijat´ ych po RS232
44
Funkce FC100 prov´ad´ı zpracov´an´ı dat pˇrijat´ ych po s´eriov´em kan´alu v modulu WAGO 750-650. Z tohoto modulu jsou data naˇctena funkc´ı SFC14 a uloˇzena do datov´eho bloku DB1. Celkov´a velikost dat je 36B. Tyto data obsahuj´ı informaci o stavech trat’ov´ ych u ´seku. Model tyto data pos´ıl´a jako jeden celek zakonˇcen´ y znaˇckou signalizuj´ıc´ı konec dat. Touto znaˇckou jsou tˇri byte s hodnotou 0xF F h. Pˇrijat´a data se skl´adaj´ı z trojice byt˚ u obsahuj´ıc´ı adresu, data a kontroln´ı souˇcet. Zpracov´an´ı dat se prov´ad´ı n´asleduj´ıc´ım zp˚ usobem. Naˇctou se tˇri byty, provede XOR souˇcet prvn´ıch dvou byt˚ u, tj. adresy a dat a v´ ysledek se porovn´a se tˇret´ım bytem. Pokud se sobe rovnaj´ı, pˇrijat´a data jsou spr´avn´a a mohou b´ yt podle nich modifikov´ana data v tabulce trat’ov´ ych u ´sek˚ u. V pˇr´ıpadˇe, ˇze se nerovnaj´ı, data se zahod´ı a pokraˇcuje se d´ale ve zpracov´av´an´ı. 5.2.3.2
Funkce FC101 - Ovl´ ad´ an´ı v´ yhybek
Funkce FC101 prov´ad´ı dvˇe hlavn´ı ˇcinnosti. Prvn´ı hlavn´ı ˇcinnost´ı funkce FC101 je aktualizace dat v datov´em bloku DATARS232 podle zmˇeny stav˚ u v´ yhybek re´aln´eho kolejiˇstˇe. Obsah datov´eho bloku se potom pos´ıl´a po RS232 mikrokontrol´eru v modelu. Aktualizace dat v datov´em bloku se prov´ad´ı pouze pokud dojde ke zmˇenˇe stavu. V opaˇcn´em pˇr´ıpadˇe aktualizace neprob´ıh´a a neˇz´ad´a se o posl´an´ı i tˇechto dat po RS232. Druhou hlavn´ı ˇcinnost´ı funkce je aktualizace dat v tabulce u ´sek˚ u. Kaˇzd´ yu ´sek v tabulce trat’ov´ ych u ´sek˚ u m´a ve sv´em z´aznamu adresu sv´eho pˇredch´azej´ıc´ıho souseda a n´asleduj´ıc´ıho souseda. Pokud je u ´sek posledn´ı v jednom ˇci druh´em smˇeru, tak m´ısto adresy v pˇr´ısluˇsn´em smˇeru je koncov´a znaˇcka 0xF F F F h. Tohoto syst´emu znaˇcen´ı ´ navazov´an´ı u ´seku se vyuˇz´ıv´a pˇri pˇrestavov´an´ı v´ yhybek. Usek, kter´ y nen´ı v´ yhybkou spojen s v´ ystupn´ım u ´sekem n´adraˇz´ı m´a v pˇr´ısluˇsn´em smˇeru znaˇcku 0xF F F F h. Pokud bude tento u ´sek spr´avnˇe spojen s v´ ystupn´ım u ´sekem bude m´ıt v pˇr´ısluˇsn´em smˇeru adresu u ´seku, kter´ y obsahuje v´ yhybky. 5.2.3.3
Funkce FC102 - Zamyk´ an´ı a odemyk´ an´ı v´ yhybek
Funkce FC102 prov´ad´ı zamyk´an´ı a odemyk´an´ı v´ yhybek podle stavu 8b registr˚ u pˇr´ıznak˚ u, kter´ y m´a kaˇzd´a vyhybka. Stavy jednotliv´ ych bit˚ u v tˇechto registrech aktualizuj´ı jednotliv´e funkce a funkˇcn´ı bloky programu. Pokud je alespoˇ n jeden z bit˚ uv registru ve stavu log. 1, potom funkce FC102 provede uzamknut´ı v´ yhybky tj. nastav´ı pˇr´ıznak uzamˇcen´ı v 8b registru 21 a 23 v datov´em bloku DB3. Registr 21 a 23 je
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
45
pamˇet, kde jsou uloˇzeny pˇr´ıznaky pro cel´e skupiny v´ yhybek, kter´e spolu na kolejiˇsti soused´ı. N´asleduj´ıc´ı tabulka ukazuje sdruˇzen´ı semafor˚ u a v´ yhybek do skupin. 5.2.3.4
Funkce FC106 - Inicilizace tabulky trat’ov´ ych u ´ sek˚ u
Funkce FC106 prov´ad´ı inicializaci modelu nebo pˇri reinicializaci modelu nastaven´ı tabulky trat’ov´ ych u ´sek˚ u do z´akladn´ıho stavu. 5.2.3.5
Funkce FC107 - Ovl´ ad´ an´ı semafor˚ u
Funkce FC107 ovl´ad´a vˇsechny semafory jak ve virtu´aln´ım a tak v re´aln´ ym kolejiˇsti. V pˇr´ıpadˇe, ˇze byly zmˇenˇeny stavy semafor˚ u, kter´e jsou na skuteˇcn´em kolejiˇsti, funkce FC107 provede aktualizaci dat semafor˚ u v datov´em bloku DataRS232, jehoˇz obsah se potom odeˇsle po RS232. V modelu ˇzeleznice se pouˇz´ıv´a odjezdov´ y semafor a vjezdov´ y semafor. Svˇetlo
Popis v´ yznamu
Zelen´a Volno ˇ Cerven´ a St˚ uj a z´akaz posunu B´ıla ˇ a Zlut´
Posun dovolen Maxim´aln´ı povolen´a rychlost 40km/h Tabulka 5.7: Odjezdov´ y semafor
Svˇetlo
Popis v´ yznamu
Horn´ı ˇzlut´a na n´asleduj´ıc´ım n´avˇest´ı m˚ uˇze b´ yt zmˇena stavu Zelen´a ˇ Cerven´ a
Volno
Doln´ı ˇzlut´a
Maxim´aln´ı povolen´a rychlost 40km/h
St˚ uj
Tabulka 5.8: Vjezdovy semafor Odjezdov´e semafory (tab. 5.7) jsou sdruˇzen´e pro vˇsechny koleje na n´adraˇz´ı, ze kter´ ych povoluj´ı odjezd z n´adraˇz´ı na ˇsirou trat’. Z´akladn´ım stavem na vˇsech semaforech je ˇcerven´a. Pokud na semaforu sv´ıt´ı pouze ˇcerven´e svˇetlo, je zak´az´an odjezd vlaku z n´adraˇz´ı dan´ ym smˇerem a zak´az´an posun v dan´e ˇc´asti n´adraˇz´ı. Pokud sv´ıt´ı zelen´e svˇetlo na semaforu, vlak m˚ uˇze opustit n´adraˇz´ı. V pˇr´ıpadˇe, ˇze se zelen´ ym svˇetlem sv´ıt´ı i doln´ı ˇzlut´e svˇetlo, vlak m˚ uˇze je maxim´aln´ı rychlost´ı 40km/h. Rozsv´ıcen´e b´ıl´e svˇetlo dovoluje posun v dan´em u ´seku n´adraˇz´ı. Vjezdov´ y semafor (tab. 5.8) dovoluje vlaku, kter´ y se nach´az´ı na ˇsir´e trati pˇrijet na n´adraˇz´ı. Pokud na semoforu sv´ıt´ı pouze ˇcerven´a barva, mus´ı vlak zastavit pˇred
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
46
semaforem a ˇcekat aˇz mu bude dovolen vjezd na n´adraˇz´ı. Pokud sv´ıt´ı pouze zelen´e svˇetlo, vlak m´a volno a m˚ uˇze pˇrijet na n´adraˇz´ı. V pˇr´ıpadˇe, ˇze na semaforu sv´ıt´ı zelen´e svˇetlo spolu se ˇzlutou, vlak pˇrij´ıˇzdˇej´ıc´ı na n´adraˇz´ı m˚ uˇze pˇrijet na n´adraˇz´ı, ale maxim´aln´ı vjezdov´a rychlost je 40km/h. Tato svˇeteln´a kombinace se pouˇz´ıv´a u situac´ı, kdy vlak bude uh´ ybat z pˇr´ım´e koleje na postran´ı a v´ yhybky nedovoluj´ı pˇrejezd maxim´aln´ı povolenou rychlost´ı v dan´em trat’ov´em u ´seku. Rozsv´ıcen´e horn´ı ˇzlut´e svˇetlo znaˇc´ı, ˇze na n´asleduj´ıc´ım n´avˇest´ı bude zmˇena stavu.
5.2.4
Hlavn´ı program
Hlavn´ı program se skl´ad´a z nˇekolika jednoduch´ ych ˇc´ast´ı, kter´e zajiˇst’uj´ı ˇr´ızen´ı cel´eho modelu ˇzeleznice. Ihned po spuˇstˇen´ı se provede inicializace modulu s´eriov´eho kan´alu WAGO 785-650, potom se z inicializuje obsah pamˇeti PLC a nakonec inicializace se provede prvotn´ı pˇrenos dat do modelu ˇzeleznice, ˇc´ımˇz se nastav´ı v´ yhybky a semafory do z´akladn´ı polohy. Po inicializaci se zaˇcne komunikovat prostˇrednictv´ım modulu Wago 750-650 s modelelem po RS232. Komunikace mezi modelem ˇzeleznice a PLC prob´ıh´a tak, ˇze kaˇzd´ ych cca 200ms PLC poˇsle paket s daty a s poˇzadavkem na zpˇetn´e poslan´ı nov´ ych dat ze sn´ımaˇc˚ u. Pos´ılan´a datov´a struktura paketu se nachaz´ı v datov´em bloku DB2 a je zn´azornˇena tabulkou tab. 5.9. Prvn´ı tˇri byte jsou poˇzadavek pro posl´an´ı nov´ ych dat z sn´ımaˇc˚ u. Dalˇs´ıch ˇsest byte pˇredstavuje dva pˇr´ıkazy pro lokomtivy BR221 a V180. N´asleduj´ıc´ıch 12 byte jsou data, kter´e v sobˇe nesou informace o poloze v´ yhybek v kolejiˇsti. Posledn´ıch 36 byte jsou informace o stavu svˇetel na semaforech. Vˇetˇsinou se nepos´ıl´a cel´a datov´a struktura, ale jenom ˇc´ast. Velikost pos´ılan´eho paketu je ovlivnˇena zmˇenami dat, kter´e se t´ ykaj´ı v´ yhybek a semafor˚ u. Pokud doˇslo bˇehem scancyklu PLC ke zmˇenˇe polohy v´ yhybky, poˇslou se i vˇsechna data urˇcuj´ıc´ı polohu v´ yhybek. V pˇr´ıpadˇe, ˇze doˇslo ke zmˇenˇe stavu svˇetel na semaforech je posl´an paket o maxim´aln´ı velikosti tj. jsou posl´ana vˇsechna data. Hlavn´ı program v PLC prob´ıh´a n´asledovnˇe. Nejprve se naˇctou data. Naˇcten´ı dat trv´a 8 aˇz 9 scancykl˚ u PLC podle toho jak jsou data naˇc´ıt´ana z modulu WAGO 750650. Bˇehem naˇc´ıtan´ı dat z modulu WAGO 750-650 je cel´e ˇr´ızen´ı modelu ˇzeleznice zastaveno tj. nevolaj´ı se ˇz´adn´e jin´e funkce neˇz SFC14 a SFC15. Funkce SFC14 naˇc´ıt´a data z modulu WAGO 750-650 a funkce SFC15 do nˇej zapisuje. V pˇr´ıpadˇe, ˇze je naˇcteno 36B dat, otestuje se koncov´a znaˇcka pˇrenosu dat. Koncovou znaˇcku dat jsou tˇri po sobˇe jdouc´ı byte s hodnotou 0xF F h. V pˇr´ıpadˇe u ´spˇeˇsn´eho testu se zpracuj´ı pˇrijat´a data pomoc´ı funkce FC100. Potom se podle stavu vstupn´ıch promˇenn´ ych zavolaj´ı jiˇz zmiˇ novan´e funkˇcn´ı bloky a funkce. K ovl´ad´an´ı lokomotivy BR221 se
ˇ ´IDIC´I ALGORITMUS V PLC KAPITOLA 5. R
47
Adresa zaˇr´ızen´ı
Data
CRC
Popis
0x10h
DDDDDDDDD
CCCCCCCC
rychlost lokomotivy BR221
0x11h
DDDDDDDDD
CCCCCCCC
rychlost lokomotivy V180
0x20h
0000DDDDD
CCCCCCCC
v´ yhybky 1 − 4
0x21h
0000DDDDD
CCCCCCCC
v´ yhybky 4 − 8
0x22h
0000DDDDD
CCCCCCCC
v´ yhybky 9 − 12
0x23h
0000DDDDD
CCCCCCCC
v´ yhybky 13 − 15
0x40h
0000DDDDD
CCCCCCCC
semafor ˇc.6
0x41h
0000DDDDD
CCCCCCCC
semafor ˇc.8
0x42h
0000DDDDD
CCCCCCCC
semafor ˇc.7
0x43h
0000DDDDD
CCCCCCCC
semafor ˇc.11
0x44h
0000DDDDD
CCCCCCCC
semafor ˇc.3
0x45h
0000DDDDD
CCCCCCCC
semafor ˇc.4
0x46h
0000DDDDD
CCCCCCCC
semafor ˇc.12
0x47h
0000DDDDD
CCCCCCCC
semafor ˇc.5
0x48h
0000DDDDD
CCCCCCCC
semafor ˇc.1
0x49h
0000DDDDD
CCCCCCCC
semafor ˇc.2
0x4Ah
0000DDDDD
CCCCCCCC
semafor ˇc.10
0x4Bh
0000DDDDD
CCCCCCCC
semafor ˇc.19
Tabulka 5.9: Data urˇcen´a k pˇrenosu do modelu v hlavn´ım programu vol´a funkˇcn´ı blok FB1 s datov´ ym blokem DB5, k ovl´ad´an´ı lokomotivy V180 se vol´a funkˇcn´ı blok FB1 s datov´ y blokem DB10. N´aslednˇe na to se provede aktualizace stavu v´ yhybek a semafor˚ u zavol´an´ım funkc´ı FC101 a FC107. Kdyˇz je lokomotiva BR221 ˇr´ızena pomoc´ı pˇredprogramovan´e vlakov´e cesty, zavol´a se jeˇstˇe pˇred funkˇcn´ım blokem FB1 funkˇcn´ı blok FB2 nebo FB6. U lokomotivy V180 je to podobnˇe, jedin´ y rozd´ıl je v tom, ˇze se zavolaj´ı funkˇcn´ı blok FB4 nebo FB8. Pos´ıl´an´ı dat do modelu ˇzeleznice po RS232 se zaˇc´ın´a prov´adˇet vˇzdy kaˇzd´ y 30. scancyklus. Bˇehem pˇrenosu se opˇet volaj´ı pouze funkce SFC14 a SFC15 pomoc´ı kter´ ych se odeˇslou data z datov´eho bloku DB2. Doba odes´ıl´an´ı vˇsech dat z´aleˇz´ı na velikosti pos´ılan´eho paketu. D´elka paketu je ovlivnˇena zmˇenami poloh v´ yhybek a zmˇenami stav˚ u svˇetel semafor˚ u. Maxim´aln´ı d´elka paketu je 66B.
Kapitola 6 Visualizace 6.1
Konfigurace I/O serveru S7
Ke komunikaci mezi PLC automatem a aplikac´ı visualizaˇcn´ıho prostˇred´ı InTouch je tˇreba nakonfigurovat DDE server S7. Po spuˇsten´ı DDE serveru se menu zvol´ı poloˇzka Configure / Topic definition / New.. . Po zvolen´ı poloˇzky ”New” se objev´ı n´asleduj´ıc´ı okno, ktere se vypln´ı, pˇresnˇe tak jak je uvedeno na obr´azku.
Obr´azek 6.1: Nastaven´ı DDE serveru 48
KAPITOLA 6. VISUALIZACE
49
D´ale je nutn´e v project manageru Simaticu nahr´at projekt PC S7-connection do karty v poˇc´ıtaˇci. Projekt uˇz byl vytvoˇren v r´amci v´ yuky a je nahr´an na CD.
Obr´azek 6.2: Nastaven´ı karty v poˇc´ıtaˇci Pro dalˇs´ı pr´aci je nutn´e si zapamatovat si obsah pol´ıˇcka Topic Name, kter´e bude potˇreba jeˇstˇe pˇri konfiguraci visualizaˇcn´ıho prostˇred´ı InTouch.
6.2 6.2.1
Visualizace v prostˇ red´ı InTouch Z´ akladn´ı nastaven´ı v prostˇ red´ı InTouch
Pˇri zaloˇzen´ı projektu ve visualizaˇcn´ım prostˇred´ı je nutn´e nakonfigurovat pˇr´ıstupov´ y bod do DDE serveru. Konfigurace se provede podle obr´azku obr. 6.3.
KAPITOLA 6. VISUALIZACE
50
Obr´azek 6.3: Konfigurace pˇr´ıstupov´eho bodu
6.2.2
Visualizace
Visualizace slouˇz´ı jako komunikaˇcn´ı rozhran´ı mezi oper´atorem a ˇr´ıdic´ım syst´emem. Pro visualizaci modelov´eho kolejiˇstˇe byla zvolena jako podkladov´a barva ˇcern´a, stejnˇe jako je pouˇzita i ve skuteˇcnosti napˇr. na Hlavn´ım n´adraˇz´ı v Praze. Pokud je kolej voln´a, kolej je zn´azornˇena ˇsedivou barvou a v pˇr´ıpadˇe, ˇze kolej je obsazena je tato barva svˇetle ˇsed´a. D´ale pˇri zobrazov´an´ı obsazenosti koleje na n´adraˇz´ı je jeˇstˇe zobrazen symbol lokomotivy, kter´a je na dan´e koleji. Zobrazen´ı semaforu je stejn´e jako ve skuteˇcnosti. Po spuˇstˇen´ı se objev´ı hlavn´ı okna visualizace, kter´e funguje jako rozcestn´ık. Odtud se oper´ator dostane dostane na vˇsechny okna ve visualizaci. Syst´em obrazovek je vytvoˇren tak, ˇze vˇsechny okna n´adraˇz´ı jsou mezi sebou propojeny. V´ yhodou tohoto syst´emu je fakt, ˇze na pˇrepnut´ı z jednoho n´adraˇz´ı na druh´e postaˇc´ı pouze jedno kliknut´ı myˇsi. Nav´ıc z kaˇzd´eho okna se nech´a otevˇr´ıt okno s ovl´ad´an´ım jak lokomotivy BR221 tak i lokomotivy V180. D´ale je moˇzn´e z kaˇzd´eho n´adraˇz´ı dostat na okno, kde je zobrazen souhrnn´ y pohled na cel´e kolejiˇstˇe. 6.2.2.1
Visualizace n´ adraˇ z´ı
Vˇsechna n´adraˇz´ı jsou zobrazov´ana stejn´e stylu. Pod n´azvem stanice se nach´az´ı panel s tlaˇc´ıtky, pomoc´ı kter´eho se oper´ator lehce pˇrepne na poˇzadovanou obrazovku. Vedle tohoto panelu je jeˇste jeden mal´ y panel, kter´ y pˇrep´ın´a na dvˇe servisn´ı obrazovky. Prvn´ı servisn´ı obrazovka zobrazuje odstavn´e n´adraˇz´ı ”Editta”, kam se odstavuj´ı lokomotivy pˇri vjezdu lokomotivy do virtu´aln´ı ˇc´asti kolejiˇstˇe. Druh´a obrazovka slouˇz´ı k zobrazen´ı stavu pouze skuteˇcn´eho modelu ˇzeleznice. Ovl´adan´ı semafor˚ u se prov´ad´ı
KAPITOLA 6. VISUALIZACE
51
kliknut´ım na svˇetlo semaforu, kter´e se m´a rozsv´ıtit. Zmˇenou stavu jednoho svˇetla se mohou zmˇenit i stavy ostatn´ıch semafor˚ u. V´ yhybky se ovl´adaj´ı podobnˇe jako semafory. Zmˇena polohy v´ yhybky se provede kliknut´ım na pˇr´ısluˇsnou v´ yhybku. Pokud je v´ yhybka zamknuta, nezobraz´ı se obd´eln´ık okolo ovl´adac´ıho prvku v´ yhybky. V pˇr´ıpadˇe, ˇze oper´ator chce pˇresunout v´ yhybku pˇrestoˇze je zamknuta, mus´ı v´ yhybku nejprve odemknout pomoc´ı tlaˇc´ıtka ”Emergency”’ a potom m˚ uˇze prov´est zmˇenu. V momentˇe, kdy do vjezdov´eho trat’ov´eho u ´seku vjede lokomotiva, zesvˇetl´a dan´ y trat’ov´ y u ´sek. Po vjezdu lokomotivy na jednu z kolej´ı n´adraˇz´ı, pˇr´ısluˇsn´a kolej se zesvˇetl´a a uprostˇred koleje se objev´ı obr´azek lokomotivy, kter´a vjela do dan´eho u ´seku. Po opuˇsten´ı koleje obr´azek zmiz´ı.
Obr´azek 6.4: Visualizace n´adraˇz´ı Marketta
6.2.2.2
Visualizace cel´ eho modelu kolejiˇ stˇ e
Zobrazen´ı cel´eho modelu kolejiˇstˇe se nese ve stejn´em stylu jako jsou zobrazeny n´adraˇz´ı. Koleje jsou naznaˇceny tmavˇe ˇsedou ˇc´arou. Obsazen´ y trat’ov´ yu ´sek je zobrazen svˇetle ˇsedou ˇc´arou. U kaˇzd´eho n´adraˇz´ı je tlaˇc´ıtko, po jehoˇz stiknut´ı se oper´ator dostane na obrazovku dan´eho n´adraˇz´ı. D´ale se na obrazovce nach´az´ı stejn´ y panel jako u obrazovek n´adraˇz´ı, kter´ y slouˇz´ı k rychl´emu pˇrep´ın´an´ı mezi jednotliv´ ymi obrazovkami.
KAPITOLA 6. VISUALIZACE
52
Obr´azek 6.5: Visualizace cel´eho modelu 6.2.2.3
Ovl´ adan´ı lokomotivy BR221 a V180
Kaˇzd´a lokomotivy m´a svoje ovl´adac´ı okno, kter´e je rozdˇelˇeno na dvˇe ˇc´asti. Prvn´ı ˇc´ast se nach´az´ı v lev´e polovinˇe okna a slouˇz´ı k ˇr´ızen´ı pohybu lokomotivy. Druh´a ˇc´ast,kter´a se nach´az´ı v prav´e polovinˇe je urˇcen´a ke stavbˇe pˇredprogramovan´ ych vlakov´ ych cest.
Obr´azek 6.6: Ovl´ad´an´ı lokomotivy BR221 Vzhledem k tomu, ˇze lokomotiva se pohybuje jak re´aln´e ˇc´asti kolejiˇstˇe tak i ve virtu´aln´ı ˇc´asti, tak bylo nutn´e pouˇz´ıt dvˇe tlaˇc´ıtka STOP. Jedno tlaˇc´ıtko je urˇceno pro lokomotivu ve virtu´aln´ı ˇc´asti, druh´e tlaˇc´ıtko STOP je urˇceno pro lokomotivu na skuteˇcn´em kolejiˇsti. Ostatn´ı ovl´adac´ı prvky tj. tachometr, slider, pˇrep´ın´an´ı smˇeru j´ızdy se pˇri pˇrejezdu z virtu´aln´ı ˇc´asti do re´aln´e a opaˇcnˇe pˇrep´ınaj´ı na lokomotivu,
KAPITOLA 6. VISUALIZACE
53
kter´a je zrovna aktivn´ı tj. pokud je lokomotiva ve virtu´aln´ı ˇc´asti tak se ovl´adac´ı prvky vztahuji k virtu´aln´ı lokomotivˇe a pokud je lokomotiva ve re´aln´e ˇc´asti kolejiˇstˇe pak se ovl´adac´ı prvky vztahuj´ı k skuteˇcn´e lokomotivˇe.
Kapitola 7 Z´ avˇ er ˇ sen´ı diplomov´e pr´ace bylo rozdˇelˇeno na tˇr´ı na sebe navazuj´ıc´ı ˇc´asti. Prvn´ı ˇca´st Reˇ ˇreˇsen´ı se zab´ yvala stavbou modelu kolejiˇstˇe. Druh´a ˇc´ast se vˇenovala ˇr´ıdic´ımu algoritmu v PLC Simatic S7-315 2DP a tˇret´ı ˇc´ast ˇreˇsen´ı diplomov´e pr´ace se zab´ yvala vytvoˇren´ım visualizace jak re´aln´eho modelu kolejiˇstˇe tak i virtu´aln´ıho. Stavba modelu ˇzeleznice prob´ıhala po ucelen´ ych etap´ach. Nejprve bylo postaveno kolejiˇste na desce stolu o ˇs´ıˇrce 1,2 m a d´elce 2,4 m. Ke stavbˇe kolejiˇste bylo pouˇzito ”modelov´e kolejivo” velikosti TT tj. model ˇzeleznice je zmenˇsen oproti skuteˇcnosti v pomˇeru 1:120. K pˇrestavov´an´ı v´ yhybek byly pouˇzity pˇrestavn´ıky vyuˇz´ıvaj´ıc´ı k pˇresunu v´ yhybky posuvn´ y mostek posunovan´ y motorkem . Odbˇer jednoho motorku pˇri norm´aln´ı provozu je pr˚ umˇernˇe 300 mA. Pˇri pˇrestavov´an´ı vˇsech 15 v´ yhybek se pr˚ umˇern´ y celkov´ y odbˇer proudu rovn´a hodnotˇe 4,5 A. D´ale bylo v modelu pouˇzito 12 ˇctyˇrsvˇeteln´ ych semafor˚ u. Kaˇzd´e n´adraˇz´ı m´a na sv´em vstupu jeden vjezdov´ y semafor a jeden odjezdov´ y semafor. Kv˚ uli sledov´an´ı pohybu lokomotivy po kolejiˇsti je cel´e kolejiˇstˇe rozˇrez´ano na trat’ov´e u ´seky, kter´e jsou nap´ajeny z DCC zesilovaˇce vˇzdy pˇres proudov´ y sn´ımaˇc. K ˇr´ızen´ı pohybu lokomotiv byl pouˇzit syst´em Digital Command Control, kter´ y lokomotiv´am prostˇrednictv´ım kolej´ı pos´ıl´a pakety s pˇr´ıkazy. V kaˇzd´e lokomotivˇe je dekod´er tˇechto paket˚ u, kter´ y zajist´ı splnˇen´ı pˇrijat´ ych pˇr´ıkaz˚ u. Vzhledem k tomu, ˇze PLC bylo pˇr´ıliˇs pomal´e na generov´an´ı tˇechto pˇr´ıkaz˚ u, byl mezi model a PLC vloˇzen elektronick´ y syst´em. Tento elektronick´ y syst´em funguje jako ˇr´ıdic´ı elektronika modelu a komunikaˇcn´ı rozhran´ı mezi modelem a nadˇr´ızen´ ym syst´emem. Komunikace mezi nadˇr´ızen´ ym syst´emem a modelem ˇ ıdic´ı elektronika modelu prob´ıh´a po s´eriov´em kan´alu RS232 rychlost´ı 9600 Baud/s. R´ je schopna od nadˇr´ızen´eho syst´emu pˇrij´ımat pˇr´ıkazy pro obˇe lokomotivy, vˇsechny semafory a v´ yhybky. Nadˇrazen´emu syst´emu je naopak schopna pos´ılat informace o poloze v´ yhybek a stavech jednotliv´ ych trat’ov´ ych u ´sek˚ u. V pˇr´ıpadˇe, ˇze komunikace mezi nadˇrazen´ ym syst´em neexistuje tj. nepˇr´ıjde bˇehem 1s ˇz´adn´ y poˇzadavek na posl´an´ı dat, ˇr´ıdic´ı elektronika odpoj´ı od koleje nap´ajec´ı napˇet´ı. V pˇr´ıpadˇe, ˇze komunikace 54
´ ER ˇ KAPITOLA 7. ZAV
55
mezi modelem a nadˇr´ızen´ ym syst´emem je pˇr´ıliˇs intenzivn´ı, mikrokontrol´er pˇrestane zvl´adat generov´an´ı DCC sign´alu podle normy NMRA 9.2.1 a dojde k zastaven´ı pohybu lokomotiv. Ke komunikaci mezi modelem a okoln´ım svˇetem se pouˇz´ıv´a pˇresnˇe ˇ ıdic´ı elektronika je sloˇzena z centr´aln´ı ˇr´ıdic´ı jednotky a peridefinovan´ y protokol. R´ feri´ı k n´ı pˇripojen´ ych. J´adrem ˇr´ıdic´ı jednotky je mikrokontrol´er PIC16F877 od firmy Microchip. Mezi periferie patˇr´ı ovl´adan´ı v´ yhybek a semafor˚ u, proudov´e sn´ımaˇce a zesilovaˇc DCC sign´alu. V´ yˇse zmiˇ novan´e odpojen´ı kolej´ı od nap´ajen´ı prov´ad´ı DCC zesilovaˇc na pokyn mikrokontrol´eru PIC16F84. Mikrokontrol´er PIC16F84 sleduje vstup zesilovaˇce a v pˇr´ıpadˇe, ˇze nen´ı na vstupu pulsn´ı sign´al, vyd´a povel k odpojen´ı. Druhou etapou ˇreˇsen´ı diplomov´e pr´ace bylo vytvoˇren´ı uk´azkov´eho ˇr´ıdic´ıho algoritmu. Poˇc´ateˇcn´ı snaha o vytvoˇren´ı syst´emu podobn´emu jako funguje na skuteˇcn´e ˇzeleznici ˇ ıdic´ı musela b´ yt korigov´ana, protoˇze postaven´ y model nebyl dostateˇcnˇe rozlehl´ y. R´ program umoˇzn ˇuje lokomotivy ˇr´ıdit bud’ pomoc´ı automatu nebo ruˇcn´ım ˇr´ızen´ım. Obˇe dvˇe lokomotivy maj´ı svoji vlastn´ı logiku, kter´a se sleduje a hl´ıd´a pohyb lokomotivy po kolejiˇsti a v pˇr´ıpadˇe hrozby kolize je schopna lokomotivu zastavit. Vnitˇrn´ı logika lokomotivy d´ale pozn´a m´ısto, kde lokomotiva pˇrej´ıˇzd´ı z re´aln´e do virtu´aln´ı ˇc´asti kolejiˇstˇe a doveze skuteˇcnou lokomotivu na odstavn´e n´adraˇz´ı, na kter´em lokomotiva ˇcek´a do doby neˇz se lokomotiva ve vizualizaci vr´at´ı zpˇet do skuteˇcn´eho kolejiˇstˇe. D´ale ˇr´ıdic´ı program ovl´ad´a zhlav´ı n´adraˇz´ı. Visualizace je vytvoˇrena ve visualizaˇcn´ım prostˇred´ı InTouch. Visualizace se skl´ad´a z hlavn´ı obrazovky, kter´a funguje jako rozscetsn´ık do dalˇs´ıch oken. Ve visualizaci je zobrazen celkov´ y pohled na cel´e kolejiˇstˇe. D´ale jsou zobrazena vˇsechna n´adraˇz´ı a ˇr´ıdic´ı panely lokomotiv BR221 a V180. Mezi vˇsemi okny jednotliv´ ych n´adraˇz´ı se nech´a pˇrep´ınat. V budoucnu lze zapojit sn´ımaˇce koncov´e polohy pˇrestavn´ık˚ u polohy v´ yhybek na paraleln´ı sbˇernici a zajistit tak lepˇs´ı zpˇetnou vazbu modelu. Mikrokontrol´er PIC16F877 jiˇz v sobˇe obsahuje program, kter´ y je schopen pˇreˇc´ıst data o poloze pˇrestavn´ık˚ u a poslat je nadˇr´ızen´emu syst´emu. D´ale je moˇzn´e model inovovat instalac´ı ovladaˇc˚ u rozpojn´ ych kolej´ı, kter´e byly pˇri stavbˇe modelu zahrnuty do modelu ˇzeleznice. Ovladaˇce se nechaj´ı pˇripojit na port D mikrokontrol´eru PIC16F877. ˇ ıdic´ı Model ˇzeleznice bude v budoucnu slouˇzit jako model ve cviˇcen´ıch pˇredmˇetu R´ technika. Pˇri ˇr´ızen´ı modelu si studenti budou moci d˚ ukladnˇe procviˇcit programov´an´ı PLC ve STEP7.
Literatura [1] National Model Railroad association, DCC Standard S-9.1 [online]. Posledn´ı revize 2002-09-05. http://www.dcc.info/standards rps/s91.html. [2] National Model Railroad association, DCC Standard S-9.2 [online]. Posledn´ı revize 2002-09-05. http://www.dcc.info/standards rps/s92.html. [3] National Model Railroad association, DCC - Introduction [online]. Posledn´ı revize 2001-02-14. http://www.nmra.org/beginner/dccbasic.html. [4]
Klub modulov´e ˇzeleznice ZABABOV, Pˇrestavn´ık Fulgurex, [online]. http://www.zababov.cz/vs/Moduly/Stavby/Fulgurex.htm
[5] PIC16F87X Data Sheet , Philips Semiconductors, leden 2001. (PDF) [6] PIC16F84 Data Sheet , Philips Semiconductors, leden 2001. (PDF) [7] Souˇc´astky pro elektrotechniku. Praha: GM electronic, 2002.
56
Dodatek A Pouˇ zit´ e zkratky DCC - Digital Command Control NMRA - National Model Railroad Association I 2 C - Inter Integrated Circuit USART - Universal Synchronous Asynchronous Receiver Transmitter EEPROM - Electrical Erase Programmable Read Only Memory RAM - Random Access Memory TTL - Tranzistor Tranzistor Logic RISC - Reduced Instruction Set Computer SPI - Serial Peripheral Interface
57
Dodatek B Sch´ emata
58
´ DODATEK B. SCHEMATA
B.1
Sch´ ema centr´ aln´ı ˇ r´ıdic´ı jednotky
59
´ DODATEK B. SCHEMATA
B.2
Sch´ ema DCC zesilovaˇ ce
60
´ DODATEK B. SCHEMATA
B.3
Sch´ ema proudov´ ych sn´ımaˇ c˚ u
61
´ DODATEK B. SCHEMATA
B.4
Sch´ ema ovl´ ad´ an´ı v´ yhybek
62
´ DODATEK B. SCHEMATA
B.5
Sch´ ema ovl´ ad´ an´ı semafor˚ u
63
´ DODATEK B. SCHEMATA
B.6
Sch´ ema multiplexoru paraleln´ı sbˇ ernice
64
Dodatek C Obsah CD Pˇriloˇzen´e CD obsahuje: - katalogov´e listy nˇekter´ ych pouˇzit´ ych souˇc´astek - v´ yvojov´e prostˇred´ı MPLAB pro PIC16F877 - v´ yvojov´e prostˇred´ı UIP pro PIC16F84 - program do PLC - aplikace do visualizaˇcn´ıho prostˇred´ı InTouch - programy pro PIC16F877 a PIC16F84 - sch´emata a tiˇstˇen´e spoje ˇr´ıdic´ı elektroniky
65
Dodatek D N´ akres kolejiˇ stˇ e
Obr´azek D.1: N´akres kolejiˇstˇe
66