Benchmark für SPS

KT82

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

ich bin neu hier im Forum und hoffe, ihr könnt mir weiterhelfen.

Ich soll ein Benchmark-Programm schreiben, was die Geschwindigkeit der SPS testen soll. Mir fehlt nur bisher leider der Ansatz, wie ich das anstellen könnte. Was würdet ihr von einem Benchmark-Programm erwarten?

Ich habe mir auch schon das Benchmark-Beispiel von LibNoDave angeschaut. Dass da irgendwas ausgelesen wird und dabei die Zeit gemessen wird, dass habe ich schon verstanden. Aber könnte mir eventuell jemand erläutern, was da genau ausgelesen wird? Vermutlich irgendwelche Datenbausteine. Da ich mich mit den ganzen Mechanismen der SPS noch nicht so gut auskenne, begreife ich nicht so richtig, was da genau abläuft.

Ich hoffe, ihr könnt mir weiterhelfen und ein paar nützliche Tipps geben, wie ich an die Sache herangehen kann. Über ein paar Links würde ich mich auch freuen.

Vielen Dank schon mal im voraus.


Gruß KT82
 
Was soll denn "gebenchmarkt" werden? DIe SPS? Die Zykluszeit der SPS? Die Bitverarbeitung? Die Wortverarbeitung? Die Arithmetik? Die Kommunikationsleistung?
 
Vorerst die Kommunikationsleistung. Aber mein Programm soll später noch etwas erweitert werden.
Die "Erweiterungen" sind aber eher innerlich zu testen, d.h. über das SPS-Programm. Von außen wird das nicht funktionieren.
Zum Thema Kommunikationsbenchmark: Wir liefern zu unserer Kommunikationsbibliothek ACCON-AGLink auch ein entsprechendes Beispiel mit. Diese macht folgendes: Es verbindet sich mit der SPS, prüft welche Datenbausteine alles vorhanden sind, sucht sich den längsten Datenbaustein aus und liest aus diesem in aufsteigenden Blockgrößen die Daten. Dabei werden mehrere Durchläufe pro Blockgröße durchgeführt und der Mittelwert gebildet. Dieses Beispiel wird im C-Quelltext mit ausgeliefert.
Damit können einfach verschieden Kommunikationswege, SPSen, Firmwarestände, Zykluszeiten und was sonst noch alles Einfluss auf den Datendurchsatz hat getestet werden.
 
Danke für die schnelle Antwort. Jetzt weiß ich zumindest, was so ein Test beinhalten könnte.

Ich hätte allerdings noch ne Frage zu deinem Beipsiel. Ich müsste dann also immer irgendein AWL-Programm in der SPS am laufen haben? Oder anders gefragt, mit einer SPS, bei der nur die Hardware konfiguriert ist, würde das ganze nicht funktionieren bzw. das Testprogramm würde keine Datenbausteine finden.
Hoffentlich ist die Frage jetzt nicht all zu trivial.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es genügt das Vorhandensein von DBs, ein Programm muss nicht ablaufen. Allerdings ändert sich die Kommunikationsleistung bei manchen SPSen mit der Zykluszeit. Dieser Einfluss sollte bei einem Benchmark natürlich auch untersucht werden. Weitere EInflussmöglichkeiten stehen ja schon in meinem früheren Beitrag. Viel Spaß bei der fünfdimensionalen Tabelle :ROFLMAO::ROFLMAO:
 
Ziemlich fragwürdig

Ich verstehe nicht, was das aussagen soll? Einige SPS antworten auf Datenanfragen genau einmal im Zyklus, die Hardware kann variieren von RS232 bis zum Giga Ethernet.

Die Seite des 2.Teilnehmers ist ebenfalls sehr Varianten reich, Power PC Chip im embedded System, Intel Atom mit Linux, Quad Core unter XP an der Grenze getacktet, eigener Controller zu Kommunikation ...

Wie will man bei so einem breiten Feld eine Aussage treffen :confused:

Mal wieder eine theoretische Studienarbeit?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Benchmark für SPS gibt es vorallem für die Verarbeitungszeit von zB 1000 Instruktionen. Ich würde mir eher mal ein "Standardprogramm" wünschen, welches zB mit einem Timer während 1s die Anzahl Durchläufe (Zyklen) zählt und wenn möglich auch die durchschnittliche Verarbeitungszeit dieser Task.

Mit einem normierten Testprogramm wäre es dann möglich die verschiedenen Hardwaren gegeneinander zu vergleichen. Die meisten Anwender wollen für die Applikation die Zykluszeiten wissen. Denn was interessiert mich eine Verarbeitungszeit im Microsekunden-Bereich, wenn ich nur alle 10ms ein Prozessabbild kriege?;)
 
Hallo,

ich bin euch für jede Anregung dankbar. Zum letzten Vorschlag muss ich aber mal ganz doof nachfragen. Die Zykluszeit bzw. Anzahl der Zyklen kann ich nicht von "außen" feststellen, oder? So wie ich Rainer Hönle verstanden habe, muss ich das über ein SPS-Programm machen. Oder gibt es eine Möglichkeit das auch von meinem PC-Programm auszulesen. Habe ja gerade festgestellt, dass man über ne SZL doch einiges auslesen kann. Aber bei der Anzahl der Durchläufe wäre ich doch etwas skeptisch.

Gruß KT82
 
Zykluszeit

Bei den CoDeSys Systemen kann man sehr detailliert auf die Zykluszeiten zugreifen, sogar der Jitter und die min und max Werte sind auslesbar.

Auch viele andere SPS kann man ohne weiteres auslesen, hier ein Screen Shot zur InterControl Digsy+ SPS in der Anlage.
 

Anhänge

  • prosyd07.JPG
    prosyd07.JPG
    74,6 KB · Aufrufe: 20
Hallo,

ich bin euch für jede Anregung dankbar. Zum letzten Vorschlag muss ich aber mal ganz doof nachfragen. Die Zykluszeit bzw. Anzahl der Zyklen kann ich nicht von "außen" feststellen, oder? So wie ich Rainer Hönle verstanden habe, muss ich das über ein SPS-Programm machen. Oder gibt es eine Möglichkeit das auch von meinem PC-Programm auszulesen. Habe ja gerade festgestellt, dass man über ne SZL doch einiges auslesen kann. Aber bei der Anzahl der Durchläufe wäre ich doch etwas skeptisch.

Gruß KT82
tja, ohne SPS-Programm kann man den Zyklus nicht feststellen. CoDeSys V2.3 stellt zB eine grafische Auswertung zur Verfügung, mit Ist, Min, Max und Jitter zum Sollwert, das funktioniert aber nur mit SPS-Programm im RUN. Ich verstehe aber die Abkürzung SZL leider nicht.:confused:
 
Zurück
Oben