Sonstiges Schnellligkeit Analogbaugruppen messen

toto45

Level-1
Beiträge
65
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich möchte zwei verschiedene Steuerungen auf deren Schnelligkeit im Hinblick auf Analogwertverarbeitung vergleichen. Dazu gebe ich mit einem Funktionsgenerator auf jede Steuerung ein Signal auf einen analogen Ausgang. Dieses Signal lese ich ein und gebe es genau so am Analogausgang wieder aus und vergleiche die drei Signale an einem Osszi. Ich habe es bisher so gemacht, dass ich in einem Weckalarm OB alle 500 µs den Peripheriestatus auslese und entsprechend den Ausgang aktualsiere. Jedoch kann ich so die zwei Steuerungen ja nur bedingt vergleichen, da ich ja nicht weiß das beide zum gleichen Zeitpunkt abtasten. Gibt es dazu bessere Möglichkeiten??
 
Zuletzt bearbeitet von einem Moderator:
Jedoch kann ich so die zwei Steuerungen ja nur bedingt vergleichen, da ich ja nicht weiß das beide zum gleichen Zeitpunkt abtasten.

Was hat das mit dem Abtastzeitpunkt zu tun?

Das Sinussignal vom Signalgenerator sollte eine niedrige Frequenz haben, vielleicht 1Hz. Aus der Phasenverschiebung des originalen Signals und dem Signal am AA der SPS kannst Du auf die Bearbeitungszeit schliessen... weiss ja nicht wie Du das bisher gemacht hast...

Jedenfalls ist das aber die Gesamtzeit=AE+Bus+Zyklus+Bus+AA

Gruß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich ein Rechteckpuls als Signal gebe kann es ja sein das die eine Steuerung kurz vor der steigenden Flanke abtastet und noch den Wert null erfasst die andere Steuerung kann kurz nach der steigenden Flanke abtasten und erfasst schon den Wert 1. Ich habe gelesen, dass es Hardware Interrupt gibt die wenn ich es richtig verstanden habe beim Erkennen einer Flanke einen OB anstoßen. Damit wäre meine Messung doch genauer oder???
 
Im Übrigen habe ich dieselbe Messung mit den digitalen Ein- und Ausgängen vor und habe dabei ja das selbe Problem....
 
Wenn ich ein Rechteckpuls als Signal gebe

Nimm Sinus für Analog und alles wird gut.

für Digital geht natürlich nur Rechteck.

Das Problem mit dem Zyklus ist immer da. Es ist ein generelles Problem jedes abtastenden/zyklischen Systems. Deine Zeitmessung bzw. die Programmabarbeitung ist immer nur auf +/- einen halben Zyklus genau. Wenn Du viele Messungen machst solltest Du diese Schwankung auch sehen. bzw. bei ner Fehlerrechnung betrachten.

Für ne praktische Anwendung sind halt Abtatstheorem bzw. Echtzeitfähigkeit die zu beachtenden Schlagworte.

Ich habe gelesen, dass es Hardware Interrupt gibt die wenn ich es richtig verstanden habe beim Erkennen einer Flanke einen OB anstoßen. Damit wäre meine Messung doch genauer oder???

Was willst Du denn messen? Die komplette Bearbeitungszeit oder die Zeit der E/A-Baugruppe

Gruß.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

was erwartest du dir eigentlich von deinen Messungen?
Was ist der Zweck der ganzen "Übung"?

Hast du dir schon die Handbücher zu deinen Baugruppen angesehen?
Hier (Kapitel 5.5 und andere) kannst du dich mal ein wenig einlesen wie die Baugruppen arbeiten.

Hab gerade bemerkt dass du ja mit der neuen 1500er arbeitest. Aber dazu wird es auch die passenden Handbücher geben.

godi
 
Zuletzt bearbeitet:
Ich möchte nur die Zeit der E/A Gruppen ermitteln und vergleichen, so dass ich sagen kann Steuerung A reagiert schneller auf das Eingangssignal als Steuerung B. Ich habe bei dieser Messung ja lediglich das Programm und auch die Aktualsierung des Prozessabbildes im Weckalarm OB. Der OB1 ist leer. Ich habe deswegen immer noch ein Verständnissproblem weil ich denke das der Abtastzeitpunkt beim Vergleich relevant ist.
 
Hast du schon Messungen durchgeführt?
Welche Werte bekommst du denn?

