Ist die Steuerung einer Spülmaschine mit einem ATmega328 realisierbar ?

Gast #5424508
Lesenswert?

Hallo,

mein Name ist Markus und ich stehe kurz davor meine Projektarbeit für 
den Abschluß zum Staatl. gepr. Automatisierungstechniker anfertigen zu 
müssen.

Im Unterricht haben wir in einem Modul mehr schlecht als recht mit C++ 
und so einem Vellemann Interface LED blinken lassen und in einem anderen 
Modul mit einem Arduino Nano V3 und der Arduino IDE herumprogrammiert.

Ich soll nun ein Abschlußprojekt erstellen, in dem min. 2 analoge Werte 
verarbeitet werden und ein konkret nutzbares Gerät / Maschine gesteuert 
wird.

Wir haben die Wahl, entweder mit einer 1500er Siemens SPS im TIA Portal 
14 oder mit einem Mikrocontroller als Steuerung das Projekt zu 
erstellen.

Wir haben in unserer WG noch eine Siemens Spülmaschine mit Totalausfall 
der Elektronik stehen. Da ist der Microcontroller auf der Platine 
defekt, weil durch eine Verstopfung die Pumpe den Triac auf der Platine 
überlastet hat.
Der hat dann rückwärts die Netzspannung in die Steuerung geleitet.

Die Pumpe ist wieder frei und die Spülmaschine steht nun im Keller und 
könnte nach dem Einbau einer Elektronikplatine von Siemens für 250 Euro 
wieder laufen.

Meine Idee ist nun, in der Arduino IDE ein Ablaufprogramm für einen 
Spülgang zu schreiben und dann über diese Solid State Relais (Diese 
Klötze, mit den Schraubklemmen.) mit dem Arduino Nano V3 die 
Spülmaschine laufen zu lassen.

Ist der Arduino Nano V3 leistungsfähig genug ?
Habe ich vielleicht noch Etwas vergessen, wo ich auch in die 
Leistungselektonik für Heizung / Pumpe(n) tiefer einsteigen müsste ?

Außer den, durch Beobachten und Nachlesen zu erfahrenden 
Programmschritten, gibt es noch eine Funktion einer Spülmschine, die 
wichtig ist, aber nicht so offensichtlich abläuft, also der Ablauf mit 
dem Salz und dem Klarspülen ?
Was passiert damit ?

Das Programm wird wahrscheinlich eine Ansammlung von case - Anweisungen.
Aber da habe ich schon sowas wie eine Idee.

Ich habe nach 7 Monaten eine Lehre bei einem Dorfelektriker abbrechen 
müssen, weil die Firma pleite gegangen ist. Also meine Erfahrung mit 
Elekronik ist nur in der Technikerschule und dem Lesen dieses und 
anderen Foren.

Danke für eure Einschätzungen .

Markus.
Gast #5424794
Lesenswert?

Man könnte es auch andersrum formulieren:

Ein überschaubares Problem für SPS:
Einige Programmierer-Stunden.

Ein funktionierendes Haushaltsgerät mit der Berücksichtigung
aller Eventualien (gew. Programm, Sensorik, Bedienerführung,
Bedienerfehler, ...)
geht eher in die Progammierer-Wochen bis -Monate!

Dazu die Doku...
Gast #5424798
Lesenswert?

Also das Modul mit C++ war im Umfang 60 Schulstunden.
Der Teil mit Arduino Programmierung hatte 40 Schulstunden.

SPS Programmierung und Visualisieren mit WinCC flexible warennzusammen 
rund 250 Schulstunden bis jetzt.

Das man bei der Programmierung auch Stromausfall und das der Strom 
wiederkommt mit berücksichtigen muss hätte ich jetzt vergessen.
Danke für den Hinweis.

Das ein SPS Programm einfacher zu erstellen ist, als ein Programm für 
den Arduino, das ist mir klar.

Nur kostet ein Arduino und 9 von diesen Solid State Kopplern vielleicht 
mal 75€ oder so.

