LabVIEWForum.de
Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW RealTime (/Forum-LabVIEW-RealTime)
+---- Thema: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten (/Thread-Doppelpuls-Signal-ueber-CSV-in-Digitaldaten-Tabelle-und-als-Output-schalten)

Seiten: 1 2 3 4 5 6


Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Lucky. - 23.01.2021 18:17

Hallo zusammen,

mein Kommilitone und ich wollen eine Doppelpulsschaltung aufbauen. Hierzu wollen wir das eigentliche Signal, welches insgesamt 215ys lang ist schalten. Innerhalb dieses Signallänge schalten wir zuerst für 100ys ein, dann 100ys aus, dann 15ys ein und dann aus.
Nun möchten wir diesen Doppelpuls variable zeitlich einstellen können. Deshalb haben wir eine CSV mit dem Signal angelegt. Wir haben in der ersten Spalte die Zeit drin (0-215) und in der zweiten Spalte den binären Zustand (0 oder 1). Diese möchten wir nun in labview quasi direkt in die Digitaldaten einspielen und diese dann als Signal über ein Crio Modul ausgeben.

Wir haben dann zunächst angefangen die Daten wie gewohnt in ein Array zu schieben. Das funktioniert wie gewohnt. Jedoch kriegen wir es nicht hin die Daten in die Digitaldaten zu komprieren. Er meckert immer rum, dass wir aus dem Stringformat nicht ins Stringformat konvertieren können, was für mich unlogisch ist. Ebenfalls haben wir probleme die Datentabelle als Signal über den CRIO auszugeben. Bahn

Wir würden uns über eure Hilfe freuen. Anbei unsere bisherigen VI´s.

Vielen Dank
Lukas und Nico


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Lucky. - 23.01.2021 21:39

Okay. ich bin etwas weiter vorran gekommen. Jetzt hänge ich daran fest, den Signalverlauf in den Output für das Crio zu kriegen. Fehler " 2D Bool Array to 1D Bool".
Wäre über jeden heißen Tipp froh.


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Martin.Henz - 24.01.2021 05:49

Hallo Lucky.

ich habe jetzt gefühlt so viele Fragen, wie das Universum in Kilometer groß ist 2hands

Eine ganz kleine Auswahl:

Was ist denn das eigentliche Ziel des Ganzen?
Es ist manchmal sehr hilfreich ein bisschen mehr zu wissen, denn sinnvolle Lösungen ergeben sich oft erst im Zusammenhang. Das Projekt wäre evtl. auch nicht schlecht, um zu sehen, was an den ganzen anderen Stellen so passiert (RT, FPGA).

Wozu erst eine CSV Datei erstellen, wenn nur ein Impuls ausgegeben wird?

Wozu überhaupt eine CSV Datei, wenn mit den Daten gar nichts gemacht wird (außer die Daten anzuzeigen)?
Ich gebe zu, dass das in gewisser Weise deine Frage ist, aber du möchtest doch ein ganzes Array von Boolschen Werten über den FPGA ausgeben. Dann musst du auch dem FPGA alle Daten übergeben. Damit gibt es einen schönen Übergang zu den nächsten beiden Fragen.

Warum nicht einfach einen Pulsgenerator nehmen?

Wenn ein FPGA vorhanden ist, warum erzeugt ihr den Impuls nicht mit dem FPGA?

Warum ist euer Bildschirm so groß? Nimm 1/4 der Auflösung und wenn es dann nicht auf den Bildschirm passt, hast du etwas falsch gemacht.

Deine VIs machen rein gar nichts mit den Daten aus der CSV Datei. Das steht in krassem Widerspruch zu deiner Beschreibung.

Warum versuchst du die Daten aus "Doppelpulssignal.csv" so zu konvertieren wie du das machst?
Ich gebe ja zu, dass das nett aussieht, aber es ist herzzerreißend umständlich und zudem auch noch falsch.

PS: Evtl. das Ganze für eine etwas ältere LabVIEW Version speichern, dann können es mehr Leute ansehen (oder mit weniger Aufwand).


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - GerdW - 24.01.2021 17:53

Hallo LuckyPoint,

bitte erstmal dringend das VI aufräumen und dabei möglichst auch alle lokalen Variablen entfernen.

Beispiel zum Aufräumen:
[attachment=61571]
Die ganzen "Ohm"-Buttons und LEDs gehören eigentlich in ein Array, die Auswertung dann in eine autoindizierende FOR-Loop…

Warum willst du überhaupt eine digitale Waveform erzeugen, wenn du hinterher sowieso jedes Sample einzeln per ScanEngine ausgeben willst/musst? Da reicht doch ein stinknormales 1D-Array aus, welches dann ebenfalls über eine autoindizierende FOR-Loop ausgegeben wird… Hmm

Zitat:Er meckert immer rum, dass wir aus dem Stringformat nicht ins Stringformat konvertieren können, was für mich unlogisch ist.
Ich bekomme eine sehr eindeutige Fehlermeldung, wenn ich versuche, deine CSV-Datei mit den von dir verwendeten Funktionen in eine digitale Waveform zu wandeln: Fehler -1815.
Einfach mal die Erläuterung zu dieser Fehlermeldung durchlesen!


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Lucky. - 24.01.2021 18:10

Hallo,

