Hallo Diabolik,
Zitat:wieso scheidet das Express VI aus
Ich habe doch schon eine Alternative genannt...
Zitat:Tut es aber nicht weil er mir keinen Wert für die Werte gibt wenn ich es als CSV abspeichere.
??? Kein Wert für die Werte??? Geht es noch unklarer ausgedrückt? Irgendein VI zur Veranschaulichung?
Zitat:indem ich die SubVIs benutze die vom Hersteller für das andere Messgerät vorliegen.
Welches Messgerät? Welche subVIs? Ich liebe eine klare Ausdrucksweise...
Also nochmal:
Ich versuche gerade so vorzugehen wie es mit den anderen SubVIs gemacht wird, diese heißen :
ZES LMG95.lvlib:LMG95_AC-Voltage_Measure.vi (zu finden im Case Measure) , in diesem VI stecken nochmals 3 VIs.
Im ersten VI wird daraus ein WDT Signal erstellt (mithilfe von Signal erstellen etc) danach werden diesem Signal bestimmte Eigenschaften wie Name und Einheit zugeordnet.
Ich möchte diese VIs so abändern damit ich sie für mein Fall verwenden kann, jedoch wenn ich die SubVIs einfach so ohne etwas zu verändern nehme bekomme ich Probleme mit dem Zugriff , da diese auf Objekte eine Referenz haben bzw. nur abgeleitete Klassen darauf zugreifen können so eine Fehlermeldung kam dann.
Nun bitte ich dich mir zu helfen indem du dir das mal anschaust und mir sagst was ich verändern könnte damit es tut.
Dieses SubVI ist übrigens in der Datei (zeslmg95.zip) die ich mal hochgeladen habe die müsstest du ja noch haben oder?
Und so wie ich es versucht habe abzuändern (sieh Anhang) bekomme ich in der Datei in der ich es abspeichere mit dem Express VI als Wert 8.0000 heraus statt 8.xxxxE-10 ... weshaln ich vermute, dass er Probleme mit der Exponentialdarstellung hat?
Nein, ich hebe deine VIs nicht auf... (Mache ich aber auch bei anderen Threads nicht.) Kannst du dieses subVI hier auch noch anhängen?
Hallo Diabolik,
Zitat:Ich möchte diese VIs so abändern damit ich sie für mein Fall verwenden kann, jedoch wenn ich die SubVIs einfach so ohne etwas zu verändern nehme bekomme ich Probleme mit dem Zugriff , da diese auf Objekte eine Referenz haben bzw. nur abgeleitete Klassen darauf zugreifen können so eine Fehlermeldung kam dann.
Diese VIs sind alle in einer vi-lib gesammelt und LabVIEW merkt sich (leider) die Zugehörigkeit. Dies kann man aber beheben:
Du öffnest "CONV_Data-String_to_WDT" und gehst ins Blockdiagramm. Dann selektierst du das komplette BD und kopierst es in die Zwischenablage. Dann machst du ein neues VI auf, gehst dort in BD und fügst die Zwischenablage dort ein. Das neue VI unter neuem Namen außerhalb der vi-lib speichern. Fertig, benutzen.
(Edit: Ok, bevor es wieder zu Verwirrungen kommt: du musst natürlich das Auswerten des Strings an dein Messgerät anpassen!)
Die zusätzlichen Attribute sind für den Anfang eher Overkill, aber schau dir ruhig an, wie man einem Signal einen Namen und weitere Informationen verpasst, kann später mal hilfreich sein...
Habe es so probiert jedoch scheint das SubVI nicht so zu funktionieren , als Wert kommt "NaN" heraus in der Datei.
"NaN" ist der Standartwert für das VI wo für die Exponentialdarstellung zuständig ist.
Jedoch verstehe ich nicht wieso meine Variante nicht funktioniert (siehe Anhang) :
Ich parse den String und erstelle damit ein Signalverlauf und an dieses SubVI schließe ich eine lokale Variable von read string an damit dieser geparst wird und bekomme dann ein WDT Signal das ich ins Express VI gebe.
Nun sehe ich wenn ich es debugge dass er nicht richtig parst, denn statt 8.22E-1 kommt 8 an. Stimmt vielleicht mit meiner Formatierung etwas nicht beim parsen ?
Also vielleicht lag es tatsächlich an der Formatierung ich habe die nochmal neu eingefügt und jetzt bekomme ich Werte in der CSV Datei jedoch weichen diese Werte immer geringfügig von dem Wert, der mir im read string angezeigt wird, ab.
Also z.B. 8.2569E-1 wird als 0.820300 in die Datei geschrieben.
Ich verstehe nicht woran das liegen könnte da ich doch nur ein einziges mal eine Messung durchführe und dieser Wert in read string abgelegt wird und dann über eine lokale Variable an mein SubVI gegeben wird wo ich es dann parse und ein Signal erstelle.
Sind das einfach Rundungsfehler ?

Könnte das ganze daran liegen, dass du ein nicht initialisiertes Shift-Register in deinem "Wandeln"-VI hast, somit also alle gelesenen Werte schön langsam aufsammelst und deine Waveform immer länger und länger wird?! Bitte einmal selber darüber nachdenken.
Ganz zu schweigen von den Race-Conditions. Lokale Variable von Read-String wird erst ausgewertet, und dann am Ende geschrieben. Somit wird immer der Wert vom Schleifendurchlauf vorher ausgewertet. Ist das wirklich gewollt?
Gruß, Jens
Hallo Jens,
nein das ist natürlich nicht gewollt jedoch ist mir nicht klar wie ich das anderst lösen könnte wenn du mir da vielleicht etwas weiterhelfen könntest?
Wie gesagt ich arbeite seit einem Monat etwa mit LabVIEW ^^
Also mein Problem liegt darin, dass ich nichts habe was ich an das Shift Register anschließen könnte damit es initialisiert wäre?
Und wegen RaceCondition: Am besten die lokale Variable nicht verwenden oder anderst positionieren ? Wenn ich sie nicht verwende, könnte ich stattdessen probieren mit VISA read einfach den Wert auszulesen , dann müsste ich doch beim wandeln VI nicht mehr den String parsen , jedoch habe ich es bereits so mal versucht ohne Erfolg ?
Es wäre gut wenn das jemand mal so versuchen könnte.