METER_STAT und RETAIN PERSISTENT

Begonnen von NetFritz, 04. November 2009, 12:12:35

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

NetFritz

Hallo

Habe für den Baustein METER_STAT die Variablen so angelegt.
VAR RETAIN PERSISTENT
   Last_Day : REAL;
   Current_Day : REAL;
   Last_Week : REAL;
   Current_Week : REAL;
   Last_Month : REAL;
   Current_Month : REAL;
   Last_Year : REAL;
   Current_Year : REAL;
END_VAR

Wenn ich nun mein Prog. ändere und dann auf die Wago 750-849 schreibe sind meine Zählerstände weg.
Was mus ich machen das sie nicht verloren gehen.
oscat.lib 3.10 TwinCAT / CoDeSys 2.3
Gruß NetFritz

NetFritz

Hallo

Hier nochmal meine genaue Deklaration.
VAR RETAIN PERSISTENT
   LAUFZ_WP: UDINT;
   SCHALT_WP: UDINT;
   LAUFZ_WP_letzter_Tag AT %MD5: REAL;
   LAUFZ_WP_aktueller_Tag AT %MD6: REAL;
   LAUFZ_WP_letzter_Woche AT %MD7: REAL;
   LAUFZ_WP_aktuelle_Woche AT %MD8: REAL;
   LAUFZ_WP_letzter_Monat AT %MD9: REAL;
   LAUFZ_WP_aktueller_Monat AT %MD10: REAL;
   LAUFZ_WP_letztes_Jahr AT %MD11: REAL;
   LAUFZ_WP_aktuelles_Jahr AT %MD12: REAL;
END_VAR
Habe nochmal gesucht und das gefunden.
Um unkontollierte Überschteibungen zu vermeiden,
sollen Merker und VAR_RETAIN niemal zusammen benutz werden.
Kann es daran liegen.
Aber die Variablen
   LAUFZ_WP: UDINT;
   SCHALT_WP: UDINT;
vom Baustein ONTIME bleiben auch nicht erhalten.
Gruß NetFritz

NetFritz

Hallo
Habe mal mit der Wago Hotline telefoniert.
Die Wago 750-849 kann RETAIN PERSISTENT.
Kann es sein das der Baustein ONTIME die Variablen überschreibt ?
Gruß NetFritz

hugo

wir sehen uns das beim nächhsten release nochmals an

Pusher

Bei mir die gleichen Probleme schreibe nur nicht RETAIN PERSISTENT in den Merkerbereich sondern in eine
Novram Klemme EL 6080. Nach Neustart alles auf 0 .  ???

Win CE CP6601 TwinCat 2.11.1536 Oscat 3.10. Bin gespannt was die 3.11 bringt.
MFG

hugo

der baustein sollte des definitiv nivht tun, es sein denn:

1. es liegt noch kein gültiges datum an
   bitte die reihenfolge der bausteine prüfen und sicherstellen das das aktuelle datum anliegt

2. rst ist true gewesen


NetFritz

Hallo
Bei mir ist das so das Datum aus einem anderen Task kommt, der Task wird alle 5sek aufgerufen.
Der Task steht aber als erster in der Taskkonfig.

Taskkonfig:
Name:Uhr Prio:31 Zyklisch 5s
Name:main PLC_PRG : Prio:1 Freilaufend
Name:Betriebsstunden Prio:2 Freilaufend

Kann es davon kommen das der Task Uhr nicht sofort auferufen wird ?
Gruß NetFritz

hugo

ja das kann durchaus sein,
in diesem fall solltest du prüfen ob eine gültige uhrzeit / datum anliegen und erst dann den meter baustein freigeben/aufrufen wenn dies der fall ist.
liegt eine uhrzeit an die älter ist als die zuletzt verarbeitete wird der baustein die ausgänge löschen.


NetFritz

Hallo

Habe mal Versuchsweise das Datum im gleichen Programmteil wie der Betriebstundenzähler gelegt.
SysRtcGetTime -> DT_TO_DATE -> DI/METER_STAT
Dann werden die Werte von METER_STAT nicht mehr gelöscht.

Vielen Dank
Oscat ist Klasse
Gruß NetFritz