# EXIT Programmteil in B&R Automation Studio



## louissz (16 Juli 2021)

Hallo zusammen,

ich bin Student und habe einen ST-Code für den Betrieb eines Motors im zyklischen Programmteil geschrieben. Nun sollen Einstellungen wie beispielsweise die Anlaufzeit des Motors gespeichert werden, und wieder abrufbar sein, wenn die Steuerung neu gestartet wird. Dafür benutzt man dann ja den Exit-Programmteil soweit ich das verstanden habe. Könnte mir jemand weiterhelfen, wie ich die Speicherung der Daten beim Ausschalten der Steuerung im Exit-Programmteil abbilde?

Danke im voraus!


----------



## maxder2te (24 Juli 2021)

Soweit ich mich an den As-Kurs erinnern kann wird Exit nicht beim Ausschalten der Steuerung aufgerufen, sondern beim Löschen eines Tasks von der Steuerung, weil z. B. Ein Programm - Update geladen wird.
Bevor du dich mit EXIT-Routinen und Daten wegspeichern plagst solltest du die Einstellungen, falls es nicht viele sind, in eine Datenstruktur zusammen fassen und diese in den Permanentspeicher legen.


----------



## pwolfing (16 November 2021)

Hi,

Du kannst in den globalen Variablen Retain-Variablen anlegen. Diese Werte werden bei einem Spannungsausfall gespeichert.
In deinem Init-Programm musst du die Laufzeitvariable mit dem Wert der Retainvariable schreiben. 
Dann startest du immer mit den letzten Werten.

LG


----------



## maxder2te (16 November 2021)

pwolfing schrieb:


> Hi,
> 
> Du kannst in den globalen Variablen Retain-Variablen anlegen. Diese Werte werden bei einem Spannungsausfall gespeichert.
> In deinem Init-Programm musst du die Laufzeitvariable mit dem Wert der Retainvariable schreiben.
> ...


Wozu soll das gut sein? 
Retain ist retain, also direkt mit retain - Variablen arbeiten und nicht lange herumkopieren.... Mit sind in As keine Variablen bekannt die man nicht retain setzen könnte, solange man genug Speicher hat


----------



## pwolfing (16 November 2021)

Achja da habe ich etwas verwechselt. Im Init-Teil setzte ich die Variable auf einen Startwert falls sie gleich Null wäre. Da habe ich gerade falsch gedacht.


----------



## GeWer (21 November 2021)

Vielleicht solltest du in diesem Zusammenhang auch über ein Rezeptsystem nachdenken, falls du nicht bei größeren Änderungen oder Projektinstallationen die Werte neu eingeben willst?

Mit MappRecipe geht das mit wenigen Programmzeilen.


----------



## maxder2te (21 November 2021)

GeWer schrieb:


> Vielleicht solltest du in diesem Zusammenhang auch über ein Rezeptsystem nachdenken, falls du nicht bei größeren Änderungen oder Projektinstallationen die Werte neu eingeben willst?
> 
> Mit MappRecipe geht das mit wenigen Programmzeilen.


Mit Watch-Tabellen geht das ohne eine einzige Programmzeile. 
Rezepte zielen eigentlich auf das umschalten von Datensätzen ab, und nicht auf das Speichern von Einstellwerte.


----------



## GeWer (22 November 2021)

maxder2te schrieb:


> Mit Watch-Tabellen geht das ohne eine einzige Programmzeile.
> Rezepte zielen eigentlich auf das umschalten von Datensätzen ab, und nicht auf das Speichern von Einstellwerte.


Ok, der Aufruf von MpRecipeXml in KOP ist keine Programmzeile 😉

In verschiedenen Projekten werden Maschineneinstellwerte gerne in Fixdaten über MappRecipe gespeichert.


----------

