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 

Dieses Thema hat akzeptierte Lösungen:

CPU-Auslastung bleibt bei 50% (Sub-Vi)



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!

11.10.2018, 13:41 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2018 13:55 von Niko1912.)
Beitrag #1

Niko1912 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2018

2009,2016,2018
2014
DE_EN

26721
Deutschland
CPU-Auslastung bleibt bei 50% (Sub-Vi)
Guten Tag,

mir ist ein Problem gerade aufgefallen welches ich mir nicht erklären kann.

Ich habe zwei Loops parallel am laufen, eine generiert Daten und die andere Loop verwaltet das Laufzeitmenü.

Der Fehler liegt anscheinend in der Menü-Loop. Hier wird ein Sub-Vi aufgerufen in dem Einstellungen dargestellt werden.

Dieses erfolgt in einer weiteren Schleife, die dann zur Laufzeit gestartet wird und wieder beendet werden soll wenn man alles gesehen hat.
Das beenden der Schleife mache ich über die Vi-Referenz -> Frontpanel-Status.
Beim schließen des Frontpanels soll die Loop beendet werden.

Dies scheint nicht ganz zu funktionieren, obwohl es bei anderen Sub-Vi´s super klappt.
Die CPU-Auslastung ist beim einstieg in die Loop bei 5%, nach dem schließen des FP ist sie auf 50% und bleibt da dann auch. Wenn ich das Programm beende bleibt die Auslastung bei 50%.

Öffne ich das Sub-Vi manuell, nach beenden des Programms, öffnet sich das Vi und schließt sich selber im gleichen moment. Dannach ist die Auslastung wieder bei 0%.

Ich habe die Funktion zum beenden als .jpg angehängt.

Hoffe mir kann geholfen werden. Blush
   

Nachtrag: In dem Vi werden sonst nur globale Variablen ausgelesen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.10.2018, 14:15 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2018 14:16 von GerdW.)
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CPU-Auslastung bleibt bei 50% (Sub-Vi)
Hallo Niko,

herzlich willkommen im Forum!

Zitat:Ich habe zwei Loops parallel am laufen, eine generiert Daten und die andere Loop verwaltet das Laufzeitmenü.
Der Fehler liegt anscheinend in der Menü-Loop. Hier wird ein Sub-Vi aufgerufen in dem Einstellungen dargestellt werden.
Und nichts davon zeigst du uns…

Zitat:Beim schließen des Frontpanels soll die Loop beendet werden.
Warum musst du dazu andauernd eine VI-Referenz öffnen?
Warum testet du auf "Invalid" - und nicht auf "Closed" oder "Hidden"?

Außerdem gibt es bessere Wege, eine Schleife zu beenden, als nur auf den Status des FP zu achten…

Zitat:Die CPU-Auslastung ist beim einstieg in die Loop bei 5%, nach dem schließen des FP ist sie auf 50% und bleibt da dann auch.
Du hast ein DualCore-System? Da ist dann eben ein CPU-Core voll beschäftigt!
Evtl. eine Schleife ohne Wartezeit?

Zitat:Ich habe die Funktion zum beenden als .jpg angehängt.
Mal ein Vergleich: du gehst zur Autowerkstatt und sagst: "Ich habe hier ein Foto von meinem Auto. Können Sie es reparieren?"
Wenn du Hilfe haben willst, solltest du VIs (oder Snippets) anhängen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2018, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2018 16:02 von Niko1912.)
Beitrag #3

Niko1912 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2018

2009,2016,2018
2014
DE_EN

26721
Deutschland
RE: CPU-Auslastung bleibt bei 50% (Sub-Vi)
Guten Tag GerdW,

danke für die schnelle Antwort.

Zitat:Und nichts davon zeigst du uns…

Da dies meine Bachelor-Arbeit ist möchte ich die VIs nicht Öffentlich machen, ich hoffe Sie können das akzeptieren.
Im Grunde habe ich das Problem ja lokalisiert, in der Menü-Loop läuft eine Statemachine die im Zustand "Leerlauf" auf ein Ereignis wartet. Also in meinem Problemfall "aktuelle Einstellungen", darauf wechselt der Zustand in "aktuelle Einstellungen" und öffnet das Sub-Vi, indem die Schleife läuft und die Einstellungen anzeigt. Das Sub-VI hänge ich gerne an.



Zitat:Warum musst du dazu andauernd eine VI-Referenz öffnen?
Warum testet du auf "Invalid" - und nicht auf "Closed" oder "Hidden"?

Danke für den Tipp mit der Referenz, dies war mir nicht aufgefallen. Gerne frage ich auch auf "Closed" ab, ich hab es auf "Invalid" gelassen da es in einem anderen Sub-Vi funktionierte.


Zitat:Außerdem gibt es bessere Wege, eine Schleife zu beenden, als nur auf den Status des FP zu achten…

Könnten Sie mir diese Wege nennen ? Ich hab in dem Vi sonst keine Buttons, nur das Windows-Schießen und darüber wollte ich das Vi auch beenden.

Zitat:Du hast ein DualCore-System? Da ist dann eben ein CPU-Core voll beschäftigt!
Evtl. eine Schleife ohne Wartezeit?

ja, dual Core mit Win 7 glaube ich (Hochschulrechner). Ja ein Kern ist voll ausgelastet, die Schleife im Vi hat 50ms warten drin. Funktioniert bei Ausführung ja auch super, nur beim rausgehen passiert irgendwas. Es scheint mir so als würde eine Schleife im Hintergrund ausgeführt die keine Wartezeit hat, also kann ich Ihre Vermutung bestätigen.

Ich habe es gerade an meinem Rechner getestet, der Fehler tritt weiterhin auf. Habe mal einen "Stopp"-Button ins Sub-Vi einfügt und der Fehler ist weg.
Also muss es an der Art wie ich die Schleife beende liegen.

Gruß Niko


9.0 .vi  Aktuelle Einstellungen.vi (Größe: 21,28 KB / Downloads: 225)


Nachtrag: Eigentlich brauche ich auch keine Schleife, ich möchte ja nur die Werte in einem Fenster anzeigen lassen und bei Bedarf das Fenster wieder schließen. Wenn dies ohne Schleife möglich ist, nehme ich gerne Vorschläge an.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2018, 16:18 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2018 16:30 von GerdW.)
Beitrag #4

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CPU-Auslastung bleibt bei 50% (Sub-Vi)

Akzeptierte Lösung

Hallo Niko,

Zitat:öffnet das Sub-Vi, indem die Schleife läuft und die Einstellungen anzeigt. Das Sub-VI hänge ich gerne an.
Wenigstens das…

Zitat:Da dies meine Bachelor-Arbeit ist möchte ich die VIs nicht Öffentlich machen, ich hoffe Sie können das akzeptieren.
Dazu folgendes:
1. Du kannst immer Test-VIs erstellen, mit denen du deinen Fehler/dein Problem nachvollziehbar demonstrieren kannst. Du musst nicht deine "hochgeheimen" VIs hier hochladen.
2. Beim Erstellen eines solchen Test-VIs stößt man manchmal selbst auf die Lösung des Problems… Wink

Zitat:Ich hab in dem Vi sonst keine Buttons, nur das Windows-Schießen und darüber wollte ich das Vi auch beenden.
Warum beutzt du keine Eventstruktur? Du wartest doch schließlich auf das Event "FP schließen"!?

So in etwa:
   
Ich habe noch ein Timeout-Event hinzugefügt, damit deine 50ms Wartezeit weiterhin funktionieren. Allerdings ist das bei diesem VI sinnlos: es werden ja nur Werte aus zwei globalen Variablen angezeigt. (Oder ändern sich diese globalen während der Laufzeit dieses subVIs?)
Falls die globalen sich nicht ändern, kannst du auf die Wartezeit und auch die Schliefe komplett verzichten…
Edit: Ich habe im Bild das Filter-Event (erkennbar am Fragezeichen) verwendet, da ich überlicherweise das Schließen des FP programmatisch blockiere (per Discard?) und dann erst im subVI aufräume, bevor ich das VI beende und schließe. Du kannst aber auch das normale Event (ohne Fragezeichen) verwenden.

Zitat:Ja ein Kern ist voll ausgelastet, die Schleife im Vi hat 50ms warten drin. Funktioniert bei Ausführung ja auch super, nur beim rausgehen passiert irgendwas. … Also muss es an der Art wie ich die Schleife beende liegen.
Du hast ein VI, dessen FP geschlossen wurde und wo dann trotzdem auf Eigenschaften des FP zugegriffen wird. Evtl. war das bei älteren LV-Versionen ein Problem, was zu diesem "burn-in" für die CPU führt. Ist ja auch reichlich unsauber, sowas per Polling zu erledigen…

Noch ein Tipp:
In deinem subVI brauchst du den Cluster doch noch nicht einmal unbundlen! Einfach die Daten direkt im Cluster darstellen!
(Du kannst ja trotzdem die einzelnen Clusterelemente wie gewünscht anordnen und den Clusterrahmen transparent malen…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.10.2018, 11:02
Beitrag #5

Niko1912 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2018

2009,2016,2018
2014
DE_EN

26721
Deutschland
RE: CPU-Auslastung bleibt bei 50% (Sub-Vi)
Guten Tag GerdW,

das Schließen per Event-Struktur funktioniert so wie ich es haben wollte.
Ich weiß auch nicht warum ich da nicht selber drauf gekommen bin.
Die Werte ändern sich nicht also konnte ich auf die komplette Schleife verzichten.
Hab es nun so gelöst.

   

Die CPU hat nun wieder luft, ich hoffe diese Lösung ist nun einwandfrei oder gibt es noch etwas zu bemängeln ?

Ich habs in den Clustern gelassen, die drei Variablen die rausgeführt sind will ich noch als String anzeigen lassen. Im Timeout wird nichts gemacht und das Transparent malen habe ich auch erst kürzlich entdeckt, werde ich dann auch so umsetzen.

Ich bedanke mich für die ausführliche Hilfe.

Grüße
Niko
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
  CPU Auslastung Agenth 31 18.610 19.05.2015 09:55
Letzter Beitrag: Agenth
  Im Blockdiagramm bleibt Mauszeiger immer Handsymbol Thomasschoenau 4 3.931 10.09.2014 13:25
Letzter Beitrag: GerdW
  CPU Auslastung einer Executable JoLo 6 6.617 17.12.2012 09:20
Letzter Beitrag: JoLo
  Rechner Auslastung mit Labview regis57 7 6.794 25.09.2012 19:27
Letzter Beitrag: Falk
  NumAnzElem bleibt leer gerln 5 4.971 09.11.2011 21:12
Letzter Beitrag: gerln
  Taste bleibt "hängen" nookie 7 8.257 22.01.2011 09:10
Letzter Beitrag: Y-P

Gehe zu: