ZottelMD
Level-1
- Beiträge
- 87
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Huhu,
ich habe mal eine Orientierungsfrage.
Ich bearbeite einen kleinen Leistungsprüfstand. Ich möchte 3 Messmodis fahren.
Während dessen geben ich mit dem DUT z. B. Vollgas und es wirkt sogesehen eine Störgröße auf die Hinterachsse ein, die die Drehzahl gern beschleunigen will. Die Antriebstechnik (S1210) wird dagegen regeln und versuchen die Solldrehzahl zu halten. Anhand der sich einstellenden Momente, kann man so Stück für Stück eine Motorkennlinie vom DUT rekonstruieren/messen.
In diesem Messmodus speicher ich die Messwerte, bzw dem Mittelwert einer 3 Sekunden Mittelung, pro Frehzahlstufe in einer MS SQL Datenbank. Also je nachdem, wie zügig man misst, vielleicht alle 1 Minute ein Wert.
Prozessdaten wie effizient speichern?
Bisher habe ich berührung gemacht mit dem Speichern von Messdaten in einem Array und dann das Array Scheibchenweise in die SD-Card der CPU transferieren (Datenlogs anlegen). Von dort kann man dann via Webbrowser die Daten/die Logs als CSV herunter laden. Der Nachteil hier ist, dass die Kommandos langsam sind und eher am Ende einer Messung ausgeführt werden sollen. Der weitere Nachteil ist, dass Flash-Speicher immer nur eine begrenzte Anzahl von Öffnen, Lesen, Schreiben, Schließen abkann. Es ist also eigentlich keine Variante, wo man viele Prozessdaten häufig (im Millissekundebereich) abspeichern will.Will ich solche häufigen Speichervorgänge ebenfalls wie im Modus 1 durch eine SQL-Datenbank realisieren (TIA v15.1...das Anwendungsbeispiel für v16 geht nicht ohne Weiteres umzusetzen), bleibt das Problem der hohen Kommunikationslast und der Tatsache, dass die Prozessvariablen im HMI ja nie so genau zur Verfügung stehen, jedenfalls nicht so schnell. Derzeit triggere ich im Messmodus 1 das VBS-Script zum Speichern der gemittelten Werte für Drehzahl und Drehmoment, und Datum / Uhrzeit mit einem Bit bei Wertänderung und hoffe natürlich, dass die Prozessvariablen entsprechend aktuell im HMI ankommen.Alternativ könnte man ja wieder alle Daten in einem Array sammeln und am Ende der Messung ein Script triggern, was die Daten aus dem Array ZEile für Zeile in die Datenbank-Tabelle schreibt.Manche reden auch davon, dass sie Rezepte vergewaltigen, mit dem Hintergrund, dass dann Werte mit einem schlag zuverlässig aktualisiert im HMI ankommen.
Wie würde ihr mit der SIEMENS-Technik häufiges Loggen von vielen Daten betreiben.Ich beabsichtige immer
Datum (String)
+ Uhrzeit (String)
+ Drehmoment Servo 1 (LREAL)
+ Drehzahl Servo 1 (LREAL)
+ Drehmoment Drehmomentmesswelle 1 (LREAL)
+ Drehzahl Drehmomentmesswelle 1 (LREAL)
+ Drehmoment Servo 2 (LREAL)
+ Drehzahl Servo 2 (LREAL)
+ Drehmoment Drehmomentmesswelle 2 (LREAL)
+ Drehzahl Drehmomentmesswelle 2 (LREAL)
zu loggen. 10 Spalten.
Die Strings sind im Datum 4+1+2+1+2 = 10 Byte lang (10 Character "YYYY-MM-DD") und in der Zeit 2+1+2+1+2+1+6 = 15 Byte lang (15 Charakter "HH:MM:SS.xxxxxx). LREAL ist ja jeweils 8 Byte groß. Heißt pro Zeile mindestens 89 Byte an payload.
Wie wäre ein effizientes Speicherungskonzept, was die normale Profinet-Kommunikation zwischen PLC und S120 so wenig wie möglich beeinflusst? Wie realisiert ihr solche LoggingAufgaben?
Gruß Basti
p.s.:
- die DUT's sind Bambini GoKarts (max. 4.8 kW)
- Anlagenübersicht als Foto anbei
- Prüfstandsanlage:
1516 CPU
1 x TM_PosInput2
1 x CU320
1 x Rückspeiseeinheit
2 x Single Motor Module
2 x 1FT7-...-Servos
2 x KISTLER Drehmomentmesswellen
ich habe mal eine Orientierungsfrage.
Ich bearbeite einen kleinen Leistungsprüfstand. Ich möchte 3 Messmodis fahren.
- Messmodus 1 - konstante Drehzahl:
Während dessen geben ich mit dem DUT z. B. Vollgas und es wirkt sogesehen eine Störgröße auf die Hinterachsse ein, die die Drehzahl gern beschleunigen will. Die Antriebstechnik (S1210) wird dagegen regeln und versuchen die Solldrehzahl zu halten. Anhand der sich einstellenden Momente, kann man so Stück für Stück eine Motorkennlinie vom DUT rekonstruieren/messen.
In diesem Messmodus speicher ich die Messwerte, bzw dem Mittelwert einer 3 Sekunden Mittelung, pro Frehzahlstufe in einer MS SQL Datenbank. Also je nachdem, wie zügig man misst, vielleicht alle 1 Minute ein Wert.
- Messmodus 2 - konstantes Lastmoment durch Servos
- Messmodus 3 - konstante Beschleunigung
Prozessdaten wie effizient speichern?
Bisher habe ich berührung gemacht mit dem Speichern von Messdaten in einem Array und dann das Array Scheibchenweise in die SD-Card der CPU transferieren (Datenlogs anlegen). Von dort kann man dann via Webbrowser die Daten/die Logs als CSV herunter laden. Der Nachteil hier ist, dass die Kommandos langsam sind und eher am Ende einer Messung ausgeführt werden sollen. Der weitere Nachteil ist, dass Flash-Speicher immer nur eine begrenzte Anzahl von Öffnen, Lesen, Schreiben, Schließen abkann. Es ist also eigentlich keine Variante, wo man viele Prozessdaten häufig (im Millissekundebereich) abspeichern will.Will ich solche häufigen Speichervorgänge ebenfalls wie im Modus 1 durch eine SQL-Datenbank realisieren (TIA v15.1...das Anwendungsbeispiel für v16 geht nicht ohne Weiteres umzusetzen), bleibt das Problem der hohen Kommunikationslast und der Tatsache, dass die Prozessvariablen im HMI ja nie so genau zur Verfügung stehen, jedenfalls nicht so schnell. Derzeit triggere ich im Messmodus 1 das VBS-Script zum Speichern der gemittelten Werte für Drehzahl und Drehmoment, und Datum / Uhrzeit mit einem Bit bei Wertänderung und hoffe natürlich, dass die Prozessvariablen entsprechend aktuell im HMI ankommen.Alternativ könnte man ja wieder alle Daten in einem Array sammeln und am Ende der Messung ein Script triggern, was die Daten aus dem Array ZEile für Zeile in die Datenbank-Tabelle schreibt.Manche reden auch davon, dass sie Rezepte vergewaltigen, mit dem Hintergrund, dass dann Werte mit einem schlag zuverlässig aktualisiert im HMI ankommen.
Wie würde ihr mit der SIEMENS-Technik häufiges Loggen von vielen Daten betreiben.Ich beabsichtige immer
Datum (String)
+ Uhrzeit (String)
+ Drehmoment Servo 1 (LREAL)
+ Drehzahl Servo 1 (LREAL)
+ Drehmoment Drehmomentmesswelle 1 (LREAL)
+ Drehzahl Drehmomentmesswelle 1 (LREAL)
+ Drehmoment Servo 2 (LREAL)
+ Drehzahl Servo 2 (LREAL)
+ Drehmoment Drehmomentmesswelle 2 (LREAL)
+ Drehzahl Drehmomentmesswelle 2 (LREAL)
zu loggen. 10 Spalten.
Die Strings sind im Datum 4+1+2+1+2 = 10 Byte lang (10 Character "YYYY-MM-DD") und in der Zeit 2+1+2+1+2+1+6 = 15 Byte lang (15 Charakter "HH:MM:SS.xxxxxx). LREAL ist ja jeweils 8 Byte groß. Heißt pro Zeile mindestens 89 Byte an payload.
Wie wäre ein effizientes Speicherungskonzept, was die normale Profinet-Kommunikation zwischen PLC und S120 so wenig wie möglich beeinflusst? Wie realisiert ihr solche LoggingAufgaben?
Gruß Basti
p.s.:
- die DUT's sind Bambini GoKarts (max. 4.8 kW)
- Anlagenübersicht als Foto anbei
- Prüfstandsanlage:
1516 CPU
1 x TM_PosInput2
1 x CU320
1 x Rückspeiseeinheit
2 x Single Motor Module
2 x 1FT7-...-Servos
2 x KISTLER Drehmomentmesswellen