Natürlich fließt die Zeit wann Abgetastet wird (Zykluszeit der Baugruppe) auch mit ein.
Steht aber alles in deinem Handbuch zur Baugruppe. (Wenn du das schon gelesen hast)
Höchstwahrscheinlich wird aber bei Analogbaugruppen nicht deine 500µs und die Abtastzeit stark ins Gewicht fallen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Digitaleingang/ausgang VIPA: 100-570 µs Verzögerung Siemens: 200-560 µs Analogeingang/ausgang VIPA: 740-1150 µs Siemens: 200-350 µs Wobei ich bei den Messungen das Schwanken der ersten Flanke ausgewertet habe denn je nach OB Aufruf (Jitter) war das ganze nochmal + 500 µs versetzt.
 
Ich möchte nur die Zeit der E/A Gruppen ermitteln und vergleichen, so dass ich sagen kann Steuerung A reagiert schneller auf das Eingangssignal als Steuerung B.
Das kann und wird nur bei speziellen EA- Baugruppen der Fall sein, wobei ich die 1500er jetzt nicht kenne.
Die meisten DE Baugruppen haben eine Eingangsverzögerung weit über den 500µs.
Bei AE Baugruppen ist die Wandlungszeit, bis auf wenige Ausnahmen ebenfalls weit höher.
Die Steuerungen werd daher sowieso gleich schnell reagieren.

Anmerkung:
Persönlich verstehe ich das ganze benchmarken bei SPS Steuerungen aber ohnehin nicht, weil es im Regelfall keine Bedeutung hat und im Spezialfall eben Speziallösungen gefunden werden müssen.
Fälle wo SPSn scheitern gibt es sicher, aber das sind dann eben meist keine SPS- Anwendungsgebiete.
Was nutzt es wenn ich einen Analogwert in 100µs eingelesen und verarbeitet habe aber der Analogwertgeber ein PT-Glied am Ausgang sitzen hat? Auch die Geber haben ja Wandlungszeiten auf der Ausgangsseite.
 
Ich möchte nur die Zeit der E/A Gruppen ermitteln und vergleichen, so dass ich sagen kann Steuerung A reagiert schneller auf das Eingangssignal als Steuerung B.

Der Satz widerspricht sich insich...

Wenn Du A mit B vergleichen willst, musst Du auch die gesamte Kette betrachten, incl. der Programmbearbeitung. Wenn Du nur die Zeiten der EA-Baugruppe bestimmen willst, wird das schwierig, da Du die nicht separat messen kannst. Das geht höchstens indirekt, indem Du versuchst Teilzeiten der gesamten Kette irgendwie zu bestimmen und dann von der Gesamtzeit subtrahierst...

Aber der Sinn der ganzen Aktion würde mich auch interessieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Analogeingang/ausgang Siemens: 200-350 µs

Das kann ich nicht glauben! Ich hab grad zwar nur kurz ins 1500 Handbuch geschaut, aber ich denke das liegt auch hier eher im ms-Bereich...

https://eb.automation.siemens.com/mall/de/de/Catalog/Products/10204174?tree=CatalogTree

Irgendwas machst Du falsch...

wie hoch ist die Eingangsfrequenz des Signals?

Welche Siemens Baugruppen setzt Du ein?

Gruß.
 
Zuletzt bearbeitet:
Digitaleingang/ausgang VIPA: 100-570 µs Verzögerung Siemens: 200-560 µs Analogeingang/ausgang VIPA: 740-1150 µs Siemens: 200-350 µs Wobei ich bei den Messungen das Schwanken der ersten Flanke ausgewertet habe denn je nach OB Aufruf (Jitter) war das ganze nochmal + 500 µs versetzt.


Ein paar Anmerkungen:


Messung:
Nach Möglichkeit sollte die Funktion zum Überlagern aller Messungen im Oszilloskop aktiviert sein damit bei diesen Messungen der Best und Worst-Case besser erfasst wird und es sollten schon etliche 1000 Messdurchgänge erfolgen.
Außerdem spielt es auch ein große Rolle, was auf der Steuerung noch so läuft (z.B. ist ein HMI oder PC angeschlossen, werden SFCs im Anwenderprogramm aufgerufen...)
Bei den besseren Scopes gibt es auch eine Statistikfunktion mit der man dann die Mittelwerte und Ausreißer korrekt in Zahlen fassen kann.


