Applikation optimieren
Jede Berechnung erfordert eine gewisse Rechenzeit. Dies kann zu Problemen führen, wenn sehr grosse Projekte oder grössere Operationen realisiert werden. Die gesamte Zykluszeit kann durch Umschalten des Systemmonitors oben rechts angezeigt werden.
Beachten Sie die Datenträger-Warteschlange. Die Warteschlange wird erst verwendet, wenn die Daten nicht mehr gleichzeitig gelesen und geschrieben werden können. Dies wird vor allem bei grossen Projekten oder der falschen Hardware ersichtlich. Die Warteschlange dürfte 1 % im normalen Betrieb nie überschreiten.
Funktionsweise der Applikation
Damit die Leistungsprüfung verstanden wird, muss zuerst die Funktionsweise der Applikation erläutert werden. Neben den Grundlagen zur Zykluszeit, gibt es noch erweiterte Methoden, die nur bei der SPS von Antcas so umgesetzt wurden:
- Werden keine Änderungen in einem Element erkannt, wird das gesamte Element geparkt und nicht mehr berechnet.
- Bei der Änderung von globalen Werten wird ein Doppelzyklus gefahren. Die SPS wartet dann nur eine Millisekunde.
- Es werden für die Berechnung von zeitkritischen Werten, Timeouts gesetzt.
- Die ausgehende Kommunikation (Werte senden oder speichern) erfolgt asynchron und nicht erst nach erfolgter Berechnung.
- Jede Variable ist remanent und wird vor dem Parken oder spätestens nach zwei Sekunden gespeichert.
Analyse eines Projektes
Um herauszufinden, welche Elemente der Applikation eine sehr hohe Rechenleistung beanspruchen, kann die Leistungsprüfung verwendet werden.
Tipps zur Optimierung
- Verwenden Sie nicht den Ausgang ET eines Timers TON, TOF, TP. Stattdessen kann mit UPTIME gearbeitet werden.
- Der Eingang SET von VISUSET und VISUDTSET sollte nie auf mehreren Funktionsblöcken gleichzeitig aktiv bleiben.
- Grössere oder komplexere Berechnungen, falls möglich in einem separaten Element berechnen.
- Mathematische Operationen mittels CALCULATE berechnen.
- Logger mit möglichst grossem Intervall verwenden. Zehn Minuten für eine Temperatur reichen völlig aus. Das Intervall kann auch dynamisch gesetzt werden.
- Verwenden Sie höhere Intervalle PT bei den Funktionsblöcken CTRL_PID, SHUTTER, DIMMER o.a.
- Achten Sie bei der Änderung von dynamischen Zeiteingaben darauf, dass sich diese nicht dauernd verändern. Dies kann z.B. bei RGB-Sequenzen mit dem Funktionsblock FADE der Fall sein.
- Vereinfachen Sie komplexere Aufgaben. Vor allem die Suche in Zeichenketten ist sehr rechenintensiv. Verwenden Sie anstelle von FIND und SUBSTR den Funktionsblock EXPLODE oder PREG_SPLIT. Die Werte werden entsprechend zwischengespeichert.
- Die Bearbeitung von HTTP-Abfragen kann sehr viel Speicher verwenden.
- Verringern Sie die empfangenen Telegramme. Z.B. beim Dimmen eines Wertes kann je nach Bussystem die Rückmeldung verzögert werden.
- Erhöhen Sie die Zykluszeiten der SPS.