19.11.2014 08:18 | |
Beigetreten: 24.06.2009 Letzter Bes: 24.10.2024 Beiträge: 6 Bewertung:
|
Hallo, wie sind eure Erfahrungen bezüglich der Zykluszeiten nachdem ihr Projekte von S7 classic nach TIA migriert habt? Nachdem ich mein migriertes Projekt soweit wieder am Laufen hatte, fiel irgendwann die Zykluszeit auf, welche sich mehr als verdoppelt hat, von ~7ms. in der 315-2 PN/DP auf 15-16 ms. in der 1513-1 PN. Hört sich erstmal nicht nach viel an, bedeutet bei unseren Maschinen aber bei 1440° Auflösung des Hauptantriebs und 25 Takten pro Minute, daß sich der Antrieb in 16ms 9,6° bewegt und das ist z.B. beim Auftragen von Heissleim schon sehr ungenau, wenn eine gleichbleibende Leimstrichlänge gefordert ist. Ich habe, soweit vom Aufwand her vertretbar, alte DB's von absoluter Adressierung auf symbolisch umgestellt, was leider nicht immer eine schöne Lösung darstellt, so waren zum Beispiel meine E-Stop Merker bitweise im DB angelegt und ich konnte absolut das ganze Byte bzw. Wort abfragen ob einer der E-Stops betätigt wurde oder nicht (die sicherheitsrelevante Auswertung macht hier ein PNOZ Multi). Genauso wurden bei Anlagenneustart alle Bits auf null gesetzt, ich musste nur eine Null per move-befehl ins Wort schreiben und somit waren alle Einzelbits entsprechend gesetzt. Also schaut man sich um was für Möglichkeiten es noch gibt, aber weder ein Array of bool oder eine entsprechende UDT lassen sich so ansprechen und bearbeiten wie das absolut adressiert möglich war. Blieben also noch die Varianten jedes Bit einzeln auszuprogrammieren oder aber das Ganze einfach als Wort anzulegen und dann per slice-Zugriff zu programmieren - das finde ich nicht so schön, da mir dann die eindeutige Symbolik fehlt. Aber das nur am Rande, denn eigentlich bin ich ja auf der Suche nach Zykluszeit. Gibt es Erfahrungen, welcher S7 classic-code besonders viel Performance auf der neuen Steuerung benötigt, vielleicht die alten Timer oder Counter? Der Programmierleitfaden für 1500er Steuerungen ist ja mehr ein Anhalt dafür wie man ein neues Projekt programmieren sollte, aber bei der Bearbeitung von migrierten Projekten eher mau. Das ganze Programm neu aufzusetzen scheitert erstmal an der Zeit und den damit verbunden Kosten, dafür ist das Ganze etwas zu umfangreich. Wir nutzen by the way TIA V13 - alle Updates installiert. Grüsse wernersens |
Zuletzt bearbeitet von: wernersens am: 19.11.2014 08:19 |
|
19.11.2014 09:28 | |
Beigetreten: 13.06.2006 Letzter Bes: 17.09.2024 Beiträge: 123 Bewertung:
|
Hallo wernersens, ich mache mal den Anfang: ich habe mal erlebt, dass direkte Peripheriezugriffe (sprich L: PEW) und das in einer Schleife auf einer S7-1500 sehr viel Performance gefressen haben. Da es keine Notwendigkeit gab, am Prozessabbild vorbei zuzugreifen, hat das Faktoren in der Performance gebracht. An der Stelle ein Hinweis: bei der S7-1500 liegen alle IOs im Prozessabbild, daher gibt es keine Notwendigkeit z.B. für Analogeingänge mittels Peripheriezugriff (L "Tag_1":P) zuzugreifen. Vielleicht hilft es. not_my_fault |
Für diesen Beitrag bedanken sich
2 Benutzer |
20.11.2014 09:02 | |
Beigetreten: 24.06.2009 Letzter Bes: 24.10.2024 Beiträge: 6 Bewertung:
|
Danke für die Antwort, dazu hätte ich noch eine Frage. not_my_fault hat recht damit, dass nun alle IOs im Prozessabbild liegen; wenn ich nun einen DP normslave habe, kann ich ja unter PLC Variablen direkt eine Variable anlegen die eben auf dessen IO Bereich "zeigt". Sprich, der Slave setzt sich aus mehreren Segmenten zusammen, z.b. 1 word input [E-Adresse 700..701], 1 word output[A-Adresse 700-701], analog dazu lege ich z.B. eine Variable "Slave_Input %EW700" und eine Variable "Slave_Output %AW700" an, welche ich direkt im Programm verwenden kann. Man hat doch früher die Daten per DPRD_DAT und DPRW_DAT z.B. in/aus einen Global DB geschrieben/gelesen um sie zu verwenden. Kann sich die eine oder andere Variante negativ auf die Zykluszeit auswirken bzw. welches ist der Vor- oder Nachteil dieser beiden Lösungen? |
24.11.2014 14:13 | |
Beigetreten: 13.06.2006 Letzter Bes: 17.09.2024 Beiträge: 123 Bewertung:
|
Hallo wernersens, die Anweisungen "DPRD_DAT" und "DPWR_DAT" brauchst Du meiner Meinung nach immer nochwenn Du Daten mit mehr als 8 Byte (z.B. LWORD, größter Datentyp bei der S7-1500) konsistent lessen willst. Da die Anweisungen gerechnet werden müssen, würde ich nach Möglichkeit auf den Einsatz verzichten. Wie gesagt: wenn möglich! Ich hoffe, es hilft. not_my_fault |
25.11.2014 08:42 | |
Beigetreten: 18.02.2013 Letzter Bes: 12.03.2024 Beiträge: 102 Bewertung:
|
Eine mögliche Ursache ist die Einstellung der Kommunikationslast in den Hardwareeigenschaften der CPU. Bei S7-300 CPUsist die Kommunikationslast default auf 20% eingestellt, bei S7-1500 CPUs ist sie default auf 50% eingestellt. Für Vergleiche von Zykluszeiten mussdie Einstellung natürlich identisch sein, ansonsten vergleicht man Äpfel mit Birnen. Die Zykluszeiten kann man verkürzen, indem man die Kommunikationslast niedriger einstellt. Natürlich verringert sich damit auch die Kommunikationsleistung der CPU, aber das muss ja nicht in jedem Fall ein Problem sein. |
Folgen Sie uns auf