Messung Digitaleingang auf Digitalausgang:

Variante A (nur möglich mit Alarmfähigen Digitalen Eingängen, bei analogen kommen zuviele andere Faktoren mit rein):
Prozessalarm (OB40) durch den Eingang auslösen und Ausgang schalten: Bei VIPA gibt es den Speedbus, dort sind dann Zeiten von <150µs erreichbar. Bei normalen Baugruppen sind eher 250-500µs zu erwarten (wie bei SIEMENS) wobei die Werte auch zwischen den Firmwareversionen schwanken.

Variante B: (Abtastung im Weckalarm):
Zeiten zwischen den Aufrufen des Weckalarms:
VIPA 250µs (OB28 ): SIEMENS 1516: 500µs:
Dann kommt die Zeit für den Zugriff auf die Digitale oder Analoge Baugruppe:
Bei VIPA: Speedbus Digital ca. 30µs, Analog In gibt es ein Modul mit 25µs Abtastzeit für alle 8 Kanäle, bei SIEMENS 1500 125µs für einen Kanal, wird langsamer bei mehr Kanälen. Bei den Analogen Ausgängen: SIEMENS 1500: 125µs; VIPA hat hier keinen schnellen Ausgang als Produkt deswegen müsste eine SIEMENS 6ES7332-7ND02-0AB0 Baugruppe mit <200µs Wandlungszeit benutzt werden.
 
Hallo, im Anhang habe ich eine Messung beigefügt in der ich alle 250µs in einem Weckalarm den Analogeingang per Direktzugriff auslese und den Ausgang per Direktzugriff enstprechend aktualisiere. In grün ist das Eingangssignal vom Funktionsgenerator (100 Hz +-10V) dargestellt. In rot die Siemens und in blau die VIPA Steuerung. Die ansteigende kurve bei der VIPA Steuerung kommt daher das ich dort die Glättung nicht ganz ausschalten konnte. Bei der Siemens ist diese komplet ausgeschaltet. Die Messung ist etwa 10min lang gelaufen und das Osszi hat alle Kurven überlagert. Nun meine Erkenntnisse:
die Zeit bis zum ersten Anstieg ist eine feste Verzögerung. Ich habe selbe Messung mit Weckalarm alle 500µs und 1000µs gemacht. Diese Zeit ist immer konstant. Dies ist die Zeit, welche die Steuerung benötigt um den Eingang zu lesen und den Ausgang zu aktualisieren. Somit sehe ich das die Siemens Steuerung schneller ist. Der breite Bereich besteht zum einen aus der Zeit des Weckalarms, weil der Abtastzeitpunkt zum Eingangssignal variiert. Wenn ich jeweils die Zeit des Weckalarms von der Breite des gefüllten Bereiches (bei 250/500/1000µs) abziehe erhalte ich einen etwa konstanten Wert für beide Steuerungen. Dies ist der Jitter der Steuerung. Sind die Erkenntnisse so richtig oder hat jemand eine andere Meinung???
 

Anhänge

  • Vergleich_analog_in_out_20VPP_100Hz_250us.BMP
    225,1 KB · Aufrufe: 30
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, im Anhang habe ich eine Messung beigefügt in der ich alle 250µs in einem Weckalarm den Analogeingang per Direktzugriff auslese und den Ausgang per Direktzugriff enstprechend aktualisiere. In grün ist das Eingangssignal vom Funktionsgenerator (100 Hz +-10V) dargestellt. In rot die Siemens und in blau die VIPA Steuerung. Die ansteigende kurve bei der VIPA Steuerung kommt daher das ich dort die Glättung nicht ganz ausschalten konnte. Bei der Siemens ist diese komplet ausgeschaltet. Die Messung ist etwa 10min lang gelaufen und das Osszi hat alle Kurven überlagert. Nun meine Erkenntnisse:
die Zeit bis zum ersten Anstieg ist eine feste Verzögerung. Ich habe selbe Messung mit Weckalarm alle 500µs und 1000µs gemacht. Diese Zeit ist immer konstant. Dies ist die Zeit, welche die Steuerung benötigt um den Eingang zu lesen und den Ausgang zu aktualisieren. Somit sehe ich das die Siemens Steuerung schneller ist. Der breite Bereich besteht zum einen aus der Zeit des Weckalarms, weil der Abtastzeitpunkt zum Eingangssignal variiert. Wenn ich jeweils die Zeit des Weckalarms von der Breite des gefüllten Bereiches (bei 250/500/1000µs) abziehe erhalte ich einen etwa konstanten Wert für beide Steuerungen. Dies ist der Jitter der Steuerung. Sind die Erkenntnisse so richtig oder hat jemand eine andere Meinung???

