Italia
Foro

Exakte Zeitverzögerung ausgeben

 

Web
Scanner
Habe die Aiuto bemüht und was gefunden, ist per meine Zwecke leider nicht ausreichend.

Sleep N - geht nur in ms.

Ich brauche Zeiträume die kürzer sind und naturalmente vom PC-Takt unabhängig sind.

Beispiel:
Zwischen den Impulsen, die ich auf meine Schrittmotoren gebe soll eine Zeit zwischengesetzt werden.
Bisher habe ich eine einfache Zeitschleife programmiert, aber die ist naturalmente von der CPU Leistung
abhängig und daher ungenau.

Also so habe ich mir das gedacht:

Schleife:
Out ( bla Bla)
Sleep 0,01 ms
Out (Bla bla)
Sleep 0,01 ms
Schleifenende

Geht so nicht, weil N Long Int.
Oder hab ich wieder was falsch vestanden?


Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
23.06.2008  
 




Jörg
Sellmeyer
Sleep geht definitiv nur mit Millisekunden. Du kannstDir aber eine Schleife bauen, die durchrennt, ohne WaitInput und mit Bedingungen eine Ifabfrage steuern:
KompilierenMarkierenSeparieren
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.06.2008  
 




Web
Scanner
So geht es naturalmente, aber die Laufzeit ist doch trotzdem von der Rechnerleistung abhängig?
Es ist ja so, einer nimmt einen 1GHz PC per die Anwendung, ein anderer einen mit 3GHz.
Durch die genaue Zeitstaffelung kann ich sagen der Motor dreht mit 10 Umdrehungen/s.
Das entspricht dann unterschiedlich langen Fahrwegen/Zeiteinheit.

Wenn der PC unterschiedllich schnell ist, kommen andere Drehzahlen und Längen raus. Das will ich eigentlich vermeiden...

Die kürzeste Zeitschleife die ich im Moment habe sieht so aus:

vymax% = 20

PROC Zeitschleifey

Whileloop vymax%
Endwhile

ENDPROC

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
23.06.2008  
 




Jörg
Sellmeyer
und dabei kommt naturalmente auch die Geschwindigkeit des Prozessors voll zum Tragen. Mit meiner Methode könntest Du ein paar Tests an verschiedenen Systemen durchführen, um einen halbwegs optimalen Teiler zu ermitteln. Es kommen aber noch soviele andere Sachen dazu, die die Performance beeinflussen, daß Du wohl kaum ein vom System unabhängig performantes Programm hinkriegen wirst.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.06.2008  
 



Jupp, und schon ist man dabei eine Art Protokoll zu programmieren, oder, ein Prozess liesst in Echtzeit permanent Daten und ein zweiter Prozess empfängt von diesem nur relevante userMessages. Dadurch trennst Du Benutzerinterface (UI) vom Dienst was Dir das Programmieren damit deutlich einfacher gestalten wird und auch die letztendliche Abarbeitungsqualität steigert.
 
24.06.2008  
 




Web
Scanner
Ahso geht das.

Gib es ev. ein Beispiel per so ein Protokoll und wie man sowas in Profan einbindet? Mit sowas hab ich mich noch nicht befasst

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
24.06.2008  
 



Prozessübergreifende Kommunikation mit XProfan10, hm - dafür sollte meine pipe-Unit gut dienen.

Ab XProfan11 jedoch sind die userMessages gestackt, dort würde ich es per userMessages erledigen.

Wär ich Du würde ich jedoch nicht gleich damit beginnen jetzt client und server zu programmieren, sondern erstmal nur am Server rumwursteln. Dieser soll erstmal lecker unbeendbar in einer Schleife Dein Comzeugs erledigen, ein einfaches hwnd per cls reicht damit dieser Server zunächst einfach beendbar ist. Lege dann dort fest welche Events überhaupt an den Client gesendet werden müssten und sende diese zum Client. Ich glaub im Unitpaket habe ich hierzu ein Beispiel.

Frag einfach nach wenns wo hakt.
 
24.06.2008  
 




GDL
Hi,

mit Zeitmessungen (Einlesen/Ausgeben) im unter 20ms Bereich und mit 1% Genauigkeit habe ich unter Windows nach unzähligen Versuchen aufgegeben.
Hier greift einfach die Prozeßaufteilung von Windows zu stark in die Taktgenauigkeit ein.

Nicht umsonst haben unsere Labormeßgeräte und mein MoBasystem externe Zeitaufbereitungen mit Ergebnis senden bzw. Änderungsbefehlen senden.

Im µs Bereich und 5% Genauigkeit ging unter Windows überhaupt nix.
DOS hatte halt auch seine Vorzüge.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
24.06.2008  
 




Web
Scanner
Hmm,
Danke per die Infos.

Habe ich nicht bedacht, das es programmtechnisch so einfach nicht geht.
Werde ich mit meinen Schleifen erstmal weiterwursteln.
Die beste Lösung ist sicher eine externe Hardwarelösung mit einem Zwischenspeicher der die Impulse dann auch Zeitkorrekt ausgibt.

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
24.06.2008  
 




Frank
Abbing
Hier eine annähernd sichere Methode der Zeitmessung. Sleep und WM_TIMER gehen unter NT-Versionen nur auf 15-16 ms genau.
KompilierenMarkierenSeparieren
 
24.06.2008  
 



[offtopic]hehe das xp-script  [...]  ist so *eil, bei Deinem o.g. Code funtz es zum Beispiel ganz hervorragend. [/CODE]
 
24.06.2008  
 




GDL
Hi,

schau mal hier, noch einer von vielen die mit dem Windows Multitasking Probleme haben. [...] 

Windows ist ohne externen Zeitslave fast unbrauchbar.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
30.06.2008  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.808 Views

Untitledvor 0 min.
bloniTec12.06.2014
Andreas Koch11.07.2013
Donnie21.04.2013
Robert Hildebrand30.03.2012
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie