Doel:€250.00
Donaties:€80.00

Per saldo:€-170.00

Steun ons nu!

Laatst bijgewerkt
op 09-12-2018
Algemeen

De stichting

Recente berichten

Berijden van enkelspoor en/of kopspoor in beide richtingen, DCC door rjr
12 december 2018, 15:13:43
Neurenberg 2019; wat staat er op jouw verlanglijst? door DavidNS400 Grote sik
12 december 2018, 15:12:43
Toon hier je nieuwe (model) spooraanwinst(en)... door Remco vM
12 december 2018, 15:04:18
Toerental vaststellen DC motor door Klaas Zondervan
12 december 2018, 14:33:24
Treinen op zolder door rjr
12 december 2018, 14:31:40
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door St00mboy
12 december 2018, 14:30:21
Ovaalramer in messing. Schaal 0 door peterha
12 december 2018, 14:29:04
Crowdfunding gestart voor ex-ZHESM 9952 door Rob46
12 december 2018, 14:21:44
Mijn eerste H0 modeltreinbaan in aanbouw door Ronald Hofmeester
12 december 2018, 14:13:59
19 Toen door Willem1951
12 december 2018, 14:10:14
Ratelende tandwielen? door zuylen
12 december 2018, 14:06:17
Communicatie tussen computerprogramma's en treinsystemen. door jowi
12 december 2018, 13:39:52
Aanschaffen BR245, Brawa of ACME? door Rondje_HO
12 december 2018, 13:24:37
NS modelbaan Hoekdam H0 door Wim Vink
12 december 2018, 13:23:13
E10 Lok geen rode sluitlichten? door Quinzeedied
12 december 2018, 13:20:42
De Rheingold in model naoorlogs door Marc tramt
12 december 2018, 13:16:04
Tussendoortje: Roco en Mastica zelfbouw klompentrein door martijn v m
12 december 2018, 12:50:43
Roco h0, NS 1200 door Rondje_HO
12 december 2018, 12:50:26
Stationsplein Baden Baden door nighttrain1
12 december 2018, 12:38:26
Stroomloos maken stuk spoor bij DCC? door Markus
12 december 2018, 12:36:55
Laser Cut bouwpakketten. Ervaringen. door Chris
12 december 2018, 11:56:38
Probleem met ECOS 2 en zijn voeding door PieterHa
12 december 2018, 11:55:48
Silencer nieuw baanplan HO - met 9 jaar vertraging... door NS264
12 december 2018, 11:08:56
  

Auteur Topic: Communicatie tussen computerprogramma's en treinsystemen.  (gelezen 647 keer)

bask185

  • Offline Offline
  • Berichten: 80
Communicatie tussen computerprogramma's en treinsystemen.
« Gepost op: 11 december 2018, 16:27:19 »
Hallo beste mede treinfans,

Ik wil wat vraagjes stellen over de bestaande computer programma's om een treinbaan mee te bedienen, koploper, iTrain, iets wat ik nog niet ken etc.. 

Ik begin eerst met een uitleg over de opzet van mijn trein besturing het is echter niet relevant voor de vraag. Dus skip gerust naar de TL:DR label

Ik zit me een beetje in de digitale infrastructuur te verdiepen. Ik ga uiteindelijk zelf met arduino mijn besturing in elkaar flansen. Daarbij laat ik meerdere modules van mijn baan met RS485 met elkaar communiceren tbv van automatisch rijden. Als het echt moet, ga ik CAN gebruiken maar dat is mijn laatste resort. Het punt is dat ik dus geautomatiseerd wil rijden.

Ik heb ook al een schakelpaneeltje gemaakt en voor elk 3 van mijn modules wil ik uiteindelijk schakelpanelen hebben met wisselschakelaars ed. De schakelpanelen zelf zijn niet geintegreerd met de bak zelf. Die wil ik er straks 'aan kunnen hangen' of 'er in kunnen prikken'.

Elke module bak heeft een servomotor besturing tbv wissels omzetten, elke bak heeft schakelrails (massadetectie bij M* rails) en elke bak heeft een schakelpaneel.

De pest hebbende aan draadjes, heb ik bedacht dat de schakelpaneel met I/O extenders wil uitvoeren. Vanwege het feit dat de servo drivers op de I2C bus werken, wil ik ook I2C I/O extenders gaan gebruiken. De arduino zit wil erg dichtbij het schakel paneel dus de draad afstand zal ~20cm tops zijn en met 100kHz durf ik de EMC gerelateerde uitdaging wel aan.

