Temperaturregelung für die IDS2 ohne CBPi

Alles zum Thema Brauanlagen-Selbstbau. Für Steuerung und Automatisierung bitte das Unterforum "Automatisierung" nehmen.
Antworten
JackFrost
Posting Senior
Posting Senior
Beiträge: 397
Registriert: Dienstag 15. Mai 2018, 18:10

Temperaturregelung für die IDS2 ohne CBPi

#1

Beitrag von JackFrost » Donnerstag 20. Juni 2019, 15:26

Ich hab mir eine IDS2 gekauft und da ich CBPi nicht nutzen wollte, habe ich mir einen Temperaturregelung für die IDS2 gebaut.
Aktuell ist noch kein Automtikmodus für eine automatische Maischeführen vorhanden. Derzeit wird nur die Temperatur geregelt.

Als Temperaturfühler verwende ich einen PT100 Klasse AA. Der mit 300 mm direkt über dem Rührwerk im Ss 10 Gal Brautopf sitzt.
Das Messen des PT100 übernimmt ein MAX31865AAP+ . Damit habe ich 15 bit über dan ganzen Messbereich das PT100. Im für das brauen relevanten Bereich von 0 - 100 °C habe ich somit eine Auflösung von 0,03 °C.

Die Anzeige erfolgt über ein 1,3" OLED-Display und eine RGB-LED. Aktuell nutze ich nur die drei Grundfarben für
  • Rot : IDS2 heizt
  • Grün : Der Sollwert ist um +/- 1,5 °C erreicht
  • BLau : Debug der Daten von der Platte zur Regelung
Die EIngaben erfolgen über den Drehencoder.

Der µC ist ein ATSAMC21J21, wobei ich aktuell noch das Entwicklungsboard SAMC21 Xplained Pro nehme. Die selbst geätzte Platine passt auf einen Arduino, darf aber nur mit 3,3 V betrieben werden, da der MAX31865AAP+ keine höhre Spannung vertrögt.

Für die Kommunikation zur Platte habe ich Pegelwandler verwendet, so das die Pegel für beiden Seite richtig sind. Das Relais für die Hauptversorgung wird über eine Treiberstufe angesteuert. Die Steuerung selber bezieht ihre Spannung über ein externes 5V Netzteil , da ich nicht wusste wie stark ist das Netzteil der IDS2 belasten darf.

Die Regelung pulst wie bei matschies CBPI Plugin zwischen den Stufen. Als Zykluszeit habe ich 3 Minuten gewählt, so das die Leistungsänderungen nicht zu häufig kommen und eine Leistungsstufe mindestens 15s anliegt. Unter 10 % wird nicht geheizt. Die maximale Stufe kann zudem begrenzt werden.
Die Kommunikation erfolgt überTimerinterrupte, damit ich mir die Regelung nicht über delays blockiere. Aktuell läuft die CPU nur mit 3,69 MHz.
Die Brechnung des Sellgrades erfolgt alle 250 ms. Und die Temperatur wird mit ca. 50 Hz gemessen. Es fehlt noch ein gleitender Mittelwert für die Temperatur. Zudem muss ich das Fehlerbit noch auswerten, so das bei einem Fühlerfehler die gesendete Temperatur 300 °C ist.

Zudem will ich noch die Möglichkeit schaffen die Temperatur mit Eiswasser und kochendem VE-Wasser zu kalibrieren.

Es noch ein Platz für einen Luftdrucksensor vorgesehen um die Siedetemperatur zu berechnen und dann kurz davor die Leistung zu reduzieren.
Zudem kann noch ein FRAM eingebaut werden um hier ggf. Rezepte zu speichern.

Über den CAN sind folgende Erweiterungen geplant :
  • pH-Meter
  • Drehzalsteller für mein Kühlrührwerk
  • Kühlwasserregelung
All die Erweiterungen sollen über das Display angezeigt und eingestellt werden können.

Das Layout der Platine ist hier.
Die Platine verwenden hauptsächlich 0603 Bauelemente, Löterfahrung ist von Vorteil. Die Platine ist beidseitg bestückt. Ich hab kein Lötstopplaminat aufgetragen. Ohne dies ist das Löten jedoch schwieriger. Wenn ich nochmal eine Revision mache dann kommt Lötstopplaminat drauf, oder ich lasse sie fertigen.
Top.png
Bottom.png

Die Software liegt auf Github.

Die Platinen sind aktuell noch nicht in einem Gehäuse. Ich denke wenn die Garantie meiner IDS2 abgelaufen ist werde ich das Kabel für die Fernsteuerung durch ein M12 Kabel mit bekannte Kodierung ersetzen.

Ich danke matschie und allen die beim Entschlüsseln der Kommunikation der IDS2 geholfen haben.
IMG_2233.JPG


Gruß JackFrost

Benutzeravatar
beryll
Posting Freak
Posting Freak
Beiträge: 2395
Registriert: Samstag 25. Juli 2015, 15:10
Wohnort: Saarwellingen
Kontaktdaten:

Re: Temperaturregelung für die IDS2 ohne CBPi

#2

Beitrag von beryll » Donnerstag 20. Juni 2019, 17:21

Oh Mann, ich bin ja schon froh, dass ich den CBPi aufbauen konnte, die paar Lötstellen habe ich gerade so noch hinbekommen - Hut ab, schöne Arbeit...!
VG Peter
"Um...Snoochie boochies" Romrod... BONG!!!!!
(Aktueller Bericht aus dem Gärfass)

HBST Saar-Lor-Lux
Terminfindung Treffen der Saar-Lor-Lux Brauer

HBST Saar-Lor-Lux internes

dXn
Posting Junior
Posting Junior
Beiträge: 11
Registriert: Montag 13. Juni 2016, 10:52

Re: Temperaturregelung für die IDS2 ohne CBPi

#3

Beitrag von dXn » Donnerstag 20. Juni 2019, 17:29

Hi,

sehr interessant! Ich habe auch eine IDS2 im Einsatz und hatte gehofft das irgendwann eine "Standalone" Lösung für die Platte kommt da ich mit RaspberryPi/CBPi noch nicht so richtig "warm" geworden bin. Ich hatte vorher eine Hendi mit der Arduino AiO und fand die Steuerung mit dem Encoder schön einfach.
JackFrost hat geschrieben:
Donnerstag 20. Juni 2019, 15:26
Die Platinen sind aktuell noch nicht in einem Gehäuse. Ich denke wenn die Garantie meiner IDS2 abgelaufen ist werde ich das Kabel für die Fernsteuerung durch ein M12 Kabel mit bekannte Kodierung ersetzen.
Ich habe das Kabel das aus dem Gehäuse kommt ersetzt. Da kein Garantiesiegel o.ä. vorhanden ist kann man das im Garantiefall wieder zurückrüsten so wie das Kabel aus dem Bedienteil. Das hatte ich hier auch schon mal beschrieben.
Das sieht dann mit einem Lumberg Quicklock Stecker so aus:
P1040096.JPG
Davon gibt es dann auch Einbaubuchsen, sind aber leider etwas teuer...

JackFrost
Posting Senior
Posting Senior
Beiträge: 397
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Temperaturregelung für die IDS2 ohne CBPi

#4

Beitrag von JackFrost » Donnerstag 20. Juni 2019, 17:57

dXn hat geschrieben:
Donnerstag 20. Juni 2019, 17:29
Hi,
sehr interessant! Ich habe auch eine IDS2 im Einsatz und hatte gehofft das irgendwann eine "Standalone" Lösung für die Platte kommt da ich mit RaspberryPi/CBPi noch nicht so richtig "warm" geworden bin. Ich hatte vorher eine Hendi mit der Arduino AiO und fand die Steuerung mit dem Encoder schön einfach.
Ich werde das Dev-board noch durch eine eigene Platine ersetzen, dann ist es einfacher das man es sich selber baut. Ich hab das Devboard sehr günstig bekommen. Theoretisch könnte auch ein Arduino Zero gehen, aber dann muss man den Code portieren. Ich hab das direkt im Atmel Studio geschrieben, da ich so besser debuggen kann- Bei einem eigenen Board brauch ich dann noch nen Bootloader, da das Devboard einen eigenen Debuger drauf hat.
dXn hat geschrieben:
Donnerstag 20. Juni 2019, 17:29
Ich habe das Kabel das aus dem Gehäuse kommt ersetzt. Da kein Garantiesiegel o.ä. vorhanden ist kann man das im Garantiefall wieder zurückrüsten so wie das Kabel aus dem Bedienteil. Das hatte ich hier auch schon mal beschrieben.
Das sieht dann mit einem Lumberg Quicklock Stecker so aus:

P1040096.JPG
Davon gibt es dann auch Einbaubuchsen, sind aber leider etwas teuer...
Ich denke ich werde mein Kabel auch ersetzen dann gegen M12.

Gruß JackFrost

JackFrost
Posting Senior
Posting Senior
Beiträge: 397
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Temperaturregelung für die IDS2 ohne CBPi

#5

Beitrag von JackFrost » Samstag 22. Juni 2019, 00:08

Ich hab heute den ersten Test mit meinem neuen Brautopf und 16 kg Wasser gemacht.

Die Regelparameter passen noch nicht für meine Strecke, ein Autotune habe ich (noch) nicht eingebaut, daher muss ich die selber empirisch ermitteln.

Ich hab die Platte mit maximal 80 % laufen lassen was 2,8 kW sind. Der PT100 reagiert schnell und braucht aufjedenfall einen gleitenden Mittelwert, da es mir sonst den D-Anteil unnötig zum schwingen bringt.

Ansich war es ein guter erste Versuch. Ich muss noch das Menu schreiben mit dem man die Regelparameter ändern kann , da ich das aktuell hartcodiert ist. Das Antiwindup werde ich so modifizieren das es den maximalen Stellgrad berücksichtigt. Es bringt nichts das bei 100 % zu begrenzen wenn die Platte eh nur 80% darf. Die 20 % brauchen zu langen zum abbauen wenn der Sollwert erreicht ist.

Aktuell bin ich bei 15,2 % Flash und 37,2 % Ram. Es ist also noch gut Platz auf dem µC.

Gruß JackFrost

JackFrost
Posting Senior
Posting Senior
Beiträge: 397
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Temperaturregelung für die IDS2 ohne CBPi

#6

Beitrag von JackFrost » Samstag 22. Juni 2019, 21:44

Ich hab die Berechnung für die Temperatur aus dem Widerstandswert des PT100 nun auch kubisch umgestellt, damit der Fehler der Rechnung kleiner wird.
Die Messwerte werden über einen gleitenden Mittelwert von 12 Werten geglättet.
Die Regelparameter für meine Strecke habe ich nun gefunden, damit erreiche ich eine Temperaturstabilität von +/- 0,2 K. Zudem hab ich das Antiwindup vom I-Anteil optimiert, so das hier auch der maximale Stellgrad berücksichtigt wird.
Die Regelparameter können nun über das Menu geändert werden.

Für den ersten test, vermutlich nächstes Wochenende steht nichts mehr im Weg :)

Gruß JackFrost

JackFrost
Posting Senior
Posting Senior
Beiträge: 397
Registriert: Dienstag 15. Mai 2018, 18:10

Re: Temperaturregelung für die IDS2 ohne CBPi

#7

Beitrag von JackFrost » Dienstag 9. Juli 2019, 22:08

Ich hab den ersten Sud mit der Regelung gebraut. Alles ist super gelaufen. Im Bereich von 72 °C könnten die Regelparameter etwas besser sein da war ich schon eher bei +/- 0,3 - 0,4 K Delta zum Sollwert. Der Prototyp kommt demnächst in ein Gehäuse und dann werde ich die Platine mit dem µC machen so das ich das DevBoard nicht mehr brauche.
Ich denke bei der nächsten Mouserbestellung werde ich den Luftdrucksensor bestellen und einlöten.
Ggf werde ich beim nächsten Sud die Date mal per CAN auslesen und aufzeichnen, damit ich besser sehen kann wie die Stabilität ist.

Gruß JackFrost

Antworten