-> Hier kostenlos registrieren
Hallo,
ich habe hier eine kleine Aufgabe und wäre über einen Umsetzungsvorschlag dankbar!
Umgebung: Ein Kuka Roboter und ein Ultraschallgenerator sind per Profibus mit einer S7-1500 (Master) verbunden. Die Positionsdaten des Roboters und die Ultraschall-Prozessvariablen liegen auf dem Bus und sind in der Variablentabelle der SPS vorhanden.
Prozess: Der Roboter führt den Ultraschallkopf über das Bauteil, die Prozessdaten sowie die Positionsdaten des Roboters sollen zu Analysezwecken als Messwerte gespeichert werden. Dauer Prozess: 1-180 Sekunden pro Vorgang. Auflösung der Messung: Möglichst hochfrequent
Ansatz:
Alle Prozessdaten im Profibus-Takt speichern/zwischenspeichern und in ein Logdatei überführen.
Was ist hier der sinnvolle Weg? Lege ich mit der Datalogging Funktion einen DB mit großen Arrays [0-180000] für die Prozessvariablen an und schreibe dort im Bustakt Daten im Form eines Ringpuffers fleissig rein? Nach Abschluss eines Prozessvorgangs dann die Daten mit der Logging-Funktion (DataLogWrite) in eine CSV auf der SD-Karte und ich habe die letzten 180000 Messwerte im Bustakt mit Zietstempel (~4ms)? Falls ja, kann mir jemand ein Beispiel nennen/zeigen, wie ich im Bustakt (OB61 nur bei Isosynchronbus nutzbar, oder? Zumindest bekomme ich Compilierungsfehler die ich nicht deuten kann) in ein Array in einem DB die Daten schreibe?
Gruß
Sascha
ich habe hier eine kleine Aufgabe und wäre über einen Umsetzungsvorschlag dankbar!
Umgebung: Ein Kuka Roboter und ein Ultraschallgenerator sind per Profibus mit einer S7-1500 (Master) verbunden. Die Positionsdaten des Roboters und die Ultraschall-Prozessvariablen liegen auf dem Bus und sind in der Variablentabelle der SPS vorhanden.
Prozess: Der Roboter führt den Ultraschallkopf über das Bauteil, die Prozessdaten sowie die Positionsdaten des Roboters sollen zu Analysezwecken als Messwerte gespeichert werden. Dauer Prozess: 1-180 Sekunden pro Vorgang. Auflösung der Messung: Möglichst hochfrequent
Ansatz:
Alle Prozessdaten im Profibus-Takt speichern/zwischenspeichern und in ein Logdatei überführen.
Was ist hier der sinnvolle Weg? Lege ich mit der Datalogging Funktion einen DB mit großen Arrays [0-180000] für die Prozessvariablen an und schreibe dort im Bustakt Daten im Form eines Ringpuffers fleissig rein? Nach Abschluss eines Prozessvorgangs dann die Daten mit der Logging-Funktion (DataLogWrite) in eine CSV auf der SD-Karte und ich habe die letzten 180000 Messwerte im Bustakt mit Zietstempel (~4ms)? Falls ja, kann mir jemand ein Beispiel nennen/zeigen, wie ich im Bustakt (OB61 nur bei Isosynchronbus nutzbar, oder? Zumindest bekomme ich Compilierungsfehler die ich nicht deuten kann) in ein Array in einem DB die Daten schreibe?
Gruß
Sascha