Příkaz "SETINT"

David
Příspěvky: 38
Registrován: 19 dub 2013, 18:05

Příkaz "SETINT"

Příspěvek od David » 19 dub 2013, 19:58

Dobrý den,
s pomocí mikrokontroléru Picaxe 14M2 bych rád realizoval zařízení napodobující funkci mobilní části vlakového zabezpečovače s přenosem návěstí na hnací vozidlo.
Coby "velmi mírně" pokročilému začátečníkovi v oboru mikrokontrolérů se mi ale nedaří vyřešit problematiku okamžité reakce na změnu stavů na čtyřech vstupních pinech uvedeného mikrokontroléru 14M2. U verze zabezpečovače bez přenosu návěstí /Picaxe 08M2/ je pro okamžitou reakci na změnu stavu na pinu C.3 použit příkaz SETINT .

REM Kontrola bdelosti,ver.01/12 - Picaxe 08M2

symbol stisk_TB = b0

kontrola_bdelosti:
high 1 ;rozsviceni modre LEDl;
pause 6500 ;svit modre LED 6,5 sek.
low 1 ;zhasnuti modre LED
if pin3>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00001000,%00001000
pause 11000 ;prodleva 11 sek.
if pin3>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00001000,%00001000
high 2 ;zacatek houkani houkacky
pause 5500 ;houkani houkacky 5,5 sek.
low 2 ;konec houkani houkacky
if pin3>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00001000,%00001000
high 4 ;zacatek impulsu pro PoKeys /Backspace/
pause 1000 ;delka impulsu pro PoKeys /Backspace/
low 4 ;konec impulsu pro PoKeys /Backspace/
stop
interrupt:
stisk_TB = 1
return


U verze s přenosem návěstí ale musí mikrokontrolér/program okamžitě reagovat na změny stavů na čtyřech pinech /C.0, C.1, C.2 a C.3/. Jestli se nepletu, příkaz SETINT lze v programu použít jen jednou, takže "hlídání" změn a okamžité reakce na ně nebudou u více vstupů pomocí SETINT proveditelné. Ke všemu je v popisu 14M2 uvedeno, že příkaz SETINT je možno použít jen u vstupů C.0 - C.2 . U C.3 se již tedy použít nedá.
Existuje tedy i jiné řešení okamžité reakce na změny stavů než příkazem SETINT ?

Předem děkuji za případné rady či doporučení.

David

AlesH
Příspěvky: 322
Registrován: 25 úno 2013, 09:18

Re: Příkaz "SETINT"

Příspěvek od AlesH » 20 dub 2013, 11:43

Myslím, že ve Vašem případě je možné místo přerušení použít dostatečně rychlé opakované programové testování stavu vstupů v konečné smyčce (tzv. polling). Takovou smyčku (ve které programově počítáme uplynulý čas) lze použít místo samostatného příkazu "pause" a tím dosáhnout rozumně rychlou odezvu na změnu vstupů. Pro počítání uplynulého času musíme "obětovat" nejméně jednu proměnnou.

Takže napišme například proceduru "cekej", která bude testovat vstupy a přitom odpočítávat čas po desetinách sekundy (v proměnné "cas"):

Kód: Vybrat vše

cekej:
  pause 100                     ; počkat desetinu sekundy
  dec cas                       ; snížit počítadlo času
  if cas=0 then return : endif  ; pokud čas vypršel, vrátit se z procedury zpět do hlavního programu
  if pinsC = 0 then goto cekej  ; pokud je stav všech C vstupů na nule, točit testovací smyčku dokola
  stisk_TB = 1                  ; tady lze případně zaznamenat, že došlo ke změně vstupů
return                          ; zpět do hlavního programu
Tuto proceduru pak můžeme v původním programu využít místo "pause 6500" např. takto:

Kód: Vybrat vše

cas = 65     ; nastavit limit na 6,5 sekundy
gosub cekej  ; čekat nastavený čas a přitom testovat stav vstupů (reakce na změnu vstupů bude kratší než desetina sekundy)
P.S.: "setint" lze použít jedním příkazem i pro hlídaní změn několika vstupních pinů najednou, ale u 14M2 to opravdu mohou být jen piny C.0 až C.2.
Naposledy upravil(a) AlesH dne 20 dub 2013, 15:28, celkem upraveno 1 x.

David
Příspěvky: 38
Registrován: 19 dub 2013, 18:05

Re: Příkaz "SETINT"

