Hallo, möchte hier mein kleines Projekt vorstellen: Eine Strom-/Spannungs-/Leistungsmesser für 3 Phasen Wechselstrom. Das ganze läuft mit einem STM32 MCU der die Wirk-, Blind- und Scheinleistung berechnen soll. Aufbau Die Spannungsmessung wird über einen ISO224 (galv. getrennter Verstärker) realisiert, der die Spannung der drei Phasen über einen Spannungsteiler misst und galvanisch trennt. Der Strom wird über drei ACS723 (galv. getrennter Hall-Currentsensor) von Allegro gemessen, der hat ein Ausgangssignal von 100mV/A. Die Spannungs- und Stromsignale werden mittels ADS7945/46 gesampled und über SPI vom einem STM32L072 (192k Flash, 20k RAM) verarbeitet. Um die Phasenverschiebung zwischen Spannung und Strom möglichst genau messen zu können habe ich zusätzlich noch jeweils einen Komparator (mit Hysterese) verwendet, der in den Nulldurchgängen schaltet. Über einen schnellen Optokoppler werden die Signale dann direkt an den STM geleitet. Ich möchte dann die Phasenverschiebung mittels Interrupt und Timer messen. Für den Strom hab ich dasselbe an den Ausgängen der ACS732's angehängt. Zusätzlich hat die Platine noch einen Bus-Anschluss um die Strom/Spannungs- und Leistungsdaten dann an ein anderes Board weiterzuleiten, welches ein LC-Display und Bedienelemente hat. Weiters hab ich noch 30 Ausgänge für LEDs eingebaut um mittels dreier "10-Fach Bargraph" die Belastung direkt am Modul anzeigen zu können. Eingebaut wird das Ganze in ein "BC" Hutschienengehäuse von Phönix (siehe Bilder) Das Layout hab ich auf eine 4 Lagen Platine geroutet. Ich würde mich über positive Kritik und Tipps für Verbesserungen freuen. Falls ihr Fehler findet oder bei bestimmten Dingen bedenken habt dürft ihr mich auch gerne darauf aufmerksam machen. Wenn ich mir dann sicher bin, dass ich keine Fehler mehr in der Schaltung haben werde ich eine Platine bestellen und beginnen die Software zu schreiben. mfg Alex
Servus, hab nur mal grob drüber geschaut, mir sind folgende Punkte grad aufgefallen: - wo ist denn die Spannungsversorgung der Elektronik? - Warum externe ADC? Nicht die internen vom STM? - Warum die galvanische Trennung? - Wenn galvanische Trennung und externe ADC, dann wären die ADC auf HV-Seite sinnvoller und nur SPI über Opto ziehen - Sicherheitsabstände auf HV-Seite fehlen - Evtl. besser eine PCB mit Messung und HV zu machen und eine mit Logik und Anzeige? Dann wäre auch die Baugröße kleiner - Schnittstellen nach Außen? - SCH für Anzeigen fehlt noch? Wäre evtl. über Decoder universeller und einfacher? Viele Grüße, Flo
Was ich mich bei diesem Projekt frage ist, warum steckt man so viel Energie in etwas das man für ca. 100€ fix und fertig kaufen kann? Klar beim Basteln steht auch der Spaß im Vordergrund. Auch eine benötigte Eigenschaft die man schlecht kaufen kann können ein trifftiger Grund sein. Selbst wenn es trifftige Gründe gibt für einen Selbstbau/Selbstentwicklung, es scheint mir etwas sportlich zu werden auch nur annähernd die Parameter der käuflichen Geräte zu erreichen. (z.B. SDM630) Die ACS Stromsensoren sind sicher nicht schlecht aber Leistungen im Bereich von ein paar Watt sind damit nicht mehr messbar. Nach oben hin wird es aber auch knapp. Wenn die 100mV/A haben ist bei 25 A Spitzenstrom Schluss an 5V. Das sind gerade mal 17,7A effektiv. Bei Sinus wohlgemerkt. Stromkurven mit höheren Spitzen gehen noch schneller in die Begrenzung. Ich frage mich ernsthaft warum du nicht die relativ preiswerten Chips verwendest die speziell auf diese Anforderungen hin hergestellt werden. einen genauen Typ habe ich jetzt nicht im Kopf, aber eine kurze Suche hier im Forum hilft garantiert. Wenn du einen bestimmten Einsatzzweck vor hast den du uns noch nicht verraten hast kann das ganze noch Sinn machen, oder wenn es dir ein Erfolgserlebniss verschafft. Das andere dem etwas positives abgewinnen können sehe ich aber nicht.
Danke für eure Antworten :) Flo schrieb: > wo ist denn die Spannungsversorgung der Elektronik? Im zweiten Bild auf der Linken Seite J3 ist der Anschluss für das 12V Netzteil. Im unteren Bereich sind die Spannungsregle, für 12V->5V ein TPS709B50, für die 3,3V ein S-812-33 und für die Galv. getrennte Seite ein RB1212S DC/DC Converter von Recom. Flo schrieb: > Warum externe ADC? Nicht die internen vom STM? In diesem Fall weil die ISO224's eine Symmetrische Ausgangsspannung liefern und ich die soweit ich weiß nicht mit dem STM auswerten kann. Kleiner Nebeneffekt die ADCs haben 14Bit statt nur 12 (wie die internen), auch wenn mir das nicht viel bringt. Flo schrieb: > Wenn galvanische Trennung und externe ADC, dann wären die ADC auf > HV-Seite sinnvoller und nur SPI über Opto ziehen Wäre auch eine Möglichkeit, aber dann sollte die Galv. getrennte Versorgung der ADCs sauber sein und ich vertraue den eingesetzten DC/DC Converter nicht ganz, weil ich damit nicht so gute EMV-Erfahrungen gemacht habe. Flo schrieb: > Warum die galvanische Trennung? Damit ich mir keine Sorgen machen muss wenn ich mit angesteckten Programmierstecker meine Software einspiele und um die LED-Anzeige in späterer folge ohne Bedenken berühren zu können. Zusätzlich möchte ich mit dem 12V Netzteil auch noch andere Komponenten versorgen unter anderem ein Bedienpanel und das wäre sonst nicht so möglich, denke ich. Flo schrieb: > Sicherheitsabstände auf HV-Seite fehlen OK hier hast du wohl recht, ich hab nachgelesen man sollte zwischen L/N und Niederspannungsseite mindestens 6mm abstand haben, ich hab nur ca 2,8 - 3mm (https://www.mikrocontroller.net/articles/Leiterbahnabst%C3%A4nde). Hier werde ich die Leiterbahnen, bei denen es knapp wird, auf einen Innen-Layer verlegen. Flo schrieb: > Schnittstellen nach Außen? Habe ich eine Busschnittstelle am J3 nach draußen geführt (Bild 2 links oben). Damit kann ich alle meine Daten abrufen. Flo schrieb: > SCH für Anzeigen fehlt noch? Wäre evtl. über Decoder universeller und > einfacher? Ich könnte einen IO-Expander mit I2C verwenden, dann hätte ich weniger Leitungen zur Anzeige, jedoch hat der Controller so viele Pins die ich ansonsten nicht nutze und so spar ich mir die Implementierung der Ansteuerung für den Expander. Mit einem 4 zu 16 Decoder könnte ich auch arbeiten aber: Selbes Argument wie beim I2C und ich spar mir den zusätzlichen IC auf kosten eines Kabels mit mehr Polen. Jedoch hab ich ein Flachbandkabel zur Verfügung und die Leitungslänge beträgt auch nur ein paar cm. temp schrieb: > Was ich mich bei diesem Projekt frage ist, warum steckt man so viel > Energie in etwas das man für ca. 100€ fix und fertig kaufen kann? Klar > beim Basteln steht auch der Spaß im Vordergrund. Auch eine benötigte > Eigenschaft die man schlecht kaufen kann können ein trifftiger Grund > sein. Selbst wenn es trifftige Gründe gibt für einen > Selbstbau/Selbstentwicklung, es scheint mir etwas sportlich zu werden > auch nur annähernd die Parameter der käuflichen Geräte zu erreichen. > (z.B. SDM630) In gewisser weiße hast du recht jedoch hat der von dir vorgeschlagene SDM630 nur eine MODBUS Schnittstelle und die kann ich ohne größeren Aufwand nicht wirklich in meine µC's einbauen. Sicher spielt auch der Reiz am Selbstbau etwas mit. temp schrieb: > Die ACS Stromsensoren sind sicher nicht schlecht aber > Leistungen im Bereich von ein paar Watt sind damit nicht mehr messbar. > Nach oben hin wird es aber auch knapp. Wenn die 100mV/A haben ist bei 25 > A Spitzenstrom Schluss an 5V. Das sind gerade mal 17,7A effektiv. Bei > Sinus wohlgemerkt. Stromkurven mit höheren Spitzen gehen noch schneller > in die Begrenzung. Ich hab mit das Ziel gesetzt ca. 10kW messen zu können, größere Lasten werde ich voraussichtlich sowieso nicht anhängen und da sollten die ACS ausreichen. Die Messung von geringen Lasten muss ich mir dann bei den ersten Versuchen anschauen ich kann so noch nicht abschätzen was der geringste vernünftig messbare Strom sein wird, aber ich denke das dasselbe Problem auch bei allen anderen Messmethoden auftritt? temp schrieb: > Ich frage mich ernsthaft warum du nicht die relativ preiswerten Chips > verwendest die speziell auf diese Anforderungen hin hergestellt werden. > einen genauen Typ habe ich jetzt nicht im Kopf, aber eine kurze Suche > hier im Forum hilft garantiert. > Wenn du einen bestimmten Einsatzzweck vor hast den du uns noch nicht > verraten hast kann das ganze noch Sinn machen, oder wenn es dir ein > Erfolgserlebniss verschafft. Das andere dem etwas positives abgewinnen > können sehe ich aber nicht. Ja ich kenne die Leistungsmesschips von Analog Devices (z.B. ADE7858), jedoch ist die Konfiguration und Auswertung von diesen Chips mMn auch nicht ganz trivial. Vielleicht werde ich so einen Chip in der V2 meiner Platine verwenden. @Flo Ich hab die SCH von der Anzeige-Platine auch noch angehängt, ist aber nicht sehr aufregend ;) Danke nochmals für eure Tipps!
:
Bearbeitet durch User
Alex H. schrieb: > hat der von dir vorgeschlagene SDM630 nur eine MODBUS Schnittstelle und > die kann ich ohne größeren Aufwand nicht wirklich in meine µC's > einbauen. Welcher größere Aufwand? Modbus über RS485 braucht nur eine RS485-Schnittstelle, die Software dafür ist ziemlich simpel.
Alex H. schrieb: > In gewisser weiße hast du recht jedoch hat der von dir vorgeschlagene > SDM630 nur eine MODBUS Schnittstelle und die kann ich ohne größeren > Aufwand nicht wirklich in meine µC's einbauen. Ich schätze mal der Entwicklungsaufwand für dein Projekt ist ca. 30mal so groß wie die Implementierung der Modbusabfragen an den Sdm630. Dafür findest du auch Code im Netz. Was höchstens nochmal von Bedeutung ist, wäre eine Art Broadcast wenn mehrere weitere Geräte die Informationen benötigen. Dafür kann man dann CAN verwenden oder ein selbstgestricktes serielles Protokoll was die Daten zyklisch sendet. Der Aufwand dafür ist ein einziger kleiner µC mit einmal RS485 und einer weiteren Schnittstelle deiner Wahl. Da hast du dann immer noch eine Spielwiese wenn nötig. Und hast mehrerer Fliegen mit einer Klappe geschlagen. Einmal hast du ein industriell gefertigtes Gerät welches sogar ein deutscher Händler vertreibt für relativ kleines Geld. Alle Sicherheitsfragen und mechanischen Aspekte sind damit gelöst. Du kannst dich um die Hardware/Softwarezwischenschicht kümmern die das Messgerät mit deinen weiteren µCs verbindet und bewegst dich damit auf relativ ungefährlichen Terrain.
Guten Tag, Zwei Hinweise zu den Hallsensoren, vielleicht helfen sie dir. Meiner Erfahrung nach ist es sehr wichtig wenig Rauschen in der Spannungsversorgung zu haben um kleinere Ströme überhaupt sinnvoll zu erfassen. Vielleicht wäre eine Optimierung der Versorgung und eine Filterung ein Zugewinn für dich. Außerdem habe ich gerade bei kleinen Strömen das Rauschen stark messen können, es hilft etwas wenn unter dem Hallsensor keine Leiterbahnen sind, dazu steht auch etwas im Datenblatt. Gruß, Martin
Sowas gab es doch hier erst vor kurzem mit deutlich geringerem Aufwand Beitrag "piMeter - Raspberry Pi Smartmeter"
Ich hab mir das Modbus Protokoll jetzt einmal genauer angesehen und es ist tatsächlich sehr einfach zu implementieren, ich muss es mit Modbus/TCP oder Profinet verwechselt haben. Ich werde jetzt entweder - das vorgeschlagene SDM630 Modul (ca. 140€ bei "stromzähler.eu") - oder das Siemens Sentron PAC3100 (ca. 250€ bei Conrad) Die RS485 Schnittstelle werde ich auf meiner anderen Platine integrieren und somit dürfte das die einfachste Lösung sein. Danke nochmals für den Hinweis! mfg Alex
...zum Vergleich prof. Smart Meter mit PLC Powerline-Anschluss und "Testvorführung" https://www.youtube.com/watch?v=wfLoiwe1fgA
:
Bearbeitet durch User
Autor: temp (Gast), fragte sich am Datum: 20.01.2019 22:56; >Was ich mich bei diesem Projekt frage ist, warum steckt man so viel >Energie in etwas das man für ca. 100€ fix und fertig kaufen kann? Weil man es kann! Weil man dabei etwas lernt. Weil es cool ist und man es vielleicht mal bei einem Arbeitgeberwechsel als Referenz vorzeigen kann womit man sich in der Freizeit beschäftigt, während andere stattdessen Fußball gucken. Typisch deutsche Miesepetermentalität.
@Autor: Alex H. (alex93) Probier mal libmodbus. Bei mir hat libmodbusTCP nach geschätzt 15min funktioniert. RTU mit nem SDM120 - ich hatte das Fork mit der Benutzung der I/O-Leitungen des Raspi, dauerte ne Stunde - wegen 'nem Hardwarefehler.
timertick_t schrieb: > Weil man es kann! Weil man dabei etwas lernt. > Typisch deutsche Miesepetermentalität. Ach da hat wohl mal wieder einer irgendwo einen tollen Spruch aufgeschnappt den er cool findet. Der hat aber auch schon so einen langen Bart dass es nur peinlich ist den zu wiederholen. Außerdem hat Alex nicht das Problem nur Spaß haben zu wollen und was zu lernen, sondern die Leistungsmessung ist Teil einer Gesamtaufgabenstellung. Und wie er selbst schreibt, hat er der Diskussion hier auch entnommen, dass er die Komplexität der Modbuskommunikation hier komplett falsch eingeschätzt und überbewertet hat. Bisher war der Thread für dieses Forum erstaunlich sachlich verlaufen. Allerdings bist du auf dem besten Weg das wieder in Richtung Standard zu verschieben. Am besten wir sparen uns eine weitere Diskussion um das Thema. timertick_t schrieb: > Probier mal libmodbus. Bei mir hat libmodbusTCP nach geschätzt 15min > funktioniert. RTU mit nem SDM120 - ich hatte das Fork mit der Benutzung > der I/O-Leitungen des Raspi, dauerte ne Stunde - wegen 'nem > Hardwarefehler. Hier war nirgends von einem Raspi die Rede. Alex will, dass seine Controller über die Leistungsdaten verfügen. In dem Umfeld würde wohl keiner auf die Idee kommen noch so einen Klotz wie den Raspi dazwischen zu schalten für ein paar popelige Byte UART Kommuinikation.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.