AW: Windows echtzeitfähig mit Delphi
Zitat:
werde ich mal testen:http://www.delphipraxis.net/172777-m...dia-timer.html Da steht, dass timeSetEvent durch CreateTimerQueueTimer function ersetzt wurde: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx timesetevent funktioniert unter Delphi 6. Auf CreateTimerQueueTimer kann ich mit Delphi 6 nicht zugreifen. Gibt es dazu eine Unit ? |
AW: Windows echtzeitfähig mit Delphi
Ich habe so was mal für Prüfstände gemacht.
Da wird für einige Sensoren eine Abtastrate von 1 ms benötigt. Gesteuert habe ich das ganze über einen hoch priorisierten Thread, der den Zeittakt erzeugt. Das Programm ist allerdings das einzige Programm, welches auf dem Rechner läuft. Für industrielle Aufgaben bietet sich noch eine Soft-SPS an. Die läuft in einer Schicht unter Windows und bietet einen reproduzierbaren Zeittakt ab 100 ns an. Auf dieser Basis habe ich auch eine größere Anlagensteuerung am Laufen. Zwischen Prozess-Sensorik und PC eine kleine SPS, da gibt es auch einige preiswerte und fertig konfektionierte Lösungen. Peter |
AW: Windows echtzeitfähig mit Delphi
Windows ist prinzipbedingt nicht echtzeitfähig. Alles was man drumherum dranflanscht macht es nur vordergründig besser, in wirklichkeit aber schlechter. Wenn Du sowas wirklich brauchst, dann benutz doch ein echtes RTOS, so wie LynxOS oder RT Linux. Freilich wirst Du mit Delphi da nicht weit kommen, aber eventuell gibts ja nen FPC dafür.
Sherlock |
AW: Windows echtzeitfähig mit Delphi
Zitat:
Windows selbst ist vom Prinzip nicht oder nur eingeschränkt echtzeitfähig. Ist in dieser Richtung aber erweiterbar. Dazu bieten einige Firmen industriuetaugliche Lösungen an (z.B. Beckhoff oder Kithara). Ich habe mehrere Industrieanlagen auf Basis dieser Technologie realisiert. Die laufen seit Jahren stabil(24/365). Im Sensorbereich wird teilweise eine Taktrate von 500 ns realisiert. Die SPS ist in strukturierten Text (Pascal ähnlich) realisiert. Die Bedienoberfläche in Delphi. |
AW: Windows echtzeitfähig mit Delphi
Hier steht, dass timeSetEvent durch CreateTimerQueueTimer function ersetzt wurde:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx timesetevent funktioniert unter Delphi 6. Auf CreateTimerQueueTimer kann ich mit Delphi 6 nicht zugreifen. Gibt es dazu eine Unit für Delphi 6? |
AW: Windows echtzeitfähig mit Delphi
Zitat:
In den aktuellen Delphi-Versionen ist es in der Winapi.Windows-Unit importiert. Aber Du kannst das ja selber in einer Unit importieren:
Delphi-Quellcode:
function CreateTimerQueueTimer; external kernel32 name 'CreateTimerQueueTimer';
|
AW: Windows echtzeitfähig mit Delphi
TimeSetEvent funktioniert bei mir auch mit D6 unter Win8.1
Allerdings würde ich das Event gerne auf eine Prozedur einer Klasse setzen. Das hat jedoch nicht funktioniert. Ist das überhaupt möglich ? Multimedia Timer You can't declare the TimeCallBack as a method of an object, it must be a stand-alone function http://www.delphigroups.info/2/5a/498369.html Danke für den Tipp mit CreateTimerQueueTimer. |
AW: Windows echtzeitfähig mit Delphi
Hier ist ein Programmpaket incl. TksTimer.pas:
https://kstools.googlecode.com/files/ksTools050.zip Zitat: TksTimer is a high resolution replacement for the standard VCL TTimer component. TksTimer is a wrapper for the Win32 API functions CreateTimerQueueTimer and DeleteTimerQueueTimer. When the Enabled property of TksTimer instance is assigned True, an underlying queue timer is created. If DueTime is nonzero and Period is zero, the timer is signaled only once after due time. If the DueTime and Period properties are both nonzero, the timer will be signaled first at the due time, then periodically. A periodic timer automatically reactivates each time the period elapses, until an underlying queue timer is canceled by setting the Enabled property to False. When the timer is signalled, the OnTimer event is triggered. The timer events are subject to scheduling delays, so the timing can vary depending on what else is happening in the application or the system. Interval____TTimer____TksTimer ------------------------------ 100_________108_________100 50__________62__________50 20__________31__________20 10__________15__________11 5__________15___________6 2__________15___________3 1__________14___________2 |
AW: Windows echtzeitfähig mit Delphi
Zitat:
Es scheint, als sei alles auf Millisekunden unter Windows ausgerichtet ... Danke Dir :-) |
AW: Windows echtzeitfähig mit Delphi
Zitat:
QueryPerformanceCounter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz