Pages: [1] 2 3   Go Down
Author Topic: SOLVED: Relais-Problem (SaintSmart) mit 3-Wege-Ventil  (Read 3556 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

kurz und schmerzlos zum Problem mit meiner verzweifelten Bitte um Tipps:

Ausgangssituation
Mein Mega-Arduino steuert eine Heizungsanlage; das geht über I2C und einen Portexpander, auf dem ein PCF8574 werkelt.
Dieser sendet mein Byte (8 Bits) auf eine Relaiskarte, die wiederum Ventile und Pumpen bedarfsgerecht an- und ausschaltet.

Nach einigen Problemen mit der Abschirmung des Datenkabels zum I2C-LCD-Display fünf Meter weiter, habe ich dieses im Abstand zu Stromleitungen verlegt und damit die oft auftretenden Probleme mit einem fehlgesteuerten LCD (Müll im Display) beseitigt.

Die Anlage läuft astrein - leider nur fast.

Im Sommer kommt ein 3-Wege-Ventil zum Einsatz. Bei seiner Arbeit stürzt der Arduino nun mit allem drum und dran ab, das Display spinnt und der Arduino nimmt keine Befehle über ein Keypad entgegen.

Problemeingrenzung
Durch div. Tests konnte ich das 3-W-Ventil als Verursacher festmachen. Dieses wird über einen Relaisausgang zu- und über den anderen ausgeschaltet. (Ein drittes Kabel dahin ist N).
Wenn der Motor des Ventils dieses zu Ende gedreht hat, stoppt der Motor automatisch und just in diesem Augenblick stürzt meine Steuerung in der Regl ab.
Das Komisch daran ist, dass die Relaiskarte (acht Relais, Optokoppler: Link: http://www.sainstore.de/sainsmart-8-kanal-dc-5v-relay-modul-fur-arduino-pic-arm-avr-dsp-msp430-ttl-logic.html) eine eigene Stromversorgung hat, und diese ist über Optokoppler mit den Pins der PCF8574-Karte (I2C-gesteuert) verbunden. Die Problematik taucht nicht auf, wenn das Ventil nicht am Relais hängt.

Unten folgen die Bilder der Relaiskarte und der Plan. Dazu: JD-VCC und die eingezeichnete Erdung gehen zum eigenen 2A-Netzteil (dieses habe ich auch schon gegen andere gecheckt). VCC und IN0 bis IN7 gehen zum Portexpander. Dieser ist unten ebenfalls abgebildet.

Ich meine: das kann doch nicht sein! Ich habe schon daran gedacht, dass die Diode der Relaiskarte zickt - dazu sind aber die Optokoppler doch da, um das auszubügeln.

Diagnose?

Ich bin mit meinen Nerven am Ende - hat bitte jemand einen Tipp, wo ich weitersuchen sollte?

Grüße


* 8ch5v.jpg (66.08 KB, 800x364 - viewed 36 times.)

* 4CHSCH.jpg (26.36 KB, 923x380 - viewed 55 times.)

* 0PortEx.JPG (47.39 KB, 693x520 - viewed 41 times.)
« Last Edit: August 10, 2013, 02:51:52 am by michael--g » Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 96
Posts: 4702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie wird das Ventil mit Strom versorgt? Woher bekommt der Arduino den Strom? Hängt die Relaiskarte an einem anderen Netzteil? Meine Vermutung geht Richtung Stromversorgung, vielleicht hast Du da einen zu starken Spannungseinbruch oder dergleichen.

Wenn Du das I2C-Display mehr als 50cm vom Arduino weg hast, würde ich ein Paar P82B715 I2C-Extender einsetzen.

Ist der Absturz des Arduinos immer gleich oder äussert er sich mal so, mal anders?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie wird das Ventil mit Strom versorgt? Woher bekommt der Arduino den Strom? Hängt die Relaiskarte an einem anderen Netzteil? Meine Vermutung geht Richtung Stromversorgung, vielleicht hast Du da einen zu starken Spannungseinbruch oder dergleichen.

Ventil wird mit 230V versorgt, das Relais schaltet es in die eine oder andere Richtung.
Der Arduino hat ein eigenes Netzteil mit 7 V.
Das LCD hat ebenfalls ein eigenes Netzteil, das auch die Temperaturfühler versorgt, die Massen sind zusammengeschlossen.

Quote
Wenn Du das I2C-Display mehr als 50cm vom Arduino weg hast, würde ich ein Paar P82B715 I2C-Extender einsetzen.

Ja, das ist der Fall, es sind ca. 4-5 Meter. Allerdings gibt es dabei keine Schwierigkeiten, es auch ohne Extender zu machen, da das Signal stabil ist. Am Ende ist auch ein I2C-Keypad mit entsprechenden Pullups. Ich teste es mal am Wochenende unten im Keller, denn die Fehler kommen nur dann, wenn die Pumpe anläuft.

Quote
Ist der Absturz des Arduinos immer gleich oder äussert er sich mal so, mal anders?

Ich habe bisher keine Regelmäßigkeiten entdeckt: das Display bekommt wirres Zeug geliefert und die Steuerung bricht zusammen. Alles unmittelbar nachdem das Ventil angesteuert wurde. Daher habe ich bewußt den Optokoppler aktiviert, indem ich ein drittes Netzteil eigens für die Spannungsversorgung der Relais angeschlossen habe.

Aber etwas Besonderes passiert in einigen Fällen: Beim Neustart klickt dann das entsprechende 3W-Ventil kurz an und aus, das passiert 3-4 Mal, dann ist das Resultat das Selbe (LCD tot, Arduino auch).

Es ist zum Weinen.

Grüße
« Last Edit: July 26, 2013, 10:00:36 am by michael--g » Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2448
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich meine: das kann doch nicht sein! Ich habe schon daran gedacht, dass die Diode der Relaiskarte zickt - dazu sind aber die Optokoppler doch da, um das auszubügeln.

Diagnose?

Diagnose hast Du doch schon selbst gemacht: Wenn der Motor des Ventils dieses zu Ende gedreht hat, stoppt der Motor automatisch und just in diesem Augenblick stürzt meine Steuerung in der Regl ab.

Mit dem Motor schaltest eine sogenannte "induktive Last", und wenn diese induktive Last abgeschaltet wird, baut sich aus dem in der Motorwicklung gespeicherten Magnetfeld kurzfristig eine Induktionsspannung auf, die ein mehrfaches der geschalteten Spannung beträgt.

Läuft der Motor auf Gleich- oder auf Wechselstrom? Motordaten?

Und was hast Du als Löschschaltung für die Begrenzung der Überspannung beim Abschalten des Motorstroms vorgesehen?

Wahrscheinlich "gar nix" wenn ich mal raten darf und Deine Fehlerbeschreibung lese.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich meine: das kann doch nicht sein! Ich habe schon daran gedacht, dass die Diode der Relaiskarte zickt - dazu sind aber die Optokoppler doch da, um das auszubügeln.

Diagnose?

Diagnose hast Du doch schon selbst gemacht: Wenn der Motor des Ventils dieses zu Ende gedreht hat, stoppt der Motor automatisch und just in diesem Augenblick stürzt meine Steuerung in der Regl ab.

Mit dem Motor schaltest eine sogenannte "induktive Last", und wenn diese induktive Last abgeschaltet wird, baut sich aus dem in der Motorwicklung gespeicherten Magnetfeld kurzfristig eine Induktionsspannung auf, die ein mehrfaches der geschalteten Spannung beträgt.

Läuft der Motor auf Gleich- oder auf Wechselstrom? Motordaten?

Und was hast Du als Löschschaltung für die Begrenzung der Überspannung beim Abschalten des Motorstroms vorgesehen?

Wahrscheinlich "gar nix" wenn ich mal raten darf und Deine Fehlerbeschreibung lese.


"Gar nix" trifft es. Der Motor des Ventils schaltet automatisch, wenn er das Ventil gedreht hat. Darum habe ich mir keine weiteres Gedanken gemacht. Aber wenn ich es richtig verstehe, sollte das Relais in Mitleidenschaft gezogen werden. Dafür ist bei der Relaiskarte eine Diode eingebaut, s. Zeichnung. Da die Ansteuerung der Relaiskarte mit einem Optokopller getrennt ist, dürfte das doch keine Auswirkungen auf den Arduino haben, oder?

Hier ein paar Daten zum Ventil:


    Medium: Wasser oder Wasser mit 50% Glykol
    Temperatur: 2 bis 90°C
    Spannung: 230 Volt 60 Hz(+/-10%)
    Verbrauch: 4 Watt (nur wenn das Ventil sich bewegt)
    Druckklasse: 16 bar
    Laufzeit: öffnen /schließen 15 Sekunden
    Gehäuse: Bronze, vernickelt
    Abmessungen: 120 x 85 mm (Ventil mit Steuermotor)
    Differenzdruck: 0,3 MPA
    Anschluss: 3/4" Innengewinde
    Innendurchmesser: 15mm
und ein Bild unten.

Grüße


* 1anschluss.jpg (31.96 KB, 385x221 - viewed 28 times.)
Logged

D-49565 Bramsche
Offline Offline
Sr. Member
****
Karma: 6
Posts: 477
Geht nich ? Gipp's nich !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Na ja, mit grade mal 4 Watt ist das Ventil ja nun nicht der Hammer unter den Verbrauchern und sollte bei Abschaltung auch keine nennenswerten Störungen im Netz verursachen. Aber man weiß ja nie ...

Im ersten Ansatz würde ich erst mal die Stromversorgung des Arduino aus einer anderen Phase ziehen. Nicht nur aus einem anderem Stromkreis sondern wie gesagt aus einer anderen Phase !
Ich weiß ja nicht wie das bei euch be-/verschaltet ist und ob du weißt was wo drann hängt.
Falls nicht, einfachster Weg:
Hinter dem FI muss eine 3-phasige Absicherung sitzen. Kick die mal der Reihe nach raus und schau auf welcher Phase deine Heizung (mit Steuerung) liegt.
Die lässt du dann aus und schaust, wo es im Umkreis noch "besaftete" Steckdosen gibt. Ambesten auch hier mal testen, was auf welcher Phase liegt.
Dann nimmst du erst mal ne Verlängerungsstrippe und höängst nur den Arduino mit deinem Netzteil dran.

Und dann mal schauen, ob sich was ändert.
Logged

To young to die - never to old for rock'n roll

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Im ersten Ansatz würde ich erst mal die Stromversorgung des Arduino aus einer anderen Phase ziehen.
...
Und dann mal schauen, ob sich was ändert.

Gesagt - getan. Habe nur den Arduino an eine anderen Phase gehängt. Kein anderes Ergebnis :-(
Dann diesen und abwechselnd die anderen beiden Netzteile (einmal Versorgung der Relaiskarte, einmal der restlichen Infrastruktur: LCD, Fühler). Ebenfalls kein anderes Resultat :-(

Wohlgemerkt: Die Relaisversorgung und der Rest inkl. Arduino haben kein gemeinsames GND. DIeses wurde hier im Forum schon einmal anders empfohlen. (Aber auch dann gleiches Resultat, leider).

Grüße
Logged

D-49565 Bramsche
Offline Offline
Sr. Member
****
Karma: 6
Posts: 477
Geht nich ? Gipp's nich !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In der Tat kurios !
Die Masse der Relaiskarte sollte hier auch nicht mit auf Masse Elektronik. Sonst wäre die galvanische Trennung zwischen Schwach- und Lastromteil hinfällig.
Der Arduino, Portexpander und alle Meßfühler allerdings schon.

Schon mal die Elektronik an eine (Auto-) Batterie gehängt ? Wär meine letzte Idee.

Wenn das so nicht zu lösen ist, würde ich so was wie nen kleinen Debugger vorschlagen.
Sprich: Du hängst den Arduino bei der Arbeit (die Heizung regeln) mit an den Rechner.
Damit du mal mitbekommst, wo er denn genau und ggf. warum stehen bleibt, dazu müsste man in den Source halt ebend ne Reihe von Serial.print's einbauen.
Logged

To young to die - never to old for rock'n roll

Switzerland
Offline Offline
Faraday Member
**
Karma: 96
Posts: 4702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Könnte es sein, dass Deine 5m-Leitung doch einige Impulse des Ventils "übermittelt" bekommt und deshalb der Arduino aus dem Trott kommt? Verabschiedet er sich auch, wenn Du diesen ganzen Strang abhängst? Wenn das Ventil über mechanische Endschalter abstellt, wären solche Störsignale durchaus denkbar, wenn auch eher ungewöhnlich.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In der Tat kurios !
Die Masse der Relaiskarte sollte hier auch nicht mit auf Masse Elektronik. Sonst wäre die galvanische Trennung zwischen Schwach- und Lastromteil hinfällig.
Der Arduino, Portexpander und alle Meßfühler allerdings schon.
Genau, so ist es also richtig.

Quote
Schon mal die Elektronik an eine (Auto-) Batterie gehängt ? Wär meine letzte Idee.
Wenn das so nicht zu lösen ist, würde ich so was wie nen kleinen Debugger vorschlagen.
Ich versuche das am Wochenende, dann nehme ich den Laptop mit in den Keller und berichte hier...
Der Debugger ist schon wegen diverser Optimierungen bereits im Quelltext :-) Aber bis auf die Abfrage des Keypads lese ich über I2C nichts aus, naja, dann mal sehen...

Grüße
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Könnte es sein, dass Deine 5m-Leitung doch einige Impulse des Ventils "übermittelt" bekommt und deshalb der Arduino aus dem Trott kommt? Verabschiedet er sich auch, wenn Du diesen ganzen Strang abhängst? Wenn das Ventil über mechanische Endschalter abstellt, wären solche Störsignale durchaus denkbar, wenn auch eher ungewöhnlich.

Das ist natürlich noch eine Möglichkeit :-/ Ich hänge gleich das LCD ab (Ausstöpseln reicht, oder?) und schaue...
Wenn die galv. Trennung aber funktioniert, würden diese Störsignale am Optokoppler der Relaiskarte hängenbleiben (?)... Ich berichte...

Grüße
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 96
Posts: 4702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wenn die galv. Trennung aber funktioniert, würden diese Störsignale am Optokoppler der Relaiskarte hängenbleiben (?)... Ich berichte...

Ich spreche nicht über direkte Signal, die z.B. über die Masse reinbröseln, sondern über jene, die Deine 5m-Antenne einfängt. Da nützt Dir die galvanische Trennung bei den Relais gar nichts. Der I2C-Bus ist nicht für solche Leitungslängen spezifiziert, wenn Du dann noch keine externen Pull-ups verwendest, wäre dies prädestiniert als Problemverursacher.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wenn die galv. Trennung aber funktioniert, würden diese Störsignale am Optokoppler der Relaiskarte hängenbleiben (?)... Ich berichte...

Ich spreche nicht über direkte Signal, die z.B. über die Masse reinbröseln, sondern über jene, die Deine 5m-Antenne einfängt. Da nützt Dir die galvanische Trennung bei den Relais gar nichts. Der I2C-Bus ist nicht für solche Leitungslängen spezifiziert, wenn Du dann noch keine externen Pull-ups verwendest, wäre dies prädestiniert als Problemverursacher.

OK, dann hänge ich am besten nicht nur das Display ab, sondern die (lange) "I2C-Antenne". Bericht folgt.
Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2448
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"Gar nix" trifft es. Der Motor des Ventils schaltet automatisch, wenn er das Ventil gedreht hat. Darum habe ich mir keine weiteres Gedanken gemacht. Aber wenn ich es richtig verstehe, sollte das Relais in Mitleidenschaft gezogen werden. Dafür ist bei der Relaiskarte eine Diode eingebaut, s. Zeichnung.

Ich bin zwar kein Schaltungsprofi, aaaber:
Die Diode in der Relaiskarte ist nur dafür da, dass beim Abschalten des Spulenstroms im Relais (5V ca. 50ma) keine Überspannung entsteht und auf den Controller zurückwirkt. Für die EMV-gerechte Auslegung der vom Relais geschalteten Verbraucher bist ausschließlich DU verantwortlich.

Das Minimum an Entstörung beim Schalten von Wechselstrom in Form "induktiver Lasten" ist ein RC-Löschglied ("Snubber") parallel zu den Schaltkontakten, die für die Abschaltung des Stroms zuständig sind.

Deine Pumpe hat offenbar zwei Endschalter, die bei Erreichen der Endposition den Strom abschalten können. Daher brauchst Du zwei RC-Löschglieder. Ein RC-Löschglied besteht aus einem Widerstand und einem Kondensator in Reihe. Diese werden parallel zu den Schaltkontakten an die Stromzuleitung gehängt, und zwar möglichst dicht am geschalteten Motor.

Bei dem geringen Strom Deines 4-Watt-Stellmotors (zieht der wirklich nur so wenig Leistung?) z.B. ein Kondensator 200pF und ein Widerstand 4,7KOhm, beide jeweils ausreichend spannungsfest. Auf Stromfestigkeit kommt es nicht groß an, da Deine Pumpe ja nur wenige mA schaltet. Also das mit einem RC-Löschglied wäre das, was ich als erstes probieren würde: An Deiner Pumpe zwischen blau-schwarz und zwischen braun-schwarz jeweils eine Reihenschaltung aus 200pF Kondensator und 4,7K Widerstand als RC-Löschglied einbauen.

Die Dimensionierung von C und R habe ich dabei grob nach dieser Tabelle ermittelt:
http://www.mikrocontroller.net/attachment/preview/125882/page_snapshots/001.png
(Keine Gewähr für die Richtigkeit der Snubber-Dimensionierung, wie gesagt: ich bin kein Schaltungsprofi)
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 93
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wenn die galv. Trennung aber funktioniert, würden diese Störsignale am Optokoppler der Relaiskarte hängenbleiben (?)... Ich berichte...

Ich spreche nicht über direkte Signal, die z.B. über die Masse reinbröseln, sondern über jene, die Deine 5m-Antenne einfängt. Da nützt Dir die galvanische Trennung bei den Relais gar nichts. Der I2C-Bus ist nicht für solche Leitungslängen spezifiziert, wenn Du dann noch keine externen Pull-ups verwendest, wäre dies prädestiniert als Problemverursacher.

So, habe die "Antenne" abgeklemmt und das Display in den Keller verfrachtet.
Alles funktioniert prima - bis zum Zeitpunkt, wenn ich das 3-Wege-Ventil in Bewegung setze :-(( leider mit den bekannten Symptomen.

Das ist es also zumindest nicht. Aber ich lasse die "Antenne" abgeklemmt und das Display zuerst im Keller. Vielleicht trägt es irgendetwas zur Lösung noch bei.
Jetzt ist das Ventil mit dem RC-Löschglied dran...

Grüße
Logged

Pages: [1] 2 3   Go Up
Jump to: