AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows echtzeitfähig mit Delphi

Ein Thema von luisk · begonnen am 11. Aug 2014 · letzter Beitrag vom 14. Aug 2014
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#11

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 00:55
Hast Du dazu einen Multimedia-Timer verwendet? Damit kann man zumindest in einem Intervall von 1 MS triggern.
Danke für Tipp
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 ?

Geändert von luisk (12. Aug 2014 um 07:20 Uhr)
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 07:35
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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#13

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 08:12
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#14

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 08:36
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
Du hast schon mal mit einer industriellen Soft-SPS (z.B.) Beckhoff unter Windows gearbeitet?
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.
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#15

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 13:26
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?
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 17:50
timesetevent funktioniert unter Delphi 6.
Auf CreateTimerQueueTimer kann ich mit Delphi 6 nicht zugreifen. Gibt es dazu eine Unit ?
Ich verwende CreateTimerQueueTimer nicht, TimeSetEvent funktioniert auch bis unter Windows 8.1 ohne Probleme.

In den aktuellen Delphi-Versionen ist es in der Winapi.Windows-Unit importiert.

Aber Du kannst das ja selber in einer Unit importieren:

function CreateTimerQueueTimer; external kernel32 name 'CreateTimerQueueTimer';
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#17

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 19:16
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.

Geändert von luisk (13. Aug 2014 um 00:28 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#18

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 21:10
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

Geändert von hathor (12. Aug 2014 um 21:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#19

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 21:11
Die läuft in einer Schicht unter Windows und bietet einen reproduzierbaren Zeittakt ab 100 ns an.
Peter
Kannst Du vielleicht bitte etwas näher darauf eingehen, wie Du das realisiert hast?
Es scheint, als sei alles auf Millisekunden unter Windows ausgerichtet ...
Danke Dir
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#20

AW: Windows echtzeitfähig mit Delphi

  Alt 12. Aug 2014, 21:59
Kannst Du vielleicht bitte etwas näher darauf eingehen, wie Du das realisiert hast?
Wurde doch erwähnt?
MSDN-Library durchsuchenQueryPerformanceCounter
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 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