Speicherbaustein

uzi10

Level-2
Beiträge
58
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe einen Speicherbaustein geschrieben!

Aber der wird bei Neustart Reboot anscheinend 1 und überschreibt mir alle Visuwerte in die remanten Variablen!
Was mache ich hier falsch?
Ich habe es auf mit IF SwitchSpeichern :=1 THEN probiert! Kein Unterschied!


FUNCTION_BLOCK Speicherbaustein01
VAR_INPUT
SwitchSpeichern : BOOL;
PhSollwertEingang : REAL;
CHIndexEingang : USINT;
PoolInhaltEingang : REAL;
PHKanisterfuellmengeEingang: REAL;



END_VAR
VAR_OUTPUT
PhSollwertAusgang: REAL;
CHIndexAusgang : USINT;
PoolInhaltAusgang : REAL;
PHKanisterfuellmengeAusgang: REAL;



IF SwitchSpeichern THEN
PHSollwertAusgang := PHSollwertEingang;
CHIndexAusgang := CHIndexEingang;
PoolInhaltAusgang := PoolInhaltEingang;
PHKanisterfuellmengeAusgang := PHKanisterfuellmengeEingang;
END_IF

END_VAR
VAR
END_VAR


ecockpit3.jpg



Bitte um Hilfe!

MFG Andi!
 

Anhänge

  • ecockpit1.jpg
    ecockpit1.jpg
    400,5 KB · Aufrufe: 26
Hallo!

Ich habe diese Retain Persistent gemacht! Eventuell falsch! Bootprojekt muss ich probieren!
Bei mir sind aber diese Variablen im GVL aber blau hinterlegt und es gibt eine Meldung:

C0244: Kein passender Instanzpfad gefunden für Variable GVL1.PhKanisterInhaltPz in der VAR_PERSISTENT-Liste. Verwenden Sie den Befehl "Alle Instanzpfade hinzufügen" um der VAR_PERSISTENT-Liste alle Instanzpfade hinzuzufügen. (siehe Onlinehilfe für Details).

Ich habe gesehen es gibt einen Persistence Mangaer, keine Ahnung wo ich den finde, ist das eventuell das, wenn ich "Rechte Maustaste" auf die Applikation mache und einen neuen Ordner "Persistente Variablen" mache?? Gehören hier die Variablen dann rein?

ecockpit4.jpg
 
Hallo Uzi,

ja erstelle eine solche Liste und dann kannst du mit der rechten Maustaste - Alle Instanzpfade hinzufügen - die Liste erstellen.
Hier ist die vorgehensweise etwas anders als bei Codesys 2.3
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!


Ich habe die Liste erstellt und dann alles markiert und Alle Instanzpfade hinzugefügt! Was passiert da bzw für was ist die Funktion`? Ich habe nicht gesehen, dass hier etwas passiert?
Noch dazu ist nach dem Start der Applikation jeder Wert wieder auf 0 und nicht auf den Initialwert!


ecockpit5.jpgecockpit6.jpg
 
Hallo uzi10,

wenn ich deine Screenshots richtig deute, dann hast du die Variablen an dem Ausgang deines FB RETAIN PERSISTENT deklariert.
Dieses hat keinen gewünschten Effekt, da du nach einem Neustart die Fertigkeit deiner Eingänge direkt an die Ausgänge schreibst.
Selbst wenn deine Variable SwitchSpeichern FALSE ist, werden deine VAR_OUTPUT Variablen mit 0 initialisiert.
Du müsstest die Variablen, die an den Eingängen angelegt sind, RETAIN PERSISTENT deklarieren.
 
Hallo uzi10,

wenn ich deine Screenshots richtig deute, dann hast du die Variablen an dem Ausgang deines FB RETAIN PERSISTENT deklariert.
Dieses hat keinen gewünschten Effekt, da du nach einem Neustart die Fertigkeit deiner Eingänge direkt an die Ausgänge schreibst.
Selbst wenn deine Variable SwitchSpeichern FALSE ist, werden deine VAR_OUTPUT Variablen mit 0 initialisiert.
Du müsstest die Variablen, die an den Eingängen angelegt sind, RETAIN PERSISTENT deklarieren.


Achso ist das!

Wie kann ich das sonst realisiern!

Was ich möchte:

Ich möchte Initialwerte beim Neustart haben(zb Stromausfalle) und dann am besten die aktuellen!

Diese möchte ich aber per Visu oder per KNX überschreiben können!

Hier dachte ich, ich speichere mit einen Speicherbefehl den Wert in die Varablen mit den FB!!

Ist das so nicht lösbar?

MFG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo uzi10,

hierfür musst du entweder den FB RETAIN PERSISTENT deklarieren oder mit VAR_IN_OUT Variablen arbeiten und die angelegten Variablen dann RETAIN PERSISTENT deklarieren.
Sollte weiterhin Schwierigkeiten bei der Umsetzung haben, dann bitte ich dich bei uns direkt Kontakt aufzunehmen, damit wir das Thema telefonisch klären können.
 
Zurück
Oben