Seite 1 von 1

USB-LRB-Relaiskarte Zeitverzögerung?

Verfasst: Montag 27. Januar 2014, 14:45
von hvhvf
Hallo,

wir verwenden für ein Schulprojekt die USB-LRB_Relaiskarte zur Weichensteuerung. Wir programmieren diese unter VisualC++.

Ein Problem gibt es jedoch, da die Relais nur kurz angeschaltet werden sollen und nach kurzer Zeit wieder automatisch ausgeschaltet werden sollen. Dazu haben wir versucht, eine Zeitverzögerung in das Programm einzubauen, so dass ein Programmabschnitt z.B. so aussieht:

REL1 -> REL_1 = 1 ;
REL1 -> REL_7 = 1 ;
Thread::Sleep(1000);
REL1 -> REL_1 = 0 ;
REL1 -> REL_7 = 0 ;

Leider führt dies dazu, dass die ersten beiden Befehle nicht ausgeführt werden. Die beiden letzten Befehle laufen aber problemlos (wenn man die Relais vorher anschaltet, werden diese vom Programm ausgeschaltet). Meine Vermutung ist, dass die Verzögerung des Programms mit der Schaltzeit der Relaiskarte kollidiert.

Über einen Lösungsvorschlag wären wir sehr dankbar.

Gruß, Holger

Re: USB-LRB-Relaiskarte Zeitverzögerung?

Verfasst: Freitag 7. Februar 2014, 15:28
von abacom
Ich würde lieber in einschlägigen Programmierforen stöbern oder nachfragen.
Möglichkeiten gibt es immer viele. Systemzeit abfragen, Timer verwenden, etc.

Re: USB-LRB-Relaiskarte Zeitverzögerung?

Verfasst: Freitag 7. Februar 2014, 17:47
von hvhvf
Vielen Dank,
wir haben inzwischen eine Lösung mit einem Timer, der nach den ersten beiden Befehlen gestartet wird, gefunden. Bei C++ scheint die Zeitverzögerung je nach Version und Compiler sehr unterschiedlich zu sein, so dass viele mögliche Lösungen unter VisualC++ nicht funktionieren :(.

Gruß,
Holger

Re: USB-LRB-Relaiskarte Zeitverzögerung?

Verfasst: Montag 10. Februar 2014, 08:49
von abacom
Wenn Lösungen zu Aufgaben gefunden wurden, dürfen diese hier auch gerne vorgestellt werden. ;-)