# EAV- statt EVA-Prinzip?



## sirob (31 August 2022)

Hallo zusammen, 

eine SPS arbeitet zyklisch nach dem EVA-Prinzip. Es wird der Zustand der zu steuernden/regelnden Anlage eingelesen, es findet eine Verarbeitung statt und es werden Daten an die Anlage ausgegeben. Der Prozess startet dann von Neuem.

Wenn ich nun aber bspw. eine Modellprädiktive Regelung ablaufen lassen und davon ausgehe, dass die Verarbeitung der Daten eine Zykluszeit lang dauert, dann komme ich in die Situation, dass meine neuen Ausgabedaten gerade fertig gerechnet sind, ich diese Daten an die Anlage gebe und sofort den Zustand der Anlage einlese. Dann kann es doch zu Verwirrungen kommen, ob die Anlage schon auf diese neuen Daten reagiert hat oder sich noch im alten Zustand befindet. Wäre es nicht viel cleverer nach Verarbeitung der Daten zunächst den Zustand einzulesen und dann sofort die neuen Daten aufzuspielen, also nicht nach dem EVA- sondern nach dem EAV-Prinzip?


----------



## Mrtain (31 August 2022)

Also ich denke das EVA - Prinzip hat sich die letzten Jahrzente bewährt....


----------



## ducati (31 August 2022)

Kannst ja mittels PEB/PEW/PED lesen bzw. PAB/PAW/PAD schreiben, wann Du es für richtig hältst...


----------



## ducati (31 August 2022)

sirob schrieb:


> davon ausgehe, dass die Verarbeitung der Daten eine Zykluszeit lang dauert, dann komme ich in die Situation, dass meine neuen Ausgabedaten gerade fertig gerechnet sind, ich diese Daten an die Anlage gebe und sofort den Zustand der Anlage einlese. Dann kann es doch zu Verwirrungen kommen, ob die Anlage schon auf diese neuen Daten reagiert hat oder sich noch im alten Zustand befindet.


Die Zykluszeit Deiner SPS sollte deutlich geringer sein, als die dominierende Zeitkonstante Deiner Anlage. Dann ist es auch egal, ob die Daten vom jetzigen oder letzten Zykluszeitpunkt stammen.
Wenn das nicht der Fall ist, brauchst Du eine schnellere Steuerung.
Unabhängig der SPS-Zykluszeit brauchen auch die Analogkarten eine Zeit für die Verarbeitung welche in der Regel nochmal viel langsamer ist als die SPS...
Digitalkarten haben in der Regel eine Entprellung. Und eh nen Schütz anzieht dauert auch "ewig".


----------



## Guga (31 August 2022)

Hersteller der SPS und Feldbustyp gilt es dann auch zu betrachten wenn das Timing so wichtig wird.
E.g EtherCAT hat lese-schreib-Telegramme.

Kann man aber auch umkonfigurieten... das macht aber wirklich nur 0.1% der Nutzer.


----------



## Gerhard Bäurle (31 August 2022)

sirob schrieb:


> ... Wäre es nicht viel cleverer nach Verarbeitung der Daten zunächst den Zustand einzulesen und dann sofort die neuen Daten aufzuspielen, also nicht nach dem EVA- sondern nach dem EAV-Prinzip?


Das würde der grundsätzlichen Logik der SPS widersprechen.

E inlesen
A usgeben
V erarbeiten

Hier könnte nur ausgegeben werden, was im vorhergehenden Zyklus berechnet wurde. Und was vielleicht gar nicht mehr zu dem passt, was ich gerade eingelesen habe. Da ist die Inkonsistenz praktisch programmiert.

Als Standardverhalten taugt das sicher nicht.


----------



## DeltaMikeAir (31 August 2022)

Gerhard Bäurle schrieb:


> Da ist die Inkonsistenz praktisch programmiert.


Der erste Zyklus beim einschalten wäre sicherlich auch spannend


----------



## Blockmove (31 August 2022)

Gibt es da eigentlich irgendeinen Praxisbezug?
Wenn ich irgendetwas in Digitaltechnik mache, dann habe ich irgendwann immer Effekte dieser Art.
Zu einem Zeitpunkt bin ich dann bei den unterschiedlich langen Signallaufzeiten angekommen.

Wenn man Systeme designed, dann muss man Systemverhalten eben bei der Komponentenauswahl berücksichtigen.
Nicht immer ist eine SPS geeignet.


----------



## rlw (31 August 2022)

*OB1-Prozessabbild*
Das OB1-Prozessabbild (OB1-PA) ist in jeder CPU verwendbar. Es wird zyklisch, vor der Abarbeitung des OB1 aktualisiert. Die zyklische Programmabarbeitung erfolgt dabei in der nachfolgenden Reihenfolge:


Abarbeitung von internen Aufgaben des Betriebssystems der CPU.
Schreiben der Zustände aus dem  OB1-Prozessabbild der Ausgänge auf die Ausgänge der Baugruppen.
Einlesen der Eingangszustände aus den Baugruppen in das OB1-Prozessabbild der Eingänge.
Abarbeitung des Anwenderprogramms im OB1.
Weiter mit Punkt 1.
*Beschreibung Adressierung und Ablauf*


----------



## Blockmove (31 August 2022)

rlw schrieb:


> *OB1-Prozessabbild*
> Das OB1-Prozessabbild (OB1-PA) ist in jeder CPU verwendbar. Es wird zyklisch, vor der Abarbeitung des OB1 aktualisiert. Die zyklische Programmabarbeitung erfolgt dabei in der nachfolgenden Reihenfolge:
> 
> 
> ...


Die Beschreibung ist etwas mit Vorsicht zu geniesen.
Soweit ich weiß, werden die Ausgangsdaten nur in die Speicherbereiche für das Prozessabbild geschrieben und nicht direkt auf die Baugruppen


----------



## maxder2te (31 August 2022)

sirob schrieb:


> Hallo zusammen,
> 
> eine SPS arbeitet zyklisch nach dem EVA-Prinzip. Es wird der Zustand der zu steuernden/regelnden Anlage eingelesen, es findet eine Verarbeitung statt und es werden Daten an die Anlage ausgegeben. Der Prozess startet dann von Neuem.
> 
> Wenn ich nun aber bspw. eine Modellprädiktive Regelung ablaufen lassen und davon ausgehe, dass die Verarbeitung der Daten eine Zykluszeit lang dauert, dann komme ich in die Situation, dass meine neuen Ausgabedaten gerade fertig gerechnet sind, ich diese Daten an die Anlage gebe und sofort den Zustand der Anlage einlese. Dann kann es doch zu Verwirrungen kommen, ob die Anlage schon auf diese neuen Daten reagiert hat oder sich noch im alten Zustand befindet. Wäre es nicht viel cleverer nach Verarbeitung der Daten zunächst den Zustand einzulesen und dann sofort die neuen Daten aufzuspielen, also nicht nach dem EVA- sondern nach dem EAV-Prinzip?


Dieses EVA-Verhalten wirst du in dein Modell mit aufnehmen müssen. Ebenso die Verarbeitungszeiten der Baugruppen.


----------



## rlw (1 September 2022)

Hier im Bild sieht man wie sich Reihenfolge des Ablaufs seit 10.98 geändert hat.
Ist zwar die Beschreibung für die classic-CPU's, aber die Tia CPU's sind sicher gleich.

Also AEV .


----------



## Blockmove (1 September 2022)

Die meisten Regler werden über Zeit-OBs oder auch TechnologieFunktionen realisiert.
Damit hast du dann ja weitere Einflussmöglichkeiten.
Also mehr oder minder eine theoretische Betrachtung


----------



## rlw (1 September 2022)

Blockmove schrieb:


> Die meisten Regler werden über Zeit-OBs oder auch TechnologieFunktionen realisiert.
> Damit hast du dann ja weitere Einflussmöglichkeiten.
> Also mehr oder minder eine theoretische Betrachtung


So theoretisch ist das nicht. Die User gehen hier von  EVA Prinzip aus,


Mrtain schrieb:


> Also ich denke das EVA - Prinzip hat sich die letzten Jahrzente bewährt....


aber in Wirklichkeit ist das Prinzip ein AEV Ablauf, wenn ich den OB1 betrachte.
Technologie und Regler können natürlich anders behandelt werden, aber bei OB1 hat's sich in der Siemens-Welt ab 98 geändert.


----------



## Gerhard Bäurle (1 September 2022)

rlw schrieb:


> So theoretisch ist das nicht. Die User gehen hier von  EVA Prinzip aus,
> 
> aber in Wirklichkeit ist das Prinzip ein AEV Ablauf, wenn ich den OB1 betrachte.
> Technologie und Regler können natürlich anders behandelt werden, aber bei OB1 hat's sich in der Siemens-Welt ab 98 geändert.