Příspěvek od David » 20 dub 2013, 14:25

Dobrý den,
děkuji za tip.

S pozdravem

David

AlesH
Příspěvky: 322
Registrován: 25 úno 2013, 09:18

Re: Příkaz "SETINT"

Příspěvek od AlesH » 22 dub 2013, 11:32

Ještě mám jednu poznámku. Ze zadání mi není jasné, jakou kombinaci změn těch 4 vstupů to má vlastně hlídat, ale pokud to má reagovat vždy, když je alespoň jeden vstup aktivní (1), tak to lze samozřejmě vyřešit i hardwarově a spojit ty vstupy přes diody do jednoho signálu a ten pak libovolně detekovat (třeba i přes jednovstupový "setint").

David
Příspěvky: 38
Registrován: 19 dub 2013, 18:05

Re: Příkaz "SETINT"

Příspěvek od David » 22 dub 2013, 23:34

Dobrý den,
ono zadání je (alespoň pro mne) dost složité. Pokusím se tedy o "zjednodušený" popis pro 14M2 ...

Režim 1.
C.0 = log.X , C.1 = log.0 , C.2 = log.1 , C.4 = log.0 pak B.5 = 0 , B.4 = log.0 , B.3 = log.0 .

Režim 2.
C.0 = log.X , C.1 = log.0 , C.2 = log.1 , C.4 = log.1 pak B.5 = log.1 po dobu trvání log.1 na C.4 , B.3 = 0 , B.4 = 0 .

Režim 3.
C.0 = log.X , C.1 = log.0 , C.2 = log.1 ,C.3 = log.1 , C.4 = log.X pak B.5 = log.1 po dobu 6,5 sek. od přivedení log.1 na pin C.3 , B.4 = log.1 vždy po dobu trvání log.1 na C.3 , B.3 = 0 .

Režim 4.
C.0 = log.X , 1 = log.1 , C.2 = log.0 ,C.3 = log.X , C.4 = log.X pak běží program "kontrola_bdelosti" ...

symbol stisk_TB = b0
kontrola_bdelosti:
high B.5 ;rozsviceni modre LED;
pause 6500 ;svit modre LED 6,5 sek.
low B.5 ;zhasnuti modre LED
if pinC.0>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00000001,%00000001
pause 11000 ;prodleva 11 sek.
if pinC.0>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00000001,%00000001
high B.4 ;zacatek houkani houkacky
pause 5500 ;houkani houkacky 5,5 sek.
low B.4 ;konec houkani houkacky
if pinC.0>0 then
goto kontrola_bdelosti
endif
pause 10
setint %00000001,%00000001
high B.3 ;zacatek impulsu pro PoKeys /Backspace/
pause 1000 ;delka impulsu pro PoKeys /Backspace/
low B.3 ;konec impulsu pro PoKeys /Backspace/
stop
interrupt:
stisk_TB = 1
return


Režim 5.
C.0 = log.X , C.1 = log.0 , C.2 = log.0 , C.3 = log.X , C.4 = log.X pak běží program "kontrola_bdelosti".

log.X = je jedno, zda log.0 či log.1.

Bylo třeba ještě použít i vstup C.4 a poupravit program "kontrola_bdelosti" pro Pic 14M2. Důležité je tedy vyřešení "přepínání" mezi jednotlivými režimy v závislosti na okamžitých změnách úrovní na pinech C.0 - C.4. Jakk již bylo zmíněno, příkaz SETINT je zde nepoužitelný /použití pinů C.3 a C.4/.

David

AlesH
Příspěvky: 322
Registrován: 25 úno 2013, 09:18

Re: Příkaz "SETINT"

Příspěvek od AlesH » 23 dub 2013, 10:17

Hmm. Je to opravdu dost složité. Docela by mne zajímal slovní popis významu jednotlivých vstupů (co reálného je za nimi).

Ze "zjednodušeného" popisu jsem totiž docela zmaten. Mám dojem, že u žádného režimu nezáleží na hodnotě vstupu C.0, takže je snad úplně zbytečné ho sledovat (není třeba rychle reagovat na změnu jeho stavu). Také režimy 4 a 5 jsou ve výsledku úplně stejné, takže je snad stačí detekovat logickou 0 na vstupu C.2 . U režimů 1 a 2 není uvedena hodnota vstupu C.3. Pokud zde předpokladám logickou 0, tak režimy 1, 2 a 3 lze rozlišit sledováním vstupů C.3 a C.4. Vychází mi tedy, že všechny režimy se dají jednoznačně rozlišit sledováním tří vstupů (C.2, C.3 a C.4), takže po přesunutí na C.0 až C.2 by se to dalo sledovat i pomocí "setint". V každém případě (i bez změny přiřazení vstupů) se to ale všechno pořád dá sledovat pomocí toho mnou výše uvedeného "pollingu" (podprogram "cekej" by musel být uvnitř složitější, aby rozpoznával všechny možné režimy).

Rychlost "otočky" toho "pollingu" lze samozřejmě zvýšit zkrácením časovací pauzy na začátku podprogramu "cekej". Asi by to šlo zkrátit až někam k 10 milisekundám, což mi připadá jako velmi dobrá rychlost reakce (setina sekundy). Na ještě rychlejší reakci by se dalo dostat zvýšením frekvence procesoru třeba až na 32 MHz (příkazem "setfreq m32").

Viper707

Re: Příkaz "SETINT"

Příspěvek od Viper707 » 24 dub 2013, 12:08

Problematika je nasledovná:
Zabezpečovacie zariadenie koľajových vozidiel sa skladá z väčšieho množstva častí na sebe závislých.
Jednou z nich je tlačítko bdelosti (v amerike známe ako pedál mŕtveho muža). Je potrebné ho v pravidelných intervaloch stláčať, inak prichádza na rad aktivácia viacerý stavov obvodu (svetlo+húkačka až po zastavenie vlaku).
Ďalším je prenos dát medzi pevnou stanicou (rozumejte kontrolné úseky koľajníc v dĺžke 1 km, + iné úseky napr.: priecestia, stanice...) a vlakovou súpravou. Z každého návestidla (po barbarsky semafór) je vysielaný signál do koľajového úseku. Signál sa prenáša po najhrubšej dvojlinke akú ste videli... priamo v koľajniciach :D . Tento signál sa zbiera a zabrazuje sa rušňovodičovi v rušni a to ešte pred tým ako sa k návestidlu dostane.

No... a teraz si to už presne nepamätám (škola bola dáááávno a posledný trend ZZ sa trošku zmenil), ale tuším pri zmene koľajového úseku by mala byť potvrdená bdelosť (to sa ale nevsťahuje na určité typy signálov) a signál musí byť vysvietený. Môže sa ale stať, že Tlač. B. nebolo stlačené a signál bude STOJ tak je lokomotíva povinná zastaviť bez ďalšieho pričinenia. Toto ale neplatí ak TB bolo stlačené a rušňovodič RUČNE prepne rušeň do "módu" posunovača, čo mu umožní ďalej pokračovať v ceste obmedzenou rýchlosťou. Naďalej však lokomotíva vie, že sa nachádza v koľajovom úseku zo zákazom vjazdu a vodič je POVINNÝ používať TB pričom úri automatickom systéme posunu tak robiť musí v iných intervaloch.

Jediná vec ktorej nerozumiem, prečo to robíš do jednej PIC keď tieto systému sú oddelené.

David
Příspěvky: 38
Registrován: 19 dub 2013, 18:05

Re: Příkaz "SETINT"

Příspěvek od David » 24 dub 2013, 21:37

Dobrý den,
pracuji v opravně dílů mobilní části železničního zebezpečovacího zařízení, takže o jeho funkci jsem už toho trošku pochytil. :P
Neřeším zde traťovou část vlakového zabezpečovače (dále jen VZ), ale část mobilní, umístěnou na vozidlech (lokomotivy, motorové vozy, řídící vozy apod.). Mám snahu vytvořit simulaci chování VZ typu LS IV, který je v reálu realizován pomocí relé. Holt, zlatá šedesátá. :) Jako PIC-začátečníkovi mi ale zatím dělá problém právě náhrada logiky spínání relé za logiku zapsanou jako program pro mikrokontroléry. Jak uvedl Viper707, traťová a mobilní část VZ je na sobě závislá. Je-li trať vybavena VZ s tzv.kódováním, strojvedoucí má díky návěstnímu opakovači /NO/ umístěném na vozidle přehled o tom, jaký návěstní znak je návěštěn na návěstidle před ním a to již 1 000 m (u tratí s nižší traťovou rychlostí i 700 m) před ním. Je-li tedy na návěstidle návěst "Stůj" (červené světlo), strojvůdce již může na tuto návěst reagovat oněch 1 000 či 700 metrů před návěstidlem a být připraven s vlakem před takovou návěstí zastavit. Může se ale stát, že ze "Stůj" se během přibližování k návěstidlu změní znak na "Volno" (uvolní se např. staniční kolej) a tím dojde ke změně znaku i na NO na vozidle a strojvůdce se opět podle toho zachová (přestane rychlost snižovat a začíná ji naopak zvyšovat). Samozřejmě ty znaky na návěstidlech musí být vidět, ale v případě špatné viditelnosti (např.mlha) strojvůdci pomáhá právě NO.
Na NO se zobrazuje pět světel a to červené, žluté mezikruží, žluté, zelené a modré. Červené světlo spolu se žlutým mezikružím jsou znaky zakazující a světlo zelené a žluté jsou znaky povolující. Modré světlo indikuje stav, kdy je deaktivováno zařízení samočinného zastavení vlaku a to se stane, když strojvedoucí prokáže bdělost stiskem tlačítka bdělosti (TB), manipuluje s určenými ovl prvky (např řídícím kontrolérem, brzdičem elektrodynamické brzdy apod.) nebo vozidlo/vlak stojí a je zabrzděno přímočinnou brzdou.
Dále jsou zde tratě, které kódováním vybaveny nejsou a těch je v ČR či SR naprostá většina. Zde se uplatňuje další funkce mobilní části VZ a tou je již zmíněná kontrola bdělosti strojvedoucího /lidově "živák"/. Na vozidlo tedy není přenášen žádný signál z traťové části a na NO se tak povolující ani zakazující znaky nezobrazují. Dle zásahů strojvedoucího se rozsvěcí jen zmíněné modré světlo.
Pro upřesnění ještě zmínka o způsobu zastavení vlaku v případě, kdy strojvedoucí svou bdělost neprokáže. V případě jízdy po nekódované trati musí strojvůdce svou bdělost prokazovat v intervalu 16-22 sek. stiskem TB nebo manipulací s např.řídícím kontrolerem. Když toto provede, na dobu 4,5 - 6 sek. se na NO rozsvítí modré světlo. Po jeho zhasnutí se po cca.11 sek. rozezvučí houkačka a když na její zvuk strojvedoucí během 4,5 - 6,5 sek. nezareaguje (nestiskne TB), aktivuje se systém samočinného zastavení vlaku - odpadá kotva relé "X" v releovém panelu mobilní části VZ LS IV a po rozpojení patřičných kontaktů relé přestává být napájena cívka elmag.ventilu zařazeného v okruhu průběžné tlakové brzdy. Poté začíná z okruhu průběžné brzdy unikat vzduch a všechna vozidla zařazená ve vlaku začínají brzdit do úplného zastavení.
V případě jízdy po kódované trati se výše uvedené děje jen v případě zobrazení zakazujících znaků na NO. Jen s tím rozdílem, že VZ je vybavován jen stisky TB a nereaguje na manipulaci s kontrolérem apod.
V případě jízdy po kódovaném úseku s indikací znaků povolujících se VZ chová tak, že houkačka houká jen po dobu stisku TB a po každém stisku TB se na cca.6,5 sekundy opět roszvítí modré světlo na NO. Jde totiž o nesprávnou obsluhu VZ a strojvdůdce je na to upozorňován právě ne zrovna příjemným zvukem houkačky. Tato funkce se u VZ LS IV zaváděla později kvůli tomu, že se stávaly průšvihy typu podvědomého tisknutí TB na zakazujících znacích, tím i vybavování VZ a následných nehod. Systém totiž sám nedokáže zastavit vlak před návěstidlem zakazujícím další jízdu. Vše je tak plně na strojvedoucím, který ale v případě podvědomého /např. mdloby apod./ tisknutí TB systém ujišťuje o své "bdělosti" a ten pak jízdu vlaku na dalších 16-22 sekund nijak neovlivňuje. A při rychlosti např.120 km/h (ta je pro systém VZ LS IV maximální povolená) se toho za těch 22 sekund může stát hodně ... .
U TB ještě musí být zajištěno, že při jeho trvalém stisku (např. tělo strojvedoucího ho v bezvědomí zatíží-stiskne), nesmí tento trvalý stisk neustále vybavovat VZ. Řečí "elektronika" bych to to tedy přirovnal reakci zařízení jen na náběžnou hranu impulsu.
Na videu http://www.youtube.com/watch?v=90r7bssB ... detailpage je dobře patrné chování mobilní části VZ při jízdě po kódovaném úseku. V úvodu jede strojvůdce proti návěstidlu s návěstí "Výstraha" (žluté světlo na návěstidle i na NO). Protože jde o povolující znak, nemusí vybavovat VZ (tisknout TB). Když vlak návěstidlo mine, na NO se rozsvítí červené světlo. To znamená, že na dalším návěstidle svítí návěst "Stůj" a strojvůdce je tak o tom s předstihem informován. Po chvíli se v dolní části NO rozsvítí modré světlo (vybledlá modř sklíčka se jeví jako bílá). Modré světlo se tedy rozsvítilo poté, co strojvlůdce stiskl TB. Jede totiž proti návěsti "Stůj" a ta je na NO zobrazena červeným světlem což je znak zakazující. Po cca.6 sekundách modré světlo zhasíná a spolu s ním i světlo červené. To je ale náhodný jev, protože v tom okamžiku se na návěstidle před vlakem změnila návěst "Stůj" na "Volno" a tak červené světlo na NO zhasíná a rozsvěcí se světlo zelené (povolující znak) a tak již není třeba vybavovat VZ (tisknout TB). Následné krátkodobé prokmity modrého a zeleného světla na NO jsou způsobeny tím, že lokomotiva vjela do obvodu výměn (výhybek) a ty kódovány nebývají. Mobilní část VZ je tak na okamžik "nerozhodná" a neví, zda se jede na úseku s kódem či bez něj. Jak je ale vidět, zelené světlo se po vyjetí z obvodu výměn ustálí a je tak vše v pořádku. Ideálním řešením je provést i kódování obvodů výměn, ale jde o vysoce nákladovou akci na infrastruktuře.

V mém případě je traťová část VZ nahrazována vlakovým simulátorem MSTS, který je schopen z PC "posílat" data o tom, zda je na NO indikován povolující či zakazující znak. V případě svitu modrého světla je to ale u MSTS horší (nelze nastavit reálné chování) a proto vznikl výše uvedený program "Kontrola bdělosti" s Picaxe 08M2. Velmi mi s ním pomohli pánové z fora Robot revue. Svit modrého světla si tedy v tomto případě "žije" svým vlastním životem mimo dění v MSTS. Ovšem jestliže chci z MSTS přenášet i údaje o svitu dalších světel (povol. i zak. znaky), musí již být program "Kontrola bdělosti" těmito znaky ovlivňován (aktivován či deaktivován) a proto mé dotazy.
Na vstup C.0 jsou tedy přivedeny impulsy z tlačítka bdělosti (pomocí RC článku jen jeden krátký impuls i při trvalém sepnutí) a tlakového spínače přímočinné brzdy (trvalá log.1 při sepnutí mikrospínače v brzdiči), na C.1 log.1 v případš svitu zakazujícího znaku na NO, na C.2 log.1 v případě svitu povolujícího znaku na NO a na C.3 log.1 v případě stisku TB při povolujícím znaku (trvalá log.1 při sepnutí TB). Na výstupu B.5 je připojeno modré světlo (u mne modrá LED) na NO (svítí při log.1) na B.4 je připojena houkačka (houká při log.1) a na B.3 je připojen vstup převodníku PoKeys56U, který při log.1 simuluje stisk klávesy "Backspace" a v MSTS tak dojde k rychločinnému brzdění hnacího vozidla/vlaku.

No, koukám, že jsem se nějak rozepsal. V každém případě to je jen hrubý "výcuc" o funkci a chování VZ a popisovat vše do detailu by asi vyžadovalo extra vlákno. :) Když se tak na ten elaborát koukám, v tomto případě by asi bylo vhodnější osobní setkání se zkušeným programátorem a probrat s ním všechny detaily přímo na pultu mé "lokomotivy" ... . ;)

Obrázek

Děkuji všem, kteří vydrželi až do konce.

S pozdravem

David
Naposledy upravil(a) David dne 25 dub 2013, 17:54, celkem upraveno 3 x.

Viper707

Re: Příkaz "SETINT"

Příspěvek od Viper707 » 24 dub 2013, 23:21

A teraz doplňujúce otázky:
1. Staviaš si doma maketu, či kokpit k hre? Ak som dobre rozumel tak MS Trane Simulátor... či?
2. Vieš alebo dokážeš dostať nejaké signály z PC? Aké majú hodnoty (je to serivka, paralelka, frekvencia, logic H/L...)
3. Skúšal si použiť, alebo inak sa pripájať k PC napr. kóderom?
4. Ako chceš ovládať PC? Asi cez klávesnicu, takže skús rozmýšľať nad funkciou picaxe - KEYIN...
5. Chceš len signál z PC relálne zobrazovať na maketovom panely?

Inak v tomto prípade ťa obdivujem. A možno ideš na to zložito. Ak to chceš len na hranie MSTS t, tak ten už má v sebe všetky tieto prvky priamo zabudované a niečo ako TB je v podstate iba klávesa ktorú treba pravidelne stláčať. Ak rozoberieš klávesnicu, tak tam nejdeš 3 plasty, dva s cestami a jeden oddelovací, ktoré sú iba "pichnuté" do DPS s rozmermi cca 30x70cm. Picaxe dokáže tieto znaky čítať a kontakty sa dajú tiež rôzne pozapájať (mal som doma relátkovú hračku. Tak pred 15-17rokmi).

David
Příspěvky: 38
Registrován: 19 dub 2013, 18:05

Re: Příkaz "SETINT"

Příspěvek od David » 25 dub 2013, 16:43

Zdravím,
řízení lokomotivy řady 749 v prostředí simulátoru MSTS je již pomocí jejího víceméně reálného pultu (viz.foto) vyřešeno od března 2012 a mašina již toho také hodně "najezdila" (Den železnice v Bohumíně apod.). :) Stavbu pultu a digitalizaci originálních ovl.prvků jsem měl snahu popisovat na foru MSTS ... http://forum.msts.cz/showthread.php?tid=1760&page=16 (příspěvek č.308 až de facto do dnešních dnů). Pro propojení ovládacích prvků na pultu s MSTS/PC používám zařízení PoKeys56U ... http://www.poscope.com/pokeys56u . V oboru připojování periferií k PC nejsem nijak sběhlý a tak mi toto zařízení ulehčilo práci.
V MSTS sice VZ-tka funguje na solidní úrovni, ale přeci jen se nechová přesně tak, jako v reálu. Když jsem se vloni v AR dočetl o jakýchsi mikrokontrolérech Picaxe, napadlo mě vytvořit si zařízení funkčně odpovídající skutečné kontrole bdělosti strojvedoucího (KBS). Díky již zmíněné pomoci pánů z Robot revue se dílo podařilo ( http://forum.msts.cz/showthread.php?tid=1760&page=24 , příspěvek č.468 ) a tak bylo možné s pultem a MSTS simulovat chování VZ-tky na tratích bez kódování.
Vzhledem k tomu, že je MSTS hrou z roku 2001, jeho tvůrci nepočítali s tím, že si někdo postaví pult z reálné lokomotivy a tak není možné z MSTS/PC získat jakákoli data "ven". Proto mám na pultu nefunkční rychloměr, indikaci skluzu dvojkolí, manometry, A-metr apod. Po dokončení KBS-sky jsem ale na pult mohl umístit NO a využívat jeho modrého světla. Ovšem stále mě mrzela nemožnost přenosu dalších návěstí z MSTS. Problém ale vyřešil známý známého, který vyšpekulovaL program ke snímání změn na předem určených pixelech monitoru. Jestliže se tedy mění světla na NO v simulátoru, program tyto změny zaregistruje a na portu LPT se na patřičných pinech objevují log.1 či log.0. A to je právě to, co je pro tvorbu verze VZ-tky s přenosem návěstí potřeba.

Svítí-li na NO v MSTS zakazující znaky (červená nebo žuté mezikruží), na LPT portu je na pinech 3 nebo 5 log.1. Je-li na NO v MSTS indikován znak povolující (světlo žluté nebo zelené), je na pinech 2 nebo 4 log.1. Tyto úrovně by se tedy přivedly na piny C.1 a C.2 s tím, že program by tak rozlišil zda je na NO v MSTS zobrazen povolující či zakazující znak a podle toho by řídil svit světel na NO skutečném (umístěném na pultu) a zároveň by aktivoval či deaktivoval program "kontrola_bdelosti" a další funkce jako houkání houkačky při stisku TB při povolujících znacích apod.

Ještě bych měl dodat, že pro mou potřebu neřeším režimy skutečné VZ-tky jako "Posun", "Postrk" či "Spádoviště". Tyto režimy MSTS nezná a tak je nemusím "řešit" ani já. Zajímá mne jen režim "Jízda"

David

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host