easy-forum

Deutsch - Software => XSoft-CoDeSys => Thema gestartet von: radar17892 am Mai 12, 2012, 15:45:58 Nachmittag

Titel: superremanenter kWh Zähler so möglich ?
Beitrag von: radar17892 am Mai 12, 2012, 15:45:58 Nachmittag
Hallo
Kann man so einen superremanenten Zähler schreiben, oder ist eine Speicherung auf Speicherkarte unumgänglich?
Eventuell hat jemand ein Beispiel.

Meine bisherige Lösung:

FUNCTION_BLOCK WM_Zaehler
VAR_INPUT
   Takt: BOOL;      (*Zähltakt*)
END_VAR
VAR_OUTPUT
   QV: DWORD;      (*Zählerwert in kWh*)
END_VAR
VAR
   TR1: R_TRIG;           (* 1000kW Flanke *)
   TR2: R_TRIG;           (* 1000MW Flanke *)
END_VAR
VAR RETAIN PERSISTENT
   C1: CTU;      (*kW Zähler*)
   C2: CTU;      (*MW Zähler*)
   C3: CTU;      (*GW Zähler*)
END_VAR
VAR
   _ImpVar_422_21:   DWORD;
   _ImpVar_422_23:   DWORD;
   _ImpVar_422_7:   DWORD;
   _ImpVar_422_9:   DWORD;
   _ImpVar_422_11:   DWORD;
   _ImpVar_422_12:   DWORD;

END_VAR


Programmteil

CAL      C1(CU := Takt, RESET := TR1.Q, PV := 1000)

CAL      TR1(CLK := C1.Q)

CAL      C2(CU := TR1.Q, RESET := TR2.Q, PV := 1000)

   CAL      C3(CU := TR2.Q)

CAL      TR2(CLK := C2.Q)

LD      C3.CV
WORD_TO_DWORD      
ST      _ImpVar_422_21

LD      _ImpVar_422_21
MUL      1000000
ST      _ImpVar_422_23

LD      C2.CV
WORD_TO_DWORD      
ST      _ImpVar_422_7

LD      _ImpVar_422_7
MUL      1000
ST      _ImpVar_422_9

LD      _ImpVar_422_23
ADD      _ImpVar_422_9
ADD      _ImpVar_422_12
ST      _ImpVar_422_11

LD      _ImpVar_422_11
ST      QV

LD      C1.CV
WORD_TO_DWORD      
ST      _ImpVar_422_12

LD      TRUE



Gruß Thomas
Titel: Re:superremanenter kWh Zähler so möglich ?
Beitrag von: radar17892 am Juni 21, 2012, 11:59:46 Vormittag
Hallo

Nach ein bisschen überlegen und testen hab ich es nun so gelöst:

FUNCTION_BLOCK Zaehler
(* Z_Wert ist in GLOBAL_VAR persistent remenent
Takt von Janitza 1Imp / kWh *)

VAR_INPUT
   Takt: BOOL;
END_VAR
VAR_OUTPUT
END_VAR
VAR
   Z_Flanke: F_TRIG;
END_VAR
_______________________________________________
   CAL      Z_Flanke(CLK := Takt)

   LD      Z_Flanke.Q
   NOT
   JMPC   Sprung

   LD      Z_Wert
   ADD      1
   ST      Z_Wert

Sprung:

return
Titel: Re:superremanenter kWh Zähler so möglich ?
Beitrag von: Ole am Oktober 05, 2013, 20:59:05 Nachmittag
Ich denke die Speicherung auf die Speicherkarte ist unumgänglich, da die Aufgezeichneten Daten bei CPU Tausch so verloren gehen.

Allerdings müssen die Daten dann von der Speicherkarte wieder zurück gelesen werden.

Hat dafür jemand ein Beispiel?

Titel: Re:superremanenter kWh Zähler so möglich ?
Beitrag von: radar17892 am Oktober 15, 2013, 22:25:01 Nachmittag
Hallo Ole,

das ständige schreiben auf die Karte sollte vermieden werden. Man könnte den Wert um 24:00 Uhr jeweils abspeichern.
Den aktuellen Zählerstand vom eigentlichen Zähler, nach CPU-Tausch, wieder im Programm zu hinterlegen ist das kleinste Problem. Bei meiner Lösung force ich die Variable Z_Wert kurz mit dem richtigen Wert vom Janitza und fertig ist der Abgleich.
Ein zurücklesen von der Karte macht da keinen Sinn, weil wärend des CPU Ausfalls der eigentliche Zähler weiter läuft und die Werte nicht mehr übereinstimmen.

Gruß Thomas
Titel: Re:superremanenter kWh Zähler so möglich ?
Beitrag von: E-Herry am Oktober 16, 2013, 22:36:04 Nachmittag
Hallo radar17892,
Das Programm hört sich gut an, meine Frage da ich mich nicht so gut aus kenne .
Mit welcher Easy funktioniert das?
Funktioniert das auch mit dem Gaszähler (Reedkontakt  100 imp =1m³ Gas hab ich schon)
Danke für die Hilfe!
Gruß
E-Herry
Titel: Re:superremanenter kWh Zähler so möglich ?
Beitrag von: radar17892 am Oktober 17, 2013, 20:30:50 Nachmittag
Hallo E-Herry,

das sollte mit jeder Codesys Steuerung funktionieren. es sind keine Speziellen Bausteine verwendet.
Beachten sollte man die Impulslänge, sie sollte länger als die Zykluszeit sein.

Gruß Thomas