Seite 1 von 1

M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Do 8. Dez 2016, 19:53
von Nibbels
Ich wollte in den letzten Tagen im Startcode meine Temperaturen einstellen, ohne einzeln zu warten.
Dann sollte der Heiz-Erfolg mit M116 festgestellt werden, dieser Befehl blockiert die weitere Ausführung, bis die Temperaturen fast genau stimmen (Lese ich in der Anleitung.)

http://www.rf1000.de/wiki/index.php/GCo ... C2.B0_sind

M116
- Warte bis alle angegebenen Temperaturen innerhalb von +/- 1° sind
Parameter
Keine

Leider scheint das Heizbett meist 1°C höher stehen zu bleiben.
Fall1) Die Log zeigt mir etwas über 67°C fürs Heizbett - dauerhaft.
Solltemperatur ist 66°C.
Fall2) Die Log zeigt mir z.B. 109,32°C fürs Heizbett - dauerhaft.
Solltemperatur ist 108°C

Und mein Druck startet nie/setzt sich wegen M116 nicht fort.
Ist bekannt, dass der Befehl nicht sonderlich gut funktioniert, oder muss ich den Fehler woanders suchen? Kann es sein, dass das Heizbett immer knapp 1°C über der Solltemperatur bleibt?

LG

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Do 8. Dez 2016, 20:28
von rf1k_mjh11
Nibbels,

Wie die Temperatur (von Bett und/oder Hot End) sich einpendelt, hängt zu einem guten Teil von den PID-Werten ab. Das ist mir gerade eben wieder von neuem untergekommen. Ich habe gestern von V2 auf Pico umgerüstet und habe die PID-Werte wieder neu ermitteln müssen (irgend so ein Idiot hat vergessen, die Werte vom letzten Mal aufzuschreiben :slap: ).
Ich habe so ca. eine Stunde nichts anderes gemacht als einen der PID Parameter ein Stück zu verändern, neu aufzuheizen, und das Ergebnis 'live' in Repetier-Host zu beobachten. Da sieht man, dass es Einstellungen geben kann, wo der Zielwert nie erreicht wird, wo die Temperatur darüber hinaus geht, abfällt, und sich schließlich (hoffentlich) bei, über oder unter der Zieltemperatur einpendelt, und es sogar Werte gibt (wie bei dir) wo die Temperatur überschritten wird, und nie mehr bis auf die Zieltemperatur abfällt.

mjh11

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Do 8. Dez 2016, 21:36
von Nibbels
Hmm,

ich hab auch mal durch den Code geschaut:
Commands.cpp
Screenshot_2.jpg
Das werde ich für mich einfach auf 2 stellen, dann funktioniert vermutlich alles.

In Extruder.cpp in der nähe der Zeile 146, 164, 178, 189 wird vermutlich das mit Temperaturen geregelt.
Das fasse ich nicht an :grinsen:
Vermutlich müsste man da im Code überall die Zieltemperatur um 1 verringern. Stelle ich am Drucker 68°C ein, steht 69 dran. Stelle ich das um auf 69, wechselt der sehr bald auf 70. usw.

Du hast dich also schon an die Regelparameter getraut, oder wie? :D

LG


EDIT: Ah... Configuration.h
Zeile 852.
:wundern: Aber ist das wirklich Überschwingen? Bei mir bleibt der einfach immer ein Grad drüber. Der heizt auch nach, wenn er auf die geforderte Temperatur abfällt.

In Zeile 875 gibts

Code: Alles auswählen

#define	TEMP_TOLERANCE						2.0	
Vielleicht war das irgendwem schon völlig klar und nur der M116 hat eben noch konstant 1 drin stehen.
Ich füge mir TEMP_TOLERANCE statt der 1, bzw 2 in die Commands.ccp und schaue obs sich compilieren lässt.

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Fr 9. Dez 2016, 11:50
von Nibbels
Mit der Änderung von "1" auf "TEMP_TOLERANCE" läuft alles glatt. M116 funktioniert und wartet nicht mehr endlos.
Ich konnte das ohne Probleme kompilieren und flashen.

LG

Re: M116 - Funktioniert der Gcode bei euch korrekt? - Temperaturschwingen

Verfasst: Sa 10. Dez 2016, 12:29
von rf1k_mjh11
Nibbels,
Nibbels hat geschrieben::wundern: Aber ist das wirklich Überschwingen? Bei mir bleibt der einfach immer ein Grad drüber. Der heizt auch nach, wenn er auf die geforderte Temperatur abfällt.
Hier ein Beispiel, provoziert durch absichtlich falsche PID-Werte (lässt sich leicht testen mit M204).
TemperatureSwings_PID.jpg
Irgendwann nach einer sehr langen Zeit, könnte sich das Schwingen beruhigen. Wie vorhin berichtet, können falsche PID-Werte dazu führen, dass die Zieltemperatur nie erreicht wird (die Ist-Temperatur bleibt immer ober oder unter der Zieltemperatur).
Man sieht im Bild auch, dass die Heizleistung stark schwankt, praktisch immer nur 100% oder 0%.

Hier ein Beispiel mit besseren PID-Werten:
TemperatureSwings_PID_2.jpg
Hier pendelt sich die Temperatur bei ca. 1.2° unter der Solltemperatur ein. Auch die Heizleistung ist etwas regelmäßiger. Nicht toll, aber viel besser als vorher.

