Stromzähler mit Wago auslesen

Kannst Du Dein Projekt mal hochladen? Vielleicht kommt man dann dahinter.
Wie groß sind die Differenzen? Ist der Verlust von Impulsen sporadisch oder konstant? Welche S0 Zähler benutzt Du?

Also das Projekt ist angehängt …

Ich habe in 2 Tagen mehrere Kilowattstunden verloren … also nicht nur den einen oder anderen Impuls, sondern sogar sehr viele :frowning:

Gruß
Jens

JENS1.zip (4.08 KB)

Hallo Jens (Tetrapak)

wie sieht Deine Taskkonfiguration aus (in welchen Task läuft der Baustein)? ggf. liegt da der „Hase im Pfeffer“ :wink:

Tilo

Hi Tilo,

ich habe nur einen einzigen Task in dem alles läuft, auch der Zähler … der Task ist als „zyklisch“ mit einem Intervall von 100ms konfiguriert !?
Mit den Tasks habe ich mich nämlich noch nicht weiter beschäftigt … was sind denn da für Einstellungen sinnvoll ?
Was nimmt man z.b. für Einstellungen bei Abfrage auf Tastendruck … sind da 100ms normal oder wählt man mehr? Oder ist es generell besser einen weiteren Task für Zähleingänge anzulegen, die ereignisgesteuert auf den jeweiligen Impulseingang reagieren?

Gruß
Jens

Hallo,
hat S0 nicht eine Impulslänge von 90 ms ? Wenn du dann 100ms hast können da schon ein paar Impulse verloren gehen.

Versuch den Task freilaufend einzustellen und laß uns wissen, ob dann immer noch Impulse verschwinden!

Ok, werde ich machen.

Wo ist der Unterschied zu freilaufend und ereignisgesteuert? Bzw. der Vor oder Nachteil ?

Hallo,
am einfachsten ist es, wenn du dein S0-Signal mit einer ereignisgesteuerten Task zählst.
Da kann nix verlorengehen und das Programm wird bei jedem Signal aufgerufen.
Unterschied zwischen zyklischer (freilaufender) und ereignisgesteuerter Task:
Die zyklische Task wird immer aufgerufen je nach dem welches Intervall eingestellt ist.
Die ereignisgesteuerte Task wird, wie der Name schon sagt, nur bei Auftreten eines Ereignisses aufgerufen. Ist auf jeden Fall effektiver, da das System weniger belastet wird.

Gruß,
Rayk

Denn frage ich jetzt auch mal … habt ihr eine so hohe zykluszeit ? Oder warum fragt ihr ereignisgesteuert ab ??

Thema Zykluszeit: das kommt halt auf die Programmfunktionen an (je mehr, desto mehr Laufzeit)

bspw. die Sonnenstandsberechnung aus der oscat.lib (Oscat - Home) benötigt schon etwas mehr Rechenleistung :slight_smile:

Gruß

Tilo

Über eine wie hohe Zykluszeit reden wir da ??

Soooo … ich habe den Task mal auf Ereignisgesteuert umgestellt und verliere weiterhin scheinbar Impulse, denn die Werte vom Zähler und vom Eltako DSZ12B-3x65A passen zueinander, aber nicht zu dem was die Wago ausgibt … dort wird mal wieder deutlich weniger angezeigt. :confused:

Ich werde jetzt noch einen weiteren Versuch mit der Taskeinstellung „freilaufend“ machen und dann wohl oder übel den Eltako Zähler mal tauschen müssen.

Hat sonst noch jemand eine Idee was ich testen könnte?? Liegen vielleicht irgendwelche Adressbereiche der Merker übereinander und stören sich vielleicht? Die In und Out Bereiche sollten davon ja nicht betroffen sein, oder?

Konfiguration der Merker:


VAR_GLOBAL
	Dat_Merk1 AT %MD1004	:DWORD;
	Dat_Merk2 AT %MD1005	:REAL;
	Dat_Merk3 AT %MD1006	:REAL;
	Tast_Merk1 AT %MX1.0	:BOOL;
	Tast_Merk2 AT %MX1.1	:BOOL;
	Tast_Merk3 AT %MX1.2	:BOOL;
	Tast_Merk4 AT %MX1.3	:BOOL;
	Tast_Merk5 AT %MX1.4	:BOOL;
	Tast_Merk6 AT %MX1.5	:BOOL;
	Tast_Merk7 AT %MX1.6	:BOOL;
	Tast_Merk8 AT %MX1.7	:BOOL;
	Tast_Merk9 AT %MX1.8	:BOOL;
	Tast_Merk10 AT %MX1.9	:BOOL;
	Tast_Merk11 AT %MX1.10	:BOOL;
	Tast_Merk12 AT %MX1.11	:BOOL;
	Tast_Merk13 AT %MX1.12	:BOOL;
	Tast_Merk14 AT %MX1.13	:BOOL;
	Tast_Merk15 AT %MX1.14	:BOOL;
	Tast_Merk16 AT %MX1.15	:BOOL;
END_VAR

Wofür hast du Merker ?? Wieso nutzt du nicht die direkten binären Eingänge ??

Hmm … was für Binäreingänge?

die ersten 3 Merker benötige ich um die Werte des Zählers in IPS darzustellen und die anderen um meine Tasterschaltungen auch aus IPS zu bedienen … aber darum geht`s ja jetzt gerade nicht … oder verstehe ich nun etwas falsch ?? :confused:

Die Impulslänge ist Geräteabhängig. Der DSZ12B hat 50ms Impulslänge… aber scheinbar liegt das Problem ja woanders, wenn die ereignisgesteuerte Task nicht zum gewünschten Ergebnis führt.

Ich bekomme in ein paar Tagen einen DSZ12D, der hat 30ms Impulslänge und 1000 Imp./kWh.
Wenn ich die Zeit finde ihn anzuschließen (und es dann klappt) sag ich mal Bescheid…

@Tetrapack
Binäreingänge = %IX1.1 z.B. ohne Umweg über Merker. Mit den Adressbereichen (Überschneidungen) für die Merker blicke ich bis heute nicht durch. Da muss es doch irgendeine Möglichkeit der Darstellung geben, ohne dass man selbst herumrechnen muss…(!?)

Grüße

Ja dachte ich mir dann schon … allerdings geht`s bei Tasterschaltung nicht anders …

Was die Adressbereiche an geht habe ich hier mal ne Liste ausm Forum gezogen und mich versucht danach zu richten … von daher sollte das eigentlich passen (wenn man den Startwert von 12288 nimmt und nicht wie in der Liste 12289 :wink: )

Ich habe vorhin noch mal auf freilaufend umgestellt und habe jetzt schon wieder fehlende Impulse für 1 kwh :confused:
Das Problem scheint also ein anderes zu sein … da aber viele einen DI nehmen um darüber die Impulse zu zählen, ist es wohl entweder meine Konfiguration der Variablen oder der SO-Zähler !?

Nimm an Stelle der Merker doch mal die direkte Adresse des DI, auf den der S0 geht. Und check nochmal deine Zahlen (100 Impulse etc., hast du aber bestimmt schon 1000mal gemacht :wink: ).

Gruss

Hää? Der Merker is der Ausgang von dem Impulscounterbaustein … der Binäreingang geht in den Baustein rein … wie soll ich denn direkt die Impulse des Binäreingangs zählen ? :confused::confused:

Falls du, so war meine Vermutung, dem DI (auf dem der S0 liegt) einen Merker zugewiesen hast, lass den Merker weg und verwende direkt die Eingangsadresse %IX#.#!

Ich glaube das ist das, was Status meinte. Falls der Binäreingang (also ohne Umweg wie oben geschrieben) direkt am Impulseingang liegt, dann ‚nevermind‘.

Falls ich hier alles durcheinander werfe - sorry, keine Absicht, wollte nur Helfen.
Wie gesagt, ich konnte das Projekt nicht ordentlich öffnen weil mir die Bib’s fehlen…

Gruß

Ok … also falls da etwas unklar war … die verwendeten Merker sind 3x für die Werte aus dem Counterbaustein(Ausgang) und der Rest sind Eingänge für meine Tasterschaltungen (Licht).

Der S0 geht direkt auf einen Binäreingang.

Gruß
Jens