Autor |
CC-Schnitte unter XP ansteuern geht nicht |
1 # 10 |
Bernie256 Amateur
Beiträge: 19
Ort: Weinheim
Eingetreten: 20.10.13 Status: Offline
|
Eingetragen am 03.02.2015 09:37 |
|
|
Hier kurz mein Problem - programmiert in Delphi
Die wesentlichen Teile hier angeführt:
//Öffnen der Com-Schnittstelle (Treiber FTDI sind installiert)
Openstring :='COM7:,500000,N,8,1';
PortHandle:=CreateFile(PChar(OpenString),GENERIC_READ or GENERIC_WRITE,0,NIL,OPEN_EXISTING,0,0);
// Gibt Porthandle zurück
//Schicken der 13 Bytes an die CC-Schnitte
Data[0]:=0;
Data[1]:=35;
Data[2]:=231;
Data[3]:=85;
Data[4]:=6; //DCL
Data[5]:=30;
Data[6]:=0;
Data[7]:=0;
Data[8]:=150: // Adresse des Monitors
Data[9]:=1: //1-16 Nummer des einzelnen Monitors
Data[10]:=1; //EIN=1 - AUS=0
Data[11]:=0;
Data[12]:=0;
for ni:=0 to 12 do
WriteFile(PortHandle,Data[ni],1,BytesWritten,NIL);
Bei meinem Windows7-Rechner funktioniert das alles und ich kann die LED am Monitor (150)
ein und ausschalten sowie Tastenbefehle empfangen!
Warum funktioniert die oben angeführte Sequenz nicht auf dem Notebook mit XP???
Die CC-Schnitte reagiert mit einem Dauerlicht- führt aber keinerlei Befehle aus!
Hterm( von Hammer) funktioniert auf beiden Geräten!
Was mache ich falsch?
oder was kann ich besser machen!
Gruss Bernhard |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
2 # 10 |
AndreasWB Spezialist
Beiträge: 312
Eingetreten: 01.01.12 Status: Offline
|
Eingetragen am 03.02.2015 13:26 |
|
|
Hallo Bernhard,
Stellt die Schnitte bei Anschluß an Deinen XP-Rechner wirklich die COM7 dar?
Der Rest sollte bei einer guten Programmiersprache ja unabhängig vom Betriebssystem gültig sein.
Gruß
Andreas
Märklin H0, Umbau auf Digital, Multiprotokoll- und MM(mfx)-Dekoder, PC-Steuerung ohne teure Zentrale,
Gleisbox mit CC-Schnitte
Steuerungsprogramm: WinDigipet 2015
Meine MoBa-Homerpage: http://andreaswb.bplaced.net/modell...ahn.html
Mein YouTube-Kanal: http://www.youtube.com/user/AndyWoBu |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
3 # 10 |
Bernie256 Amateur
Threadstarter
Beiträge: 19
Ort: Weinheim
Eingetreten: 20.10.13 Status: Offline
|
Eingetragen am 04.02.2015 12:19 |
|
|
Hallo Andreas
ich lese die jeweiligen Schnittstellen für jeden Rechner extra ein. Beim Win7Rechner ist es COM7 beim XP ist es die COM3-- das ist von Rechner zu Rechner verschieden. Aber HTerm und Gleismonitor_001 machen das genauso und zeigen die jeweilige COM an.
Gruss aus Weinheim
Spur N Anlage bei den Eisenbahnfreunden Weinhem: www.efweinheim.de |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
4 # 10 |
AndreasWB Spezialist
Beiträge: 312
Eingetreten: 01.01.12 Status: Offline
|
Eingetragen am 04.02.2015 15:58 |
|
|
Hallo Bernhard,
dann ist ja gut.
Ich fragte nur, weil die COM-Nummer in Deinem Code-Beispiel fest eingetragen ist. Das hast Du also nur exemplarisch zum zeigen hier im Forum so geschrieben(?)
Es gäbe ja sonst keinen weiteren Grund, weshalb der rudimentäre Code vom Betriebssystem abhängig sein sollte.
Kannst Du mit anderen selbst geschriebenen Programmen am XP-Rechner auf die Schnitte an COM3 zugreifen?
Gruß
Andreas
Märklin H0, Umbau auf Digital, Multiprotokoll- und MM(mfx)-Dekoder, PC-Steuerung ohne teure Zentrale,
Gleisbox mit CC-Schnitte
Steuerungsprogramm: WinDigipet 2015
Meine MoBa-Homerpage: http://andreaswb.bplaced.net/modell...ahn.html
Mein YouTube-Kanal: http://www.youtube.com/user/AndyWoBu |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
5 # 10 |
Bernie256 Amateur
Threadstarter
Beiträge: 19
Ort: Weinheim
Eingetreten: 20.10.13 Status: Offline
|
Eingetragen am 04.02.2015 16:03 |
|
|
Hallo
Wiegesagt kann ich auf die CC-Schnitte zugreifen!
Sobald ich die Schnittstelle geöffnet habe und die 13 Bytes schicke beginnt die CC-Schnitte auf Dauer zu leuchten- was nach der Beschreibung heißt, dass sie auf weitere oder auch fehlende Bytes wartet! Danach aber kann ich nur noch aus und weide einschalten! Wie gesagt auf COM3 reagieren der Gleisreporter_001 von Thorsten und HTERM -- es liegt also nicht an der Schnittstelle- sondern an der Geschwindigkeit von XP. Aber ein Ändern der BAUD-Rate bringt nichts, da die CC-Schnitte mit 500 000 Baud eingestellt ist.
Gruss
Bernhard
Spur N Anlage bei den Eisenbahnfreunden Weinhem: www.efweinheim.de |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
6 # 10 |
AndreasWB Spezialist
Beiträge: 312
Eingetreten: 01.01.12 Status: Offline
|
Eingetragen am 04.02.2015 17:52 |
|
|
Na Bernhard,
Quote | Bernie256 schrieb:
-- es liegt also nicht an der Schnittstelle- sondern an der Geschwindigkeit von XP. |
wohl eher an der PC-Hardware? Stört irgendwas die Taktung der Schnittstelle?
Ich arbeite ja auch mit XP ohne Probleme. Und das mit nem alten IBM Laptop (Intel Core Duo T7600 (2 x 2,33GHz, 667 MHz)). Die Lampe an der Schnitte leuchtet bei mir nur, bis ich die Schnitte das erste mal anspreche, bzw. wenn keine elektrische Verbindung zum USB-Stecker mehr besteht.
Märklin H0, Umbau auf Digital, Multiprotokoll- und MM(mfx)-Dekoder, PC-Steuerung ohne teure Zentrale,
Gleisbox mit CC-Schnitte
Steuerungsprogramm: WinDigipet 2015
Meine MoBa-Homerpage: http://andreaswb.bplaced.net/modell...ahn.html
Mein YouTube-Kanal: http://www.youtube.com/user/AndyWoBu
Bearbeitet von AndreasWB am 04.02.2015 18:10 |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
7 # 10 |
Bernie256 Amateur
Threadstarter
Beiträge: 19
Ort: Weinheim
Eingetreten: 20.10.13 Status: Offline
|
Eingetragen am 04.02.2015 20:52 |
|
|
Hallo
Dann werde ich mal bei meinem alten Schlepptop-XP die Hardware untersuchen!
Erst mal Danke
Wenn ich herauskriege was Schuld ist, melde ich mich wieder!
Tschüss
Spur N Anlage bei den Eisenbahnfreunden Weinhem: www.efweinheim.de |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
8 # 10 |
Bernie256 Amateur
Threadstarter
Beiträge: 19
Ort: Weinheim
Eingetreten: 20.10.13 Status: Offline
|
Eingetragen am 11.02.2015 10:58 |
|
|
SO ERLEDIGT
Der Fehler lag am Programm und an der Hardware des XP!!
Im alten Programm stand:
for ni:=0 to 12 do
WriteFile(PortHandle,Data[ni],1,BytesWritten,NIL);
(aus dem Programm RSCOM)
also jedes Byte wurde einzeln geschickt!
Bei XP war die CC-Schnitte zu schnell.
Nach langem intensiven Nachdenkens habe ich experimentiert und habe nun die Lösung!
Neues Programm
var
data: array[0..12] of byte;
procedure Schalte(Sender: TObject);
var BWword;
begin
WriteFile(PortHandle,Data,13,BW,NIL);
end;
In Writefile übergebe ich die gesamte Datastruktur und schicke die Anzahl der zu sendenden Daten (13) gleich mit!
Und sieheda mein alter Schlepptop mag das alles!
Gruss aus Weinheim
Bernhard
Spur N Anlage bei den Eisenbahnfreunden Weinhem: www.efweinheim.de |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
9 # 10 |
AndreasWB Spezialist
Beiträge: 312
Eingetreten: 01.01.12 Status: Offline
|
Eingetragen am 11.02.2015 20:44 |
|
|
Hallo Bernhard,
die CAN-Befehle als 13 einzelne Bytes zu senden, macht RocRail übrigens auch.
--> http://www.can-digital-bahn.com/forum/viewthread.php?forum_id=38&thread_id=682&pid=4373#post_4373
Dies hat zur Folge, daß die Befehle vom Empfänger dann nicht korrekt verstanden werden, wenn ein anderer Absender seine korrekten 13-Byte Pakete in den "Sendepausen" zwischen den einzelnen Bytes schickt. Mir war das aufgefallen, als die Gleisbox einige Steuerungsbefehle von RocRail nicht bestätigt hat. Als dann nicht nur einige Siganle nicht, sondern auch Weichen nicht geschaltet wurden, war Schluß mit Lustig mit meinen RocRail-Tests.
Bis dahin hätte ich aber nicht gedacht, daß die "Paketierung" so wichtig ist. Schließlich sendet das CS2-Demo Programm über Netz auch 13 Einzelbytes statt der 13er-Pakete.
Aber da fällts nicht auf, solange es sich um vereinzelte Steuerbefehle handelt.
Aber gut, daß Du die Lösung gefunden hast.
Gruß
Andreas
Märklin H0, Umbau auf Digital, Multiprotokoll- und MM(mfx)-Dekoder, PC-Steuerung ohne teure Zentrale,
Gleisbox mit CC-Schnitte
Steuerungsprogramm: WinDigipet 2015
Meine MoBa-Homerpage: http://andreaswb.bplaced.net/modell...ahn.html
Mein YouTube-Kanal: http://www.youtube.com/user/AndyWoBu |
|
Autor |
RE: CC-Schnitte unter XP ansteuern geht nicht |
10 # 10 |
ST-Oldie Spezialist
Beiträge: 55
Eingetreten: 24.04.13 Status: Offline
|
Eingetragen am 13.02.2015 23:52 |
|
|
Hi Andreas,
Quote | AndreasWB schrieb:Dies hat zur Folge, daß die Befehle vom Empfänger dann nicht korrekt verstanden werden, wenn ein anderer Absender seine korrekten 13-Byte Pakete in den "Sendepausen" zwischen den einzelnen Bytes schickt. Mir war das aufgefallen, als die Gleisbox einige Steuerungsbefehle von RocRail nicht bestätigt hat. Als dann nicht nur einige Siganle nicht, sondern auch Weichen nicht geschaltet wurden, war Schluß mit Lustig mit meinen RocRail-Tests. |
Das ist natürlich tödlich. Die serielle Schnittstelle liefert ja einen Bytestrom, gbit es da kein Framing zum synchronisieren? Dann würde ein CAN Frame verloren gehen und man könnte sich neu synchronisiern. Definiert die CC-Schnitte kein Framing, um sich gegebenfalls neu zu synchronisieren?
Quote | AndreasWB schrieb:Bis dahin hätte ich aber nicht gedacht, daß die "Paketierung" so wichtig ist. Schließlich sendet das CS2-Demo Programm über Netz auch 13 Einzelbytes statt der 13er-Pakete.
Aber da fällts nicht auf, solange es sich um vereinzelte Steuerbefehle handelt. |
Bist du dir da sicher? Ich hab noch nicht den komletten Datenverkehr getract. Aber mr erschien es so, daß immer komplette Frames geschickt wurden. Was ja eigentlich logischer wäre. Es wird ein CAN frame aufgebaut, der dann verschickt wird.
Tschüß
Michael
Bearbeitet von ST-Oldie am 16.02.2015 14:42 |
|