Endlos-Script (Zyklisch durchlaufend wie SPS)

Hallo Miteinander,

mal eine Frage bzw. Anregung:

IPS ist konsequent ereignissgesteuert.

Beruflich komme ich von der SPS-Seite und dort gibt es überwiegend eine zyklische Programmabarbeitung. Diese hat gerade bei umfangreichen Verknüpfungen / Verriegelung Vorteile gegenüber der Ereignissteuerung. Man braucht keine Semaphoren, spart Hilfsvariabeln und ähnliches.

Wäre es möglich in IPS eine Funktion einzubauen, die ein Script z.B. alle 200ms aufruft und es ermöglicht in PHP ähnlich einer SPS zu programmieren?

Gruß
Dieter

Schau nochmal nach.
OK, Millisekunden sind es nicht. :wink:

Da hab ich schon geschaut :wink:
Der kürzeste Zyklus ist eine 1s. Die damit verbundene Reaktionszeit ist schlichtweg zu lang.

Gruß
Dieter

Ein eigener Trigger via Skript (à la) legt wohl das ganze System lahm. :rolleyes:
Aber hier sind so viele Freaks, die werden schon eine Lösung wissen.

Erstelle ein Skript, welches alle 1s läuft und dort 5x per IPS_RunScript + 200ms warten dein Loop-Skript aufruft. Trotzdem würde ich überlegen, ob du das, was du machen willst, nicht ereignisorientiert machen kannst. Spart viele Ressourcen. :slight_smile:

paresy

Das „hilft“ mir nicht weiter.
Die Eventsteuerung wird ab einer bestimmten Anzahl von Aktionen / Scripts einfach unübersichtlich. Dies ist nicht nur bei IPS so, sondern auch bei „Profisystemen“ für 20000€ und mehr.
Hier hat eine klassische Verknüpfungssteuerung wie bei SPS eben Vorteile. Ich denke Michael und paresy wissen was ich meine.
Und eigentlich braucht es auch nicht viel um in IPS verknüfungsorientiert zu scripten. Ein zyklisch aufrufbares Script im 100ms oder 200ms sollte schon genügen.
Dinge wie Prozessabbild sind nicht unbedingt nötig.

Gruß
Dieter

@Dieter:

Vielleicht kannst Du Deine Wünsche, die hinter der Forderung nach einer Endlos-Schleife mal formulieren?

Ich kenne SPS nicht, hatte anfangs aber auch in dieser Richtung gedacht, leider geht das nicht - oder wenn, dann nur (paresy hatte da mal auf einen Thread von mir geantwortet) via Modul, das ich glaube in Delphi, geschrieben wird und dann den Funktionsumfang erweitert.

Eigentlich ist aber das, was Du machen willst, aber durch IPS schon da: IPS ist „die Endlosschleife“.

Statt dass Du nun die Logik (wann muss ich was machen, Register ausliest etc.) definierst Du ausgelöste Events, die auf irgendetwas reagieren dann Scripte aufrufen

Das entspricht woanders dem permanenten Polling eines Registers, um dann bei einer eingetretenen Änderung eine Routine laufen zu lassen.

Da Du Events auf alles setzen kannst, was „sich bewegt“, sollte eigentlich - in gewissem Rahmen - vieles möglich sein, was in einer SPS ziemlich viel Grundlagenarbeit erfordern würde …

jwka
ps. habe keine Ahnung, wie der Daumen runter da oben rein kommt … muss versehentlich auf das Icon gekommen sein!

@jwka

Eventhandling und Zyklische Bearbeitung sind in der Automatisierungstechnik unterschiedliche Programmierweisen.
Ein einfaches Beispiel anhand eines simplen Lichtschalters und einer Lampe:

Bei Eventsteuerung:
Schalter Ein -> Event -> Lampe Ein
Schalter Aus -> Event -> Lampe Aus

Bei Verknüpfungsteuerung:
Lampe := Schalter

Bei der Verknüpfungsteuerung wird eben mit logischen Verknüpfungen gearbeitet. Dies ist eben ein Unterschied zur typischen Windows-Programmierung.

Bei IPS gab es mal einen Ansatz mit sogenannten Bricks. Dies war wohl ähnlich.

Gruß
Dieter

Danke paresy,

so werd ich das mal testen.
Daß das ganze Ressourcen verschlingt, ist mir klar.

Aber vielleicht findet ja mal ne Soft-SPS Einzug in IPS :slight_smile:

Gruß
Dieter

Klar.

Und Dein Hinweis mit der Übersichtlichkeit bei vielen Events ist komplett richtig, besonders, wenn sehr viele Events (oder im schlimmsten Fall praktisch alle) auf dasselbe Script weisen (z.B. weil man mitprotokollieren will)

Ich hatte auch schon als Feature Request vorgeschlagen, dass es einen „Superevent“ geben sollte, der IMMER usgelöst wird, wenn etwas los ist. Das wäre evtl. noch mit einem „Masterevent-pro-Modul“ zu verfeinern und würde Dir vielleicht auch helfen …

Wurde aber leider abgelehnt.

jwka

Die Antwort auf deine Frage lautet schlichtweg: „Weil Windows“. Eine SPS ist auf zügige Ablaufsteuerung optimiert. Windows ist auf animierte, bunte Oberflächen optimiert. :rolleyes::smiley:

Wenn es okay wäre, dass die CPU bei 100% stünde und die grafische Oberfläche nur noch arg träge bis garnicht mehr reagiert, ja.

Gruß,

Toni

Also sorry, wir reden hier nicht von harten Echtzeitbedingungen :rolleyes:
Und nicht an allem und jedem hat Windows die Schuld.
Ich denke hier ist es eher eine Frage des Schedulers / Eventmanagers von IPS.

Gruß
Dieter