Daten erfassen und Zeit synchronisieren - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Daten erfassen und Zeit synchronisieren (/Thread-Daten-erfassen-und-Zeit-synchronisieren) Seiten: 1 2 |
Daten erfassen und Zeit synchronisieren - Olli_11845 - 08.09.2020 10:03 Hallo zusammen, ich habe ein Problem mit der Erfassung von Daten in Labview. Ich steuere damit ein BHKW und gebe noch Input Daten per CSV Datei in den While Loop. Der While Loop hat eine Time Delay von 1000ms. bei jedem Schritt werden Daten aus der CSV abgefragt. Das soll genau 1x pro Sekunde passieren Jetzt zum Problem. Die Simulation läuft langsamer ab. 1 Sekunde in der Simulation entspricht 3,3 Sekunden in der Realtät oder so ähnlich. Gibt es eine Möglichkeit wie ich das synchronisieren kann? So dass 1 Sekunde in Labview 1 Sekunde in der Realität entspricht. Ich hoffe es kann jemand helfen RE: Daten erfassen und Zeit synchronisieren - GerdW - 08.09.2020 10:09 Hallo Olli, Zitat:Der While Loop hat eine Time Delay von 1000ms. bei jedem Schritt werden Daten aus der CSV abgefragt. Das soll genau 1x pro Sekunde passierenDu gibst also eine Iterationszeit von 1000ms vor - die Schleife braucht aber 3300ms pro Iteration!? Dann musst du dafür sorgen, dass der Code in dieser Schleife eben in maximal 999ms fertig wird und nicht erst nach 3300ms… RE: Daten erfassen und Zeit synchronisieren - jg - 08.09.2020 11:23 (08.09.2020 10:09 )GerdW schrieb: Dann musst du dafür sorgen, dass der Code in dieser Schleife eben in maximal 999ms fertig wird und nicht erst nach 3300ms…Und wenn du uns den Code zeigst, dann können wir dir hoffentlich dedizierter weiterhelfen. Gruß, Jens RE: Daten erfassen und Zeit synchronisieren - Olli_11845 - 08.09.2020 11:53 (08.09.2020 11:23 )jg schrieb:(08.09.2020 10:09 )GerdW schrieb: Dann musst du dafür sorgen, dass der Code in dieser Schleife eben in maximal 999ms fertig wird und nicht erst nach 3300ms…Und wenn du uns den Code zeigst, dann können wir dir hoffentlich dedizierter weiterhelfen. Hier ist es RE: Daten erfassen und Zeit synchronisieren - GerdW - 08.09.2020 12:00 Zitat:Hier ist esNö… Tipp: Datei mit dem "Durchsuchen"-Button auswählen, dann rechts auf "Attachment hinzufügen" klicken… RE: Daten erfassen und Zeit synchronisieren - jg - 08.09.2020 12:10 (08.09.2020 12:00 )GerdW schrieb:Und als Attachment am besten VIs wählen, keine Screenshots vom BlockdiagrammZitat:Hier ist esNö… Gruß, Jens RE: Daten erfassen und Zeit synchronisieren - Olli_11845 - 08.09.2020 12:20 [/quote] Und als Attachment am besten VIs wählen, keine Screenshots vom Blockdiagramm [/quote] So RE: Daten erfassen und Zeit synchronisieren - jg - 08.09.2020 12:34 Hilfe, Code aufräumen wäre mal als erstes angesagt, wer soll in dem Bockdiagramm etwas finden... Welche deiner Loops läuft denn zu langsam? In einer der beiden Loops schreibst du alleine 14x in verschiedene einzelne Modbus-Register, das könntest du auch von der Reihenfolge der Register auch jeweils zusammenfassen und mehrere Register mit einem Kommando schreiben. Parallel dazu laufen noch 2 Modbus-Abfragen, deine Gegenstelle muss also pro Sekunde 16 Register-Anfragen verarbeiten. Vielleicht ist das der Flaschenhals. Dann: Muss du wirklich für jeden Kanal einen einzelnen File anlegen und schreiben? Fass das doch zusammen, dann hast du weniger Filezugriffe. Gruß, Jens RE: Daten erfassen und Zeit synchronisieren - Olli_11845 - 08.09.2020 13:17 (08.09.2020 12:34 )jg schrieb: Hilfe, Code aufräumen wäre mal als erstes angesagt, wer soll in dem Bockdiagramm etwas finden... Die 14 Modbus Register kann ich nicht ändern. Aber die idee alles in ein Excel File zu schreiben ist gut. Noch eine andere Idee. Ist es möglich alle daten die zu Excel gehen erstmal labview intern in eine Tabelle zu schreiben und dann später zu exportieren? Das würde sicher Leistung sparen. Und wie würde das gehen? Gleiche frage für den Import von CSV in Labview RE: Daten erfassen und Zeit synchronisieren - GerdW - 08.09.2020 13:36 Hallo Olli, Zitat:Die 14 Modbus Register kann ich nicht ändern.Interessant ist ja auch, dass du ob Offset 256 Modbus-Register liest und dann für die Anzeige nochmal 256 Dummywerte vor die eigentlichen Messwerte packst. Und dann auch noch ewig viele einzelne IndexArray-Funktionen benutzt, um die ganzen Einzelwerte zu indizieren… Zitat:Aber die idee alles in ein Excel File zu schreiben ist gut.Noch besser wäre die Idee, überhaupt kein Excel-File zu erstellen, sondern alles in eine CSV-Datei zu schreiben. Wäre viel performanter… Zitat:Noch eine andere Idee. Ist es möglich alle daten die zu Excel gehen erstmal labview intern in eine Tabelle zu schreiben und dann später zu exportieren? Das würde sicher Leistung sparen. Und wie würde das gehen?Wieso soll es "Leistung" sparen, wenn du erst den Speicher mit Messdaten vollschreibst? Wie schon gesagt: alles in eine CSV-Datei schreiben… Zitat:Gleiche frage für den Import von CSV in LabviewDa sich die diese CSV-Datei (hoffentlich) nicht andauernd ändern, würde es doch sicherlich ausreichen, sie ein einziges mal vor der Schleife zu lesen!? Und da du ja auch nur eine Spalte daraus benötigst, kann man diese auch noch vor der Schleife indizieren! Und da du in der Schleife auch noch "i" benutzt, um die Zeile zu indizieren, könnte man dann sogar mit einer autoindizieren Schleife alle Elemente dieser Spalte abarbeiten! Vor allem aber erst einmal aufräumen. Geschätzte 16 FullHD-Screens sind einfach zu viel für ein Blockdiagramm! |