Stromzähler mit Wago auslesen

Hallo Jens, also ich habe mir dein Projekt jetzt nochmal angeschaut, ich denke auch, daß es funktionieren sollte.
Hast Du deine task1 auf freilaufend gesetzt?
Kannst Du die Frage wieviele Impulse verloren gehen schon konkreter beantworten?
Gruß
Jens

also ich habe jetzt 2 Tasks eingerichtet … 1x den alten ohne Stromzähler() weiterhin mit 100ms und einen 2. Task nur für Stromzähler() freilaufend.

Ich verliere locker 100 Impulse (1 kwh) in 1-2 Std. … hab jetzt nicht so genau auf die Uhr geschaut … habs aber weiter oben schon geschrieben. Umstellung auf Ereignisgesteuert oder Freilaufend hat keine Änderung gebracht

Klingt vielleicht blöd, aber kannst Du mal für eine bestimmte Zeit die Impulse von Hand zählen und nachrechnen, ob das mit den Ablesewerten zusammenpasst? Vielleicht spinnt ja der S0-Zähler?

Ja … das wäre so noch eine Idee … einfach mal ordentlich Licht an machen und dann zählen :wink: … bisher ist das auch mein Verdacht … eine andere Möglichkeit wäre noch der Up/Down Zählerbaustein von Wago.

Mal angenommen das Teil spinnt … welcher Zähler kommt dann in Frage? Im Prinzip sollte es schon einer sein der sehr wenig Eigenverbrauch hat.

Da kann ich leider noch nicht weiterhelfen, bzw. nichts empfehlen. Ich bin noch in der Testphase und benutze einen 1phasigen Zähler von Swissnox mit 2000Imp/kWh an einer Steckdose. (Hängt ein Deckenfluter 300W und der Fernseher dran)

Hallo,

ich habe mir einen Verbrauchszähler für meine Gasheizung zusammengebaut.

Als Eingang benutze ich eine ganz normalen Binäreingangskarte
(Keinen Zähler oder sowas)

Im Anhang der Programmaufbau.
Alles aus Standardmodulen aufgebaut. Der Baustein STROMSTOSS ist die Nachbildung eines Stromstoßschalters bzw. Eltakorelais (Impuls - EIN; weiterer Impuls - AUS usw.)

Ich hatte am Anfang auch das Problem das scheinbar immer wieder Impulse verloren gegangen sind.
Lag aber nicht am Signal sondern an meine Berechnung.

Beispiel:
Verbrauch als REAL-Wert gespeichert.

  1. Impuls entspricht 0,01 m3/h --> allso Verbrauch = Verbrauch + 0,01

Mit der Zeit (das dauert gar nicht zu lange) driftet der „Verbrauchswert“ vom Gaszähler als --> Ich hatte immer den Reedkontakt am Gaszähler in Verdacht das er nicht alle Impulse mitbekommt.

Das Problem ist, dass beim addieren Rundungsdifferenzen auftreten (ich weiss zwar nicht warum ist aber so).
Mein Ausweg war REAL --> in DINT umwandeln --> 1 addieren --> DINT in REAL umwandeln.
siehe Bild 2 „Berechnung“

Vieleicht hilft es ein bisschen weiter.

René

Hallo Rene,

danke für deinen Tip.
Das merkwürdige ist aber das ich den Impulsecounterbaustein aus der Bibliothek benutze und der sollte doch eigentlich richtig zählen, oder etwa nicht???

Ich werde mir deinen Vorschlag mal ansehen und bei Bedarf (den ich bestimmt habe) noch die eine oder andere Frage stellen :slight_smile:

edit
Ok … das Ding ist mir irgendwie noch zu aufwändig, da blicke ich nicht durch :frowning:

Eine Möglichkeit wäre noch: Ist der S0 richtig angeschlossen (Polarität)?
Hab zwar keine Ahnung, ob bei falschem Anschluss überhaupt Impulse ankämen, aber prüfen kann man es ja mal…

sieht sehr verwirrend aus - ich weiss.
Ich denke man kann bestimmt an einigen Stelle es auch besser machen.

Der obere Teil (bis Baustein 21) dient nur dazu den Momentanverbrauch auszurechnen (z.B. aktueller Gasdurchsatz in m3/h bzw. pro min).
Ich habe es in 2 Teile aufgeteilt ein Timer misst gerade die Zeit bis zum nächsten Impuls und der andere Timer hat die letzte Zykluszeit gespeicht. Dieser wird dann zur Berechnung der Momentanverbrauchs herangezogen. Dies passiert immer wechselseitig.

Das Speichern des Verbrauchs und dessen Berechnung erfolgt ab Baustein 22.
Bei jedem Impuls wird einfach um „1“ bzw. 0,01 m3/h (rEinheit) hochgezählt.

René

Hallo Jens (tetrapack)

welche Firmware hat Deine Wago?
Wie sehen Deine Ist-Taskzeiten aus?

Tilo

@Rene
Kannst Du die notwendigen Sachen exportieren und hochladen?
Ich würde deine Variante gerne mal nachbauen, bin allerdings zu faul, alles abzutippen :wink:

Hi Tilo …

ich habs zwar geschafft alles zu verdrahten und in Betrieb zu nehmen … aber nun kommst du mit Profifragen :smiley:

Kein Plan was du meinst … wie finde ich die Version der FW heraus und woher weiß ich wie die IST Taskzeiten sind? Bräuchte da dann wohl etwas Hilfestellung :wink:

Gruß
Jens

Die Firmwareversion ist z.Bsp. im Web-based Management zu sehen, einfach im Browser aufrufen.(http://192.168.1.170/webserv/index.ssi) Du mußt natürlich deine IP benutzen.

Taskzeiten bekommst du z.Bsp. so :


VAR
	ActCycle			: TIME;
	MaxCycle			: TIME;
	MinCycle			: TIME;
	PlcActCycle		: TIME;
	PlcMaxCycle		: TIME;
	PlcMinCycle		: TIME;
END_VAR

ActCycle := GET_ACT_CYCLE(FALSE); 
MaxCycle := GET_MAX_CYCLE(FALSE); 
MinCycle := GET_MIN_CYCLE(FALSE);
PlcActCycle := GET_PLC_ACT_CYCLE(FALSE);
PlcMaxCycle := GET_PLC_MAX_CYCLE(FALSE);
PlcMinCycle := GET_PLC_MIN_CYCLE(FALSE); 

Dazu die system.lib einbinden.
Dann kannst Du sie in der WebVisu anzeigen.

WebVisu ? Bahnhof ? :confused:
… sorry kein Plan was, wie und wo das ist!?

Order number 750-842
Firmware revision 05.00.01(17)

Für die WebVisu solltest Du bei Google schauen, hier sollte es ja um Stromzähler gehen.

Jo schon klar … aber laut deinem Posting benötige ich das für die Tasklaufzeiten … !?
Geht das überhaupt mit der -842 ?

oh, gute Frage, ich glaube die 842 hat keinen Webserver und keine WebVisu
dann mußt du das über Merker machen und in IPS visualisieren

Ok … dann lege ich also die Variablen so an wie du geschrieben hast … und dann wie weiter?
Wie bekomme ich die Daten in die Merker und muss ich dafür auch noch einen Task anlegen?

Gruß
Jens

Baustein Impulszähler

René

IMPULSZAEHLER.ZIP (1.98 KB)

@René
Danke, werde ich bei nächster Gelegenheit studieren.
@Tetrapack
Na so wie Du es bereits mit deinen anderen Merkern gemacht hast. In GlobaleVariablen deklarieren und im Programm beschreiben. Die lokale Deklaration entfällt dann.