Als alternatief komen ook hier in arduino's met RS485 modules, maar liever niet. Rs485 heeft geen standaard multi master protocol. Dus als ik van schakelpaneel een bericht moet sturen naar de naburige arduino met de wissel aansturing dan kan ik 2 dingen doen.

Bij mijn voorkeur komt er een centrale arduino die statussen (schakelpanelen en schakelrails) opvraagt en instructies uitdeelt (mits er automatisch wordt gereden). De andere manier is dat ik iets van time sharing ga gebruiken waarbij de modules 1 voor 1 een bericht mogen plaatsen op de bus. Dit heeft echter niet mijn voorkeur.

Dan komen er nog een rijregelaar en een voedingsmodule bij kijken. De voedingsmodule kan ik bij de centrale arduino bij elkaar stoppen. Deze centrale wordt dan misschien wel of niet aan een computer gehangen.

Nu heb ik een heel simpele baan ontwerp waarbij ik het automatisch laten rijden in de centrale arduino kan programmeren. Om toch complexere instructies te sturen waarbij ik een trein naar in of uit de routine kan halen, heb ik iets van een terminal nodig. Daarbij komt m'n smartphone en bluetooth om de hoek kijken. Er zijn namelijk mooie, gratis apps beschikbaar met seriele bluetooth terminals. Ik kan met m'n phone een commando in tikken mbv het toetsenbord op m'n phone. Of ik druk op een knop waaraan ik een instructie heb gekoppeld. Dit laatste is echt het makkelijkste van alles van mijn de treinbaan (y).

TL:DR

Het lijkt mij misschien wel of niet leuk om toch met een computer programma te rijden, maar alleen voor de grafische kant van het verhaal. Ik weet dat het ook headless kan, maar dat kan ik zelf ook. Wat ik erg graag wil weten, is hoe de communicatie tussen computer en treinbesturing er uit ziet. Ik weet dat een CS2 bijvoorbeeld over ethernet met iTrain kan werken (toch?) en dat je al mijn arduino's kan vervangen door loconet apparatuur en dan met koploper of iets anders kan rijden. Nu wil ik een arduino laten communiceren met kopLoper of iTrain of ..<vul hier je alternatief in>  over USB.

Ik ben dus in het bijzonder geinteresseerd in het communicatie protocol. Wat stuurt het programma? Wat moet arduino terug sturen? Als schakel rail X een trein detecteert, hoe vertel ik dat het computer programma. En als het computer programma trein Y wilt laten rijden, hoe krijgt arduino dat te horen?

Ik snap dat elk de verscheidene elektronica fabrikanten hun eigen protocollen hebben hiervoor en dat een programma zoals iTrain zich hieraan kan aanpassen (via instellingen). bron: iTrain manual. Maar welke van de protocollen werken over USB en welke zijn bekend/open source en zijn geschikt om te combineren met een arduino?


« Laatst bewerkt op: 11 december 2018, 16:53:57 door Bert van Gelder »

Ronald Koerts

  • Offline Offline
  • Berichten: 7176
    • Bouw Endstation der Linie: Bahnhof Poggendam
Re: Communicatie tussen computerprogramma's en treinsystemen.
« Reactie #1 Gepost op: 11 december 2018, 18:05:57 »
Ik ben dus in het bijzonder geinteresseerd in het communicatie protocol. Wat stuurt het programma? Wat moet arduino terug sturen? Als schakel rail X een trein detecteert, hoe vertel ik dat het computer programma. En als het computer programma trein Y wilt laten rijden, hoe krijgt arduino dat te horen?

Goed, inderdaad via protocollen, zoals P50x, Xpressnet (over LAN), LocoNet. Kijk eens naar de z21 oplossingen voor de Arduino. Daarmee maak je complete "z21-emulator" inclusief terugmelding van je Arduino.

Maar welke van de protocollen werken over USB en welke zijn bekend/open source en zijn geschikt om te combineren met een arduino?

XpressNet, LocoNet, P50(X).  Daar zijn allerlei bibliotheken voor te krijgen. Maar die had je waarschijnlijk ook al wel zelf gevonden. ;)

Als alternatief komen ook hier in arduino's met RS485 modules, maar liever niet. Rs485 heeft geen standaard multi master protocol.

XpressNet is een variant van RS485.

Ik weet dat een CS2 bijvoorbeeld over ethernet met iTrain kan werken (toch?) en dat je al mijn arduino's kan vervangen door loconet apparatuur en dan met koploper of iets anders kan rijden. Nu wil ik een arduino laten communiceren met kopLoper of iTrain of ..<vul hier je alternatief in>  over USB.

