Hallo,
ich habe 4 Stromzähler, die jeweils ein S0 Signal ausgeben.
Durch eine Algorithmus möchte ich ein S0 Signal erzeugen, dass dem
Gesamtstromverbrauch aller 4 Zähler entspricht.
Mein erster Ansatz war die SIgnale einfach zu verodern. In diesem Fall
sind die Signalabstände aber auch bei konstantem Stromverbauch stark
unterschiedlich. Da der aktuelle Verbrauch aber anhand der Abstände
zwischen den Impulsen berechnet wird, ist diese Variante für mich
unbrauchbar.
Des Weiteren habe ich versucht die Impulse für eine Zeit x zu zählen,
und diese dann in der Zeit x+1 gleichmäßig auszugeben. Nachteil hier
dass ich eine Verzögerung von x am Ausgangssignal habe und dass auch
hier bei konstantem Stromverbrauch in Zeit x mal ein Impuls mehr oder
weniger gezählt wird was wieder zu einem unbrauchbaren Ausgangssignal
führt.
Ich müsste den Impulsabstand des Ausgangssignals fließend anhand der 4
S0 Eingangssignale anpassen. Wie kann ich dies realisieren?
Viele Grüße
Der Stromzähler
Das ist doch recht einfach.
Kleiner MC, der die 4 Eingänge abtastet und jeden erkannten Puls
speichert. Sind gültige Eingangspulse da, wird eben auch einer
ausgegeben.
Es kann natürlich sein, dass es bei höher Last nicht mehr funktionieren
kann. 30ms high, 30ms low sind die Mindestzeiten, die du einhalten
musst. Wenn dauerhaft mehr Input kommt als du (zeitlich begrenzt)
ausgeben kannst ist es vorbei. Kommt auf die Gewichtung der Zähler an
was sie ausgeben. bei 1Puls/kWh hast du sicher keine Probleme, bei 1/Wh
schon eher :-)
Zur Not musst du eben umrechnen und am Ausgang eine andere Gewichtung
vorsehen.
Es kommen max 1 Imp pro Sekunde je Zähler vor.
Dein Vorschlag berücksichtigt aber nicht, dass die ausgegebenen Impulse
nicht schwanken sollen.
Ich habe eine neue Idee das Problem zu lösen:
Jeder Eingangsimpuls erhöht einen signed Zähler. Jeder Ausgangsimpuls
erniedrigt einen Zähler. Umso höher der Zähler ist, desto schneller wird
die Frequenz der Ausgangsimpulse. Umso niedrieger der Zähler ist, desto
langsamer wird der Zähler.
Wie kann ich dieses Verhalten am besten in eine Formel packen?
Stromzähler schrieb:> Es kommen max 1 Imp pro Sekunde je Zähler vor.> Dein Vorschlag berücksichtigt aber nicht, dass die ausgegebenen Impulse> nicht schwanken sollen.
Verstehe ich jetzt nicht. So wie ich die S0-Schnittstelle verstanden
habe, wird pro kWh eine bestimmte Anzahl Impulse ausgegeben. Deswegen
ist es ja auch ein Stromzähler und kein Wattmeter.
nene, das passt schon.
Man kann aus dem Abstand der Pulse die Momentanleistung berechnen bzw.
ergibt sich diese direkt daraus.
Beispiel: 1 Puls pro Ws. Kommt jede Sekunde einer, ist die
Momentanleistung 1W. Kommt einer alle 2s, ist die Leistung eben 0,5W.
@TO: was willt du mit einem PID-Regler? Musst eben für jeden Eingang
auch eine Stoppuhr einbauen, daraus hast du alle 4 Momentanleistungen
und daraus ergibt sich die Gesamtleistung, das ist alles einfachste
Mathematik.
>>30ms high, 30ms low sind die Mindestzeiten
60ms/tick und 1Wh pro tick sind 60KW maximal möglich signlisierbare
Leistung, die Gesamtleistung aus den 4 S0 Signalen muss also kleiner
sein.
>>Jeder Eingangsimpuls erhöht einen signed Zähler.
Yo, so machen. Du nimmst nen Tiny oder sowas und zählst die
Eingangspulse an 4 Eingängen mit und gibst einfach einen Impuls 30ms
high/30ms low aus, wenn der Zähler > 0 ist.
Das geht bestimmt auch noch mit einer schlichten kombinatorischen Logik
vllt. mit nem 30ms Monoflop, für die ich leider im Augenblick nicht
genügend kreativ bin ;-(
Cheers
Detlef
Stromzähler schrieb:> Ich habe eine neue Idee das Problem zu lösen:> Jeder Eingangsimpuls erhöht einen signed Zähler. Jeder Ausgangsimpuls> erniedrigt einen Zähler. Umso höher der Zähler ist, desto schneller wird> die Frequenz der Ausgangsimpulse. Umso niedrieger der Zähler ist, desto> langsamer wird der Zähler.
Das klingt nach einer guten Idee.
Du brauchst dann noch Funktion, die Abhängig von den Eingangssignalen
und dem Zähler die S0-Signale ausgibt.
Im einfachsten Fall kannst du die Abstände zwischen den ausgegebenen
S0-Signalen abhängig vom Zähler machen. Dann hast du zwar von der Anzahl
der ausgegebenen Signale einen Verzug, aber das Ausgangssignal dürfte
dennoch relativ schnell dem Eingangssignal folgen.
Hallo Stromzähler,
ich habe auch einen Stromzähler mit S0 Bus für und einen der mir ca.
alle 5 Sekunden einen Wert in kW/h liefert. Der Impuls vom S0 Bus kann
bei sehr geringen Werten schon mal 20 Minuten auf sich warten lassen
oder auch alle 4 Sekunden kommen.
Ich will den Unterschiedsbetrag im Zeitraster von 30 Sekunden
aufzeichnen.
Die Werte der Zähler werden mit Zeitstempel in eine Tabelle für Rohdaten
geschrieben. Daneben gibt es eine Tabelle für die 30 Sekundenintervalle.
Es wird geprüft ob für ein 30 Sekundenintervall beide Werte vorliegen
dann wird der Wert eingetragen.
Der S0 - Wert lässt meist länger auf sich warten. Solang ich den
nächsten Impuls nicht habe kann ich auch nicht den Verbrauch
feststellen. Kommt der Impuls dann, so kann ich ihn auf die 30
Sekundenraster verteilen.
Die 30 Sekunden sind eigentlich willkürlich gewählt, scheinen aber in
meinem Fall ausreichend zu sein. Rückrechnungen ergeben Abweichungen von
< 3%.
Bei diesem Verfahren muss man nur darauf achten das man bei beiden
Zählertypen die Intervalle anteilsmässig versorgt. Beim S0 können z.B.
12% ins Intervall 4711 fallen, 35% ins Intervall 4712, 35% ins Intervall
4713 und der Rest ins Intervall 4714.
Gruss Klaus.