Bei einer SPS bedeutet Leistung doch, dass ich innerhalb eines isochronen Zyklus (sonst ist es keine harte Echtzeit) möglichst viele Aufgaben bearbeiten kann respektive für eine gegebene Menge von Aufgaben eine isochrone Bearbeitung weiterhin gegeben ist.
Ich würde sagen, dass folgendes Sinn macht: Du suchst dir eine Aufgabenstellung, die dir als Benchmark dient. Sagen wir mal irgendwas repräsentatives. Das setzt du in einer möglichst gleichen Art und Weise auf allen zu testenden Plattformen um. Andernfalls ist das ja wiederum nicht vergleichbar. Und dann führst du es aus und schaust, wie lange es dauert und welchen Jitter du dabei hast.
Du könntest zum Beispiel in 3 Schleifen jeweils 1000 Bitoperationen, 1000 Integer-Operationen und 1000 Gleitpunktoperationen durchführen. Danach noch ein paar Speicherbereiche umkopieren und noch andere Späße machen.
Das setzt du dann GLEICH für alle Plattformen um. Vergleichst du nur S7-Steuerungen ist das problemlos. Kannste theoretisch sogar SCL nehmen.
Willst du aber unterschiedliche Hersteller vergleichen macht es Sinn, das zu nehmen, was bei allen gleich arbeitet. Da wirst du dann bei AWL landen. Vergleichbar ist auch das aber nur bedingt, da nicht unbedingt jede Steuerung mit kompiliertem Code arbeitet. Zudem darfst du keine Herstellerspezifischen Funktionen nutzen.
Wie gesagt, für Vergleichbarkeit muss die Aufgabe gleich sein.
Und dann kannste Messungen anstellen. Bearbeitungszeit, Jitter, etc. Solltest übrigens auf den Einsatz echter I/O's verzichten....immerhin hast du dann noch Einflüsse durch verschiedene Feldbusse, verschiedene Aktualisierungszeiten und Eingangsfilter bei der Peripherie, Signallaufzeiten, etc.
Bei Step7 und OB1 heißt das: Wie groß ist meine Zykluszeit? Wie groß ist deren Schwankung? Was sind meine Grenzwerte für diese Zahlen? Wirklich isochron im Sinne von "quasi nicht vorhandener Jitter" ist der OB1 nämlich nicht ;-)
Bei Steuerungen, die grundsätzlich mit fester Zykluszeit arbeiten ist die Frage: Wie weit kann ich mit der Vorgabe der Task-Aktualisierungszeit runter gehen? Wie weit nutze ich die dann zur Verfügung stehende Prozessorzeit aus? Welchen Jitter habe ich in der Aufrufzeit?
Du kannst natürlich auch "Leistung" für deinen Anwendungsfall ander definieren. Zum Beispiel "Wie viele POUs kann ich Aufrufen" oder "Wie groß ist die max. Schachtelungstiefe" oder was auch immer. Hängt in erster Linie eben von der Fragestellung ab.
Hi Majestic,
vielen Dank für deine ausführliche Antwort.
Also ich habe ja bereits schon bischen was hinbekommen und mir auch im vorhinein gedanken gemacht.(nicht das ihr denkt ich sitze nur rum und warte bis ihr mir helft) ;-)
Ich komm nur einfach nicht weiter.......
Die Aufgaben, die ich dem System abverlange sind natürlich gleich sonst wäre ja, wie du auch gesagt hattest, ein Vergleich garnicht möglich.
In der Tat handelt es sich um eine Arbeit im Studium und die zu vergleichenden Komponenten sind SOFT- SPSen von verschiedenen Herstellern.
Die Aufgabe habe ich allerdings trotzdem in SCL geschrieben nicht in AWL, zum Einen weil es Vorgabe ist und zum Anderen besteht doch kein morz Unterschied zwischen ST und SCL?!
Siemens nennt es doch nur SCL. Klar gibt es Unterschiede und eigene Bausteine und Befehle in den verschiedenen Programmierumgebungen, aber wenn ich mich an IEC Bausteine halte funktionieren sie auch in allen Systemen.
In meinem bisherigen Programm messe ich die Ausführungszeiten für verschiedene Anwendungen, wie du auch erwähnt hast, messe ich hier 100000 Rechnungen, Typenumwandlungen usw.
Das war mir bis jetzt nur zu wenig und der Druck den ich habe , dass es für meine Arbeit nicht reicht, zerfrisst mich halt täglich. Deshalb habe ich noch nach anderen Ideen gefragt, weil ich mich vor lauter lesen teilweise in einem Fass ohne Boden bewege. (Gefühlt zumindest).
Was genau meinst du mit Speicherbereiche umkopieren?
Einfach einen Wert irgendwo anders hin oder bzw. reinkopieren???
Mit dem Jitter bin ich auch noch nicht ganz grün geworden. Wo genau tritt er den überall auf???
Meinst du damit nur die Schwankung zwischen den Zykluszeiten oder was meinst du genau?
Ich habe bisher nur was von Jitter gelesen bei der Übertragung zwischen SPS und dezentraler Peripherie!!!
Wie gesagt nochmal vielen vielen Dank an dich für die riesen Mühe.
Natürlich auch weiterhin an ducati ;-)
Gruß