Es ist ja toll das ihr alle so schön meckern könnt mit meiner Schaltung, jedoch bringt mich das nicht weiter. Ich habe nur diese Kenntnisse in Labview und ich denke das wir auch so weiter kommen wie wir es bisher das Programm aufgebaut haben. Wie gesagt brauchen wir ein Doppelpuls als Rechteck Signal welches wir variabel einstellen können. Dies tuen wir über die csv. da die Anwender sich nicht mit Labview an sich auskennen sollen. Die sollen nur die Bedienoberfläche bedienen, die csv bei bedarf einladen und fertig. Wie gesagt ich kenne keine andere Variante als das was ich bisher geschaffen habe. Und hierzu habe ich bereits 10 Stunden Zeit aufgebracht.

Wäre also super, wenn einfach mal jemand zeigen könnte wie man es richtig macht für ein NI Crio Modul


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - GerdW - 24.01.2021 18:17

Hallo LuckyPoint,

Zitat:Fehler -1815. Einfach mal die Erläuterung zu dieser Fehlermeldung durchlesen!
wenn einfach mal jemand zeigen könnte wie man es richtig macht für ein NI Crio Modul
Ein Anfang wäre es, wenn deine CSV-Datei den Anforderungen entsprechen würde, die die verwendete Funktion voraussetzt. Siehe Fehlermeldung und Erläuterung dazu…

Zitat:Ich habe nur diese Kenntnisse in Labview und ich denke das wir auch so weiter kommen wie wir es bisher das Programm aufgebaut haben.
Ich denke, es würde euch gut tun, wenn ihr die diversen Einsteigerkurse durcharbeitet: LabVIEW Core1&2, RT-Basics, FPGA-Basics.
Und dann erst euer Programm erstellt!

So wie es jetzt aussieht, werdet ihr immer Probleme damit haben…

Zitat:Wie gesagt brauchen wir ein Doppelpuls als Rechteck Signal welches wir variabel einstellen können.
Hierzu wollen wir das eigentliche Signal, welches insgesamt 215ys lang ist schalten. Innerhalb dieses Signallänge schalten wir zuerst für 100ys ein, dann 100ys aus, dann 15ys ein und dann aus.
Ihr wollt Pulse in "Yotta-Sekunden" skalieren?
Ich nehme mal an, ihr meint stattdessen "µs" (im Englischen gern auch "us" geschrieben): diese werdet ihr mit der ScanEngine nie und nimmer korrekt ausgeben können, so genau arbeitet der RT-Kernel des cRIO nicht. Verwendet stattdessen gleich den FPGA zum Erzeugen der Pulse: ihr müsst die Parameter z.B. als Array (fester Länge) bereitstellen und der FPGA arbeitet die dann mit einer autoindizierenden Schleife ab. Der schafft das (üblicherweise) im 25ns-Takt: schafft das dein DO-Modul auch?
Welche Hardware verwendet ihr überhaupt? Und warum hängt ihr nicht auch die Projektdatei an, damit wir den Aufbau besser nachvollziehen können?
Warum erwähnt ihr das cRIO anfangs überhaupt noch nicht einmal?

Wie schon erwähnt: geht die ganzen Einsteigerkurse durch!


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Lucky. - 24.01.2021 19:29

Hallo,

Man kann hier keine Projektdateien anhängen. Wir verwenden ein 1us Crio Modul 9474 meine ich. Wo ist denn der unterschied zwischen FPGA und der jetzigen Programmierung. Und wieso ist es falsch die Daten in die Signaldaten Tabelle zu schieben? Ich meine am Anfang habe ich sie ja zuerst in ein Array geschoben.


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - GerdW - 24.01.2021 22:00

Hallo ihr zwei,

packt euer Projekt-Verzeichnis einfach in eine Zip-Datei...

Momentan benutzt ihr die ScanEngine mit allen ihren Einschränkungen. Wenn ihr den FPGA direkt nutzt, seid ihr viel freier in den Möglichkeiten - bei allerdings sehr steiler Lernkurve!

"Daten zu schieben" ist nicht falsch...


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - Lucky. - 24.01.2021 22:44

Hallo Gerd,

Vielen Dank für deine Antwort. Ich habe mir viele Videos zu FPGA angeschaut. Ich versteh jedoch nicht wo der unterschied zu meinem VI sein soll.


RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - GerdW - 25.01.2021 07:54

Hallo LuckyPoint,

Zitat:Ich versteh jedoch nicht wo der unterschied zu meinem VI sein soll.
Der Unterschied ist, dass ihr momentan den FPGA überhaupt nicht benutzt, sondern die ScanEngine…

Zitat:Ich habe mir viele Videos zu FPGA angeschaut.
Statt Videos zu gucken, solltet ihr lieber die Basics-Kurse bei NI durcharbeiten!

Ihr habt immer noch nicht geschafft, eure Hardware exakt zu benennen oder eine Projekt-Datei anzuhängen…

Weitere Anmerkungen zu eurem VI:
[attachment=61573]
Im Bild eine Vorgehensweise, um die Daten aus eurer CSV-Datei in eine digitale Waveform umzuwandeln…

Wichtig:
- Die ScanEngine kann nicht mit digitalen Waveforms umgehen, diese Umwandlung ist für euch also komplett sinnfrei! (cRIO Basics durcharbeiten!)
- Ihr versucht die Datei von einem Dateipfad zu lesen, auf den euer cRIO überhaupt keinen Zugriff hat! (cRIO Basics durcharbeiten!)
- Es ist nicht empfohlen, LabVIEW-Projekte/-VIs in einem Ordner zu verwalten, der gleichzeitig mit einem Cloudservice (wie OneDrive) synchronisiert wird. Dies kann zu Problemen (wie korrupten Dateien) führen…