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 

Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX



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!

10.11.2008, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2008 09:49 von vogster.)
Beitrag #1

vogster Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 80
Registriert seit: Feb 2007

8.2.1, 8.6.1, 9.0, 2011
2006
DE

80807
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
Hallo,

ich möchte über ActiveX CANoe - Umgebungsvariablen lesen und schreiben.
Ein VI mit 4 Variablen habe ich als Grafik angehängt.

   

Ich habe nun das Problem, dass die Systemauslastung schon bei 4 Variablen um 10% liegt, ich muss aber mindestens 40 Variablen lesen oder schreiben.

Hat jemand eine Idee, wie das ganze effizienter gestaltet werden könnte?

Vielen Dank für die Hilfe
Vogster
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.11.2008, 12:25
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
Mit ActiveX kenn ich mich nicht aus.

Für den Fall, dass es lediglich um die Anzeige der vier/vierzig Variablen geht, würde ich zuerst mal die Warte/Metronom-Zeit von 20 auf 250ms erhöhen. Unter bestimmten Voraussetzungen würde ich einen Anzeigerefresh auch nur alle Sekunde machen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2008, 17:09
Beitrag #3

vogster Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 80
Registriert seit: Feb 2007

8.2.1, 8.6.1, 9.0, 2011
2006
DE

80807
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
Leider geht es nicht nur um die Anzeige, dieses habe ich nur für dieses Beispiel so dargestellt.
Später sollen die Werte in Globale Variablen geschrieben werden, diese dienen als
Basis für ein Mess- und Analysetool.
20ms als Wartezeit ist hier das Minimum, 10ms ist eigentlich mein Ziel.

Grüße, Vogster
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2008, 21:27
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
' schrieb:Später sollen die Werte in Globale Variablen geschrieben werden, diese dienen als Basis für ein Mess- und Analysetool.
Hinweis:
Ich würde keine Globalen Variablen nehmen, sondern entweder einen Melder oder eine Queue. Oder ich würde die Daten in einem Array sammeln und das dann per Melder/Queue weitergeben.

Zitat:20ms als Wartezeit ist hier das Minimum, 10ms ist eigentlich mein Ziel.
Wie schnell ActiveX und/oder CANoe ist, weiß ich nicht. Ich weiß nur, dass NI-Can bzw. NI-CanOpen die 10ms schaffen.
Du kannst mal einen Test machen. Bau eine Schleife, die alle 40 Variablen einließt - und sonst nichts macht. Keine Darstellung am FP und kein Speichern der Daten. Dann versuchst du die Laufzeit der Schleife zu ermitteln (was u.U. nicht trivial ist).

[*grübel*]

Hast du denn überhaupt mal die Auslastung bei allen 40 Variablen überprüft?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2008, 15:33
Beitrag #5

vogster Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 80
Registriert seit: Feb 2007

8.2.1, 8.6.1, 9.0, 2011
2006
DE

80807
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
Zitat:Hinweis:
Ich würde keine Globalen Variablen nehmen, sondern entweder einen Melder oder eine Queue. Oder ich würde die Daten in einem Array sammeln und das dann per Melder/Queue weitergeben.

Ich habe mich gerade mal über die Funktion einer Queue informiert. Diese eignet sich aber - so glaube ich - in meinem Fall nicht. Eigentlich interessiert mich immer nur der aktuelle
Wert der Variable. Die Daten werden in LabVIEW auch nicht zuwangsläufig verarbeitet sprich aus der Queue abgeholt, nur bei Bedarf. Melder könnten da schon interessanter sein, allerdings muss ich mich noch genauer mit der Materie auseinandersetzten. Haben denn Melder gegenüber globalen Variablen einen Performancevorteil?
Oder sind globale Variablen einfach nur unschön?

Zitat:Wie schnell ActiveX und/oder CANoe ist, weiß ich nicht. Ich weiß nur, dass NI-Can bzw. NI-CanOpen die 10ms schaffen.
Du kannst mal einen Test machen. Bau eine Schleife, die alle 40 Variablen einließt - und sonst nichts macht. Keine Darstellung am FP und kein Speichern der Daten. Dann versuchst du die Laufzeit der Schleife zu ermitteln (was u.U. nicht trivial ist).

Da habe ich Zweifel. Bei einem High-Speed CAN Bus mit 10% Buslast hat es nicht funktioniert, die Botschaften alle 20ms auszulesen. Allerdings benutze ich einen USB - CAN - Adapter. Diese Probleme sind auch ein Grund für den Umstieg auf CANoe.

Zitat:Hast du denn überhaupt mal die Auslastung bei allen 40 Variablen überprüft?

Nein, das habe ich noch nicht getestet. Allerdings finde ich die Auslatung bei nur vier Variablen schon viel zu hoch.
Ich werde dieses Szenario in den nächsten Tage mal testen, allerdings brauche ich dafür noch etwas Zeit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2008, 15:54
Beitrag #6

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
' schrieb:Ein VI mit 4 Variablen habe ich als Grafik angehängt.

Ich habe nun das Problem, dass die Systemauslastung schon bei 4 Variablen um 10% liegt, ich muss aber mindestens 40 Variablen lesen oder schreiben.
Hat jemand eine Idee, wie das ganze effizienter gestaltet werden könnte?

also bei 40 würde ich das dann schon als Array behandeln und nicht dasselbe 40x coden.
Das Problem wird dadurch vermutlich nicht gelöst, aber "effizienter gestaltet" wäre es dann schon.
(ob 4 oder 40 oder 80 wäre dann in ein klacks)

Bin mir nicht ganz sicher, aber Variant und Wandlung des Variant ist nicht das effizienteste, wenn du das irgendwie vermeiden kannst....

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.11.2008, 20:50
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
' schrieb:Melder könnten da schon interessanter sein, allerdings muss ich mich noch genauer mit der Materie auseinandersetzten.
Top1

Zitat:Haben denn Melder gegenüber globalen Variablen einen Performancevorteil? Oder sind globale Variablen einfach nur unschön?
LabVIEW ist eine Datenfluss-orientierte Programmiersprche. Globale Variablen konterkarieren (<= Bah, ey!) dieses Verfahren!
Performance. Hmm. Es gibt natürlich Fälle, da sind Globale Variablen bestimmt "schneller" als Melder. "Gesamtprogrammtechnisch" gesehen haben GV aber mehr Nachteile als Vorteile. Nachteile: z.B. RaceConsition. Pro Instanz einer GV ist ein Speicher notwendig - der gehandelt werden muss!


Zitat:Da habe ich Zweifel. Bei einem High-Speed CAN Bus mit 10% Buslast hat es nicht funktioniert, die Botschaften alle 20ms auszulesen. Allerdings benutze ich einen USB - CAN - Adapter. Diese Probleme sind auch ein Grund für den Umstieg auf CANoe.
Ich verwende keinen USB-Can-Adapter, sondern drei PCI-Karten NI-CAN/2 mit insgesamt 5 Kanälen. Alle 5 Kanäle werden mit jeweils 5ms parallel abgetastet. Verwendet wird die Channel-API von NI. Wie viele Variablen pro Kanal der Kunde einstellt ist seine Sache. (Meine letzte Info liegt bei 25 Variablen. Mit wie vielen CAN-Messages das gemacht wird weiß ich nicht).
LV selbst und ein Standard-PC sind also ohne weiteres in der Lage, auch größere Mengen an Daten zu handeln.

Möglicherweise liegt dein Problem eher am USB-CAN-Adapter als an LV respektive den GV.


Zitat:Allerdings finde ich die Auslatung bei nur vier Variablen schon viel zu hoch.
Nunja, ich weiß ja nicht, was du noch alles so machst. Für nur alleine diese eine Schleife sind 10% doch recht viel.


Was ist nicht weiß ist folgendes: Performance eines NI-USB-Moduls, Performance einer ActiveX-Schnittstelle

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2008, 16:15
Beitrag #8

vogster Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 80
Registriert seit: Feb 2007

8.2.1, 8.6.1, 9.0, 2011
2006
DE

80807
Deutschland
Hohe Systemauslastung beim Lesen von CANoe Variablen über ActiveX
Hallo zusammen,

ich habe eine Lösung für das Problem gefunden:

Umgebungsvariablen in CANoe können mit Hilfe von LabVIEW in einer Gruppe zusammengefasst und dann gemeinsam ausgelesen werden.

Es ergibt sich folgender Code:
   

Die Systemauslastung liegt bei 3 oder 15 oder 30 Variablen bei 2% (Periode: 20ms).
Das Verdoppeln der Variablen hat keinen Einfluss, das Verändern der Periode wirkt sich proportional aus.

Grüße, Vogster
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
  Programmabsturz beim speichern der Excel über ActiveX TpunktN 6 5.642 20.03.2019 11:33
Letzter Beitrag: TpunktN
  MS Access über ActiveX Einträge lesen und schreiben Arachnoid 3 8.384 16.11.2015 19:46
Letzter Beitrag: Arachnoid
  Agilent U2121A (I/O KArte) über (edit) ActiveX ralph.d 6 8.248 02.06.2014 13:23
Letzter Beitrag: ralph.d
Question Verbindung von Beckhoff zu LabView über ActiveX Thorben 2 6.314 17.04.2014 15:06
Letzter Beitrag: Thorben
  Musikdateien über den WindowsMediaplayer und activeX abspielen Trinitatis 3 5.310 28.10.2013 23:58
Letzter Beitrag: Trinitatis
  CANoe Umgebungsvariable ohne polling mit ActiveX lesen robert_bors 1 6.840 19.03.2013 18:14
Letzter Beitrag: robert_bors

Gehe zu: