BeneluxSpoor.net forum

Vraag en antwoord => Elektronica en analoog => Topic gestart door: Bart Sanders op 17 December 2012, 22:28:34

Titel: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Bart Sanders op 17 December 2012, 22:28:34
Beste allemaal,

Een aantal weken geleden heb ik al kort verteld in de rubriek Herbeginner, dat ik na 20 jaar de modeltreinspullen weer heb afgestofd en weer ben begonnen met "treintjes"  :).

Inmiddels loopt e.e.a. weer zoals toen ik het heb opgeruimd, maar inmiddels ook alweer een stukje verder. Destijds heb ik het ontwerp van mijn wisselkaart (op Eurocard formaat) alleen nog op papier gemaakt en niet meer gerealiseerd. De wissels deed ik toen nog met de hand. Maar, dit ontwerp heb ik weer opgepakt en verbeterd. De wissels worden door H-bruggen / ULN 2003 geschakeld, maar er zitten nieuwe Fleischmann wissels bij die een eindafslag hebben en er zijn nog oude types - straks in de grote baan - die alleen met een korte puls mogen worden geschakeld (ca. 100 ms). Dus heb ik m.b.v. een 555, een transistor en een relais ervoor gezorgd, dat als er een wissel wordt geselecteerd en bediend, de 18 V stuurspanning ca. 100 ms aanstaat incl. de voeding van de ULN 2003's. Daardoor is de zaak veilig en kunnen de wissels toch nog met de hand worden bediend bij ingrijpen e.d.

Het was ook altijd het plan om in enkele blokken een vaste positie aan te leggen waar de trein moet stoppen - als die moet stoppen in dat blok. Bijvoorbeeld een station of een rangeerspoor. Met Fleischmann contact rails voor mijn Fleichmann locs en een reed-relais of optisch voor de Roco locs als signaalbron. Dat is inmiddels ook als prototype gebouwd en werkt keurig.

Tijd om de wisselkaart echt te gaan bouwen op een Eurocard.

Binnenkort zal ik in dit analoge besturingsforum e.e.a. vertellen over de software en de hardware die ik heb ontworpen en gebouwd. Destijds was een PC XT kloon gekocht voor dit doel (al in 1987) en die oude PC moest dus ook weer gaan werken, daar stonden mijn software en C-compiler op! Ik had wel backups, maar op 5 1/4" floppy's en alleen die PC kan dat nog lezen/schrijven.....  :D En inderdaad, stekkers aangesloten, wat gezeur met mijn oude toetsenbord, maar toen werkte alles weer net zoals toen het werd weggezet.

Enfin, mijn besturingsrekje aansluiten, een testbaantje gemaakt m.b.v. de speelgoedbaan van onze jongens en verhip, toen konden de eerste treinen al weer rijden!

Bekijk de video maar eens die ik ervan gemaakt heb: https://vimeo.com/55805318 (https://vimeo.com/55805318)

Groetjes!

Bart
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Ronald Halma op 17 December 2012, 22:39:05
Bart, leuke video! Ik snap geen bal van de technische uitleg maar je laat ons digitaal-rijders een poepie ruiken zo ;) Prachtig om zo'n oude pc-bak aan het werk te zien... ik heb er ooit nog een gehad als aanloop naar mijn eerste Pentium75.

Super wat je met dat oude dametje doet (y)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 17 December 2012, 23:20:30
Hoe krijg ik die video aan de praat?
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: willem22 op 17 December 2012, 23:29:01
Kan ook niet de vimeo.com de film bekijken , gebruik deze link;http://vimeo.com/55805318

wil.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Bart Sanders op 18 December 2012, 00:03:11
Citaat
Hoe krijg ik die video aan de praat?

Zojuist nog even gecheckt: bij mij werken zowel de link in mijn tekst en de laatste suggestie.

Het duurde wel even voor vimeo de zaak gerenderd had, misschien was je net te vroeg met kijken. Ik had de post er toen al op staan.

Mocht het nog steeds niet lukken, stuur even een seintje, dan zet ik hem ook op YouTube.

Groet!

Bart
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Thijs1271 op 18 December 2012, 00:10:56
Hij doettut bij mij. Geweldig! (y) (y)
Thijs
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: willem22 op 18 December 2012, 00:27:42
@Bart het werkt even de gelegenheid geven voor te laden.

Zeer interessant hoe maak je de interface naar je baan?

wil.


Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 18 December 2012, 09:56:27
...even de gelegenheid geven voor te laden.
Hoe lang is 'even'? Ik heb 3 minuten zitten wachten, en toen vond ik het wel mooi geweest.
Op Youtube zetten lijkt me wel een oplossing, die begint tenminste binnen een paar seconden met afspelen.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Ronald Halma op 18 December 2012, 10:00:48
Vreemd... ik kon 'm zo aanklikken en de film liep eigenlijk vrij direct. Net weer geprobeerd en het duurt nog geen 3 seconden, de playknop aanklikken en het filmpje loopt. ;)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 18 December 2012, 10:05:47
Krijg nou wat! Nog eens aangeklikt en hij loopt nu meteen.
Gisteravond 3 keer geprobeerd en toen gebeurde er niks.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Ronald Halma op 18 December 2012, 10:39:52
En, hoe vond je het? :)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 18 December 2012, 10:54:42
Tja, het jaren '80 gevoel met dat groene beeldscherm. ;) Indrukwekkend.
Was volgens mij ook de tijd waarin de HCC begon met computergestuurde modelbanen.
Ik heb me zelf er nooit aan gewaagd. Je hebt altijd nog een bak hardware nodig om de koppeling te maken tussen de spoorbaan en de computer.  Ik geef er de voorkeur aan om de besturing mee te nemen in de hardware. Programmeren met de soldeerbout noem ik dat. :)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Railroadtycoon op 18 December 2012, 11:14:38
Geweldig filmpje... kreeg een "prehistorisch" gevoel van.. ;D

Ben benieuwd naar de vorderingen.

Allie
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Ronald Halma op 18 December 2012, 11:20:39
Ik ook.... we worden oud ;D ;)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Marc tramt op 18 December 2012, 11:36:07
Gaaf!    (y)

....mijn software en C-compiler op!
Nieuwlichterij!  8)
Basic of Pascal hoort bij die grote floppen.  ;D,

Marc
Zelf ooit begonnen met een 8088
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Bart Sanders op 18 December 2012, 13:05:01
Citaat
Basic of Pascal hoort bij die grote floppen.

En wat dacht je dan van Modula-2, de grote broer van Pascal (ook van Wirth en zijn team in de ETH Zürich) en daar hebben wij destijds, professioneel, tienduizenden regels code in geschreven - met nog grotere 8" IBM floppen....

Maar, wat was ik blij dat Microsoft toen een C-compiler voor MS-DOS met een windows (!!!!) gebaseerde debugger (CodeView) had gelanceerd. Een fatsoenlijke interface naar de hardware en de mogelijkheid om vanuit C naar assembler code en vice-versa te kunnen gaan. Heel handig voor interrupt routines e.d.

Maar, dat is voer voor nerds....   :P

Ik zal tijdens de feestdagen e.e.a. eens preciezer toelichten.

Groet!

Bart
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: henk op 18 December 2012, 16:32:05
Gaaf!    (y)
Nieuwlichterij!  8)
Basic of Pascal hoort bij die grote floppen.  ;D,

Marc
Zelf ooit begonnen met een 8088

Modern hoor. Hier begonnen met een 8008 op een bordje, acht schakelaars en acht lampjes, en dan kon je 2 en 4 bij elkaar optellen.  :)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 18 December 2012, 16:51:02
Op mijn werk heb ik ooit een cursus gevolgd, programmeren in machinetaal.
Als oefenobject zat er een kastje bij met een 8080 erin. Aan een kabeltje zat een goedkoop rekenmachientje dat verbouwd was tot man-machine interface. Er zat ook een rij ledjes op waar je leuke lichteffecten op kon programmeren. En een poort waar je nog meer in-en output aan kon hangen.

Dat kastje mocht ik na de cursus mee naar huis nemen, en ik heb een poosje overwogen om de besturing van mijn modelspoorbaan er mee te gaan doen. Maar er was nog zoveel hardware nodig om de aansluiting met de baan te realiseren dat ik uiteindelijk weinig toegevoegde waarde zag in de processorbesturing.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Ivo tB op 18 December 2012, 17:17:11
Leuk om te zien en te lezen. Destijds in de 2e helft van de jaren '80 heb ik ook eens een proefbaantje gemaakt, maar dan in N spoor. En voor de aansturing gebruikte ik het HCCM systeem. Nog hulp gehad van 2 leden van de HCCM gebruikersgroep die beide helaas al zijn overleden. En die HCCM interface stuurde ik aan met een computer van voor de PC, namelijk de Challenger van Ohio Scientific. Gewoon een 6502 processor, met 4k ROM voor het operating system en 4k RAM voor een programma (uitbreidbaar door 2114's te piggy backen), dat je bij opstarten altijd eerst moest laden. En de opslag van een programma ging met een cassetterecorder. Vervolgens zelf nog een interface ontworpen met een PIA tussen computer en HCCM rek en het geheel werkte prima met een zelfgeschreven programma in Basis met veel poke en peek opdrachten, waarmee je rechtstreeks in het geheugen kon schrijven en lezen. Toen snapte ik allemaal nog wat ik deed. Dat is met de huidige generatie PC's en software een stuk minder. Wat ik toen kon doen was trouwens een enorme verbetering tot wat ik eerder mocht doen op een IBM 370 met batchjobs via ponskaarten en dan geprogrammeerd in Algol 60. Dat kent vast niemand meer.

@Klaas: ik begrijp dat jij meer bent van de digitale trein van Platerink. Die maakte volgens mij de hele besturing met flip flops opgebouwd uit IC's uit de 7400 serie.

Nee, tegenwoordig bouw je geen computer meer, maar koop je een PIC en daar schrijf je een programma voor. Wil ik ook allemaal nog wel eens doen, maar ik moet prioriteiten stellen.  ;D ;D

mvg,
Ivo

P.S.: voor de aardigheid de Ohio Scientific Challenger 2P:

(https://images.beneluxspoor.net/bnls/OSI_model_500_CPU_revB_pic1.jpg) (https://images.beneluxspoor.net/bnls/OSI_model_500_CPU_revB_pic1.jpg)
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Klaas Zondervan op 18 December 2012, 17:41:07
@Klaas: ik begrijp dat jij meer bent van de digitale trein van Platerink. Die maakte volgens mij de hele besturing met flip flops opgebouwd uit IC's uit de 7400 serie.
Ik ben meer van de 4000 serie. Maar soms maak ik mijn eigen DTL met discrete diodes en transistors. Is wel een heel eind terug in de tijd, maar het heeft een voordeel: je kunt met hogere spanningen werken en direct 24V relais aansturen.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Bart Sanders op 18 December 2012, 21:22:52
Citaat
Zeer interessant hoe maak je de interface naar je baan?

Hoi Wil,

Voor dergelijke XT (en AT) kasten kon je destijds een input/output kaart kopen met een Intel 8255 PPI erop. Dan heb je 24 bits input of output, timers en interrupt mogelijkheden. Die kaart gebruik ik als interface naar de bus van een Eurorek met daarin de "centrale kaart" de "blokkaarten" en de "wisselkaart". De centrale kaart heeft de kabel naar die I/O kaart en zorgt voor de kaartselectie op de bus, de buffering van de bits afkomstig en lopend naar de XT en daar is ook de 555 timer gehuisvest voor de PWM.

Omdat ik toch maar max. 8 bits in of uit gebruik zou je misschien ook een Centronics paralelle printerpoort kunnen gebruiken, maar dan mis je de timer en interrupt functies. Dus, ik heb toch voor zo'n parallelle I/O kaart gekozen.

In C en na wat initialisaties kun je dan met een port_in() en port_out() functie die I/O kaart besturen en daarmee uiteraard de treinbesturingshardware.

Het geheel overziend, nu 20 jaar later, is eigenlijk alles aanwezig om verder te kunnen gaan met deze basis. Wellicht dat ergens de XT te sloom wordt voor (te) veel treintaken en dingen die tijdens die bewaking allemaal gedaan moeten worden, maar dat zien we dan wel weer. Een veel snellere Laser AT met 80386 staat ook nog ergens.....

Groet!
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: gvandersel op 19 December 2012, 15:39:04
Zoals al eerder genoemd een hoog HCC!m gehalte. Met je XT kom je een heel eind als het meeste werk tenminste in de hardware gebeurt. Hoop op wat meer uitleg en mocht je vragen hebben we hebben voldoende kennis op het forum om je helpen.

Groet,

Gerard van der Sel.
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: zuylen op 19 December 2012, 17:50:29
Ha leuk allerlei interrssante chippies!!! Altijd fijn om mee te stoeien.
Andre
Titel: Re:Herbeginner..., maar wel weer met analoog en een oude MS-DOS XT
Bericht door: Nijboer op 19 December 2012, 20:06:05
Een 6502?? Zat die ook niet in de Atari 2600?? Denk meteen aan space invaders ipv treinen....

 ;D ;D ;D
Titel: Herbeginner..., analoog en een MS-DOS XT: beschrijving besturing I
Bericht door: Bart Sanders op 30 December 2012, 12:14:47
Citaat
Zoals al eerder genoemd een hoog HCC!m gehalte

Inderdaad! Ik was toen ook lid van de HCC en kende natuurlijk de modelbaan ontwikkelingen. IK heb zelfs nog het door hun uitgegeven boekje rond analoge modeltrein-besturing. En daar heb ik inderdaad ook inspiratie in gevonden, credits!

Maar, terug naar mijn belofte om e.e.a. hier te beschrijven, er wordt in een aantal replies ook naar gevraagd.

Kijkend naar de moderne decoder-gebaseerde besturingen is dit allemaal natuurlijk behoorlijk ouderwets, maar als ik het als een retro-baan beschouw, dan past het weer helemaal in de actuele trends.....  ;D

In dit deel behandel ik globaal de opzet van de besturing en de eerste belangrijke module-kaart: de zgn. Centrale Kaart.

Eerst maar even het eerste plaatje (klik voor de grote versie):

(https://images.beneluxspoor.net/bnls/GlobaalSchemaTreinBesturing.jpg) (https://images.beneluxspoor.net/bnls/GlobaalSchemaTreinBesturing.jpg)

Dit is behoorlijk zelfverklarend. Ergens in 1988 heb ik dit gemaakt en het beschrijft de opbouw van de besturing. Op Eurokaart (of Euro-board) formaat met een 32 polige busconnector a (mag ook een 64 p. a-b zijn) wordt elke modulekaart op de buskaart geplaatst. De laatste verzorgt het datatransport tussen de kaarten en de centrale kaart. De functies van de kaarten staan links opgesomd. Er kunnen max. 16 functiekaarten worden geselecteerd, waarbij ik door de afmeting van mijn Euro-rekje het aantal beperk tot 4 blokkaarten en 1 wisselkaart. Elke blokkaart beheert twee fysieke blokken. De wisselkaart kan 7 wissels aansturen en nog 1 electro-magneet. Er kunnen 8 of 16 "posities binnen blok" worden uitgelezen. Op mijn geplande baan - niet zo'n grote - denk ik dat 8 posities genoeg is. Ik ben op dit moment bezig de wisselkaart te prototypen en kan nog kiezen (keuze tussen een 8 of 16 bit multiplexer). Op de uiteindelijke baan wil ik met 3 treinen tegelijkertijd kunnen rijden. Beter gezegd: 3 treinen werken tegelijkertijd en automatisch hun eigen spoorboekje af. En dan is het met een niet al te ingewikkelde layout al best druk op zo'n baan, kijkend naar die paar doorgangsblokken waar alle dienstregelingen gebruik van maken. Met 8 posities kan ik dan 8 "stations" qua stop-positie verwerken. Er wordt met 5V gewerkt voor de logica en 14V-18V voor de treinen en de wissels. Die spanning mag ook nog fors hoger zijn, de gebruikte drivers kunnen dat aan.

Kijken we nu naar het overzicht van een op zich redelijk eenvoudige, maar belangrijke kaart (board), de Centrale Kaart:
(https://images.beneluxspoor.net/bnls/GlobaalSchemaCentraleKaart.jpg) (https://images.beneluxspoor.net/bnls/GlobaalSchemaCentraleKaart.jpg)

Omdat ik zelf na ca. 20 jaar wel de behoefte had om eerst weer even te weten wat ik toen allemaal verzonnen had (en toen natuurlijk te weinig had gedocumenteerd) heb ik met wat puzzelen a.d.h.v. het echte schema weer een beeld gemaakt van wat er ook al weer gebeurt hier.

De Centrale Kaart doet twee belangrijke zaken, naast het behoorlijk bufferen van de 8 input- en output-bits afkomstig van de I/O kaart van de PC (een kaart met een Intel 8255).

Ten eerste: op basis van een kaartnummer 0..15 wordt de gewenste kaartfunctie geselecteerd. Zo hebben bijv. de blokkaarten een nummer van 0..7 en d.m.v. het KaartSelect-signaal KSx wordt die functie "op de bus gezet". Vanaf dat moment kan de PC die gewenste functie informatie geven of informatie nemen. Bij de blokkaart kan dan de gewenste snelheid voor dat blok worden ingesteld of kan de blok-bezet waarde worden uitgelezen.

Ten tweede: een centrale klok die op 1600 Hz loopt en die door een teller voortdurend wordt omgevormd in een getal dat telkens van 0..15 loopt. Dus 100 x per seconde doorlopen de bits C0 t/m C3 de waarde 0 t/m 15. Waarom dat gebeurt? Dit is de basis voor de snelheidsregeling die een combinatie is van deze "klok" en de logica aanwezig op elke blokfunctie.
De snelheidsregeling is pulsbreedte-gemoduleerd (PWM of Pulse Width Modulation) en wordt duidelijk als in de volgende bijdrage de blokkaart met telkens twee blok-functies wordt behandeld.

Here endeth this lesson....

Bart
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Hans1135 op 02 January 2013, 23:11:48
Interessant topic.
Ben benieuwd naar het vervolg
mvg Hans
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Bert van Gelder op 09 January 2013, 20:21:47
Ze zijn al samengevoegd, dankzij een anonieme lezer  ;) die op het knopje rechtsonder in elk bericht heeft gedruk.... (Meld dit berich aan de moderator)

Gr, Bert
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Automatic-rock op 09 January 2013, 20:31:24
Alleen de laatste post van Bart Sanders is nu dubbel
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: WesleyMunnik op 09 January 2013, 21:15:40
En inmiddels opgelost ;) ;)

Gr,

Wesley
Titel: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing II
Bericht door: Bart Sanders op 14 January 2013, 22:18:25
Zo, nu enkele goede geesten e.e.a. in deze "thread" (draadje) hebben gestopt, is het weer mijn beurt.

Deze keer enige uitleg over de zogenaamde Blokkaart.

De globale taak van elke blokkaart is om twee blokken te besturen. Dit houdt in: op commando van het stuurprogramma de snelheid in dat blok sturen en de aanwezigheid van een trein in dat blok detecteren en op vraag van het programma teruggeven.

Eerst maar weer een plaatje:
(https://images.beneluxspoor.net/bnls/GlobaalSchemaBlokkaart.jpg) (https://images.beneluxspoor.net/bnls/GlobaalSchemaBlokkaart.jpg)

We beginnen met de snelheids-instelling. In het blokschema zijn daarvoor het blok "Set Speed Memory & Compare" plus de feitelijke baansturing in blok Power Driver verantwoordelijk. Deze laatste is een in H-brug geschakeld Darlington-paar dat netjes verpakt zit in een L293 IC. Hieruit volgt dat ik gekozen heb voor een blok dat fysiek uit twee spoorstaven bestaat, die aan elke kant met geïsoleerde verbindingen aan de buur-blokken is bevestigd. Of een eind-blok is en dan maar aan een kant is aangesloten aan de buur.

Een ook in de HCCm ontwikkelingen beschreven snelheids-instelling op PWM-basis werkt als volgt. Eerst nog even PWM ofwel Pulse Width Modulation of in goed Nederlands puls-breedte-sturing. Ik spreek even bewust van "instelling" en "sturing". Het begrip "regeling" wordt vaak gebruikt, maar dat gebeurt hier niet. Er wordt een snelheid ingesteld en we gaan er gewoon van uit dat de locomotiefmotor die snelheid gaat volgen. Er wordt niets gemeten, dus ook niets geregeld in de strikte zin van het woord. Bij PWM sturingen van electromotoren wordt niet de hoogte van de (hier) gelijkspanning ingesteld, maar bij een constante gelijkspanning wordt deze gelijkspanning in pulsen van een bepaalde breedte aan de motor aangeboden. Dat heeft grote voordelen voor het motorgedrag bij lage snelheden. Het motorkoppel neemt dan n.l. toe bij een erg laag toerental. Precies wat we willen hebben om mooi langzaam te kunnen rijden.

We hebben bij de Centrale Kaart al gezien dat deze PWM-sturing in combinatie met deze Blokkaart gebeurt. De Centrale Kaart zet een voortdurend doortellend getal van 4 bits op de bus (C0-C3) en dit getal wordt in de Blokkaart gebruikt. Het wordt n.l. voortdurend vergeleken met een door de stuursoftware ingesteld getal tussen 0 en 15, zie de bits DO0-DO3. Bit DO4 is het bit dat vooruit of achteruit rijden instelt (Forward/Reverse bit). Het door de software ingestelde getal wordt in het Set Speed Memory opgeslagen. Een comparator (een vergelijker) checkt die waarde met het steeds doortellende 4 bit woord gevormd door C0-C3. De regel is nu:

De H-brug wordt aangezet in de door For/Rev ingestelde richting zo lang als Set Speed kleiner is dan het "nibble" C0-C3.

Voorbeeld: stel dat Set Speed Memory op 7 staat, dan gaat de H-brug aan voor de tijd die hoort bij het tellen van 8 t/m 15 door de "teller" C0-C3. Ergo: 50% pulsbreedte, de motor zal op de helft van het max. toerental lopen (dat hoort bij 100% pulsbreedte en de gebruikte motorspanning).

Zoals we weten loopt de teller met een tempo van 1600 Hz. Omdat we 16 waarden kunnen doorlopen met C0-C3 "loopt" de PWM met een frequentie van 100 Hz. Dus, elke puls-periode duurt 10 msec. Dat is voor gelijkstroommotoren zoals in onze modeltreinen gebruikt een mooie waarde. Bij langzaam lopen gaat er nog geen hinderlijk brommen o.i.d. ontstaan.

Tot zover de snelheidsinstelling.

Nu de bepaling of er een trein in het blok is of niet. Dat gebeurt in Train in Block Detector. In Which Block Selector wordt door de stuursoftware bepaald welk blok op dat moment voor die software interessant is en het signaal Tx/ wordt dan als signaal TRAIN op de bus gezet. Er zijn dus evenveel Block Detectoren als er blokken zijn. In mijn geval zijn dat er 8.
Hoe? Wetend dat als er een trein loopt in een blok en er dan een PWM signaal op dat blok staat, dan kunnen we dat m.b.v. een opto-coupler in Train in Block mooi galvanisch ontkoppelen en dan als 5V TTL pulssignaal aanbieden aan de Block Selector. Dat de pulserende rijstroom twee kanten op kan gaan (zie Forw/Rev bit) is een belangrijk detail voor het ontwerp, maar in dit blokschema speelt dat nog geen rol.

Dus als er een trein is in een blok, dan hoort daar een pulserend TRAIN signaal bij. Is er geen trein - of staat die stil - dan is TRAIN niet actief (dus 0). De situatie "stilstaande trein in blok" wordt door de software zelf bijgehouden, daar hebben we verder geen electronica voor nodig.

De goede verstaander heeft nu al in de gaten dat de software in wezen niets anders doet dan in een oneindige lus alle voor de diverse spoorboekjes relevante blokken: A. de snelheid in dat blok instelt en B. vraagt of er een trein is of niet. Die trein kan stilstaan of die kan rijden en een andere trein uit een ander spoorboekje wil misschien ook datzelfde blok inrijden, maar dat wordt bijgehouden in de datastructuren en dat is weer een ander verhaal..... ;)
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: René op 14 January 2013, 23:12:14
Grappig om zo'n oud besturingssysteem na 20 jaar nog eens te zien werken.
In 1993 heb ik ook eens een door de PC (ook een XT) aangestuurd systeem gebouwd op basis van de Motorola IC 145026 of 146027 (als ik mij niet vergis). Met een zelfbedacht interface kon dit IC met tristate ingang door de parallelle poort van de PC aangestuurd worden. Nog even een Basic programmaatje bij geschreven en de baan kon bestuurd worden.
Titel: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing II - correctie
Bericht door: Bart Sanders op 15 January 2013, 00:51:37
Citaat
Voorbeeld: stel dat Set Speed Memory op 8 staat, dan gaat de H-brug aan voor de tijd die hoort bij het tellen van 0 t/m 7 door de "teller" C0-C3.
  ... van mijzelf.

