Fahrpult ÖBB 1042 (Neu)
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Fahrpult ÖBB 1042 (Neu)
Aktueller Stand meines ÖBB 1042.5 Führerstandes: Weitestgehend fertiggestellt!
Das Fahrpult wurde innerhalb ca. 1 Jahres Bauzeit gebaut und ist ausgerüstet mit:
- Fahrschalter ( + Elektr. Bremse)
- Führerbremsventil (mit originalgetreuem Verhalten des Oerlikon FV4, also stufenlos regelbar)
- Leuchtmelder (PZB und sonstige)
- Sämtliche Schalter, Taster (inkl. Sifapedal, PZB, Sand, ...)
- Anzeige Hauptluftleitungs-, Hauptluftbehälter-, Bremszylinderdruck
- Stromanzeigen (Motor-, Primär-, Bremsstrom)
- Spannungsanzeigen (Fahrdraht-, Batteriespg.)
- Tachograph Hasler (mechanisch, mit neuem GS-Motor)
- Stufenanzeige Nachlaufsteuerung
- Zusatzbremsvetil FDS2
- Instrumentenbeleuchtung
- Stromabnehmersimulation
- ...
Demonstrationsvideo
Was noch zu tun ist:
- Aufarbeitung der restlichen Teile (teilweise leicht rostig)
- andere Feinheiten
------------------------------ Originalbeitrag -------------------------------
Servus!
Wie vielleicht schon der ein oder andere mitbekommen hat, arbeite ich seit längerem mit einem Kollegen an einem Fahrpult der Baureihe 1042. Hier gleich mal ein Bild:
Es ist schon einiges geschafft, sodass das Pult heute und gestern bereits im Probebetrieb war. Es funktionieren bereits die Eingaben über den Fahrschalter, die Zugbremse sowie einige Taster und Schalter wie z.B. die PZB und deren Leuchtmelder.
Jedoch gibt es auch noch einige Probleme, womit ich gleich zur ersten Frage komme. Als Übertragungszentrale dient ein Arduino Mega, welcher für Übertragungen in beide Richtungen zuständig ist. Als Programmgrundlage habe ich die Beispiele aus dem "Ausgänge" Thread heraungezogen, die Ausgabe alleine funktioniert auch wunderbar und es werden die Stromanzeigen als auch der Tachometer erfolgreich angesteuert. Wenn ich aber die Eingabe auch aktiviere, hängt das Programm am PC nach einigen Minuten und ich muss den Arduino vom PC trennen, wieder alles neu verbinden. Bis dahin funktioniert alles einwandfrei. Meine Programme findet ihr hier:
Arduino: http://www.bahnvideos.net/files/arduino.txt
VB: http://www.bahnvideos.net/files/VB.txt
Mit der "readytosend" -Bestätigung glaubte ich das Problem behoben zu haben, was aber leider doch nicht der Fall war. Ich bitte euch hier also um etwas Hilfe.
Grüße,
Sebastian N.
Was jetzt schon funktioniert:
- Fahrschalter ( + Elektr. Bremse)
- Führerbremsventil (mit originalgetreuem Verhalten des Oerlikon FV4, also stufenlos regelbar)
- Leuchtmelder (PZB und sonstige)
- Sämtliche Schalter, Taster (inkl. Sifapedal, PZB)
- Anzeige Hauptluftleitungsdruck
- Stromanzeigen
- Tacho (mit neuem GS-Motor)
Man kann also schon sehr gut fahren, da die wichtigsten Bedienelemente funktionieren.
Was allerdings noch fehlt:
- Zusatzbremsventil (Verkabelung noch zu machen)
- Bremszylinderdruck, Hauptluftbehälter
- Anzeige Nachlaufsteuerung
Das Fahrpult wurde innerhalb ca. 1 Jahres Bauzeit gebaut und ist ausgerüstet mit:
- Fahrschalter ( + Elektr. Bremse)
- Führerbremsventil (mit originalgetreuem Verhalten des Oerlikon FV4, also stufenlos regelbar)
- Leuchtmelder (PZB und sonstige)
- Sämtliche Schalter, Taster (inkl. Sifapedal, PZB, Sand, ...)
- Anzeige Hauptluftleitungs-, Hauptluftbehälter-, Bremszylinderdruck
- Stromanzeigen (Motor-, Primär-, Bremsstrom)
- Spannungsanzeigen (Fahrdraht-, Batteriespg.)
- Tachograph Hasler (mechanisch, mit neuem GS-Motor)
- Stufenanzeige Nachlaufsteuerung
- Zusatzbremsvetil FDS2
- Instrumentenbeleuchtung
- Stromabnehmersimulation
- ...
Demonstrationsvideo
Was noch zu tun ist:
- Aufarbeitung der restlichen Teile (teilweise leicht rostig)
- andere Feinheiten
------------------------------ Originalbeitrag -------------------------------
Servus!
Wie vielleicht schon der ein oder andere mitbekommen hat, arbeite ich seit längerem mit einem Kollegen an einem Fahrpult der Baureihe 1042. Hier gleich mal ein Bild:
Es ist schon einiges geschafft, sodass das Pult heute und gestern bereits im Probebetrieb war. Es funktionieren bereits die Eingaben über den Fahrschalter, die Zugbremse sowie einige Taster und Schalter wie z.B. die PZB und deren Leuchtmelder.
Jedoch gibt es auch noch einige Probleme, womit ich gleich zur ersten Frage komme. Als Übertragungszentrale dient ein Arduino Mega, welcher für Übertragungen in beide Richtungen zuständig ist. Als Programmgrundlage habe ich die Beispiele aus dem "Ausgänge" Thread heraungezogen, die Ausgabe alleine funktioniert auch wunderbar und es werden die Stromanzeigen als auch der Tachometer erfolgreich angesteuert. Wenn ich aber die Eingabe auch aktiviere, hängt das Programm am PC nach einigen Minuten und ich muss den Arduino vom PC trennen, wieder alles neu verbinden. Bis dahin funktioniert alles einwandfrei. Meine Programme findet ihr hier:
Arduino: http://www.bahnvideos.net/files/arduino.txt
VB: http://www.bahnvideos.net/files/VB.txt
Mit der "readytosend" -Bestätigung glaubte ich das Problem behoben zu haben, was aber leider doch nicht der Fall war. Ich bitte euch hier also um etwas Hilfe.
Grüße,
Sebastian N.
Was jetzt schon funktioniert:
- Fahrschalter ( + Elektr. Bremse)
- Führerbremsventil (mit originalgetreuem Verhalten des Oerlikon FV4, also stufenlos regelbar)
- Leuchtmelder (PZB und sonstige)
- Sämtliche Schalter, Taster (inkl. Sifapedal, PZB)
- Anzeige Hauptluftleitungsdruck
- Stromanzeigen
- Tacho (mit neuem GS-Motor)
Man kann also schon sehr gut fahren, da die wichtigsten Bedienelemente funktionieren.
Was allerdings noch fehlt:
- Zusatzbremsventil (Verkabelung noch zu machen)
- Bremszylinderdruck, Hauptluftbehälter
- Anzeige Nachlaufsteuerung
Zuletzt geändert von Sebastian N. am 11.08.2013 00:11:18, insgesamt 6-mal geändert.
Re: Fahrpult ÖBB 1042 (Neu)
Wie äußert sich das "hängen"?
Was machst du mit den Eingaben? Leitest du sie an Zusi weiter? Wenn ja, was passiert wenn du die Daten zwar aus dem Audorino liest, sie aber nicht weiterverarbeitest?
Wo hast du die "Private Declare Sub keybd_event" her? Manche VisualBasic-Beispiele aus dem Internet sind für ältere Versionen, und da war Integer = int16 und Long = int32. Seit (mindestens) 2005 ist aber Integer = int36 und Long = int64, hast du darauf geachtet?
Wie groß ist das Timer-Intervall?
Was machst du mit den Eingaben? Leitest du sie an Zusi weiter? Wenn ja, was passiert wenn du die Daten zwar aus dem Audorino liest, sie aber nicht weiterverarbeitest?
Wo hast du die "Private Declare Sub keybd_event" her? Manche VisualBasic-Beispiele aus dem Internet sind für ältere Versionen, und da war Integer = int16 und Long = int32. Seit (mindestens) 2005 ist aber Integer = int36 und Long = int64, hast du darauf geachtet?
Wie groß ist das Timer-Intervall?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Wenn das Programm hängt, reagiert es auf keine Befehle oder Klicksmehr und es erscheint eine Sanduhr wenn mit der Maus darüber gefahren wird. Schließen kann ich es nur wenn ich im Debugger auf Stop klicke.F. Schn. hat geschrieben:Wie äußert sich das "hängen"?
Kann ich leider derzeit nicht testen, da der Simulator nicht bei mir zuhause steht. Da das aber nur Tastendrücke sind denke ich nicht dass es etwas ausmacht. Wenn ich Gelegenheit habe, werde ich das aber mal probieren.Was machst du mit den Eingaben? Leitest du sie an Zusi weiter? Wenn ja, was passiert wenn du die Daten zwar aus dem Audorino liest, sie aber nicht weiterverarbeitest?
Das habe ich im Internet rausgesucht, habe aber VB nie gelernt und weiß daher über diese Dinge nicht so bescheid. Die Tastatureingaben funktionieren so aber (bis zum Hänger) einwandfrei. Mit Sendkey sind ja keine längeren Tastendrücke möglich.Wo hast du die "Private Declare Sub keybd_event" her? Manche VisualBasic-Beispiele aus dem Internet sind für ältere Versionen, und da war Integer = int16 und Long = int32. Seit (mindestens) 2005 ist aber Integer = int36 und Long = int64, hast du darauf geachtet?
Derzeit 150ms, habe aber schon von 50 bis 250 alles probiert, der Effekt tritt immer auf.Wie groß ist das Timer-Intervall?
- Hubert
- Beiträge: 2358
- Registriert: 15.07.2002 17:50:22
- Aktuelle Projekte: Es war einmal: Führerpult im Bau
- Wohnort: Baden bei Zürich
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Hallo Sebastian
Tolle Leistung hast Du da vollbracht. Gratuliere.
Nur eine Kleinigkeit: Die Lok hat kein PZB sondern höchstens I60.
Gruss
Hubert
NB: Hast Du eigentlich die Bedienungsanleitungen und Störungssuchen für diesen Typ? Ich nehme an Ja.
Tolle Leistung hast Du da vollbracht. Gratuliere.
Nur eine Kleinigkeit: Die Lok hat kein PZB sondern höchstens I60.
Gruss
Hubert
NB: Hast Du eigentlich die Bedienungsanleitungen und Störungssuchen für diesen Typ? Ich nehme an Ja.
Greife nie in's Wespennest, doch wenn Du greifst, dann greife fest !
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Danke Hubert, wenn alles läuft kannst du auch gerne mal vorbeischauen und eine Testfahrt unternehmen.
Gruß,
Sebastian
Die Bezeichnungen stammen noch aus dem Originalprogramm von nonesense. Aber punktförmig ist die I60 ja auch.Nur eine Kleinigkeit: Die Lok hat kein PZB sondern höchstens I60.
Gruß,
Sebastian
Zuletzt geändert von Sebastian N. am 24.11.2012 20:10:12, insgesamt 1-mal geändert.
- nonesense
- Beiträge: 506
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Was passiert denn, wenn du stattdessen auf Pause klickst? Wo bleibt der Zeiger im Debugger stehen?Sebastian N. hat geschrieben:Wenn das Programm hängt, reagiert es auf keine Befehle oder Klicksmehr und es erscheint eine Sanduhr wenn mit der Maus darüber gefahren wird. Schließen kann ich es nur wenn ich im Debugger auf Stop klicke.F. Schn. hat geschrieben:Wie äußert sich das "hängen"?
Gruß
Jens
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Hm, wenn ich Pause drücke erscheint ein Reiter mit "Es ist keine Quelle verfügbar."
(Wenn es noch nicht hängt, mit dem Arduino kann ich es erst wieder in ein paar Tagen probieren.
(Wenn es noch nicht hängt, mit dem Arduino kann ich es erst wieder in ein paar Tagen probieren.
Zuletzt geändert von Sebastian N. am 25.11.2012 01:22:34, insgesamt 1-mal geändert.
-
- Beiträge: 115
- Registriert: 30.09.2010 14:17:08
- Aktuelle Projekte: 1116 Führertisch hoffentlich bald fertig!
- Wohnort: Guntramsdorf
Re: Fahrpult ÖBB 1042 (Neu)
Hallo Sebastian,
jetzt auch meine öffentliche Gratulation zu Deinem Projekt , inoffiziell habe ich das ja schon getan. Da wird sich Hubert in den Allerwertesten .... ! Verzeih alter Schweizer!!!
Allerdings würde ich den Tisch, weil eine Abweichung zur 1042 vorhanden ist, als 1x42 bezeichnen, aber das ist meine Meinung und wertfrei!
Gruß
Martin
P.S.: Vielleicht könnten wir uns mal treffen, wegen meines 1116 Pultes?!?
jetzt auch meine öffentliche Gratulation zu Deinem Projekt , inoffiziell habe ich das ja schon getan. Da wird sich Hubert in den Allerwertesten .... ! Verzeih alter Schweizer!!!
Allerdings würde ich den Tisch, weil eine Abweichung zur 1042 vorhanden ist, als 1x42 bezeichnen, aber das ist meine Meinung und wertfrei!
Gruß
Martin
P.S.: Vielleicht könnten wir uns mal treffen, wegen meines 1116 Pultes?!?
Faber est suae quisque fortunae - Jeder ist seines Glückes Schmied
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Hallo!
Vielen Dank Martin!
Somit denke ich dass es auch die von mir nachgestellte Version so durchaus gegeben haben könnte
Ist es sinnvoll/überhaupt möglich die Übertragung vom Arduino aus zu starten, also den Timer dort zu realisieren?
Gruß,
Sebastian N.
Vielen Dank Martin!
Ich weiß jetzt nicht genau welche Abweichung du meinst - die Abdeckung links oben wird noch ersetzt, damit dort wie im Original die Schalter für Spitzen- und Schlusslicht sind. Auch beim Handrad gab es über die Jahrzehnte verschiedenste Konstillationen, hier z.B. eine 1042 mit kombiniertem Fahr/Bremssteller und grünem Instrumententräger.Allerdings würde ich den Tisch, weil eine Abweichung zur 1042 vorhanden ist, als 1x42 bezeichnen, aber das ist meine Meinung und wertfrei!
Somit denke ich dass es auch die von mir nachgestellte Version so durchaus gegeben haben könnte
Nochmal dazu:Wie groß ist das Timer-Intervall?
Ist es sinnvoll/überhaupt möglich die Übertragung vom Arduino aus zu starten, also den Timer dort zu realisieren?
Gruß,
Sebastian N.
- Hubert
- Beiträge: 2358
- Registriert: 15.07.2002 17:50:22
- Aktuelle Projekte: Es war einmal: Führerpult im Bau
- Wohnort: Baden bei Zürich
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Hallo Sebastian
Der Fehler, den Martin meint ist folgender:
Bei allen 1042 von 1 - 520 war der Bedienhebel des Wendeschalter separat mit den Funktionen V(B) und R (B) ausgerüstet. Beim E- Bremsen musste der Bedienhebel des Wendeschalter in die Stellung Bremsen gestellt werden.
Der Stufenschalter konnte dann auch nur mehr bis zur Stufe 17 aufgeschaltet werden (mech. Sperre). Der Stufenschalter selbst hatte die Funktion Bremsen aufschalten durch Linksdrehen nicht.
Gruss
Hubert
Der Fehler, den Martin meint ist folgender:
Bei allen 1042 von 1 - 520 war der Bedienhebel des Wendeschalter separat mit den Funktionen V(B) und R (B) ausgerüstet. Beim E- Bremsen musste der Bedienhebel des Wendeschalter in die Stellung Bremsen gestellt werden.
Der Stufenschalter konnte dann auch nur mehr bis zur Stufe 17 aufgeschaltet werden (mech. Sperre). Der Stufenschalter selbst hatte die Funktion Bremsen aufschalten durch Linksdrehen nicht.
Gruss
Hubert
Greife nie in's Wespennest, doch wenn Du greifst, dann greife fest !
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Das stimmt natürlich, aber bei den modernisierten 1042ern gab es auch schon den kombinierten Stufenschalter (Bild 1042.583).
Aber du hast Recht, dann passt der Instrumententräger von der Farbe her wieder nicht dazu.
Vielleicht wird der ja noch umlackiert.
Gruß,
Sebastian
Aber du hast Recht, dann passt der Instrumententräger von der Farbe her wieder nicht dazu.
Vielleicht wird der ja noch umlackiert.
Gruß,
Sebastian
Re: Fahrpult ÖBB 1042 (Neu)
Hallo Sebastian,
auch von meiner Seite höchster Respekt und herzliche Gratulation zur Umsetzung dieses grandiosen Führerstandes.
Ich habe selber ursprunglich den Bau eines 1142 Fst. in Erwägung gezogen, bevor ich mich zum Bau eines Taurus-Fahrpultes entschlossen habe.
Die Teile liegen bei mir noch im zerlegten Zustand im Keller und Garage und vielleicht gehe ich jetzt wirklich noch einen zweiten Führerstand an.
Wünsch Dir auf alle Fälle noch viel Spaß und Erfolg bei dem Projekt !!
mfg Andi
auch von meiner Seite höchster Respekt und herzliche Gratulation zur Umsetzung dieses grandiosen Führerstandes.
Ich habe selber ursprunglich den Bau eines 1142 Fst. in Erwägung gezogen, bevor ich mich zum Bau eines Taurus-Fahrpultes entschlossen habe.
Die Teile liegen bei mir noch im zerlegten Zustand im Keller und Garage und vielleicht gehe ich jetzt wirklich noch einen zweiten Führerstand an.
Wünsch Dir auf alle Fälle noch viel Spaß und Erfolg bei dem Projekt !!
mfg Andi
-
- Beiträge: 115
- Registriert: 30.09.2010 14:17:08
- Aktuelle Projekte: 1116 Führertisch hoffentlich bald fertig!
- Wohnort: Guntramsdorf
Re: Fahrpult ÖBB 1042 (Neu)
Hallo Sebastian,
habe mir das Bild nochmals genauer angesehen. Was mir für einen 1042 Tisch noch gefehlt hat, ist die direkte Bremse. Nach dem Umbau zur 1142 ist diese nämlich weggefallen und durch einen Taster ersetzt worden. Ich dachte, dass Du das umgesetzt hast?!? Sorry, man sollte erst genau schauen und dann schreiben!
Die Farbe des Instrumentenpultes ist mir persönlich egal, denn in den vielen Jahren, wo ich diesen Loktyp ......, gab es die verschiedensten Farbzusammenstellungen (kenne diese Serie schon einige Jahrzehnte).
Aber wie gesagt, ein tolles Ding und vielleicht werde ich auch mal eingeladen um damit zu fahren?!?
Gruss
Martin
habe mir das Bild nochmals genauer angesehen. Was mir für einen 1042 Tisch noch gefehlt hat, ist die direkte Bremse. Nach dem Umbau zur 1142 ist diese nämlich weggefallen und durch einen Taster ersetzt worden. Ich dachte, dass Du das umgesetzt hast?!? Sorry, man sollte erst genau schauen und dann schreiben!
Die Farbe des Instrumentenpultes ist mir persönlich egal, denn in den vielen Jahren, wo ich diesen Loktyp ......, gab es die verschiedensten Farbzusammenstellungen (kenne diese Serie schon einige Jahrzehnte).
Aber wie gesagt, ein tolles Ding und vielleicht werde ich auch mal eingeladen um damit zu fahren?!?
Gruss
Martin
Faber est suae quisque fortunae - Jeder ist seines Glückes Schmied
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Wenn du genau schaust, siehst du den Hebel für die direkte Bremse links im Regal stehen, dieser muss aber noch eingebaut werden
Bevor vernünftig damit gefahren werden kann muss erstmal das Programm stabil laufen und die noch fehlenden Instrumente angesteuert werden.
Als Ziel für die vollständige Funktion ist derzeit Frühjahr 2013 geplant, dann kann der Stand auch gerne besucht werden
Gruß,
Sebastian N.
Bevor vernünftig damit gefahren werden kann muss erstmal das Programm stabil laufen und die noch fehlenden Instrumente angesteuert werden.
Als Ziel für die vollständige Funktion ist derzeit Frühjahr 2013 geplant, dann kann der Stand auch gerne besucht werden
Gruß,
Sebastian N.
- nonesense
- Beiträge: 506
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Ja. Das ist sogar sinnvoller.Sebastian N. hat geschrieben:Ist es sinnvoll/überhaupt möglich die Übertragung vom Arduino aus zu starten, also den Timer dort zu realisieren?
Das Prinzip wäre dabei genau das gleiche, wie beim Senden ZUM Arduino.
Du denkst dir sinnvolle Bezeichnungen aus, die zu den jeweiligen Informationen gehören. (z.B. "H" für Handrad). Und jedes mal, wenn sich an der Eingabeeinheit etwas verändert hat, überträgst du die Info so wie in der Hin-Richtung* als Paar [Kennung; Wert].
Das mal so als grober Denkanstoß. Wenn du Probleme in der Umsetzung hast, frag nochmal gezielt nach.
Gruß
Jens
Edit:
*Nicht zu verwechseln mit der Hinrichtung! *g*
Zuletzt geändert von nonesense am 26.11.2012 20:25:07, insgesamt 2-mal geändert.
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Gut, einen Interrupt Timer habe ich ja schon, in dem ich die Befehle unterbringen kann. Meine einzige Frage wäre, in welchem Programmteil ich den Teil zum Empfangen ins VB Programm schreiben muss.
Grüße,
Sebastian
Grüße,
Sebastian
- nonesense
- Beiträge: 506
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Du meinst allgemein einen Timer. "Interrupt Timer" gibt es nicht.Sebastian N. hat geschrieben:Gut, einen Interrupt Timer habe ich ja schon, in dem ich die Befehle unterbringen kann.
Aber programmiere das so, dass auch wirklich nur dann etwas gesendet wird, wenn sich etwas verändert hat.
Anstatt in den Timer, schreibst du das in ein Empfangs-Ereignis. So wie umgekehrt auch im Arduino.Sebastian N. hat geschrieben:Meine einzige Frage wäre, in welchem Programmteil ich den Teil zum Empfangen ins VB Programm schreiben muss.
Code: Alles auswählen
Private Sub Serial_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
'Wird ausgelöst, wenn Daten ankommen
End Sub
Gruß
Jens
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Ich komm damit jetzt noch nicht ganz klar, ich gebe nun vom Arduino, wenn Daten übergeben werden sollen "senddata" an das VB Programm.
Wo lese ich diesen input nun ein, sodass das Ereignis ausgelöst wird?
Gruß,
Sebastian
Wo lese ich diesen input nun ein, sodass das Ereignis ausgelöst wird?
Gruß,
Sebastian
- nonesense
- Beiträge: 506
- Registriert: 15.07.2006 12:50:10
- Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla - Wohnort: Köln
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Das hier...
...Ist das Ereignis.
Diese Sub-Routine wird also immer dann ausgeführt, wenn frische Daten angekommen sind.
Dort drin kannst du dann etwas reinschreiben, dass die Daten aus dem Pufferspeicher ausliest.
Gruß
Jens
Edit:
Um das nochmal klar zu machen:
In VB wird in der Syntax meistens Vorab der Name des betroffenen Objektes gestellt. Also in dem Fall "Serial", unser Schnittstellenobjekt.
Ereignisse, die von diesem Objekt aus ausgelöst werden, kommen dann dahinter, mit einem Unterstrich getrennt. Also "_DataReceived", wir haben etwas empfangen.
Daran kannst du immer ausmachen, was da passiert. Gleiches gilt für die anderen alten Bekannten.
Timer1_Tick ...Es ist mal wieder Zeit
Button1_Klick ...Da hat jemand auf den Knopf1 gedrückt
Form1_Load ...Das Fenster1 ist geöffnet worden.
Code: Alles auswählen
Private Sub Serial_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
End Sub
Diese Sub-Routine wird also immer dann ausgeführt, wenn frische Daten angekommen sind.
Dort drin kannst du dann etwas reinschreiben, dass die Daten aus dem Pufferspeicher ausliest.
Gruß
Jens
Edit:
Um das nochmal klar zu machen:
In VB wird in der Syntax meistens Vorab der Name des betroffenen Objektes gestellt. Also in dem Fall "Serial", unser Schnittstellenobjekt.
Ereignisse, die von diesem Objekt aus ausgelöst werden, kommen dann dahinter, mit einem Unterstrich getrennt. Also "_DataReceived", wir haben etwas empfangen.
Daran kannst du immer ausmachen, was da passiert. Gleiches gilt für die anderen alten Bekannten.
Timer1_Tick ...Es ist mal wieder Zeit
Button1_Klick ...Da hat jemand auf den Knopf1 gedrückt
Form1_Load ...Das Fenster1 ist geöffnet worden.
Zuletzt geändert von nonesense am 05.12.2012 22:38:25, insgesamt 1-mal geändert.
- Sebastian N.
- Beiträge: 419
- Registriert: 07.10.2011 06:24:53
- Kontaktdaten:
Re: Fahrpult ÖBB 1042 (Neu)
Erstmal danke für die Hilfe.
Ich habe nun wieder eine Frage zum Programm. Aufgrund der erwähnten Probleme habe ich mich entschieden, die Ausgabe an den Arduino nicht sofort nach dem Einlesen der Werte von Zusi vorzunehmen, sondern in Variablen zu speichern und mit dem Timer in einer gemeinsamen Ein/Ausgaberoutine zu übertragen.
So kann ich Kollisionen der Zykluszeiten bestmöglich vermeiden und die Stabilität des Programms erhöhen.
Der VB-Code sieht nun folgendermaßen aus:
Es ist wiedermal so weit:
Damit auch wirklich beide Verbindungspartner bereit sind, schicke ich erst 2 Kontrollbytes
Kommt "ready" zurück, so startet die Übertragung wie gehabt:
Dasselbe noch für die Übertragung zum PC:
Ist eine Verbindung da, werden die 4 Bytes vom Arduino eingelesen:
Zusätzlich noch die Ausgbe am Bildschirm:
Nun habe ich das umgekehrte Problem gegenüber früher - die Übertragung zum PC funktioniert einwandfrei, der Arduino empfängt so jedoch nichts. Hier noch das zugehörige Arduino-file: http://www.bahnvideos.net/files/Arduino.txt.
Die Wertzuweisung sieht folgendermaßen aus:
Kann jemand den Fehler erkennen? Ich vermute mal es ist kein allzu gravierender Fehler, da es in die andere Richtung mit demselben Verbindunsaufbau ja funktioniert.
Gruß,
Sebsatian N.
//Edit: Das Problem scheint in der Übertragung der Bytes zu liegen, der Verbindungsaufbau mit "ready" scheint zu funktinieren.
Ich habe nun wieder eine Frage zum Programm. Aufgrund der erwähnten Probleme habe ich mich entschieden, die Ausgabe an den Arduino nicht sofort nach dem Einlesen der Werte von Zusi vorzunehmen, sondern in Variablen zu speichern und mit dem Timer in einer gemeinsamen Ein/Ausgaberoutine zu übertragen.
So kann ich Kollisionen der Zykluszeiten bestmöglich vermeiden und die Stabilität des Programms erhöhen.
Der VB-Code sieht nun folgendermaßen aus:
Es ist wiedermal so weit:
Code: Alles auswählen
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Serial.IsOpen
'Ein-/Ausgabe der Daten an den Arduino alle 200ms:
Code: Alles auswählen
Serial.WriteLine("oo") '"oo" für "output"
System.Threading.Thread.Sleep(50)
Code: Alles auswählen
If Serial.ReadLine() = "ready" & System.Text.Encoding.UTF8.GetString({13}) Then
OutChar(0) = 86 'V Der Buchstabe der Variable wird an den Arduino gesendet, damit er weiß was kommt.
OutChar(1) = V 'Der gespeicherte Wert wird gesendet
Serial.Write(OutChar, 0, 2)
OutChar(0) = 80 'P
OutChar(1) = Lm1
Serial.Write(OutChar, 0, 2)
OutChar(0) = 72 'H
OutChar(1) = H
Serial.Write(OutChar, 0, 2)
OutChar(0) = 77 'M
OutChar(1) = M
Serial.Write(OutChar, 0, 2)
OutChar(0) = 78 'N
OutChar(1) = N
Serial.Write(OutChar, 0, 2)
OutChar(0) = 88 'X
OutChar(1) = X
Serial.Write(OutChar, 0, 2)
OutChar(0) = 89 'Y
OutChar(1) = Y
Serial.Write(OutChar, 0, 2)
OutChar(0) = 46 'B
OutChar(1) = B
Serial.Write(OutChar, 0, 2)
End If
Code: Alles auswählen
'Einlesen der Werte vom Arduino
Serial.WriteLine("ii") '"ii" für "input"
System.Threading.Thread.Sleep(50)
If Serial.ReadLine() = "readytosend" & System.Text.Encoding.UTF8.GetString({13}) Then
Code: Alles auswählen
INa = Serial.ReadByte() 'Byte 0 - Digitaleingabe I
INb = Serial.ReadByte() 'Byte 1 - Digitaleingabe II
INc = Serial.ReadByte() 'Byte 2 - Analogwert Fahrschalter
INd = Serial.ReadByte() 'Byte 3 - Analogwert FbV
Code: Alles auswählen
Byte1.Text = INa
Byte2.Text = INb
Byte3.Text = INc
Byte4.Text = INd 'Ausgabe am Bildschirm FbV
Die Wertzuweisung sieht folgendermaßen aus:
Code: Alles auswählen
If +Serial.IsOpen Then 'Die Werte werden über die TCP Verbindung ausgelesen und in lokale Variablen gespeichert:
Select Case dataSet.Id
Case 2561 'Geschwindigkeit3
V = CByte(Math.Round(0.5 * dataSet.Value, 0))
Case 2562 'HL (Hauptluftleitung)
HList = Math.Round(100 * dataSet.Value, 0) + 1
L = CByte(Math.Round(8.8 * dataSet.Value, 0))
Gruß,
Sebsatian N.
//Edit: Das Problem scheint in der Übertragung der Bytes zu liegen, der Verbindungsaufbau mit "ready" scheint zu funktinieren.
Zuletzt geändert von Sebastian N. am 21.02.2013 10:42:07, insgesamt 2-mal geändert.