TIA Struct in Array schreiben

Credofire

Level-1
Beiträge
640
Reaktionspunkte
35
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich möchte gern ein paar Daten sammeln und Loggen. Da aber die Log-Geschwindigkeit zu gering ist für die Daten die ich haben möchte, möchte ich das über den Umweg mit einem Array machen.
Ich habe dazu folgende Struktur im Sinn:
DatenLog.png
Wie stelle ich das nun an? Ich hatte gedacht über FieldWrite, aber das geht mit dem Struct wohl nicht. Da kann man nur Standardwerte einstellen, kein Variant.
Hat jemand ne Idee wie ich das am geschicktesten lösen kann? Siehe Bild: Ich möchte quasi Daten_log_1 in das Array schreiben. Ich möchte gern diese Werte im 5 ms Takt schreiben, das ist aber zu schnell für mein Datanlog. Deshalb der Umweg.
 
Ich verstehe die Frage gerade nicht.
Aber mal anders :
- welche Programmiersprache soll es werden ? Mir würde hier SCL einfallen (wäre mehr als praktisch)
- du liest die Daten in einem Zeit-OB in die Struktur ein und willst dann diese Struktur dem passenden Array-Element zuweisen ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nein, im Moment arbeite ich mit den Werten direkt mit Datenlog. Da das aber zu langsam ist, möchte ich es über ein Array versuchen.
Das was ich im Bild habe siehe oben ist der DB wie ich ihn mir im Moment prinzipiell vorstelle. Ich möchte während des Schneidvorgangs alle 5-10 ms einige Werte mitplotten. Da der Schneidvorgang bis zu 20 Sekunden dauern kann, werden es entsprechend viele Daten.
Ich brauch nun eine Lösung wie ich dieses Array am pfiffigsten gefüllt bekomme. Mit der Struktur von dem Data_Log_1 sammle ich für den Schritt quasi die Daten ein. Dann soll dieses Daten_Log_1 in das Array geschrieben werden bevor ich es mit Datalog schreibe. Quasi einsammeln und gesammelt ablegen, nächster Arrayeintrag. Wenn das Datenlog geschrieben ist, soll das Array wieder von vorn beschrieben werden. Somit soll es für jeden Schneidvorgang ein File geben mit dem Array drin.
Sprachen habe ich eh nur 3 zur Verfügung und SCL ist ok, dann kann ich noch wieder was dazulernen.
 
OK ...
Dann erstellst du dir erstmal einen FB, dem du die Einzel-Daten anvertraust und den du in einem Zeit-OB mit 5ms-Taktung aufrufst.
Dieser FB hat dann auch noch einen IN-Parameter "Start_Aufzeichnung" und "Reset_Aufzeichnung"
Dieser FB bildet dein Array in ausreichender Größe ab (also mindestens 4000 Array-Elemente vom Typ deiner Struktur)
Mit "Reset_Aufzeichnung" setzt du den Index-Pointer (ein interner STAT-Integer) auf 0.
Mit "Start_Aufzeichnung" erlaubst du dem FB, die aktuell anliegenden Daten in das Element[Index-Pointer] hineinzuschreiben - solange der Index-Pointer nicht größer als die Array-Grenze wird (dann ist Schluss) !
Nun erhöhst du den Index-Pointer um 1 für den nächsten Zyklus.
Es wird nicht mehr aufgezeichnet wenn "Start_Aufzeichnung" wieder false ist.

Vielleicht baust du dir das mal als SCL-Gerüst auf und überlegst dir, wir das mit dem Schreiben der Werte gehen könnte.
Bei weiteren Fragen dann melden ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du nit einer 1200/1500 arbeitest wäre sicher auch die integrierte Trace Funktion Interessant um die Daten während des Vorganges aufzunehmen.

Gesendet von meinem PLK-L01 mit Tapatalk
 
Hallo,

ja das mit dem Trace hatte ich auch die Idee. Aber den kann ich im Webbrowser nicht finden. Ich möchte es am Ende irgendwann so haben, das ich es über den Browser schnell laden kann.
 
Zurück
Oben