Programmieren von Digital-Steuerungen

Für alle Diskussionen rund um digitale Modellbahntechnik und alles zum Thema Software Modellbahnplanung und Modellbahnsteuerung
Gast

Programmieren von Digital-Steuerungen

Beitrag von Gast » Sonntag 16. Februar 2003, 18:12

Hallo!
Ich habe eine Frage zur Programmierung von eigenen Modellbahnsteuerungen. Ich bin dabei, mir mit der Programmiersprache "Visual Basic 6" eine eigene Steuerung meiner Modellbahnanlge zu erstellen. Gesteuert wird die Anlage mit den Digital-Komponenten von MÄRKLIN. Das Ansteuern des Interface und das Senden von Schaltbefehlen ist mir problemlos gelungen. Auch Fahrstraßen, deren Befehle in einfachen Dateien mit fester Satzlänge gespeichert sind, lassen sich stellen. Was ich nicht hinbekomme, ist das Auslesen des S88 Rückmeldebusses. Ich kenne zwar den Befehl zum Auslesen des Busses vom Interface, aber ich bekomme nicht heraus wie ich die Antwort vom Interface so umwandeln kann, das ich das höherwertige & das niederwertige Byte berechnen kann, um die angesteuerten Kontakte des S88 zu erhalten.

Zum Vergleich der Befehl in PowerBasic:
PRINT #schaltnr, Chr$(192+1); ' Lesebefehl senden: 1.Modul
Byte1=ASC(Input$(1,#schaltnr))
Byte2=ASC(Input$(1,#schaltnr))
K1=SGN(Byte1 and 2^7) ' Kontakt 1 an S88_1

Eine Portierung dieses Befehls in VB6 funktioniert nicht!
Ich habe schon nächtelang an meiner "Rechenkiste " gesessen und finde den Weg nicht ( oder bin ich einfach zu blöd?).
Hiiiiiiilfe! Kann mir jemand helfen?
Vielen Dank im voraus.
Bernie-Bärchen

Cincinnati-Train

edv

Beitrag von Cincinnati-Train » Sonntag 16. Februar 2003, 23:15

:oops:
oh oh
erstes semester edv
aber .. glaube mir .. ich habe da keine ahnung mehr von

aber mein alter prof..

prof.dr.dr. wetzel
uni münster ...... edv prof. der hat mit sicherheit eine antwort für dich
vielleicht schreibst du ihn einfach mal an
oder schickst eine e-mail

ansonsten
edv -- erfahrung durch versuch

grüße

Cincinnati-Train

Michael Klein

Beitrag von Michael Klein » Montag 17. Februar 2003, 08:10

Hallo Bernie,

ich schicke Dir mal per Mail einen Auszug aus meiner Steuerung, vielleicht hilft es Dir ja !!!

Gruß
Michael

Peter Heß

Beitrag von Peter Heß » Dienstag 18. Februar 2003, 01:11

Hallo Bernie!

Ich gehe einmal davon aus, dass Dein "Input" ein WORD ist (ich kenne das Format nicht, in dem Du programmieren willst). Normalerweise kommst Du an höherwertige Bytes mit Shift-Operationen heran. Das niedrigste Byte wird durch einfache Zuweisung erhalten, das höherwertige wird dabei abgeschnitten.

Also:
LowByte = (BYTE) Input;
HighByte = (BYTE) ( Input>>8 );

Manchmal gibt es auch fertige Funktionen, wie:
LowByte = LOW (Input);
HighByte = HIGH (Input);

Probier einfach mal aus - wie gesagt, ich komme aus der analogen Ecke und kenne weder die Formate noch Dein spezielles Problem.

Gast

Beitrag von Gast » Dienstag 18. Februar 2003, 22:22

Hallo Zusammen,
erst einmal recht herzlichen Dank (und das meine ich ehrlich) für die vielen Anregungen und Beispiele, die IHR mir gesendet habt( special Thanks for Michael Klein). Nun werde ich mir wieder einmal eine Nacht um die Ohren hauen, und probieren, probieren, probieren............... :roll:

Ich hör schon meine Frau sagen:"Nun hockt er wieder stundenlang vor seiner Kiste und ich hab kalte Füße!"

:wink: Hey Cincinnati Train: >learning by doing<

Mein Trost an alle Modellbahner-Ehefrauen und solche, die es werden wollen:
:lol: Hast Du einen Modelleisenbahner im Haus,
:cry: gehen in der Kneipe früh die Lichter aus!
(Dafür hat der Modellbahner weder Zeit noch Geld)

In diesem Sinne:
Frohes Schaffen und bis bald
Bernie-Bärchen

Michael Klein

Beitrag von Michael Klein » Mittwoch 19. Februar 2003, 08:47

Vielen Dank für die Blumen, ist aber sehr gern geschehen, auch wenn ich hoffe die Ehe wird dadurch nicht zu viel leiden :lol:

Viel Erfolg für die Entwicklung bei Fragen kannst Du Dich gerne wieder bei mir melden !!!

Gruß

Michael

Gast

Beitrag von Gast » Mittwoch 19. Februar 2003, 23:55

Michael Klein hat geschrieben:Vielen Dank für die Blumen, ist aber sehr gern geschehen, auch wenn ich hoffe die Ehe wird dadurch nicht zu viel leiden :lol:

Viel Erfolg für die Entwicklung bei Fragen kannst Du Dich gerne wieder bei mir melden !!!

Gruß

Michael
Meine Frau ist in dieser Hinsicht Kummer gewohnt.
Ausserdem ist sie ein heimlicher Modellbahnfreak!!!

Gruß Bernie-Bärchen

Michael Klein

Beitrag von Michael Klein » Donnerstag 20. Februar 2003, 07:51

Na dann, gibt es ja keine Probleme !!!

Viel Erfolg !!!

HenniNg

Beitrag von HenniNg » Freitag 21. Februar 2003, 11:41

Hallo Bernie,

nimmst Du das MSCOMM-Control fuer die serielle Schnittstelle (im VB6 professional enthalten) ?
Wenn Du VB6 Standard/Einsteiger Edition hast: da ist es leider nicht drin und VB6 wird von MS nicht mehr hergestellt :( . Entweder nach Restbestaenden beim Haendler fahnden oder eBay.
Wenn Du das MSCOMM benutzt, liest Du Deine Daten aus dem InputBuffer oder bekommst Du sie im OnComm-Event ?
Im MSCOMM kannst Du die Laenge des InputBuffers einstellen. Bei InputLen bekommst Du nie mehr als ein Byte und musst nicht erst Low- und High-Byte auseinanderfieseln.
Wenn Du mehr Fragen hast, melde Dich ruhig. Deine Erfahrungen interessieren mich auch.

Gruss
HenniNg

Gast

Beitrag von Gast » Freitag 21. Februar 2003, 22:34

HenniNg hat geschrieben:Hallo Bernie,

nimmst Du das MSCOMM-Control fuer die serielle Schnittstelle (im VB6 professional enthalten) ?
Wenn Du VB6 Standard/Einsteiger Edition hast: da ist es leider nicht drin und VB6 wird von MS nicht mehr hergestellt :( . Entweder nach Restbestaenden beim Haendler fahnden oder eBay.
Wenn Du das MSCOMM benutzt, liest Du Deine Daten aus dem InputBuffer oder bekommst Du sie im OnComm-Event ?
Im MSCOMM kannst Du die Laenge des InputBuffers einstellen. Bei InputLen bekommst Du nie mehr als ein Byte und musst nicht erst Low- und High-Byte auseinanderfieseln.
Wenn Du mehr Fragen hast, melde Dich ruhig. Deine Erfahrungen interessieren mich auch.

Gruss
HenniNg
Hallo HenniNg,
genau das ist mein Problem, das ich gerade zu lösen versuche.
Ich benutze das MSComm, da ich Vb6 in der Prof.Edtion besitze.
Ich werde ab nächste Woche wieder "basteln" und werde mich dann bei Dir melden.

mfg
Bernie-Bärchen

Benutzeravatar
Felix (der erste)
Forumane
Beiträge: 1408
Registriert: Mittwoch 25. Dezember 2002, 19:27
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von Felix (der erste) » Samstag 22. Februar 2003, 11:24

Ich wollte eigentlich mich auch mal näher mit dem Programieren von Digitalsteuerungen beschäftigen. Das wollte ich aber wahrscheinlich mit C++ machen (muss mich da noch einüben 8) ). Hat da schon jemand Erfahrungen mit gemacht? Oder vielleicht auch in Python? Ich weiß es noch nicht genau. Python wirkt auf mich recht einfach. Aber dafür hat man nich eine so schöne Button Aktion Auswertung wie bei C++.
Was meint ihr?

MFG
Felix(der Erste)

Michael Klein

Beitrag von Michael Klein » Mittwoch 26. Februar 2003, 23:01

Hallo Felix,

ich habe mit C++ angefangen, musste dann jedoch zu VB wechseln, da die MSCOMM-Funktionalität von VB einfacher und schneller funktionierte.

C++-Programmierung ist aber Grundsätzlich an dieser Stelle sehr einfach, wenn die Kommunikation geschafft ist.

Gruß
Michael

Benutzeravatar
Felix (der erste)
Forumane
Beiträge: 1408
Registriert: Mittwoch 25. Dezember 2002, 19:27
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von Felix (der erste) » Freitag 28. Februar 2003, 17:06

Danke für dein Statement.
Hat sonst noch jemand Erfahrungen oder sonstige Ideen, für eine praktische Programiersprache für unseren Anwendungszweck.

Matze L.
Forumane
Beiträge: 232
Registriert: Montag 27. Januar 2003, 16:37
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Matze L. » Freitag 28. Februar 2003, 20:17

Gut das ich den Thread gerade sehe :)
Da könnte man sich auch mal zusammen setzen weil wir nämlich letztens im ** Online-Laberei ** die Idea hatten für ein eigenes Miwula Forum Steuerungs Programm :)
Da könnte man sich mal noch enger zusammen setzen :)

Benutzeravatar
Felix (der erste)
Forumane
Beiträge: 1408
Registriert: Mittwoch 25. Dezember 2002, 19:27
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von Felix (der erste) » Samstag 1. März 2003, 11:32

Sehe ich genauso.
Ich hatte bisher nur noch nciht die Möglichkeit soetwas auszutesten.
Wenn mir also jemand eine kleine Hardware spende gibt... 8) :roll:

MFG
Felix (der Erste)

Matze L.
Forumane
Beiträge: 232
Registriert: Montag 27. Januar 2003, 16:37
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Matze L. » Samstag 1. März 2003, 16:50

So hab vileicht schon nen OS auf dem wir später nen Datenbank server und so laufen lassen können :)