Over Ethernet kan ook met XpressNet en LocoNet. Voor XpressNet heb je de mogelijkheid om dat met de al genoemde z21-emulator te doen. Dus het hoeft niet perse over alleen usb. Arduino's hoef je voor LocoNet niet te vervangen, zie daarvoor de eerdere links in dit bericht.

Groet Ronald.
« Laatst bewerkt op: 11 december 2018, 19:22:13 door Ronald Koerts »
Zijn we aan het bouwen? Ja! We zijn aan het bouwen: Ronald’s nieuwe project: Endstation der Linie: Bahnhof Poggendam!

bask185

  • Offline Offline
  • Berichten: 80
Re: Communicatie tussen computerprogramma's en treinsystemen.
« Reactie #2 Gepost op: 12 december 2018, 09:54:11 »
Vergeet het niet onderscheid te blijven maken tussen elektrische protocollen en communicatie. De 'protocollen' in de modeltreinwereld zoals wij die kennen zijn altijd combinaties van de 2.

Ik heb wat gegoogled naar XpressNet en die werkt elektrisch gezien met RS485, de timing van de bytes die over de rs485 bus gestuurd worden, is comform RS232 protocol (rs485 kan je zien als een uitbreiding van rs232). Dit is de fysieke laag. En de informatie die in de bytes staat is puur software. Dit zijn 2 verschillende lagen die je uit elkaar moet houden. XpressNet zelf is een communicatie protocol, het is een collectie van instructies.

Je zin
Citaat
XpressNet is een variant van RS485
is daarom technisch gezien niet correct. XpressNet maakt gebruik van Rs485. Maar XpressNet zelf is eigenlijk een communicatie protocol.

Voor mijn eigen Rs485 bus, hoef ik niet perse XpressNet te gebruiken. De bus loopt alleen tussen arduino's. Tussen de centrale arduino en computer zit een usb kabel. Hierover kan ik er wel voor kiezen om XpressNet te gebruiken om zo met iTain of koploper of .... te communiceren. USB net als RS485 een fysieke laag, over beiden kan ik XpressNet praten.

Je hebt me wel naar de goede richting laten kijken en ik heb er een idee bij. Als ik er voor kies om toch wel XpressNet op mijn Rs485 bus te zetten dan geeft dat de mogelijkheid om een bestaand rijregelaar te gebruiken zoals zo'n multimaus van Roco. Dan hoef ik er zelf niet 1 te maken.

Ik heb ook even gekeken naar loconet. Ik had nog wat meer gelezen, maar ik weet alleen dat loconet werkt met berichten 'packages' en 'colission detection' werkt. Over de fysieke kant is weing beschreven behalve dat ze oude telefoonkabels en spanningen tussen 8V en 14V gebruiken. Over het communicatie protocol staat: "Das LocoNet-Protokoll ist offiziell nicht offengelegt".

Z21 was wat lastiger te begrijpen. De Roco Z21 is een centrale trein regelaar die over LAN of WLAN met een smartphone of tablet kan communiceren. Dit gedeelte is echt z21 protocol werk. Verder kan deze centrale ook overweg met loconet, CAN bus en XpressNet.

Die z21 arduino emulator, daarvan heb ik het schema bekeken en duidelijk is te zien hoe je bepaalde bus elektrisch moet aansluiten, loconet, XpressNet en S88 staan er alle 3 op, samen met een H brug voor DCC. Interessanter is echter de source code die op de website staat, want code van gebruik van loconet (die niet 'offcieel' is vrijgegeven) staat er ook op. Dit had ik namelijk nog niet gevonden.

Ik denk dat ik komende tijd meer naar XpressNet ga kijken. Het ziet er het makkelijkst uit  (y).

iig bedankt,

Bas

trdl

  • Offline Offline
  • Berichten: 36
Loconet vs ExpressNet
« Reactie #3 Gepost op: 12 december 2018, 10:29:23 »
Bask185,

ik heb een programma gemaakt voor treindienstleiding op de digitale modelbaan. Een versie voor Expressnet en een versie voor Loconet.

Loconet stelt je in staat precies te volgen wat er op de baan gebeurt. Ook als een locadres is opgeroepen op een rijregelaar.

Met ExpressNet krijg je wel een melding dat een locadres wordt opgeroepen, maar kun je daarna niet zien wat er op de rijregelaar wordt gedaan.