Danke für die Messung:
Folgende Fragen:
- Welche Analoge Eingangsbaugruppe bzw. Ausgangsbaugruppe hängt an der VIPA CPU?
- Mir ist es nicht gelungen eine 1516 SIEMENS CPU mit einem 250µs Weckalarm und TIA V12 zu konfigurieren (bei 500 µs meckert TIA V12),
Bekomme ich da einen Tipp wie ich den 250µs Weckalarm herbekomme?

Die Zeit bis zum ersten Anstieg hängt nicht nur von der CPU ab, sondern auch von der internen Verarbeitungszeit im Analogeingang und Ausgang:
Zeit total (minimum) = Zeit im Eingang (ist von der konfigurierten Kanalzahl abhängig) + Zeit in CPU einschließlich Rückwandbusübertragungszeit + Zeit in der Ausgangsbaugruppe (kann auch von der konfigurierten Kanalzahl abhängig sein)
 
Bei der VIPA CPU sind kombinierte Ein- und Ausgänge vorhanden. Es handelt sich um die CPU314SC.
Ja es ist richtig dass bei der Siemens Steuerung nur ein Weckalarm mit 500 µs parametriert werden kann. Ich habe zwei diese Weckalarm OB´s mit 500µs eingefügt wobei ich bei einem eine Phasenverschiebung von 250 µs eingestellt habe. Somit erreiche ich insgesamt den Takt von 250µs
 
Bei der VIPA CPU sind kombinierte Ein- und Ausgänge vorhanden. Es handelt sich um die CPU314SC.
Ja es ist richtig dass bei der Siemens Steuerung nur ein Weckalarm mit 500 µs parametriert werden kann. Ich habe zwei diese Weckalarm OB´s mit 500µs eingefügt wobei ich bei einem eine Phasenverschiebung von 250 µs eingestellt habe. Somit erreiche ich insgesamt den Takt von 250µs

Danke für die 250µs-Info!

Die in der 314SC intetrierten Analog- Ein/Ausgänge sind für diese Messung nicht wirklich gut, da es sich hierbei NICHT um schnelle Analogkanäle handelt! (Auch der digitalteil dieser CPU ist nicht so schnell wie SpeedBusmodule)
Dadurch ist das SIEMENS Paket (CPU + Analogmodule) deutlich im Vorteil!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aus den Datenblättern von Siemens habe ich entnommen:
Grundausführungszeit Analoeingang : 62,5 µs
Wandlunsgzeit Analogausgang 50 µs
Dies ergibt in Summe 112µs. Ich habe eine minimale Verzögerung von 136 µs gemessen. Stecken darin diese 112µs plus noch interne CPU Befehlszeiten?
Wie sieht es mit dem Jitter aus? Ist die Berechnung:
Breite des Ausgangsiganl - Weckalarm = Jitter
korrekt?
 
Aus den Datenblättern von Siemens habe ich entnommen:
Dies ergibt in Summe 112µs. Ich habe eine minimale Verzögerung von 136 µs gemessen. Stecken darin diese 112µs plus noch interne CPU Befehlszeiten?

Würde ich auch so sehen.


Aus den Datenblättern von Siemens habe ich entnommen:
Wie sieht es mit dem Jitter aus? Ist die Berechnung:
Breite des Ausgangsiganl - Weckalarm = Jitter
korrekt?

Kleine Anpassung:
Jitter der CPU = (Breite des Ausgangssignals - Weckalarmzeit) - Jitter der analogen Eingänge - Jitter der analogen Ausgänge

Um den Jitter der CPU zu extrahieren wäre eine gegenmessung mit digitalen Modulen sinnvoll,
da deren Jitter üblicherweise deutlich kleiner ist.
 
Ergebniss analog:
Breite Ausgangssignal - Weckalarm = 235µs
Ergebniss digital:
Breite Ausgangssignal - Weckalarm = 102µs
Wobei bei den digitalen Baugruppen eine feste Verzögerung von 108µs besteht. Wie komme ich nun an den Jitter der CPU?
 
Zurück
Oben