```
Vorher: EVA EVA EVA ...
Jetzt:  EV AEV AEV ...
```

Was kann zwischen zwischen A und E passieren? 
Welchen Unterschied hat man in der Praxis?


----------



## PN/DP (1 September 2022)

rlw schrieb:


> So theoretisch ist das nicht. Die User gehen hier von  EVA Prinzip aus,
> 
> aber in Wirklichkeit ist das Prinzip ein AEV Ablauf, wenn ich den OB1 betrachte.
> Technologie und Regler können natürlich anders behandelt werden, aber bei OB1 hat's sich in der Siemens-Welt ab 98 geändert.


Die Änderung bewirkt lediglich, daß schon im ersten Zyklus noch vor Durchlauf des OB1 einmal die Prozessabbild-Anfangswerte auf die Ausgabebaugruppen geschrieben werden. Es bleibt aber dabei, daß sofort nach Schreiben der Ausgabewerte die Eingangswerte gelesen werden. Egal ob EVA oder AEV (was im Grunde das Gleiche ist!), der Prozess kann in den Mikrosekunden zwischen A und E noch gar nicht auf die Ausgabewerte reagiert haben, wenn die Eingabewerte gelesen werden. Die Prozessreaktionen sieht man dann in den späteren Zyklen. Und jeder Prozess reagiert anders - schneller oder langsamer. Soll nun das komplette SPS-Programm die zyklische Bearbeitung eine Zeit lang einstellen und warten, bis der letzte Prozess reagiert hat???   Wenn man sowas wirklich braucht, dann schreibt man den betreffenden Programmteil in einen eigenen Zyklus (z.B. OB3x, ggf. auch noch mit Untersetzung) und muß sich dann auch selber um die E/A-Aktualisierung kümmern.

Harald


----------



## maxder2te (1 September 2022)

Egal wie man es dreht und wendet:
Der TE hat sich wohl im universitären Umfeld mehr mit Model Predictive Control auseinandergesetzt und wird jetzt mit der Realität konfrontiert, in der sich Industriehardware nicht so verhält wie eine dSpace Box.


----------



## PN/DP (1 September 2022)

maxder2te schrieb:


> Egal wie man es dreht und wendet:
> Der TE hat sich wohl im universitären Umfeld mehr mit Model Predictive Control auseinandergesetzt und wird jetzt mit der Realität konfrontiert, in der sich Industriehardware nicht so verhält wie eine dSpace Box.


Ob den TE unsere Diskussion überhaupt noch interessiert? Es kam ja leider nicht "Du bist unser Retter, wie konnten wir das nur jahrzehntelang sooo unclever machen?" 



sirob schrieb:


> Wäre es nicht viel cleverer nach Verarbeitung der Daten zunächst den Zustand einzulesen und dann sofort die neuen Daten aufzuspielen, also nicht nach dem EVA- sondern nach dem EAV-Prinzip?


Ja klar, das ist sehr clever, wenn man in einem Zyklus zunächst die vor langer Zeit bereits verarbeiteten/berechneten Ausgabewerte ausgibt und dann "auf Vorrat" die Reaktionen berechnet für irgendwann später... 

Man kann eigentlich sehr einfach sehen, daß bei diesem "EAV-Prinzip" die Ausgabedaten nichts mit den gerade eingelesenen Eingabedaten zu tun haben, sondern mit vor längerer Zeit erhobenen und verarbeiteten alten Eingangswerten berechnet wurden. Schnelle Reaktion auf den Prozess sieht anders aus.

Harald


----------



## rlw (5 September 2022)

Hallo, ich hatte mal bei Siemens nachgefragt,  warum man 1998 das Verhalten geändert hat.
Hier die Antwort :
"Der Unterschied ist, wie in der gesendeten Grafik zu erkennen, dass früher die Ausführung des OB90 zwischen dem
Schreiben der PAA und Lesen des PAE lag.
In den CPUs nach 10/1998 ist dies nicht mehr der Fall. 
Hier findet die Ausführung des OB90 nach Schreiben von PAA, Lesen von PAE und der Abarbeitung des OB1 statt.

Was im Hinblick der geänderten Reihenfolge zu beachten ist, liegt an den Funktionen und Aufrufen in OB90 selbst.
Sie müssen hier für sich beurteilen, ob die geänderte Reihenfolge in Ihrem Fall etwas in Bezug auf die PAA und PAE ändert."


----------