Foutje,  :-[ , en maakt niet uit voor de werking, maar toch, hier moet staan:

Voorbeeld: stel dat Set Speed Memory op 7 staat, dan gaat de H-brug aan voor de tijd die hoort bij het tellen van 8 t/m 15 door de "teller" C0-C3.

Ik heb de tekst aangepast in deel II.

Titel: Modeltreinen bestuurd met een MS-DOS XT: wat kan de software zoal?
Bericht door: Bart Sanders op 27 January 2013, 12:09:10
Citaat
Nog even een Basic programmaatje bij geschreven en de baan kon bestuurd worden.

Deze posting brengt mij ertoe om eerst even een uitstapje te maken naar de software kant en met name wat de bedoeling is van deze besturing op die oude MS-DOS XT.

Het hoofddoel is een modelbaan waarbij (tot nu toe) maximaal drie dienstregelingen automatisch worden afgewerkt. Het is dus niet de bedoeling om via de PC een aantal "knopjes" te hebben waarmee de treinen, wissels, seinen e.d. met de hand kunnen worden bestuurd.

Elke dienstregeling wordt "afgebeeld" op een van de maximaal drie modeltreinen die op de baan tegelijkertijd rijden. Deze dienstregeling moet met een korrel zout worden genomen v.w.b. het op tijd rijden. Dat element is helemaal niet aan de orde. Zou ook heel moeilijk worden op een druk bezet spoor, waar treinen vooral veel op elkaar moeten wachten omdat er altijd spoordelen zijn die door deze treinen moeten worden gedeeld.

Wél aan de orde is dat elke dienstregeling een lijst is van welke baanvakken moeten worden afgelegd, in welke richting en met welke snelheid. Daarbij kan ook nog worden bepaald of een trein in een baanvak stilstaat en voor hoeveel seconden, of dat een trein in een baanvak een aantal seconden met een bepaalde snelheid rijdt. Met dit laatse kun je dan bijv. een langzaam afremmen of versnellen programmeren voor een realistische aankomst of vertrek.

Deze dienstregeling staat in een simpel tekstbestand met uiteraard een vastgelegd formaat, bijvoorbeeld:
1 0 5     0 R    <--- trein rijdt in blok 1, richting 0, snelheid 5 en rijdt door het blok
3 0 5     1 W   <--- trein trein rijdt in blok 3, richting 0, snelheid 5, doet dat 1 seconde
3 0 3     1 W   <--- trein trein rijdt in blok 3, richting 0, snelheid 3, doet dat 1 seconde
3 0 1     1 W   <--- trein trein rijdt in blok 3, richting 0, snelheid 1, doet dat 1 seconde
3 0 0   10 W   <--- trein trein rijdt in blok 3, richting 0, snelheid 0, doet dat 10 seconden
enz.

De software zal tijdens de initialisatie deze max. drie tekstbestanden (= dienstregeling) uitlezen en in de interne datastructuur opslaan. Vervolgens worden de max. 3 treinen gestart met de instructie uit de 1. regel van de dienstregeling.

Voordat ik beschrijf hoe e.e.a. dan verder gaat, is er nóg een tekstbestand belangrijk. Er moet aan de software ook kunnen worden verteld hoe de spoorbaan precies in elkaar zit. Welk baanvak heeft wissels, op welk(e) baanvak(ken) sluit dat wissel aan, zitten er vaste stopplaatsen in een baanvak? Ook dat wordt in een tekstbestand in een bepaald formaat door de gebruiker vastgelegd. Tijdens de initialisatie wordt voor elke dienstregeling in de datastructuren dus ook vastgelegd hoe de fysieke layout er precies uitziet voor die dienstregeling. Uiteindelijk moet automatisch een wissel in de juiste stand worden gezet, of moet er actief gekeken worden of een locomotief een stopplaats bereikt heeft.

Nu is in principe alles bekend en kunnen de drie dienstregelingen worden gestart. Voor de software zijn dat max. drie (quasi) parallel lopende taken. Taak1 beheert dienstregeling1 enz. Vanuit de dienstregeling bekeken moet een trein zeg maar van A naar B zien te komen. Elke taak heeft natuurlijk diezelfde opdracht. En we weten dat op elke spoorbaan er altijd baanvakken te vinden zullen zijn waar meerdere dienstregelingen gebruik van maken. Dus, de taken komen "ergens" met elkaar in conflict: twee treinen willen beide één baanvak inrijden. Of, het volgende baanvak is nog bezet.

Het ontwerp van de software kent alle toestanden waarin een trein per baanvak kan voorkomen. De taken zijn dus "toestands-gedreven". Voorbeelden: een trein A wil een baanvak inrijden, maar daar rijdt of staat trein B, stoppen en wachten dus. Of, trein A wil een baanvak inrijden en trein B wil hetzelfde, het toeval bepaalt nu welke trein de eerste is en die rijdt dat baanvak in, de andere moet stoppen totdat het aangepeilde baanvak weer vrij is. En zo zijn er nog een aantal toestanden die tot bepaalde besluiten volgen, zodanig dat de dienstregeling kan worden afgewerkt.

Het resultaat is een altijd wisselende reeks van "horten en stoten" als de treinen elk van A naar B proberen te komen en meestal ook weer terug, van B naar A.

Hier duiken heel interessante verschijnselen op: treinen die op elkaar kunnen staan te wachten komen in een "deadlock" terecht en dat moet ook weer worden voorkomen. Oplosbaar met "prioriteiten": een sneltrein heeft voorrang op een boemeltrein - of andersom!

Bovenstaand overzicht is niet meer dan dat, een globale indruk van wat de software te doen heeft. Zelfs op een heel eenvoudige modelbaan zoals op de video te zien is, leidt dat al tot heel realistisch modeltrein gedrag.

De volgende keer iets over de wisselkaart en de stopplaats bepaling.
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Patrick Smout op 04 February 2013, 21:39:13
Dag Bart,

Op deze site kan je wel wat ideeën voor de software opdoen http://wwwis.win.tue.nl/tallis/ (http://wwwis.win.tue.nl/tallis/).
Een deadlock preventie algoritme kan je vinden in de paper "Modeling Train Movements Through Complex Rail Networks", hoofstuk 4 Deadlock-free routing van Quan Lu en Maged Dessouky.
Uren programmeerplezier gegarandeerd (ik hoop ooit nog eens m'n baan af te werken  ;D )

mvg,

Patrick Smout
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Bart Sanders op 10 February 2013, 17:24:19
Hallo Patrick,

Citaat
Op deze site kan je wel wat ideeën voor de software opdoen...()

Zou die TUE opstelling nog bestaan? Komt in elk geval dicht in de buurt van wat ik aan het doen ben. Alleen is mijn baan nog véél......... kleiner  ;)  Ik ben al eens gaan lezen in de documentatie en een ding bevalt me al: ergens wordt er over een dual blok gesproken. Dit is een bloktype waar treinen van beide kanten in kunnen rijden en uiteraard ook een shared blok voor de diverse spoorboekjes/treinen. Dat idee pik ik zeker op, want daarmee kun je beter de toegang tot een dergelijk dual blok regelen. Ik ga beslist nog verder lezen en het (ik neem aan) boek waar je naar verwijst ga ik ook opzoeken.

Groet!

Bart
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Patrick Smout op 10 February 2013, 17:38:58
Bart,

Geen idee of de layout van TUE nog bestaat. Heel veel universiteiten hebben layouts. De univ. van Kiel bvb. heeft een layout die ze besturen met petri netwerken.
Het concept van de dual blocks van TUE is niet verkeerd. Ik heb het idee in mijn software aanvankelijk ook overgenomen, echter ik ben nadien overgestap op het concept van poorten en nodes zoals het beschreven staat in figuur 2 op pagina 8 in de paper waar ik naar verwijs. Dit werkt gewoon een stuk handiger, de software zit veel logischer in elkaar en veel minder kans op fouten. Ik zou zeggen, ga voor poorten en nodes. Heel veel stukken van van mijn code zijn nog altijd gebaseerd op code van de TUE. Blijft de moeite waard.

mvg,

Patrick
Titel: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing III
Bericht door: Bart Sanders op 24 February 2013, 12:23:58
Hoi!

Het heeft even mogen duren, maar hier gaat het verhaal rond mijn "homebrew" treinbesturing weer verder  :)

Zoals al verteld is de baan in 1992 opgeborgen en ik was toen net begonnen aan de zgn. Wisselkaart. Zoals de naam al doet vermoeden, de electronica op een Eurokaart waarmee de wissels bestuurd kunnen worden. En dat ontwerp was toen nog lang niet klaar. Dus, hier pikken we dat verhaal weer op en de laatste maand ben ik 's avonds druk doende geweest om deze ontbrekende schakel in een volwaardige treinbesturing nu wél te realiseren.

Nog staat alles op een prototype-board en het sterft van de draadjes en dergelijke, maar de zaak werkt inmiddels naar volle tevredenheid. Sommigen onder jullie zullen nu misschien wel denken "dat kan toch allemaal niet zo moeilijk zijn!" en dat klopt ook.

Echter, de Wisselkaart is maar voor de helft een kaart die de wissels aanstuurt, voor de andere helft is het ook de electronica die de signalen teruggeeft als de locs over een positie-sensor rijden. Dus, deze kaart is eigenlijk "Wissel- en positiesensor kaart" of zo. Maar, dat is mij te lang, dus "Wisselkaart".

Hier eerst het globale schema:
(https://images.beneluxspoor.net/bnls/GlobaalSchemaWisselkaart.jpg) (https://images.beneluxspoor.net/bnls/GlobaalSchemaWisselkaart.jpg)

Als je ongeveer in het midden een streep trekt dan vormt de bovenste helft de wisselaansturing en de onderste helft zorgt voor de positieterugmelding.

De wisselaansturing is recht-toe-recht-aan. Een wisseladres van 0 t/m 7 en een "rechtdoor" of "afslaan" bit (hier D4o) met wat selectie- en strobe- logica zorgen voor de keuze van het juiste wissel. Met behulp van ULN2003 drivers wordt geschakeld. En omdat er wissels bestaan met automatische afslag en wissels zonder afslag en er dan ook nog exemplaren zijn die wel automatisch zijn, maar dat niet meer goed doen, een "power on timer" die de 18V voor ca. 200 msec op het gewenste wissel zet. De goede lezer zal opvallen dat er 7 wissels kunnen worden aangestuurd en nog een electromagnetische functie met één spoel. Voorlopig zijn 7 wissels bij mij genoeg. En anders kan er nog een kaart worden bijgezet die met de selectie KSx wordt gekozen in het kaartrek.

Wat mij veel meer gepuzzel en geprobeer heeft gekost is de positie-terugmelding.

Allereerst even vertellen welke "sensoren" ik gebruik. Omdat het zo mooi ouderwets is maar ook heel simpel is, wil ik voor Fleischmann locs de Fleischmann Contact Rail (FCR) gebruiken. Fleischmann heeft al minstens sinds ik mijn eerste trein kreeg van mijn ouders een "paddestoeltje" onder elke locomotief. Dat is een in- en uitverend contactje dat de motorspanning van dat ogenblik op de contactrails zet. Oorspronkelijk bedoeld om daar een sein, een wissel of een relais mee te besturen. De FCR is uit het midden van de rails geplaatst net zoals het paddestoeltje. Daarmee kun je al twee treinen op één plek "iets" laten doen. Enfin, ik vind dit een mooi systeem, dus dat is één sensortype.

Nu gebruik ik ook ROCO locs en die hebben deze contructie niet. Daarvoor gebruikt ROCO een magneetje dat onder de loc wordt gelijmd. Met een reed-relais of een hall-effect transistor zijn daarmee positie-sensoren te maken. Je zou je ook nog optische sensoren kunnen voorstellen, zo lang er maar een puls tussen 3 en 18 Volt afkomt, dan merkt de ingang van de wisselkaart dat er iets gebeurt.

Een optocoupler zorgt voor de veilige scheiding van de "ruwe" treinwereld met spanningen van tot 18 Volt en de "beheerste" TTL-wereld in de electronica. Op dit moment worden 8 positie-sensoren onderscheiden. Elk sensorsignaal wordt in een één-bit geheugen opgeslagen. Het heeft even geduurd voor ik deze stap heb gezet.

Ik ging er lang van uit, dat de software snel genoeg zou zijn om elke sensor op tijd "af te vragen". En dat bleek toch niet het geval te zijn. Vaak lukte het wel, maar bij drie treintaken die tegelijkertijd hun spoorboekje aan het afdraaien zijn, bleek er toch te vaak een sensorsignaal te worden gemist. En dan is een FCR nog best lang met ca. 50 mm. Een Hall-effect transistor heeft een meetgebied van ca. 4 mm en dan houdt het wel op. Dus op een aantal meters spoor wordt in het laatste geval een signaal gemaakt dat minder dan 4 promille van de tijd aanwezig is. Zo bekeken eigenlijk best logisch dat de sofware dan simpelweg te vroeg of te laat is met het afvragen van een sensor.

De oplossing is dan eenvoudig, het signaal moet worden opgeslagen. Dan weet de software dat een loc op die positie is of kortgeleden was. Met behulp van een 8-naar-1 selectie worden dan de sensorsignalen uitgelezen.

Maar, we zijn er nog niet helemaal. Als een loc succesvol qua positie is geregistreerd, komt er ongetwijfeld weer een volgend moment waarop een nieuwe positie op dezelfde plek moet kunnen worden gedetecteerd. Bijvoorbeeld omdat diezelfde loc er weer is, of een andere loc ook over dat blok en dus die sensor moet rijden én moet worden "gezien".

Ik heb gekozen voor een oplossing waarbij de software verantwoordelijk is voor het resetten van het positiegeheugen. Dan heb je maximale vrijheid en kun je met elke sensor verschillende dingen doen of meten.

Dat geheel werkt nu naar volle tevredenheid en er wordt geen positiesignaal meer gemist. Wel zo handig als een trein keurig moet stoppen op een kopstation en niet door het stootblok dendert.... ;D

Het simpele feit dat er nu ook binnen een blok kan worden gezien waar de trein binnen dat blok is, introduceert in de software weer nieuwe uitdagingen, maar ook nieuwe mogelijkheden. Je kunt het gebruiken als signaal om netjes af te remmen en te stoppen (bijv. kopstation of doorgangsstation). Maar je kunt een blok er ook in twee secties mee opdelen. Op basis van tijdmeting (baanlengte = snelheid x tijd) kunnen dan interessante toepassingen ontstaan.

Enfin, op dit moment ben ik de software aan het uitbreiden met een nieuwe toestand (state) in mijn "state driven" software. Naast de treintoestanden "blok bezet: trein rijdt" of "blok bezet: trein wacht" komt er een derde toestand bij, nl.l. "blok bezet: trein stopt". Deze state laat het dan bijv. toe om binnen een blok precies op een gewenste plaats te stoppen en van richting te veranderen. Zie wederom het voorbeeld van een kopstation voorzien van een positiemelder. Mijn nu "oude" methode met tijdmeting blijft  bruikbaar voor hetzelfde doel, maar gevoelig voor de lang niet altijd constante snelheid van de locomotief bij een bepaalde snelheidsinstelling. Door warmte- of andere effecten loopt de loc dan toch te ver door of komt niet ver genoeg.

Daarover later meer!
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: De Stoker op 04 April 2013, 14:38:46
Leuk om te lezen, ben met een vergelijkbaar project bezig ook met een PWM maar dan in een microcontoller (PIC16F628A)

Op de video rijden de treinen erg strak voor een analoog systeem.

Gebruik je de PC als micro controler? of ook als interface om bv wijzigingen in de dienstregeling aan te passen?

Moet de topic nog goed door lezen want het is wel erg interessant
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Bart Sanders op 04 April 2013, 21:18:29
Citaat
Op de video rijden de treinen erg strak voor een analoog systeem.

Gebruik je de PC als micro controler? of ook als interface om bv wijzigingen in de dienstregeling aan te passen?


Hallo!

En die video is nog maar het begin, of beter het laatste van wat ik begin 90-er jaren had ontwikkeld. Nu, een winter verder moet je de volgende video maar even afwachten. Er zit nu een "speed ramp" functie in die wordt aangeroepen als de loc een positiedetector bereikt. Mooi langzaam afremmen of versnellen en volledig tekst-tabel gestuurd: Voor elke discrete snelheid (16 stappen in totaal) wordt de bijbehorende doorlooptijd voor die snelheid in deze tabel geschreven in units 1/18.2 sec (waar zou dát nou vandaan komen? Kom op MS-DOS experts.... ;) ) Straks krijgt elke loc zijn eigen speed-ramp tabel die is afgestemd op die loc. Een ROCO BR01 met vliegwiel in de motor moet anders worden aangestuurd dan een kleine Fleischmann BR89.

