Strommessender Schaltaktor

Fragen und Diskussionen zur Entwicklung von neuen Geräten. Sowohl Hardware als auch Software. English is welcome.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Strommessender Schaltaktor

Beitrag von Florian »

Hallo allerseits,

nachdem ich von den Eigenentwicklungen hier ganz fasziniert bin, habe ich auch mal mit einem Gerät angefangen: Ein strommessender Schaltaktor soll's werden:

Bild

Bild

Zu sehen ist die Testplattform mit 4 strommessenden Schaltkanälen. Oben aufsteckbar die TS-ARM. Für die spätere Umsetzung schwebt mir eine andere Kanalzahl vor, evtl 6 (weil 2x 6TE = 12TE). Und wenn das Gerät Bedienelemente haben soll, müsste auch noch ein anderer Controller her.

Als Relais wird wahlweise die bekannte kompakte 16A Bauform oder die soliden, überdimensionierten Relais, die auch ABB, MDT (und vermutlich weitere) in ihren "Industrieausführungen" benutzen, eingesetzt.

Die Strommessung ist realisiert mittels Stromwandlern, die Linearität der Talema AX-1500 ist erstaunlich gut. Auswertung multiplexed in zwei Messbereichen. Das LSB entspricht im unteren Messbereich dann ca 3mA, damit sollten auch kleine Lasten messbar sein. Wenn alles so klappt wie in der Theorie ;) sollte der ADC des ARM schnell genug sampeln könnnen, um eine schöne Effektivwertmessung hinzubekommen. Dabei ist mir die Effektivwertmessung gar nicht so wichtig, da ich als Einsatzzweck eher die Überwachung von Verbrauchern sehe (z.B. Fernseher an? Oder aus?). Sie ist jedoch quasi Abfallprodukt eines direktsampelnden Messkonzepts.

Die Signalauswertung ist übrigens weder an ABB noch an MDT angelehnt. Im Gegenteil ist dieses Projekt mit dem Gedanken gestartet, ob es nicht deutlich einfacher geht, als die etablierten es machen. Es hat halt Vorteile, einen aktuellen µC zu benutzen :D

Zusätzlich soll sich dieser Schaltaktor an die KNX-Spec bezüglich Stromaufnahme halten, also in der Nähe von 10...15mA max. Daher auch Energiespeicherung in viel Kapazität für die Schaltvorgänge. Auf den Bildern sind nur 2000µF zu sehen, das wird noch mehr werden müssen.

Der aktuelle Stand der Platinen: An der Ausgangsseite habe ich schon ein paar Erwärmungstest unter Last gemacht. Die Ansteuerseite hat noch keinen Strom gesehen. Es gibt noch keine Zeile Quelltext.

Tags:
StefanSverige
Beiträge: 163
Registriert: 15. Feb 2014, 13:32

Re: Strommessender Schaltaktor

Beitrag von StefanSverige »

Hallo Florian,

schönes Projekt, das sieht sehr gut aus. Ich bin gespannt. Bezüglich der Produktdatenbank müsste man sich Gedanken machen. Zur Zeit sind wir noch auf einen Spender, also eine fertige VD angewiesen, wenn es größer als eine BCU1 seien soll.

Es wäre wünschenswert wenn Du Schaltplan und Layout veröffentlichst. Für Geräte die noch in der Entwicklung sind haben wir das hardware-incubator Repository.

/Stefan
StefanT
Beiträge: 268
Registriert: 17. Mai 2013, 08:18
Wohnort: Salzburg

Re: Strommessender Schaltaktor

Beitrag von StefanT »

Das sieht schon super aus :D

Bezüglich Stromverbrauch: die kommerziellen Geräte nehmen heutzutage Bistabile Relais, aber das weißt du sicher :-)

Repository Rechte bekommst du ganz einfach bei mir, falls du deine Sachen einchecken willst, was uns sehr freuen würde.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Strommessender Schaltaktor

Beitrag von Florian »

Die Dauerstromaufnahme ist auch nicht das Thema, der angegebene Maximalstrom gilt auch für kurzzeitige Schaltvorgänge. Ansonsten könntest du dem Bus bei einer größeren KNX-Installation mit einem einzigen Zentralsteuerbefehl den Garaus machen. Bei 600mW pro Relais wäre dann bei 32 Kanälen das 640mA Netzteil am Ende.

Auf das Angebot mit einchecken in's Git komme ich zurück, sobald ich die grundsätzliche Funktionsfähigkeit meines Konzepts nachgeprüft habe.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Strommessender Schaltaktor

Beitrag von Florian »