Benutzeravatar
Felix (der erste)
Forumane
Beiträge: 1408
Registriert: Mittwoch 25. Dezember 2002, 19:27
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von Felix (der erste) » Samstag 1. März 2003, 18:16

Weißt du (ihr) was ja mal richitg schnicke wäre?
Wenn man das miwula über TCP/IP mit DDL steurn könnte.
Glaub das würde prächtig ankommen. NNur nicht bei den Betreibern :twisted: .

MFG
Felix(der Erste)

Matze L.
Forumane
Beiträge: 232
Registriert: Montag 27. Januar 2003, 16:37
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Matze L. » Samstag 1. März 2003, 19:58

gehen würde es *g* dafür müsste dort nur Linux rechner mit DDL laufen *g*
oder die rechner müssten mit srcp kommuniziren und voralem brauchense entzwerkanbindung *g* und wir brauchen ne ip ;) und den port

Michael Klein

Beitrag von Michael Klein » Freitag 7. März 2003, 23:57

Glaubt Ihr nicht, dass Ihr ein bißchen weit geht ??? Aber die Idee mit der Zusammenarbeit find ich richtig gut !!! Wäre sofort dabei !!!

Meldet Euch mal bei mir, wenn es was zu diskutieren gibt. Bin an Austausch interessiert, auch wenn meine Software schon ziemlich weit gediehen ist.

Gruß

Michael

Benutzeravatar
Felix (der erste)
Forumane
Beiträge: 1408
Registriert: Mittwoch 25. Dezember 2002, 19:27
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von Felix (der erste) » Samstag 8. März 2003, 14:18

Wir können uns ja mal im ** Online-Laberei ** treffen.
Man könnte ja irgendwie soetwas wie Sonntag abend sagen!?
Ich bin auf jeden Fall ab jetzt mal drin und warte dort auf andere Leute.

MFG
Felix(der Erste)

Antworten