OSCAT Forum
oscat.lib => Bestehende Module / Existing Modules => Thema gestartet von: NetFritz am 04. November 2009, 12:12:35
-
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
-
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
-
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
-
wir sehen uns das beim nächhsten release nochmals an
-
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
-
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
-
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
-
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.
-
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