Mijn voorkeur heeft daarom Loconet.
Er is een document van Digitrax waarin het Loconet interface protocol wordt beschreven.

Groet, Willem

Klaas Zondervan

  • Offline Offline
  • Berichten: 16367
    • Pagina van klaas
Re: Communicatie tussen computerprogramma's en treinsystemen.
« Reactie #4 Gepost op: 12 december 2018, 10:50:15 »
Ik heb ook even gekeken naar loconet. Ik had nog wat meer gelezen, maar ik weet alleen dat loconet werkt met berichten 'packages' en 'colission detection' werkt. Over de fysieke kant is weing beschreven behalve dat ze oude telefoonkabels en spanningen tussen 8V en 14V gebruiken. Over het communicatie protocol staat: "Das LocoNet-Protokoll ist offiziell nicht offengelegt".
Wat ik over de fysieke kant van Loconet weet: het werkt over 6-polige telefoonkabels met z.g. RJ connectors.
Op de buitenste aders (1 en 6)staat het Railsync signaal, dat dient om de boosters met het digitale signaal te sturen.
De aders 2 en 5 zijn GND.
In het midden liggen de aders 3 en 4, dat zijn de loconetaders. Die worden LN- en LN+ genoemd, maar dat is een misleidende benaming want in werkelijkheid staan ze gewoon parallel.
De loconetaders worden door een stroombron op een positief potentiaal gehouden. Elke aangesloten deelnemer kan op de lijn zenden door met een opencollecorschakeling deze aders naar GND te trekken.

Verder zou je eens op de site van Digitax kunnen rondkijken, daar zijn wat documenten over Loconet te vinden, waarvan ik overigens het meeste niet snap. :)

Het volgende optreden van "Without" is op 23 en 24 februari 2019 in de Zeelandhallen te Goes.

bask185

  • Offline Offline
  • Berichten: 80
Re: Communicatie tussen computerprogramma's en treinsystemen.
« Reactie #5 Gepost op: 12 december 2018, 11:59:27 »
Bask185,

ik heb een programma gemaakt voor treindienstleiding op de digitale modelbaan. Een versie voor Expressnet en een versie voor Loconet.

Loconet stelt je in staat precies te volgen wat er op de baan gebeurt. Ook als een locadres is opgeroepen op een rijregelaar.

Met ExpressNet krijg je wel een melding dat een locadres wordt opgeroepen, maar kun je daarna niet zien wat er op de rijregelaar wordt gedaan.

Mijn voorkeur heeft daarom Loconet.
Er is een document van Digitrax waarin het Loconet interface protocol wordt beschreven.

Groet, Willem

Interessant, met welk programma heb je dat gedaan? Het leek mij altijd veels te veel werk om zoiets zelf te maken, vooral omdat het al meer dan 1 keer door hele bedrijven is gedaan. Ik zou het zelf in Processing doen, werkt makkelijk met serieel en LAN. En ik vind het fijn OO programmeren met alle grafische elementjes.

Vergeet niet dat ik loconet alleen gebruik tussen 1 arduino en een computer. Geen haar op mijn hoofd die er aan denkt om ook die loconet bus toe te passen  :D Ik zorg er voor dat alle meldingen, schakelrais, trein instructies ed, bij de arduino komen die het dan aan de PC doorgeeft.

Maar als ik het snap is het loconet protocol iets uitgebreider dan dat van XpressNet. Je hebt extra informatie over je treinen. Als ik zelf een treintje aanstuur dan weet de computer dat en die kan me dan of over-rulen of een baankvlak voor mij reserveren en andere treinen stoppen.

Heb jij misschien een leuk lijstje of een link naar een leuk lijstje met alle loconet instructies?? :angel:

jowi

  • Offline Offline
  • Berichten: 1959
Re: Communicatie tussen computerprogramma's en treinsystemen.
« Reactie #6 Gepost op: 12 december 2018, 13:39:52 »
TL:DR
Mijn vraag als ik dit lees is, is het uit een bepaald principe dat je alles zelf wilt verzinnen, of uit onkunde/kennis/ervaringsgebrek? Ik vraag dit omdat alles wat je wil, gewoon gekocht kan worden (ga maar eens bij digikeijs oid kijken). Sommige mensen weten dat echter niet en denken bij 'digitaal' dat ofwel alles 'het gewoon doet' of dat ze dat 'dus' allemaal zelf moeten verzinnen en bouwen, maar er zijn er ook bij die het juist als een sport zien om het juist zelf te ontwikkelen...

Ik weet niet tot welke categorie jij behoort?