Zum Schluß noch ein Bild davon, wo ich mit dem Tunen aufgehört habe (ACHTUNG - anderer Maßstab!):
TemperatureSwings_PID_3.jpg
Die geforderte Temperatur wird auch nicht erreicht, aber es pendelt sich bei einem Wert, der weniger als 1° darunter liegt, ein.

mjh11

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Sa 10. Dez 2016, 13:47
von Nibbels
Ok,

ich notiere mir das:
http://www.rf1000.de/wiki/index.php/GCo ... _Parameter
http://www.rf1000.de/wiki/index.php/GCo ... _ermitteln
mal hier und komme demnächst drauf zurück.

LG

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Mo 12. Dez 2016, 13:04
von mhier
Falls jemanden interessiert, wie M303 funktioniert:
https://de.wikipedia.org/wiki/Faustform ... nd_Nichols

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Mo 12. Dez 2016, 13:11
von Nibbels
Super!

Ich habe gerade http://www.rf1000.de/viewtopic.php?f=23 ... PID#p14979 gefunden und mich mit dem EEPROM auseinandergesetzt.

Das war bisher drin:
11:40:06.763: EPR:0 106 1 Bed Heat Manager [0-3]
11:40:06.766: EPR:0 107 255 Bed PID drive max
11:40:06.768: EPR:0 124 80 Bed PID drive min
11:40:06.771: EPR:3 108 53.740 Bed PID P-gain
11:40:06.774: EPR:3 112 7.480 Bed PID I-gain
11:40:06.777: EPR:3 116 96.520 Bed PID D-gain
11:40:06.781: EPR:0 120 255 Bed PID max value [0-255]

LG

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Mo 12. Dez 2016, 23:02
von Nibbels
Ich habe mich inzwischen schlauer gemacht.

Recherche:
Thema: Starttemperatur Extruder wird nicht erreicht http://www.rf1000.de/viewtopic.php?f=23 ... M303#p7782
Thema: Dglass Dual implantant für RF1000 PID-Werte update http://www.rf1000.de/viewtopic.php?f=23 ... M303#p6556

Nun zum M303

[P]
Beim RF2000 ist
- Extruder links = P0
- Extruder rechts = P1
- Heizbett = P2
Beim RF1000 wohl
- Extruder links = P0
- Heizbett = P1


S100 für Testtemperatur 100°C

[X0]
, auto-update der Werte im EEPROM
Ohne X0 wusste ich nicht, wie ich mir die Werte anschauen kann, wenn sie nicht im EEPROM festgeschrieben sind, also habe ich die Kalibrierung 2x gemacht, dazwischen das Heizbett wieder knapp auf Zimmertemperatur abkühlen lassen.

Screenshot_8.jpg
Also: M303 P2 S100 X0
Screenshot_9.jpg
Screenshot_10.jpg
Screenshot_7.jpg
Screenshot_11.jpg
Ich habe neue Werte im EEPROM :)
M205 spuckt aus:

Code: Alles auswählen

22:57:05.977: EPR:0 106 1 Bed Heat Manager [0-3]
22:57:05.980: EPR:0 107 255 Bed PID drive max
22:57:05.982: EPR:0 124 80 Bed PID drive min
22:57:05.985: EPR:3 108 60.267 Bed PID P-gain
22:57:05.988: EPR:3 112 7.566 Bed PID I-gain
22:57:05.991: EPR:3 116 120.013 Bed PID D-gain
22:57:05.994: EPR:0 120 255 Bed PID max value [0-255]
Doch jetzt die Ernüchterung:
Soll 95°C -> Ergibt 97,6°C, leicht schwankend.
Screenshot_13.jpg
Soll 120°C -> Ergibt 121°C bis 122°C
Screenshot_14.jpg
Mir bleibt mein Offset von +1°C
Auch wenn sich die Regelparameter zumindest leicht geändert haben.
Die Regelung scheint stabil! Es ist nicht so, dass es stark schwankt, der Zielwert ist falsch???
Ich hab mal gelernt, dass der I-Anteil (Integrator bzw. 1/s) einen Zielwert auf 0 regelt. Und diesen gibts hier. (??)

Für mich ist das Thema M116 nun egal, da ich den globalen Toleranzwert für Temperaturen in der Firmware geändert habe, aber ich bin mir ziemlich sicher, dass irgendwo in der Regelung oder bei den Temperaturen ein Fehler ist was "<" "<=" ">" oder ">=" betrifft.
Trotz (leicht) veränderter Werte blieb mein Temp-Delta dasselbe.

LG

Re: M116 - Funktioniert der Gcode bei euch korrekt?

Verfasst: Mo 5. Jun 2017, 13:01
von Nibbels
Ich verlinke den folgenden Thread:

http://www.rf1000.de/viewtopic.php?f=25&p=18601#p18587

Das könnte eine Lösung sein:
- Verändern von drive-max und drive-min.

Besonders beim E3D-V6 habe ich mit den Werten 40 und 255 beim Extruder ein größeres Überschwingen. Vermutlich wegen der Totzeit wegen dem Wärmefluss von der Heizung zum Sensor. Tests laufen nun mit 0 / 128.