Italia
Foro

Exakte Zeitverzögerung ausgeben

 
- Page 1 -



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  
 



 
- Page 1 -



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  
 



 
- Page 2 -



GDL
Hier noch etwas. [...] 

Bis hierher :
========================================
Windows ist ein Zeitscheiben System

Windows versucht immer wieder das System zu aktualisieren. Hierdurch wird die Ausgabe der Signale auf dem LPT Port gestört.
Die Motoren bekommen keine Saubere Ansteuerung und bei höheren Geschwindigkeiten kommt es dann zu Schritt Verlusten. Bei niedrigen Geschwindigkeiten hört man schon die Aussetzer die duch das Drehmoment der Motoren ausgeglichen werden kann.

Abhilfe schafft hier eine kleine *.bat File die man noch aus DOS Zeiten vielleicht kennt.

echo off
start /realtime NC_FRS.exe

Download
============================================
scrollen.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
30.06.2008  
 




Web
Scanner
Genau Georg,

das Programm NC-FRS kenne ich auch sehr gut
Mein Programm wird sicher ähnlich, aber auch ganz anders sein.
Das Problem des Windowsbetriebssystemes ist ja leider hinreichend bekannt.

Grüße

WEb
 
Xprofan X3.1
Win7 auf AMDX6
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.803 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