Obwohl ich bisher hier nichts weiter geschrieben habe, so hat das Projekt doch Fortschritte gemacht:

Die Strommessung habe ich inzwischen soweit programmiert, getestet und optimiert. Im Testsystem sammelt der Mikrocontroller in einer 100kHz ISR Daten von 8 Kanälen (4 real, 4 fiktiv) in 2 Messbereichen. Je Kanal und Messbereich wird dann effektiv mit 5kHz abgetastet. Dieser Ausbau ist dann auch das maximal Sinnvolle, denn obwohl die ISR recht kurz ist, verbringt der LPC1115 rund 50% seiner Zeit in der ISR. Nach meinen Messungen scheint es ohne größere Abstriche möglich zu sein, die Abtastrate auf 50 kHz zu senken. Das macht dann 2,5 kHz je Kanal und Messbereich.
Überhaupt Messungen: Die Genauigkeit der Strommessung ist recht erfreulich. Getestet habe ich das Ganze mit einem munteren Zoo von Lasten: Diverse Schaltnetzteile und Geräte mit Schaltnetzteilen, LED-Lampen und ohmschen Lasten. Zur Veranschaulichung habe ich unten beispielhaft drei Oszibilder angehängt. Die Bilder zeigen natürlich nicht die Messung des Mikrocontrollers, der akkumuliert nur Quadrate der Messwerte. Die Aufnahmen entstammen einer Strommesszange. Besonders die Messung "Labornetzgerät ausgeschaltet" weist nochmal auf eines hin: Der geplante Schaltaktor misst keinen reinen Wirkstrom, sondern den Effektivstrom. Beim ausgeschalteten Netzgerät ist dies reiner Blindstrom des Netzfilters!
Die eigentlichen Genauigkeitsmessungen habe ich mit einem Agilent 34410A (direkt oder über 0,1% Shunt) gemacht. Nach den Messungen mit meinen Lasten schätze ich die erreichbare Genauigkeit auf
3% +/-5mA
Wenn mittels einer Referenzmessung mit ohmscher Last eine Justierung vorgenommen wird
1,5% +/-5mA
Das ist genauer als ich erwartet hatte.
USB Hub mit kleiner Last
USB Hub mit kleiner Last
USB Hub mit kleiner Last.png (25.21 KiB) 12344 mal betrachtet
9W5 LED Leuchtmittel
9W5 LED Leuchtmittel
9W5 LED Leuchtmittel_.png (28.21 KiB) 12344 mal betrachtet
Labornetzteil -aus-
Labornetzteil -aus-
Labornetzteil -aus-.png (37.6 KiB) 12344 mal betrachtet
Die Relais können auch schon klappern. Da ich mich für eine echte Strombegrenzung Bus-seitig entschieden habe, sind die zu Grunde liegenden Routinen doch ein bischen aufwändiger geworden. Dann kann nämlich zeitweilig nicht genug Energie zum Schalten verfügbar sein und Schaltvorgänge müssen zwischengespeichert und evtl sogar zusammengefasst werden. Als recht interessant hat sich der Vergleich von käuflichen Aktoren von ABB und MDT erwiesen. Die unterschieden sich in der Frage, welche Schaltbefehle in welcher Reihenfolge wie abgearbeitet werden, wenn Energieknappheit herrscht. Mir gefällt der ABB da besser (First In-First Out. Gemeinsam erteilte Schaltbefehle verschiedener Kanäle werden gemeinsam abgearbeitet. Schaltbefehle mit Zeitfunktion werden sogar bei Ausfall der Busspannung gespeichert.). Der MDT hat dagegen eine klare Priorisierung der Kanalnummern: Wenn Energie zur Verfügung steht, wird erst Kanal 1 geschaltet. Dann Kanal 2, etc.... Es kann dann vorkommen, dass die Kanäle hoher Nummer quasi ewig warten müssen.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Strommessender Schaltaktor

Beitrag von Florian »

In letzter Zeit beschäftige ich mich mit der sblib und ihrer Verwendung. Dabei bin ich auch recht tief in die Strukturen abgestiegen. Da muss ich dann auch sagen: Hut ab! Da steckt eine Menge Arbeit drin!

Leider finde ich sie trotzdem sehr schwer einzusetzen, denn ich konnte im Grunde keine Doku finden. Auch die Beispiele lassen viele Fragen offen. Letztendlich habe ich den einfachen Busmonitor der bcu.cpp mit einer interpretierten Telegrammausgabe erweitert, um mir die gesamte Buskommunikation mit der ETS auf sinnvolle Art und Weise ansehen zu können. Damit bin ich jetzt soweit, dass ich das TS-ARM von der ETS5 aus wie ein SA/S8.16.6.1 mit einer Applikation programmieren kann.

Mir sind dabei einige Merkwürdigkeiten der sblib aufgefallen. Wie ist das bei euch? Behält da jemand von euch gerne die Kontrolle über die Lib oder gilt: Wem die Funktionalität nicht gefällt oder Fehler findet ändert sie selber?
Im einzelnen:
  • Was macht bcu.applicationShouldRun()? Das Ergebnis scheint immer true zu sein, unabhängig von Applikation entladen/laden/geladen.
  • bcu.applicationRunning() ist nur im Application-Loadstate "Unloaded" false, ansonsten immer true. Also auch wenn die Applikation aktuell gerade geladen wird oder das Laden fehlgeschlagen ist. Der Zustand der Adresstabelle oder der Assoziationstabelle wird nur insofern berücksichtigt, als dass die ETS diese normalerweise zuerst schreibt.
  • Das Ändern der Loadstates ist scheinbar rein volatil. Wähle ich in der ETS "Entladen", so gilt dieser Zustand nur bis zum nächsten Neustart (egal ob uC-Neustart oder ETS "Zurücksetzen"). Danach ist die Applikation angeblich wieder aktiv.
  • In meinem Fall ist es problematisch, dass die sblib beim Neustart oder beim Abspeichern von Daten im Flash das Applikationsprogramm ohne Vorwarnung nicht mehr ausführt und alle ISRs sperrt. Ich werde da einen Mechanismus brauchen, mit dem das Sperren so lange verzögert wird, bis die Applikation einen sicheren Zustand erreicht hat. (Aktuellen Schaltpuls beenden, Zustände sichern)
  • Ähnliches gilt für den Beginn eines Konfigurationsvorgangs.
macke384
Beiträge: 21
Registriert: 7. Jan 2014, 11:56

Re: Strommessender Schaltaktor

Beitrag von macke384 »

Hallo Florian,

wäre es eine Idee einen TS-ARM in ein 2 TE Gehäuse zu bauen und dann quasi immer um ein 4 Kanal zu erweitern, sodass evtl. maximal ein 12 er entsteht. Da ich mich noch nicht mit der ARM Entwicklung auseinandergesetzt habe kann ich dir leider auch noch nicht weiterhelfen. Ich glaube ich muss mir mal ein Entwicklungsbord zulegen....

Gruß
Michael
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Strommessender Schaltaktor

Beitrag von Florian »

Ja, das würde das Ganze recht modular machen. Allerdings wären dann an der Position des Controllers keine Kanäle - insgesamt weniger Kanäle bei mehr Breite. Da ist es schon praktischer, wenn der Controller in das Gerät integriert wird.

Wenn dieser Controller dann als universeller Top-Controller ausgelegt werden könnte, dann wäre meiner Meinung nach viel gewonnen. Allerdings weiß ich momentan nicht, was die anderen Entwickler so für Anforderungen an einen aktuellen Top-Controller für ihre Geräte haben. (Top-Controller: Controller als oberste Platine im Hutschienengehäuse.)
StefanSverige
Beiträge: 163
Registriert: 15. Feb 2014, 13:32

Re: Strommessender Schaltaktor

Beitrag von StefanSverige »

Bei den ARM Controllern sind wir noch im Aufbau. Wir freuen uns über jeden der Mithelfen möchte. Am besten kommt Ihr Abends im Forum vorbei, die aktuellen Dinge, besonders rund um die Entwicklung werden dort besprochen.
Bitte etwas Geduld mitbringen, es ist nicht immer jeder Entwickler Online. Wir machen das ganze in unsere Freizeit neben Beruf, Baustelle und Familie.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Strommessender Schaltaktor

Beitrag von Florian »

Ein weiterer wichtiger Meilenstein ist geschafft: Die Applikation ist soweit fertig!
Ok, es gibt noch keine Handbedienung - schlicht weil mein Testsystem keine hat.

Hinter den Kulissen hat es dafür einige Erweiterungen in der sblib gebraucht, aber auch das ist jetzt soweit abgeschlossen.

Neben der Erstellung der endgültigen Hardware bleibt eine Frage:

Wie soll das Kind denn heißen? Mein Vorschlag wäre:

out-cs-bim112
Output actuator - current sensing - BIM112

Eine spezielle Kanalzahl im Namen zu verewigen scheint mir nicht sinnvoll, da die Applikation einen 2, 4, 8 oder 12-fach Aktor darstellen kann.
Antworten