-> Hier kostenlos registrieren
Hallo zusammen!
Ich möchte den Rezepturverwalter zusätzlich zu "Retain Persistent"-Variablendefinition verwenden um Zählerwerte (Betriebsstunden) und Zeitschaltpläne sicher auf dem PLC abzuspeichern, aber ich verstehe nicht genau, wie ich folgendes machen könnte oder welche Befehle ich dazu bräuchte, vorallem konnte ich über die Simulation nicht nachvollziehen ob überhaupt die Rezepte abgespeichert werden.
Ich habe im Normalfall zwei Rezepte: R0_Recovery (Backup beim Herunterfahren) und R1_Default (Standart/voreingestellte Werte).
Beim Start sollen die Werte von der Rezeptdatei in die Variablen geschrieben werden und beim Stop sollen die Werte von den Variablen in die Rezeptdatei zurückgespeichert werden.
Mit diesem Code habe ich es versucht (hat nicht geklappt...):
Das Beispiel von Codesys hilft mir bei meinem Problem nicht weiter, dort wird etwas anderes gemacht als das was ich möchte.
Auch das Lesen in der Rezepturdefinition in e!Cockpit macht mir keinen Sinn mit dem Fehler "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" und "Interactive call not allowed in this state", ich komm überhaupt nicht weiter was ich falsch mache.
TL;DR meine Fragen:
BBM
Ich möchte den Rezepturverwalter zusätzlich zu "Retain Persistent"-Variablendefinition verwenden um Zählerwerte (Betriebsstunden) und Zeitschaltpläne sicher auf dem PLC abzuspeichern, aber ich verstehe nicht genau, wie ich folgendes machen könnte oder welche Befehle ich dazu bräuchte, vorallem konnte ich über die Simulation nicht nachvollziehen ob überhaupt die Rezepte abgespeichert werden.
Ich habe im Normalfall zwei Rezepte: R0_Recovery (Backup beim Herunterfahren) und R1_Default (Standart/voreingestellte Werte).
Beim Start sollen die Werte von der Rezeptdatei in die Variablen geschrieben werden und beim Stop sollen die Werte von den Variablen in die Rezeptdatei zurückgespeichert werden.
Mit diesem Code habe ich es versucht (hat nicht geklappt...):
Code:
(* Wird beim onStart Event ausgeführt *)
RecipeManCommands.LoadAndWriteRecipe(
RecipeDefinitionName := 'Zaehler',
RecipeName := 'R0_Recovery'
);
(* Wird beim onStop Event ausgeführt *)
RecipeManCommands.ReadAndSaveRecipe(
RecipeDefinitionName := 'Zaehler',
RecipeName := 'R0_Recovery'
);
Auch das Lesen in der Rezepturdefinition in e!Cockpit macht mir keinen Sinn mit dem Fehler "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" und "Interactive call not allowed in this state", ich komm überhaupt nicht weiter was ich falsch mache.
TL;DR meine Fragen:
- Wie kann man Variablenwerte auf dem PLC in eine Rezeptur(datei) in der PLC abspeichern und dann wieder bei Bedarf auf die Variable zurückschreiben?
- Kann man die Funktionen auch simulieren z.B. dass die Rezeptdatei (.csv) in den Projektordner geschrieben wird? Dann müsste ich keine PLC zur Hand haben.
- Hat jemand ein einfaches Beispiel? @JanB1
BBM