Eine SPS mit 9 Ausgängen und 2 Analogeingängen, die ich mit TIA Portal 
programmieren kann die kostet ein paar hundert Euro.

Das werde ich mir neben Miete, Nebenkosten und Bahntickets niemals 
leisten können.

Also kommt eher der Arduino in Frage.

Markus
Gast #5424872
Lesenswert?

Dominik S. schrieb:
> mit deutlich weniger Rechenleistung zum Mond geflogen.

Man kann alles programmieren. Nur, was sagt die Deine Versicherung, wenn 
zufällig ein Magnetvenil nicht schließt oder der Sensor den Füllstand 
nicht erkennt? Software ist nicht alles. Für manche Programme braucht 
man eine "Notbremse" in Form von Hardware und eine SW, die sich selbst 
auf Gesundheit prüft. Nebenbei noch eine kleine gedankliche Starthilfe 
zum Thema Magnetventil: 
https://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern#Einleitung
(Firma: matzetronics) #5424878
Lesenswert?

Ich würde den Programmieraufwand auch eher in der Plausibilitäts- und 
Sicherheitsecke sehen, das Programm für den Geschirrspüler ist da das 
kleinste Problem.
Aber Timeouts, Sensorüberprüfung und Ausfalltests machen so ein Programm 
dann grösser, als man zuvor gedacht hat.
Geschirrspüler sind aber auch keine Monster, machbar ist so etwas schon. 
Nur der Zeitrahmen mit den erforderlichen Tests wird vermutlich sehr 
knapp.
Und natürlich kann so ein Mega328 einen Geschirrspüler steuern, der 
dreht dabei Däumchen.
#5425007
Lesenswert?

Da muss man Komfort und Sicherheitsfunktionen unterscheiden. Der Kram 
mit Stromausfall ist Komfort und völlig überflüssig. Ich kann mich nicht 
erinnern, dass bei uns jemals der Strom beim Spülen ausgefallen wäre.

Die "alten" Maschinen mit Nockenwellenschaltwerk hatten auch keine 
Timeouts, sondern nur eigentlich nur drei wirklich hart verdrahtete 
Checks:

- Heizung und Umwälzpumpe nur, wenn Wasserstand >x
- Wenn Wasserstand >y, Laugenpumpe an (Sicherheitsabpumpen)
- (Bei Durchlauferhitzern) Übertemperatursensor direkt am Heizstab

Ansonsten gabs nur direkte Abhängigkeiten ohne Timeouts:

- Einlaufventil erst dann aus und Programmfortschaltung, wenn 
Wasserstand >z
- Programmfortschaltung erst, wenn Temperatur > a

Das wars.
Gast #5425021
Lesenswert?

Mach es mit einer SPS und nimm fertige Leistungselektronik/Module von 
Siemens o.ä.
Die China SolidStateRelais sind für seriöse Anwendungen nicht geeignet. 
Falls die Waschmaschine noch weitergenutzt werden soll kauf die 
Elektronik für 250€ ... das ist billiger und funktioniert garantiert
#5425364
Lesenswert?

S. R. schrieb:
> Die Software einer Spülmaschine ist ein einziger, großer
> Zustandsautomat. Da brauchst du kein RTOS für.

Wobei es zur Entwicklung eines Spülprogramms aber sehr hilfreich sein 
kann, da tatsächlich einen Programminterpreter für Microcode einzubauen.

Also so in etwa:
1
PC      Sequencer                Sensor            Aktor
2
0       #1, Sensorwait           Wasserstand=0     Abpumpen
3
1       #2, 15s                  -                 Abpumpen
4
2       #3, Sensorwait; 300s#20  Wasserstand=1     Einlaufventil
5
3       #4, 10min                -                 Umwälzpumpe
6
4       #5, Sensorwait           Temp=60           Umwälzpumpe+Heizung
7

8
20      #20                                        Display=ERR

Man muss sich nur mal klarmachen, welche grundlegenden 
Sequenzer-Funktionen so ein Waschprogramm überhaupt braucht. Dann noch 
ein Opcode-Format (aka struct) dazu erfinden, der Interpreter selbst 
sind dann so 20-30 Zeilen.
Gast #5425654
Lesenswert?

