OSCAT Forum

oscat.lib => Modulentwicklung / Module Development => Thema gestartet von: TMHEINE am 16. März 2016, 06:58:11

Titel: Stromzählerauswertung S0-Bus
Beitrag von: TMHEINE am 16. März 2016, 06:58:11
Gibt es jemand, der im S7 schon eine Stromzählerauswertung macht?
Habe hier mehrere Stromzähler mit S0-Bus (Halbleiter-Schalter mit z.B. 400 imp/kWh).
Zur Zeit mache ich die Auswertung mit einem Zähler, welche die Impulse/Minute zählt und daraus die Energie entsprechend berechnet. Ist leider etwas ungenau.
Schöner wäre es, wenn im Niedrig-Energie-Bereich nicht die Impulse, sondern der Abstand der Impulse zueinander ausgewertet werden. Im Hoch-Energie-Bereich sollten dann die Impulse gezählt werden. Die Umschaltung von Impuls-Abstand auf Impuls-Anzahl sollte natürlich automatisch erfolgen.
Hat jemand sowas schon? Gibt´s sowas in der Bibliothek? Kann jemand das entwickeln?

Danke vorab

Gruß

TMHEINE
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: shrimps am 16. März 2016, 12:29:24
Hi,
habe mir vor kurzem einen für meinen Minizähler gebaut, allerdings in ST fürTwincat.

Sollte aber sehr leicht zu konvertieren sein...

Gruss
Shrimps

FUNCTION_BLOCK _fbStromzaehler
(* Einen S0-Impuls eines Strommessers lesen:
Liefert 1000 Impulse / KWh, 1Imp= 1Wh *)
VAR_INPUT
bSignal : BOOL; (* Unser S0-Impuls *)
END_VAR
VAR_OUTPUT
rLeistung : REAL; (* Die Momentanleistung zw. 2 Messungen *)
dVerbrauch : DWORD; (* Saldierter Verbrauch in Wh *)
dSignalPeriode : DWORD; (* Zeit in ms zwischen zwei Impulsen *)
dSignalDauer : DWORD; (* Laufzeit des Impulses *)
END_VAR
VAR
tx : TIME; (* Aktuelle Systemzeit in ms *)
tStart : TIME; (* Impulsbeginn *)
tEnde1 : TIME; (* Ende einer Periode *)
tEnde2 : TIME; (* Ende eine einzelnen Impulses *)
bInit : BOOL := TRUE; (* Aller Anfang *)
bFlanke : BOOL; (* Flankenmerker als Ersatz für RTRIG *)
END_VAR
(* @END_DECLARATION := '0' *)
tx := TIME(); (* Zeit merken *)

IF bInit  THEN (* Am Anfang: *)
tStart := tx; (* Startzeit einmalig Init *)
bInit := FALSE; (* Init Fertig ! *)
END_IF

IF bSignal AND NOT bFlanke THEN (* Wenn Signal kommt *)

dVerbrauch := dVerbrauch +1; (* Summenverbrauch *)

tEnde1 := tx; (* Periodendauer-Endezeit merken *)
dSignalPeriode := TIME_TO_DWORD(tEnde1) - TIME_TO_DWORD(tStart); (* Delta bilden *)
rLeistung := 3600000.0 / dSignalPeriode; (* Leistung auf WattStunden skalieren *)
rLeistung := DINT_TO_REAL(REAL_TO_DINT(rLeistung * 10)) / 10; (* 1 Stelle nach dem Komma runden *)
tStart := tx; (* Neue Startzeit merken *)

END_IF

IF NOT bSignal AND bFlanke THEN (* Signal fällt ab *)
tEnde2 := tx; (* Endezeit merken *)
dSignalDauer := TIME_TO_DWORD(tEnde2) - TIME_TO_DWORD(tStart);
END_IF

bFlanke := bSignal; (* Merker für Signalflanke *)

END_FUNCTION_BLOCK

Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: TMHEINE am 11. April 2016, 12:27:40
Hallo,

soweit ich das erkannt habe, wertest du die Zeit zwischen den Impulsen aus.
Das ergibt bei vielen Impulsen aber eine hohe Fehlerquote (zumindest auf Nicht-Echtzeit-Systemen).
Ich werte es aktuell mit Impulszählern aus, was im hohen Impuls-Bereich genauer ist.
Bei niedrigem Verbrauch und wenig impulsen wäre aber das Impuls-Pausenverhältnis besser und genauer.

Schön wäre es, wenn es einen Baustein geben würde, der beides vereint.
Also bei wenig Verbrauch die Leistung über das Impuls-Pausen-Verhältnis zur rechnen, und bei höherem Verbrauch über die Impulsanzahl/Zeiteinheit.

Daher meine Anfrage...

GRuß

TMHEINE
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: tobiaslochner am 17. April 2016, 02:14:18
Den Baustein gibt es direkt von Wago. Er heißt "Fb_ImpulseCounter". Dieser ist zu finden in der Lib Building_HVAC_01.lib.

Viel Erfolg damit.
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: shrimps am 17. April 2016, 20:04:32
Hallo,
wäre ja prima, wenn der eine oder andere das zusätzlich implemtiert.
Bei mir kam nur die Impulszeitmessung zum tragen, da mein Testsystem viel zu wenig Impulse pro Minute bringt,
ggf. alle paar Minuten einen Impuls...

Gerne Feedback

PS: Wago-Lib gut und schön aber wenn man (ich) kein Wago hat ist es wenig prickelnd

LG
Shrimps
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: mattsches am 21. April 2016, 13:12:04
@shrimps: Schau mal hier: http://www.wago.de/service/downloads/download-suche/index.jsp?q=hvac&x=0&y=0&action=search&frontendId=frontendDownload_cms_de-de&nav=top%2Fdocuments%2Fkategoriede%3Asearch_downloadsDe_label%C7%81f%2Fsearch_downloadsDe_label%2Fbibliotheken%C7%81search_downloadsDe_label%C7%81Bibliotheken&lang=de#appnotedetails1406432852674328993 (http://www.wago.de/service/downloads/download-suche/index.jsp?q=hvac&x=0&y=0&action=search&frontendId=frontendDownload_cms_de-de&nav=top%2Fdocuments%2Fkategoriede%3Asearch_downloadsDe_label%C7%81f%2Fsearch_downloadsDe_label%2Fbibliotheken%C7%81search_downloadsDe_label%C7%81Bibliotheken&lang=de#appnotedetails1406432852674328993)
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: shrimps am 21. April 2016, 14:38:31
Danke !

Schau ich mir alles mal in Ruhe an...

BTW: Funktioniert eine LIB von Wago/Codesys auch unter Twincat ?
Ich glaube nicht...

@shrimps: Schau mal hier: http://www.wago.de/service/downloads/download-suche/index.jsp?q=hvac&x=0&y=0&action=search&frontendId=frontendDownload_cms_de-de&nav=top%2Fdocuments%2Fkategoriede%3Asearch_downloadsDe_label%C7%81f%2Fsearch_downloadsDe_label%2Fbibliotheken%C7%81search_downloadsDe_label%C7%81Bibliotheken&lang=de#appnotedetails1406432852674328993 (http://www.wago.de/service/downloads/download-suche/index.jsp?q=hvac&x=0&y=0&action=search&frontendId=frontendDownload_cms_de-de&nav=top%2Fdocuments%2Fkategoriede%3Asearch_downloadsDe_label%C7%81f%2Fsearch_downloadsDe_label%2Fbibliotheken%C7%81search_downloadsDe_label%C7%81Bibliotheken&lang=de#appnotedetails1406432852674328993)
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: mattsches am 22. April 2016, 12:17:22
Das wird davon abhängen, ob hardwarespezifische Funktionen genutzt werden. Sobald Netzwerkfunktionen mit im Spiel sind, gehe ich nicht davon aus. Aber ein Zählerbaustein? Warum nicht.
Titel: Re: Stromzählerauswertung S0-Bus
Beitrag von: ThorPrez am 06. Mai 2020, 17:40:48
Hallo.

Ich muss dieses Thema nochmal aufrollen, da es mich aktuell beschäftigt.
In den Bibliotheken gibt´s ja nix dafür und das o.g. Beispiel von shrimps arbeitet nicht zuverlässig.
Da ist der Verbrauchszähler "Meter" genauer, aber ich würde gerne S0-Signale auswerten.