INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Deterministe Zeitabstände



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.01.2008, 12:06 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2008 12:10 von Dorian.)
Beitrag #1

Dorian Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Aug 2007

8.2
2007
kA


Deutschland
Deterministe Zeitabstände
Hallo Leute,

ich hab folgendes Problem.
Ich lese Daten über XCP vom Steuergerät aus (NI ECU Measurement and Calibration Toolkit).
Da ich die Daten exakt jede 10ms auslesen muss, hab ich eine Zeitgesteuerte Schleife gemacht mit
10 ms Periode und Priorität 100. Für die Anzeige und Eventauswertung etc (alles was nicht
Zeitkritisch ist) hab ich ne andere Schleife, mit timer von 100ms.

Mein Problem ist jetzt, das trotz alles die Werte nicht exakt jede 10 ms ausgelesen werden (meistens
ja, aber es gibt inzwischen immer Verzögerungen von 10ms).
Dabei hab ich LabVIEW schon auf Priorität "Hoch" unter Windows XP laufen und meine CPU Belastung liegt
"nur" bei 15-20%.
Kann man da sonst irgendwie die Priorität bzw das Echtzeitverhalten einstellen?

Mfg,
Dorian

ps: kann das VI nicht posten, weil man das Toolkit benötigt um zu laufen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.01.2008, 12:29 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2008 12:30 von Achim.)
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Deterministe Zeitabstände
Wenn du ne Echtzeit-Anwendung haben willst, musst du ein "Real-Time"-Betriebssystem, bzw. LV-Realtime auf nem PXI-System laufen lassen. Ansonsten kannst du die "exakte" Abfrage nicht realisieren!

Evtl. könntest du über den DAQmx-Treiber dir mit ner Counter-Karte ein ziemlich genaues Rechteck-Signal ausgeben, dass du irgendwie als HW-gesteuerten Auslese-Trigger verwendest...damit wäre die Echtzeit-Abfrage zwar auch nicht genau erreicht, aber vermutlich wesentlich besser, weil das relativ unabhängig vom Betriebssystem läuft...die Darstellung der Daten würde aber auf jeden Fall hinterherhinken. Wie du das mit deiner speziellen Anwendung verheiraten könntest, kann ich dir aber auch nicht sagen...

Gruß
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.01.2008, 16:33
Beitrag #3

Dorian Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Aug 2007

8.2
2007
kA


Deutschland
Deterministe Zeitabstände
Danke für die schnelle Antwort. Ja, leider kann ich jetzt keine Realtime Hardware oder Os benutzen.
Ich dachte nur vielleicht gäbe es irgendwo noch spezielle LabVIEW Funktionen dafür, da meine CPU nicht allzusehr belastet ist. Und 10ms nun auch nicht "extrem" schnell ist, selbst für Windows.
Ich schau noch mal wie ich das am besten löse.

freundliche Grüße,
Dorian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.01.2008, 19:29 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2008 19:30 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Deterministe Zeitabstände
' schrieb:Danke für die schnelle Antwort. Ja, leider kann ich jetzt keine Realtime Hardware oder Os benutzen.
Ich dachte nur vielleicht gäbe es irgendwo noch spezielle LabVIEW Funktionen dafür, da meine CPU nicht allzusehr belastet ist. Und 10ms nun auch nicht "extrem" schnell ist, selbst für Windows.
Ich schau noch mal wie ich das am besten löse.

freundliche Grüße,
Dorian

Windows NT (und damit 2000, XP, Vista, etc) kann Dir nicht garantieren dass ein Task innerhalb einer bestimmten Zeit wieder zum Laufen kommt. Das kann kein Desktop OS. 10ms scheint zwar viel aber unter Windows und anderen Desktop OSen sind bis zu 100ms Verzögerungen keine Unmöglichkeit, etwa wenn Netzwerkverkehr behandelt werden muss oder dergleichen.
Alles unter 100ms Genauigkeit kann nur mit einem RT System sicher erreicht werden, selbst mit heutigen high speed multicore CPUs und auch über 100ms gibts keine wirkliche Garantie, auch wenn die Chancen gut sind dass es eigentlich immer gut geht.
Wenn Du LabVIEW 8.5 hast und eine multicore CPU kannst Du aber eventuel die Wahrscheinlichkeit dass es auch mit 10ms noch gut geht signifikant erhöhen indem Du die zeitkritischen Dinge in eine RT Loop setzt und diese Loop einem der CPU cores zuweist. Aber 100% Garantie dass es dann immer funktioniert ist auch dann nicht möglich.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.01.2008, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2008 17:19 von Dorian.)
Beitrag #5

Dorian Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Aug 2007

8.2
2007
kA


Deutschland
Deterministe Zeitabstände
@rolfk:

Danke für die ausführliche Antwort.
Hab meine Processorlast jetzt unter 10 %, dann läufts "ziemlich" gut. Kann aber während der Zeit nichts anzeigen, sonst geht alles den Bach runter :)Versuche die Anzeigen in einer zeitgesteuerten Schleife mit viel kleinerer Priorität zu machen. Funktioniert zwar, aber ist so elegant.
Das mit dem RT Loop hört sich ganz interessant an, muss meinem Chef mal um das Update zu 8.5 bitten, noch läuft 8.2.
Muss ich dazu auch das "Real-Time Module" haben?

mfg,Dorian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2008, 08:30
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Deterministe Zeitabstände
' schrieb:@rolfk:

Danke für die ausführliche Antwort.
Hab meine Processorlast jetzt unter 10 %, dann läufts "ziemlich" gut. Kann aber während der Zeit nichts anzeigen, sonst geht alles den Bach runter :)Versuche die Anzeigen in einer zeitgesteuerten Schleife mit viel kleinerer Priorität zu machen. Funktioniert zwar, aber ist so elegant.
Das mit dem RT Loop hört sich ganz interessant an, muss meinem Chef mal um das Update zu 8.5 bitten, noch läuft 8.2.
Muss ich dazu auch das "Real-Time Module" haben?

mfg,Dorian

nein, das RT-Modul brauchst du NUR, wenn du SW für ein RT-Ziel programmieren willst, z.B. wenn du einen PXI-Controler verwendest oder einen cRIO Controler. Es gibt auch die Möglichkeit einen "stinknormalen" Desktop PC in ein RT-Ziel umzuwandeln, dabei wird das Betriebssystem auf diesem Desktop PC ersetzt (durch PharPab), auch darauf kann man dann RT-SW laufen lassen.

auf das "funktioniert ganz gut" würde ich mich nur verlassen, wenn der PC, auf dem dein VI jetzt läuft auch später NUR für deine LV-Software verwendet wird. Sobald damit noch etwas anderes gemacht wird, oder z.B. weitere Software installiert wird kann sich das ganz schnell ändern ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.01.2008, 15:13 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2008 15:15 von Dorian.)
Beitrag #7

Dorian Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Aug 2007

8.2
2007
kA


Deutschland
Deterministe Zeitabstände
' schrieb:nein, das RT-Modul brauchst du NUR, wenn du SW für ein RT-Ziel programmieren willst, z.B. wenn du einen PXI-Controler verwendest oder einen cRIO Controler. Es gibt auch die Möglichkeit einen "stinknormalen" Desktop PC in ein RT-Ziel umzuwandeln, dabei wird das Betriebssystem auf diesem Desktop PC ersetzt (durch PharPab), auch darauf kann man dann RT-SW laufen lassen.
ok, alles klar.

' schrieb:auf das "funktioniert ganz gut" würde ich mich nur verlassen, wenn der PC, auf dem dein VI jetzt läuft auch später NUR für deine LV-Software verwendet wird. Sobald damit noch etwas anderes gemacht wird, oder z.B. weitere Software installiert wird kann sich das ganz schnell ändern ...

Ja, das stimmt schon. Aber soweit ist es erstmal ne Lösung für uns.

Hab nochmal ne Frage zu den Zeiten: Wie macht denn so eine Software wie CANape das, damit man über XCP (normales Ethernet, und auch ein normaler Windows-Treiber) mit 1ms sampling Zeit, Werte aus dem Steuergerät (und damit vom CAN-Bus) auslesen kann? (Die werden ja da auch nicht zwischengespeichert)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  zeitabstände messen? bosse 3 3.780 11.04.2009 20:24
Letzter Beitrag: bosse

Gehe zu: