TC2 Datenlogger fuer Weg & Kraft Messwerte

Baxi01

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich stehe vor der Aufgabe Messwerte in einer Datei zu erfassen. Ich bin absoluter Anfaenger im Umgang mit Dateien auf der SPS und auch was das Handling von FiFo Speichern und Arrays angeht. Erstmal schreibe ich welche Hardware ich zur Verfuegung habe.

1x CX9020 mit TC2
1x EL5101
2x EL3356-0010

Folgendes soll gemacht werden. Ich moechte die Messwerte der beiden 3356 und der 5101 mit Zeitstempel in eine Tabellenzeile eintragen. Dazu waere es schoen wenn der Zeitstempel fuer alle drei Messwerte pro Zeile der gleiche ist. Das heisst das alle zur gleichen Zeit erfasst werden. Auch sollte die Zykluszeit so gering wie moeglich sein da die Belastung sehr dynamisch statt findet. Das heisst, es gibt einen sehr schnellen Anstieg der Kraft und ich moechte zumindest den max Peak nicht verpassen. Auch bleibt die Kraft nicht sehr lange am DMS anstehen. Deswegen ist eine recht schnelle Abtastrate sehr wichtig fuer mich. In anderen Beitraegen habe ich gelesen das es bei Dateioperationen immer recht lange dauert bis Daten geschrieben sind und das es dadurch zu Datenverlusten kommt. Dies sollte man mit einem genuegend grossen Ringspeicher abfangen. Aber da gibt es so viele Loesungsansaetze (fertige Bausteine) und Moeglichkeiten das zu Loesen die mich als Anfaenger ganz schoen verwirren (Ueberfordern).
Ich muss dazu sagen das es nicht noetig ist dauerhaft Daten zu schreiben. Die Messwerterfassung kann durch einen beliebigen Trigger ausgeloest und wieder abgeschaltet werden. Messdauer ca. 1-2 Minuten.

Da stellen sich mir 2 Probleme die ich auch mit den Beispielprogrammen von Beckhoff nicht loesen kann.
Zum Beispiel hakt es bei mir schon den Speicherort der Datei auf dem CX System zu bestimmen, da alle Beispiele immer mit dem Laufwerk C:\... beginnen und so ist es im Embedded System mit einer Speicherkarte ja nicht benannt. ?!? :confused:

Aufgabenstellungen:
1. zu erfassende Werte in einen Speicher / Puffer schreiben
2. Pufferinhalt in eine Datei uebergeben.

Ich erwarte hier keine vollstaendige Programmloesung, aber vielleicht einen Loesungsansatz oder Vorschlag der in meinem Geist den Startimpuls ausloest :rolleyes:

Vielen Dank im vorraus

Viele Gruesse
Marc
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Marc,

da hat du aber ein sehr interessantes „Anfängerprojekt“! :D

Als erstes musst du mal die Zeiten definieren, was „schnell“ ist.
Deine Messung geht 1-2 Minuten. In welcher Zeit passiert der Prozess, welcher mitgeschrieben werden soll?
Über die gesamte Zeit, oder passiert der interessante Kraftanstieg sogar in 0,5ms?
Je nach dem, kann sein, dass deine Hardware überhaupt nicht passt!
-> Messklemmen + Sensoren müssen schnell genug sein

Wenn das geklärt ist, musst du dir Gedanken machen, wie groß der Puffer sein soll und ab wann die Messung startet und stoppt.

Nach der erfolgten Messung, wird das Ergebnis in die Datei geschrieben. Das ist eine vollständig eigenständige Funktion, die du auch eigenständig und unabhängig von der Messung testen kannst.

Gruß
Chräshe
 
Mit welcher zeitl. Genauigkeit sollen die Messungen laufen? Wird eine Synchronisation der Klemmen über Distributed Clocks notwendig?

In meinem Datenloggerbaustein nutze ich 2 Puffer zwischen denen ich hin und her schalte. Wenn ein Puffer voll ist oder eine bestimmte Zeit verstrichen ist, wird der Inhalt abgespeichert. Während dessen gehen neue Messwerte in den 2ten Puffer usw. usf.

Das schreiben der Werte in den Puffer kann in einem schnellen Task erfolgen, das Abspeichern in einem Task mit "normaler" Zykluszeit.

Die beiden Klemmen sind auf jeden Fall schnell genug und die CX9020 kann auch kleine Tasks mit <1ms Zykluszeit laufen lassen.
 
Erst mal vielen Dank das es so schnell schon Reaktionen und Antworten auf mein Problem gab.

Als erstes musst du mal die Zeiten definieren, was „schnell“ ist.
Deine Messung geht 1-2 Minuten. In welcher Zeit passiert der Prozess, welcher mitgeschrieben werden soll?
Über die gesamte Zeit, oder passiert der interessante Kraftanstieg sogar in 0,5ms?
Je nach dem, kann sein, dass deine Hardware überhaupt nicht passt!
-> Messklemmen + Sensoren müssen schnell genug sein

Also ich denke ich muss sogar in zwei Anwendungsfällen unterscheiden. Einmal eine sehr dynamische Messung von kurzer Dauer und eine mit einem langsamen Kraftanstieg von längerer Dauer. Bei beiden Arten soll auf jeden Fall die maximale Kraft erfasst werden.

Was die Geschwindigkeiten der Klemmen (Meßwandler) angeht, denke ich so wie MasterOhh, das die Hardware dafür passend dimensioniert sein sollte.
Die CPU schafft Taskzeiten bis zu 100µs und die Klemme hat als schnellste Wandlungszeit 2,5ms. Wir gehen davon aus das dieses für unsere Versuche schnell genug sein sollte.

Mit welcher zeitl. Genauigkeit sollen die Messungen laufen? Wird eine Synchronisation der Klemmen über Distributed Clocks notwendig?

Ich bin mir über die Funktion Distributed Clocks nicht ganz sicher. Ich stelle mir vor das die Werte der drei Klemmen (2x3351 & 1x 5101) innerhalb eines SPS Zyklus geschrieben werden. Von daher sollte die Genauigkeit einer Zykluszeit ausreichen. Aber mir sind die Zeitlichen zusammenhänge in der SPS Programmabarbeitung aktuell nicht mehr so geläufig.

Das mit den zwei Puffern hört sich ja schon mal logisch an. Damit wäre ja, zumindest theoretisch, eine endlos lange Messung möglich. Ich muss die Puffer also mindestens so groß Dimensionieren wie die Menge der Daten ist die während eines Schreibvorganges anfallen. Richtig? Vom der Theorie her ist es mir geläufig, nur fehlt mir die Idee für die praktische Umsetzung. Welchen Baustein nutze ich dafür und wie schiebe ich die Daten sinnvoll hinein und vor allem wie bereite ich die Daten vorher auf. Das ist alles etwas das ich vorher noch nie wirklich gemacht habe.

Das nächste Problem ist dann das schreiben der Speicherdaten. Da würde ich mir vorstellen das ich pro Messreihe eine Datei erstelle bei der der Speicherinhalt immer wieder hinten angefügt wird.
Es muss also bei aktivierter Messung als erstes eine Datei mit eindeutigem Namen (evtl. mit Zeitbezug) erstellt werden. Diese muss geöffnet werden und dann kann ich so lange Daten anfügen bis die Messung beendet ist. Dann schließe ich die Datei und muss sie wegschreiben. Ist das in etwa richtig so?

Und auch da bin ich mir bei der großen Auswahl an Funktionsbausteinen zum Dateihandlich nicht sicher was ich überhaupt nehmen muss. ?!?:shock:

Gruß Marc
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der TC2_System Bibliothek sind die FBs für das File Handling enthalten. Im Infosys findest du die Beschreibung der Bausteine und ein Beispiel zum Dateizugriff auf der SPS heraus.
 
Zurück
Oben