De PC bevat alle low-level HW-interfaces en daarbovenop de dienstregeling software.

Lees inderdaad al mijn bijdragen in dit draadje erop na, dan heb je het complete beeld.

Ik ga nu de laaste HW ontwikkeling op een Eurokaart solderen en dan is de HW in principe klaar. Nou ja, voor een tijdje dan....

Groet!

Bart
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: De Stoker op 05 April 2013, 09:56:28
Ik ga je draadje zeker volgen.
Wil in de toekomst ook naar een soort gelijk systeem, weet nog niet precies hoe en wat voor mij werkbaar is.
Het maken en ontwikkelen van iets dergelijks vindt ik het leukst.
Op dit moment ben ik een proef opstelling aan het maken voor wat ik noem een PWM trafo, met een start en af rem functie in de "trafo" zelf, kan ook hand matig en een beveiliging dat je de rij richting niet maar zo om kunt gooien.
Titel: Re:Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: MichaelArends op 05 April 2013, 11:16:14
Zwarte schermen met groene letters.. blijft mooi. Leuke draad om te volgen !!

gr Michael

Titel: Modeltreinen bestuurd met een MS-DOS XT: het gaat weer verder.... (-:
Bericht door: Bart Sanders op 04 October 2013, 23:29:10
Beste lezers van dit draadje,

Ik weet niet of na 6 maanden deze forum-SW nog e-mails verstuurd als er weer eens iets wordt geschreven in een thread die net zo lang inactief is geweest...., maar proberen gaat boven studeren.

De "R"-zit weer in de maand en na allerlei zomerse activiteiten ben ik weer vaker op de bovenste verdieping bij mijn (kleine) modelbaan te vinden.

Beschouw dit maar als een "logged in" boodschap. Veel valt er nog niet te melden. Behalve dat: de wissels nu toch hun eigen voedingsspanning krijgen (20,5V uit een oude geschakelde voeding voor een laptop) en de treinen nu met een PWM-spanning van 15 Volt worden bestuurd, i.p.v. voorheen ca. 20 V. Daarmee kan ik fijnere stappen in de PWM-sturing maken. Ruwweg van 0 - 10 i.p.v. 0 - 6 met dezelfde eindsnelheid. Een nog mooier rij- optrek en afremgedrag als resultaat.

De wisselkaart is nu echt wel rijp om op een Eurokaart te worden gezet, mijn 4 stuks 90x90 cm tafels worden opgebouwd en dan kan er weer een serieuzer baanontwerp worden aangelegd.

De huidige testbaan zal ik eerst nog even op video vastleggen, waarop dan ook het start- en stopgedrag te zien zal zijn.

Omdat ik in het baanontwerp van de nieuwe baan, ook een engels wissel heb gepland, ben ik nu zo'n ding aan het testen. De vraag die ik nu uitzoek is: hoe moet je zo'n ding besturen met een blok-systeem? Het is een Fleischmann "zelf"-denkend exemplaar: rechtdoor zijn de twee kruisende sporen electrisch gescheiden, afslaand wordt het traject door de wissel electrisch in twee delen geknipt. Enfin, daar kijk ik nog naar.

O ja, nog een tip - die iedereen in dit forum beslist al kent - de nieuwere Fleischmann wissels hebben een afneembare electromagnetische aandrijving met eindafslag. Op zich mooi, geen verbrande spoeltjes meer..., maar door ouderdom en nalatende veerspanning in een belangrijk schakelveertje, doen die dingen het dan toch niet meer betrouwbaar. De oplossing: mits je een wisselsturing hebt met ingebouwde afslag (ofwel een kort stuurpulsje voor wissel-om) kun je het beruchte veertje er ook uithalen. Door enkele punten door te verbinden krijg je een oerbetrouwbare wisselaandrijving, net zoals die oude electr. wissels uit de 60-er  en 70-er jaren van Fleischmann...

Plaatje van een verbrandde en gerepareerde wissel, let op het rode draadje:
(https://images.beneluxspoor.net/bnls/Wissel_Aandrijf_Reparatie__007.jpg)

Dus, weer een hoop te doen!

Stay tuned.....  ;)

Bart
Titel: Re: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: De Stoker op 07 October 2013, 10:32:00
Ik ben met hetzelfde bezig!
Mijn wissel aandrijving is ook niet je van het en het ontkoppelen wil niet, Zoals je ziet werkt de "herinneringen" nog.
Ik ben inmiddels van het zelf ontwerp afgestapt, ik vindt het erg interessant maar moet nog te veel leren en te weinig tijd om het tot een succes te maken. Zie daarvoor ook mijn draadjes,
Ik heb van Dirk Meyer een beschrijving gekregen om die aandrijvingen aan te passen, erg handig
Titel: Modeltreinen bestuurd met een MS-DOS XT: even wat bewegende plaatjes...
Bericht door: Bart Sanders op 11 October 2013, 19:09:22
Beste allemaal,
Zoals in mijn laatste post aangekondigd, hier enkele bewegende plaatjes:

https://vimeo.com/76638513 (https://vimeo.com/76638513)

Deze video laat zien hoe een loc bij wegrijden zijn snelheid geleidelijk aan opvoert en bij het bereiken van een stoppunt (hier een Fleischmann Contact Rail) de snelheid geleidelijk aan terugneemt. Er zijn hier twee FCR gebruikt en daartussen pendelt de loc heen en weer. Er wordt gebruik gemaakt van een tekst-bestand waarin voor elk van de 16 snelheidsstappen in de PWM genoteerd staat hoeveel miliseconden elke stap duurt. Het hangt zeker samen met de motorconstructie. Dus, straks krijgt elke locomotief zijn eigen "snelheids-opvoer-tabel", ofwel speed-ramp.

O ja, het betreft hier een apart C-programmaatje, om e.e.a. te testen. De integratie in het treinbesturingsprogramma moet voor een deel nog gebeuren.

https://vimeo.com/76638514 (https://vimeo.com/76638514)

Hier zien we het treinbesturingsprogramma aan het werk, dat nu al wel de stopplaatsen kent (dit zijn ofwel FCR ofwel reed-relais voor ROCO locs) en bij een stopplaats ook al de loc geleidelijk laat afremmen. Dit op basis van de al beschreven speed-ramp tabel. Het optrekken gebeurt op twee manieren: ofwel plotseling, ofwel via een in de route-tabel staande instructie om stap voor stap de snelheid te laten toenemen m.b.v. wachtlusjes. Dat is nu een kunstgreep en moet straks ook via de al genoemde speed-ramp tabel verlopen.

Enfin, hierna wordt dit testbaantje afgebroken en wordt een nieuwe layout opgebouwd. Maar, eerst de wisselkaart (die ook de positiedetectie doet) op een Eurokaart opbouwen. Ben ik tenminste van de straat.... ;D

Bart
Titel: Re: Modeltreinen bestuurd met een MS-DOS XT: het gaat weer verder.... (-:
Bericht door: gvandersel op 12 October 2013, 12:49:41
Bart,

Als ex HCC!m rijder volg ik je natuurlijk. Daarom op deze vraag een tip/antwoord:
Omdat ik in het baanontwerp van de nieuwe baan, ook een engels wissel heb gepland, ben ik nu zo'n ding aan het testen. De vraag die ik nu uitzoek is: hoe moet je zo'n ding besturen met een blok-systeem? Het is een Fleischmann "zelf"-denkend exemplaar: rechtdoor zijn de twee kruisende sporen electrisch gescheiden, afslaand wordt het traject door de wissel electrisch in twee delen geknipt. Enfin, daar kijk ik nog naar.
Je engelse wissel zal een eigen blokbesturing moeten krijgen Soms kun je nog een paar wissels aan dit blok toevoegen, maar het is niet anders.
Succes,

Groet,

Gerard van der Sel.
Titel: Re: Modeltreinen bestuurd met een MS-DOS XT: beschrijving besturing I
Bericht door: Bart Sanders op 12 October 2013, 17:22:14
Hallo Gerard,

Citaat
Je engelse wissel zal een eigen blokbesturing moeten krijgen

Bedankt voor je antwoord!  (y)
Inderdaad, daar ben ik inmiddels ook achter gekomen. Ik kan nu in totaal (maar) 8 blokken besturen, dus zal ik het "engels-wissel-blok" opnemen in een daarvoor bruikbaar en aangrenzend blok.

Dat geheel heb ik ook al uitgetest (zie de kruiswissel restanten op mijn vidos van het testbaantje). En als ik de "wissels.dat" file voorzie van twee normale wissels in dat ene blok, dan werkt het ook keurig. Ik heb in het Fleischmann wissel daartoe wel weer de draadbrugjes teruggeplaatst. Het is nu overal geleidend in welke wisselstand ook. Ik heb er toch videootjes van gemaakt, maar het is niets meer dan een locje dat alle denkbare route-combinaties afloopt bestuurd door de actuele versie van de SW. En dát werkt in elk geval!

Groet!

Bart Sanders
Titel: Modeltreinen bestuurd met een MS-DOS XT: de wisselkaart is klaar!
Bericht door: Bart Sanders op 14 November 2013, 17:35:08
Beste allemaal,

Zo, de wisselkaart is nu (eindelijk) klaar. Omdat ik er - voorlopig - maar één exemplaar van nodig heb is het geheel op een Eurokaart met soldeereilandjes/gaatjes gezet. Gaat ook prima.  ;D

Een modeltreinbaan - bestuurd door een oude PC-XT onder MS-DOS - kent natuurlijk wissels. De voor de analoge besturing benodigde wisselkaart is nu (eindelijk) klaar. Het wissel-sturing gedeelte met ULN2003 drivers is redelijk recht-toe-recht-aan, maar de positie-terugmelding binnen een blok kostte wat extra hoofdbrekens. Hoofdprobleem is de (te) langzame verwerking door de software die in de XT draait. Daardoor kan een loc die op een positie is aangekomen (bijv. een station) gemakkelijk worden gemist. Door met een 8-bit geheugen te werken en wat logica er om heen, werd deze uitdaging prima opgelost. Er wordt geen positiemelding meer gemist door de software. Er kunnen tot 8 positie-sensoren worden aangesloten. Of de Fleischmann contactrail of een reed-relais bediend door een magneetje onder de loc.

Voor de liefhebbers staat hier het schema:
(https://images.beneluxspoor.net/bnls/Wisselkaart_V22_Schema.jpg) (https://images.beneluxspoor.net/bnls/Wisselkaart_V22_Schema.jpg)

En omdat het allemaal ook mooi werkt - nu met maar 2 wissels en 3 positie-sensoren in het testbaantje - hier de video van het geheel: http://www.youtube.com/watch?v=7adXHJjT0cQ (http://www.youtube.com/watch?v=7adXHJjT0cQ)

Het testbaantje heeft nu wel zijn langste tijd gehad.... :'(

Groet!
Bart