Markus Claas schrieb:

> Wir haben die Wahl, entweder mit einer 1500er Siemens SPS im TIA Portal
> 14 oder mit einem Mikrocontroller als Steuerung das Projekt zu
> erstellen.

OMG, da fällt die Wahl wirklich leicht.

Allein die komplette Installation dieses Siemens-Bracks kann einen 
einzelnen Mann Tage beschäftigen. Und man weiss niemals wirklich, ob 
dieser programmiertechnische Vollschrott nach dem nächsten Wixdos-Update 
dann immer noch funktioniert...

Nö, da ist die Umsetzung mit einem µC ganz klar die einfachere Lösung. 
Da ist wenigstens die Entwicklungsumgebung recht leicht zu installieren 
und sie bleibt mit einiger Wahrscheinlichkeit über die Projektlaufzeit 
funktionsfähig...

> Meine Idee ist nun, in der Arduino IDE ein Ablaufprogramm für einen
> Spülgang zu schreiben und dann über diese Solid State Relais (Diese
> Klötze, mit den Schraubklemmen.) mit dem Arduino Nano V3 die
> Spülmaschine laufen zu lassen.

Dann mach das.

> Ist der Arduino Nano V3 leistungsfähig genug ?

Locker. Für diese triviale Anwendung stören nichtmal die Beschränkungen 
des Arduino-Frameworks in irgend einer Weise.

> Das Programm wird wahrscheinlich eine Ansammlung von case - Anweisungen.

Das ist bei state-machines nunmal so...
Gast #5425811
Lesenswert?

Markus Claas schrieb:
> den Abschluß zum Staatl. gepr. Automatisierungstechniker anfertigen zu
> müssen.
>
> Ist der Arduino Nano V3 leistungsfähig genug ?

Da kommt bei mir wieder mal die Frage auf, was an den Schulen denn so 
geleert wird.

Überlege mal, wie schnell ein Mikrocontroller taktet, wieviele 
Instruktionen pro Sekunde der abarbeiten kann.

Überlege, wie lange die Taktzyklen einer Spülmaschine sind, Wasser 
einlassen, Heizen, Spülen ... die dauern Minimum einige Minuten.

Es dürfte ziemlich egal, welcher Prozessorkern da werkelt, solange die 
Anzahl der Ein- und Ausgänge genügt, dürfte das faktisch jeder µC 
können. Eine Haushaltsmaschine mit Arduino würde ich direkt anfangen zu 
programmieren, ohne einen einzigen Gedanken an die mögliche 
Leistungsfähigkeit des Controllers zu verschwenden.

Ein Verrückter: http://www.zabex.de/site/waschmaschine.html

P.S.: Schreibfehler können Absicht sein.
Gast #5426471
Lesenswert?

Markus Claas schrieb:
> mein Name ist Markus und ich stehe kurz davor meine Projektarbeit für
> den Abschluß zum Staatl. gepr. Automatisierungstechniker anfertigen zu
> müssen.

Nimm was kleines, handliches und preiswertes, vor allem aber etwas
was du schaffen kannst.

> Wir haben in unserer WG noch eine Siemens Spülmaschine mit Totalausfall
> der Elektronik stehen. Da ist der Microcontroller auf der Platine
> defekt, weil durch eine Verstopfung die Pumpe den Triac auf der Platine
> überlastet hat.
> Der hat dann rückwärts die Netzspannung in die Steuerung geleitet.

Dann schau doch mal in der Bucht, ob es da nicht eine
Ersatzbaugruppe gibt. Ein Neuaufbau ist viel zu aufwändig und
das ganze dann im Unterricht präsentieren dürfte unpragmatisch sein.

> Meine Idee ist nun, in der Arduino IDE ein Ablaufprogramm für einen
> Spülgang zu schreiben und dann über diese Solid State Relais (Diese
> Klötze, mit den Schraubklemmen.) mit dem Arduino Nano V3 die
> Spülmaschine laufen zu lassen.

Warum baust du nicht einen kleinen Pizzaofen zum SMD-Lötofen um?
Da musst du nämlich Analogwerte verarbeiten so wie es vorgegeben ist.
Das Projekt wäre dann auch relativ leicht zu transportieren und später
kann man das Gerät vielleicht auch prima gebrauchen.

> Ist der Arduino Nano V3 leistungsfähig genug ?
> Habe ich vielleicht noch Etwas vergessen, wo ich ...

Eine Transportmöglichkeit um eine Spülmaschine in die Schule
zu transportieren. ;-b

> Außer den, durch Beobachten und Nachlesen zu erfahrenden
> Programmschritten, gibt es noch eine Funktion einer Spülmschine, die
> wichtig ist, aber nicht so offensichtlich abläuft, also der Ablauf mit
> dem Salz und dem Klarspülen ?
> Was passiert damit ?

Für eine Abschlussarbeit ist das viel zu viel Aufwand.

> Das Programm wird wahrscheinlich eine Ansammlung von case - Anweisungen.
> Aber da habe ich schon sowas wie eine Idee.

Auf jeden Fall ein endlicher Automat, sofern das überhaupt
durch genommen wurde.

> Ich habe nach 7 Monaten eine Lehre bei einem Dorfelektriker abbrechen
> müssen, weil die Firma pleite gegangen ist. Also meine Erfahrung mit
> Elekronik ist nur in der Technikerschule und dem Lesen dieses und
> anderen Foren.

Hm. Und wie hast du die Zugangsvoraussetzungen für die Technikerschule
vorweisen können? Für gewöhnlich verlangen die eine ABGESCHLOSSENE
Berufsausbildung UND fünf Jahre Berufserfahrung.
Willst du uns verkohlen? Es gibt zwar auf dem Dorf für gewöhnlich
nicht so viele Möglichkeiten, aber das man dort eine Technikerschule 
findet, wäre ziemlich ungewöhnlich.
Ich habe z.B. parallel zur Lehre in meiner Landeshauptstadt Abendkurse
an der VHS besucht um mich in die Elektronik rein zu fuchsen.
Geschadet hat es nicht.

Dein Projekt solltest du dir noch, mal vom Aufwand her, überdenken.
Die Spülmaschien kann man vielleicht mit einer Ersatzbaugruppe, die
man günstig in der Bucht schießen kann, reparieren. Das könnte sich 
durchaus lohnen. Aber als Projekt für eine Abschlussarbeit ist das
total überzogen.
Gast #5426502
Lesenswert?

Ja - ob man es will oder macht (der Aufwand ist sicher nicht ohne) ist 
eine andere Frage. Waschprogramme werden detailliert (vermutlich in 
Versuchsreihen) entwickelt - das zieht man nicht aus der Hosentasche.

Die Sensorik (hält sich in Grenzen) und Aktorik (dto.) bekommst Du wohl 
in den Griff - das "entscheidende" Zusammenspiel ist sicher ich banal.
#5426582
Lesenswert?

Dieter F. schrieb:
> Waschprogramme werden detailliert (vermutlich in
> Versuchsreihen) entwickelt - das zieht man nicht aus der Hosentasche.

... aber aus alten Miele-Maschinen. Da war immer ein Ablaufdiagram der 
verschiedenen Programme drin.

Und so kompliziert waren die gar nicht. Eigentlich gehts (wie auch bei 
Waschmaschinen) nur darum, die verschiedenen Schmutzarten wegzubekommen. 
Und das ist im wesentlichen Fett und Eiweiss. Für Eiweiss darf man 
zuerst nur kaltes Wasser nehmen, damit es nicht fest wird. Dann kann man 
aufheizen.
#5426652
Lesenswert?

Dieter F. schrieb:
> Dann bist Du ja die Quelle der Weisheit nund kannst das an den TO
> weitergeben.

Hey, jetzt musste ich extra mein lazy Pre-Weekend unterbrechen, zwei 
Stockwerke hochlaufen und das Ding einscannen... Manchmal tut Weisheit 
echt weh ;)

Die G560 war AFAIK eine der ersten Maschinen mit uC-Steuerung und hatte 
sogar Touchtasten (1978!). Durch das IC wurden Timeouts zB. beim 
Aufheizen möglich und man konnte auf die unzähligen Bimetallthermostate 
verzichten. Die eigentlichen Schalter wurden zwar durch ein Nockenwerk 
bedient, durch die Rückmeldung der aktuellen Position (GS-Timer im 
Schaltplan) konnten aber beliebige Schritte übersprungen werden (die 
schwarzen Striche im Ablaufplan).
Angehängte Dateien:
Gast #5426661
Lesenswert?

Georg A. schrieb:
> zwei
> Stockwerke hochlaufen und das Ding einscannen... Manchmal tut Weisheit
> echt weh ;)

Ich bitte um Entschuldigung :-)

Hast Du das Timing und die korrekte Ablauffolge vergessen? Das kann ich 
dem Programmwerk nicht entnehmen - scheint mir aber nicht unwesentlich 
zu sein :-). Ich sehe da nur, was wovon irgendwie (!) beeinflusst wird 
... übersteigt wohl meinen geistigen Horizont :-\
#5426683
Lesenswert?

Dieter F. schrieb:
> Hast Du das Timing und die korrekte Ablauffolge vergessen? Das kann ich
> dem Programmwerk nicht entnehmen - scheint mir aber nicht unwesentlich
> zu sein :-). Ich sehe da nur, was wovon irgendwie (!) beeinflusst wird
> ... übersteigt wohl meinen geistigen Horizont :-\

Hehe, besser als der blöde Siemens-Test ;) Es steht ALLES auf dieser 
einen Seite, der Rest sind nur Abkürzungen in allen Sprachen 
(UP=Umwälzpumpe, etc.)

Der Ablauf geht nach den Schritten ganz links, die Zeiten stehen ja auch 
dabei. In den Spalten ganz rechts sind die Aktor-Settings der 
Nockenscheibe für jeden Schritt (Umwälzpumpe, Magnetventil, ...). Jedes 
der wählbaren Programme (Intensiv, ...) läuft zwar nur von oben nach 
unten, kann aber einige der Schritte überspringen bzw. darin warten. 
Übersprungen werden die schwarzen Bereiche im Programmablauf.
#5426714
Lesenswert?

Das ist "GS-Timer" rechts oben. Das ist nur der Encoder der 
Nockenscheiben-Position, damit die Steuerung weiss, wo die Scheibe 
gerade steht bzw. wann sie "beim Vorspulen" wieder anhalten muss. Mit 
der Beibehaltung der Scheibe  haben sie sich halt unzählige Relais bzw. 
TRIACs gespart.

Man könnte auch sagen, dass die Scheibe noch der Überrest des alten 
Schaltwerks mit Timermotor&Co ist, der sie alle 30s/2min weitergedreht 
hat. Bei den rein mechanischen Modellen waren auf derselben Scheibe noch 
die Marker, ob der in dem Schritt der Weiterschaltpuls 30s/120s beträgt 
oder ob auf den Thermostat gewartet wird. Unterschiedliche Programme 
waren auch möglich, in dem je nach Programmwählschalter und 
Scheibenstellung die Weiterschaltung forciert wurde. Mit dem uC (oder 
was auch immer das war...) wurde immerhin schon mal diese 
Sequencer-Logik elektronisch.
Gast #5426748
Lesenswert?

PLC schrieb:
> Kann mich da durchaus täuschen aber im Rahmen beruflicher Entwicklung
> hält man doch an die SPS was sollten Arduino-IDE und cripple-cpp
> Kenntnisse im weiterern Verlauf nutzen?

Du täuscht dich.
Die wichtige Fähigkeit ist es an dieser Stelle das Programm und (vor 
allem) die Sicherheits- und Plausibilitätlogik zu entwerfen. Mit welchem 
Werkzeug das erfolgt ist vollkommen irrelevant.
#5426760
Lesenswert?

Dieter F. schrieb:
> Georg A. schrieb:
>> Das ist "GS-Timer" rechts oben
>
> Hust ... links oben ... irgendein "Schaltwerk ...".

Oops, ja ich meinte links. Bei einer alten Miele-Wama wars rechts... Da 
ist doch oben der Kasten mit den Sensortasten und dem 7Seg-Display. Der 
weiss, welches Programm ausgewählt wurde und hat den Temperaturfühler.

Damit er er weiss, wie die Schalter stehen, hat er nach unten Anschlüsse 
zum *G*edruckte*S*chaltung-Timer. Mit Timer als Zeitmesser hat das da 
aber eigentlich nichts zu tun.

> Sei mir bitte nicht böse aber ich (unbedarft) kann damit nichts
> anfangen. Aber egal, Hauptsache der TO ist damit glücklich :-)

Will ich doch hoffen :)
Gast #5426909
Lesenswert?

Dieter F. schrieb:
> Die Sensorik (hält sich in Grenzen) und Aktorik (dto.) bekommst Du wohl
> in den Griff - das "entscheidende" Zusammenspiel ist sicher ich banal.

Die Ursprungsfrage war, ob ein µC für die Steuerung einer Spülmaschine 
genügend leistungsfähig ist. Mir fällt kein µC ein, der es nicht wäre - 
solange genügend Ports verfügbar sind.

Du sagst "Die Sensorik hält sich in Grenzen", das sehe ich ebenso.

> Waschprogramme werden detailliert (vermutlich in
> Versuchsreihen) entwickelt - das zieht man nicht aus der Hosentasche.

Wenn ich meine mechanisch gesteuerte Gerschirrspülmaschine angucke, wäre 
ein Nachbau von deren Abflauf ziemlich trivial:

Sumpf abpumpen
Wasser rein
Zeit x spülen
Abpumpen
Spülpulverklappe auf
Wasser rein
Wasser aufheizen
Zeit x spülen
Abpumpen
Etwas Wasser rein
Zeit x trocknen lassen
Piep - fertig.

Ich muß also den Wasserstand abfragen, Pumpe und Zulauf schalten, die 
Temperatur messen, den Spülarm drehen lassen und ein paar Zeiten messen. 
Das hätte ich mich schon vor 30 Jahren mit einem 68HC805 in Assembler 
getraut.

Ob man das Programm dafür, heute eher in C++, an einem Tag schreibt oder 
x-Wochen dran pruckelt, hängt eher von den Kenntnissen des 
Programmierers als von der Aufgabe ab.
#5428920
Lesenswert?

Geschirrspüler mit ATMega, kein Problem, wichtig ist, festzustellen, ob
alle Komponenten im 230V Bereich noch funktionieren (Pumpe, 
Magnetventile
etc), sollten Aktuatoren im netzspannungsgetrennten 
Niedervolt-DC-Bereich vorhanden sein, diese auch überprüfen und 
sicherstellen, dass die
entsprechende Betriebsspannung vorhanden ist. Sämtliche 230V-Aktuatoren
sind mit Solid-State-Relais (am besten nullspannungsschaltend) 
anzusteuern,
damit ist die Netztrennung ohne Mechanik gewähröeistet. Bleibt jetzt 
noch,
eine 5VDC-Betriebsspannung zu gewährleisten. weiterhin sind eventuell 
noch
Treiber-IC für die Ausgangsports zur Ansteuerung der Solid-States, NV-
Aktuatoren und Anzeigedisplay notwendig. Sensorik, wie Füllstand und
Themperatur (ggflss mit OPAMPs anpassbar) gehören dann in den 
5VDC-Bereich.
Bei der Gestaltung des Programmierens des/der Spülvorgangs/gänge sollte
der Algorythmus allgemeiner Spülvorgange Grundlage sein, ansonsten ist
der Phantasie, insbesondere der Dispkaysteuerung keine Grenzen gesetzt.
Damit der Praktiker schnelle Erfolgserlebnisse nekomt, empfehle ich
die Programmierung in BASCOM.
VG Micha

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren