Nachkommastellen im M106 S-Parameter

Hier könnt Ihr über alle Slicer diskutieren die keine eigene Kategorie haben
Antworten
MagWeb
3D-Drucker
3D-Drucker
Beiträge: 76
Registriert: Mo 28. Dez 2015, 21:06
Has thanked: 6 times
Been thanked: 10 times

Nachkommastellen im M106 S-Parameter

Beitrag von MagWeb »

Hallo,

Ich hab da eben einen von Slic3r generierten GCode (über SD) laufen, bei dem immer wieder der Extruderlüfter stehen bleibt.
Wenn ich dann auf die Lüftersettings im Gerätemenü gehe sehe ich, dass der Lüfter auf "schrägen" Werten wie 89% steht. Wenn ich dann den Lüfter wieder auf 100% stelle läuft er wieder... bis er wieder stehen bleibt und dann steht der Lüfter wieder auf einem "schrägen" Wert sagen wir 92%.
In Slicer hatte ich im Cooling AutoCooling aktiviert - also mal in den GCode gucken:

Im GCode finde ich in den Lüftersteuerungszeilen Integers (ganze Zahlen) wie auch Floats (mit einer Nachkommastelle, wie etwa "M106 S239.7").
Irgendwie, bin da nicht so Experte, habe ich im Hinterkopf, dass für PWM Taktungen gewöhnlich ganze Zahlen (von 0-255) verwendet werden. Selbst wenn da Floats auch zulässig sind (denke mal, die Leute bei Slic3r wissen was sie tun) scheint der RF damit Probleme zu haben.

Ich habe da hier, wie auch in der RepRap Wiki gesucht, habe dazu - ob Integer oder Float - aber nichts gefunden - Es wird immer nur von Werten 0-255 gesprochen. Kann hier der RFx Floats verstehen? - Mir scheint nicht - Was meint ihr?

Gunter
Benutzeravatar
RAU
Supporter
Supporter
Beiträge: 683
Registriert: Mo 28. Sep 2015, 19:16
Wohnort: NRW
Has thanked: 20 times
Been thanked: 55 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von RAU »

PWM arbeitet mit ganzen Zahlen, aber die FW könnte ja runden oder abschneiden.
Nun bist du ja schon ziemlich weit mit der Analyse. Jetzt noch der letzte Schritt: ;)
Gib doch mal die G-Codes im Repetier direkt ein, dann siehst du, welche funktionieren und welche nicht. 255/5 wäre noch eine ganze Zahl und entspricht 20%.
Ich kann mir gut vorstellen, dass ein Float-Wert einen Error auslöst und möglicherweise einen stehenden Lüfter. Aber auch sehr merkwürdig, dass das noch nicht vorher aufgefallen ist. Ich meine, ich hätte früher - auch mit Slic3r und vor der S3D-Zeit - auch mit sehr kleinen Werten gearbeitet.
(Wegen des Kondensators am Lüfterausgang auf dem Board kann man die Spannung nicht wirklich linear regeln. Der Elko wird auch bei kleinsten Pulsen wieder weit aufgeladen. So ist es kein echtes PWM.)
MagWeb
3D-Drucker
3D-Drucker
Beiträge: 76
Registriert: Mo 28. Dez 2015, 21:06
Has thanked: 6 times
Been thanked: 10 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von MagWeb »

Danke, hatte das mit den PWMs also doch noch richtig im Hinterkopf. Klar die Firmware könnte runden - aber tut sie das auch? Mal sehen...
Ich werde das mal direkt mit GCode (also von SD) probieren um auszuschließen, dass nicht der Host rundet (Bin zudem auf MAC mit aaaltem RepetierHost)
Gelegentlich zucken die Lüfter leicht in solchen Situationen, als ob sie wollen aber nicht die Power zum Anlaufen haben das könnte ein weiteres Indiz sein...
Auffallen tut das eigentlich nur dann, wenn man den angezeigten Wert mit der tatsächlichen Action vergleicht und diese Angabe ist im Menu ja nicht gerade TopLevel. Man könnte so entweder der Meinung sein, dass der Slic3r meint es sei jetzt gerade keine Lüftung nötig oder eher an Dinge wie Kabelbruch oder defekten Lüfter denken.... Könnte aber auch RF2000 spezifisch sein...
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2066
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 268 times
Been thanked: 544 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von rf1k_mjh11 »

MagWeb,

Ich habe in einigen GCode-Dateien nachgesehen. Bei mir kommen auch häufig Nachkommastellen vor (besonders häufig: 127.5 = 50%). Es handelte sich dabei um Dateien, die ich schon gedruckt habe - ohne Probleme. Alle kamen von Slic3r.

Kann es sein dass du eine fehlerhafte FW verwendest? Offensichtlich ignoriert die (zumindest meine) FW die Nachkommastellen. Ich verwende zur Zeit v0.91.51.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
MagWeb
3D-Drucker
3D-Drucker
Beiträge: 76
Registriert: Mo 28. Dez 2015, 21:06
Has thanked: 6 times
Been thanked: 10 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von MagWeb »

Danke mjh11,

Du hast recht, mein Problem hat nicht unbedingt was mit den Floats zu tun. Problem scheint zu sein, das alle M106 Sxxx Zeilen scheinbar nicht richtig in Action übersetzt werden. Ich habe mir da einen Testcode ( einfache Mäanderfahrt) geschrieben in der der Lüfter in jeder Fahrt in Y eine andere Geschwindigkeit haben sollte. Bei der Fahrt nach hinten werden Floats, nach vorne Integers gesetzt.

Code: Alles auswählen

G21 ; set units to millimeters
M107 ; start with the fan off
G28 ; home all axes
G1 Z5 F500 ; lift nozzle
G21 ; set units to millimeters
G90 ; use absolute coordinates
G92;
;
G1 X15 
M106 S255 ;Int FullSpeed
G1 Y225
G1 X25 
M106 S223.1 ;float
G1 Y0
G1 X35 
M106 S127 ;int
G1 Y225
G1 X45 
M106 S159.6 ;float
G1 Y0
G1 X55 
M106 S20 ;int
G1 Y225
G1 X65
M106 S175.7 ;float
G1 Y0
G1 X75 
M106 S248 ;int
G1 Y225
G1 X85
M106 S187.9 ; float
G1 Y0
G1 X95 
M106 S127 ;int
G1 Y225
G1 X105 
M106 S180.6  ;float
G1 Y0
G1 X115
M106 S180 ;int
G1 Y225
G1 X125  
M106 S222.2 ;float
G1 Y0
G1 X135
M106 S70 ;int
G1 Y225
G1 X145
M106 S70.3 ;float
G1 Y0
G1 X155
M106 S145 ;int
G1 Y225
G1 X165 
M106 S147.6  ;float
G1 Y0
G1 X175
M106 S120 ;int
G1 Y225
G1 X0 Y0
;
M107; fan off
M84; motors off
(Ich habe die mitgelieferte FW 01.10 auf meinem RF2000 drauf:)
Nun tut das aber nicht das was ich erwartet habe. D.h. der Lüfter springt überhaupt nicht an doch die Displaywerte ändern sich munter.
In der ersten Fahrt steht S auf 255 der Lüfter sollte doch wohl auf 100% drehen und so auch mit 100% im Display (im FanSpeed menu) angezeigt werden.
Is aber nich - Mein RF2000 bevorzugt da 73%...
Analog ist das mit den übrigen gesetzten Geschwindigkeiten - keine Lüfterbewegung und falsche Displaywerte.
Lustig ist auch, dass mein RF2000 sich bei der Fahrt auf " X 115 " plötzlich einen Piep macht also irgendwie da was missversteht.
______

Wenn ich keinen Code laufen habe und nur über die Gerätebuttons den Lüfter einschalte (denke, das setzt einfach einen M106 Sxxx ab) kann ich mit dem 100% Befehl die Lüfter schalten. Merkwürdig ist hier, dass die dann nicht unbedingt sofort anlaufen sondern sich schon mal die Ewigkeit von15 sec gönnen. Ein anderer Wert (25%,50%,75%) schaltet die Lüfter faktisch aus, während der angezeigte Wert entsprechend ist...

Da scheint hier Einiges verdraxelt zu sein...
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2066
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 268 times
Been thanked: 544 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von rf1k_mjh11 »

MagWeb,

Ich habe deinen Code laufen lassen. Wegen dem großen Befehlspuffer ist es oft schwierig zu sagen, auf welchen Befehl reagiert er denn gerade?

Daher habe ich noch ein paar "M400-Pausen" eingearbeitet, plus ein paar Piepser, damit ich genau weiß, wann sich die Drehlzahl ändern sollte (nach 'nem hohen Piepser kommt eine interger-basierte Änderung, nach 'nem niedrigen eine Änderung nach einer Float-Angabe). Ich habe die Leistungs-Unterschiede auch 'radikalisiert'. Meistens mittels Wechsel von einem recht niedrigen Wert auf einen recht hohen, und umgekehrt. Ich ging dabei bis auf 5% hinunter (M106 S14).

Bei X115 gab es anfangs keine Piepser (danach wahrscheinlich schon, wegen den programmierten Piepsern :geheim: ).

Nachdem eine Beurteilung der Drehzahl recht schwierig ist (nur nach 'Gehör & Gefühl', ohne Oszi, Drehzahlmesser, usw.), musste ich eine recht brutale Methode anwenden: Finger schleifen lassen. Immer nach einem Piepser samt Prozentänderung habe ich mittels schleifendem Finger versucht, die Leistung zu beurteilen. (Vielleicht kann einer der Elektronik-versierten hier im Forum mich da bestätigen, oder erklären, wieso die Methode nichts taugt).
Erstaunlicherweise konnte ich keine entsprechenden Unterschiede zwischen Werten wie 5% und 50% oder 5% und 98% bemerken (drehzahlmäßig, jedenfalls). Es kommt mir fast so vor, als entsprächen 5% ca. 60% Lüfterleistung (bei ca. 80% - 100% der Drehzahl). Auch extrem niedrige Werte, wie M106 S1 oder S2 (<1%) führen zu merklich weniger Leistung (erkennbar durch längere Anlaufzeit), aber beinahe dieselbe Enddrehzahl. (Ist das zwingend eine Folge der Brushless Technologie, falls der Lüfter so was verwendet?)
Für einen Lüfter, möchte ich behaupten, ist die Drehzahl bestimmend für den Luftvolumenstrom. Daher frage ich mich, wozu die PWM Werte verwenden, wenn im Endeffekt praktisch immer dasselbe herauskommt?
Mein Code
Hier ist der GCode, den ich verwendet habe:

Code: Alles auswählen

G21 ; set units to millimeters
M107 ; start with the fan off
G28 ; home all axes
G1 Z5 F500 ; lift nozzle
G21 ; set units to millimeters
G90 ; use absolute coordinates
G92;
;
G1 X15 F1500
M106 S255 ;Int FullSpeed
G1 Y225
G1 X25
M400
M300 S2000 P300
M106 S223.1 ;float
G1 Y0
G1 X35
M400
M300 S4000 P500
M106 S64 ;int
G1 Y225
G1 X45
M400
M300 S2000 P300
M106 S249.6 ;float
G1 Y0
G1 X55
M400
M300 S4000 P500
M106 S18 ;int
G1 Y225
G1 X65
M400
M300 S2000 P300
M106 S135.7 ;float
G1 Y0
G1 X75
M400
M300 S4000 P500
M106 S251 ;int
G1 Y225
G1 X85
M400
M300 S2000 P300
M106 S18.9 ; float
G1 Y0
G1 X95
M400
M300 S4000 P500
M106 S127 ;int
G1 Y225
G1 X105
M400
M300 S2000 P300
M106 S16.6  ;float
G1 Y0
G1 X115
M400
M300 S4000 P500
M106 S110 ;int
G1 Y225
G1 X125 
M400
M300 S2000 P300
M106 S251.2 ;float
G1 Y0
G1 X135
M400
M300 S4000 P500
M106 S14 ;int
G1 Y225
G1 X145
M400
M300 S2000 P300
M106 S70.3 ;float
G1 Y0
G1 X155
M400
M300 S4000 P500
M106 S145 ;int
G1 Y225
G1 X165
M400
M300 S2000 P300
M106 S147.6  ;float
G1 Y0
G1 X175
M400
M300 S4000 P500
M106 S120 ;int
G1 Y225
G1 X0 Y0
;
M107; fan off
M84; motors off
Mit den Piepsern und dem Warten (M400) waren die Prozentänderungen am Druckerdisplay und in Repetier-Host leicht zu verfolgen. Die erste Änderung geht aber irgendwie unter, jedenfalls in Repetier-Host. Die folgenden Änderungen kommen schon rüber.
Ich habe nicht geprüft, ob die Werte an sich stimmen, bloß ob es sich beim Piepser ändert.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
georg-AW
Developer
Developer
Beiträge: 536
Registriert: Mi 1. Okt 2014, 14:43
Wohnort: Schweiz Nordost
Has thanked: 40 times
Been thanked: 238 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von georg-AW »

Hi
Im Verlaufe meiner Entwicklungsarbeiten zum Laser am RF1000 musste ich mich mit dem Fan Signal beschäftigen weil es zur Leistungssteuerung des Lasers benutzt wird. D.h. die spezielle Software welche die Gravurbefehle bzw. die Schneidebefehle für den Laser generiert, verwendet die gcodes M107 und M106 zur Steuerung des Lasers. Bei M106 wird beim Rastergravieren der Parameter S... verwendet und zwar zwischen S1 und S255.
Dabei kommen durchaus auch Nachkommastellen vor zb 45.369.

Wer nun glaubt, dass beim RF1000 damit am Fan Ausgang eine entsprechende analoge Ausgangsspannung entsteht, der irrt.

Die Schaltung ist so, dass bereits ein kleines "on" Signal den Elektrolytkondensator C102 voll lädt. Der Ladestrom wird nur durch den 1 Ohm Widerstand , der 12V Zenerdiode sowie durch Ron des Mosfets gegeben. Die Entladezeitkonstante wird hingegen durch den Ohmschen Widerstand des Lüfters definiert.
Der ist aber keineswegs konstant weil es sich dabei um eine kleine Elektronik handelt ( brushless Motorschaltung )
Bei einem Jamicon Lüfter ( 25x25mm KF0210B1MR-R Kugellager ) sieht der Strom bei verschiedenen angelegten Betriebsspannungen so aus:

12 VDC 55 mA Lüfter läuft volle Drehzahl ( volle Drehzahl abhängig vom Staudruck. Lagerreibung etc )
9 VDC 43 mA Lüfter läuft mit geringfügiger Verrringerung der 12V Drehzahl d.h etwa 90%
6 VDC 31 mA Lüfter läuft mit nochmals etwa 80% der 12 V Drehzahl
3 VDC 20mA Lüfter läuft noch knapp bei etwa 30% der 12V Drehzahl
2.4 V 19 mA Lüfter ist aus.

Alle Werte gemessen mit Netzgerät stabilisiert. Bei anderen Lüfterfabrikaten zb Sunon ( ohne Kugellager ) ergeben sich auch andere Werte.

Damit der Lüfter überhaupt anspringt, muss man in obiger Anordnung mindestens 3.5 VDC anlegen. Darunter geht nichts !
Wenn der Lüfter nur geringfügig gebremst wird, startet er erst bei wesentlich höherer Spannung.
Es ist eine Hysterese vorhanden zwischen Lüfter "ein" und Lüfter "aus". 3.4 > 2.4 V

Wenn nun ein solcher Lüfter im RF1000 betrieben wird, kommt noch das Problem des tiefen Taktes ( 3.8Hz dh. 270ms ) dazu.

Ohne Elko C102 geht dann nichts mehr, der Lüfter springt mal an, mal nicht. Dies vor allem bei niedrigem Puls-Pausen Verhältnis. ZB bei 30% oder drunter.
Mit Elko ist aber keine wirkliche proportionale Drehzahlsteuerung möglich. Praktisch gibt es nur zwei Zustände 0 oder 100%.

In der Software kann man zwar entweder manuell ( RepHost ) den Lüfterschieber bewegen von 0...100%. Der Lüfter macht ganz was anderes.

Die Drehzahl nimmt nicht proportional zu , wie oben beschrieben. Es ist auch so, dass wenn der Lüfter Staudruck hat oder sonst leicht klemmt, u.U. 6 oder mehr Volt benötigt werden um ihn zu starten.

Fazit: Dein Problem ist kein Softwareproblem, keines wegen des S- Parameters mit Nachkommastellen sondern ein Hardwareproblem welches nicht so einfach aus der Welt zu schaffen ist. Meines Erachtens ist es auch egal ob das soeben gedruckte Objekt mit 100 % beblasen wird oder nur mit 89.56%. Möglicherweise ist der Lüfter selbst nicht ok. Überprüfen oder ersetzen.

ciao Georg
MagWeb
3D-Drucker
3D-Drucker
Beiträge: 76
Registriert: Mo 28. Dez 2015, 21:06
Has thanked: 6 times
Been thanked: 10 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von MagWeb »

Vielen Dank georg-AW und mjh11,

jetzt sehe ich etwas klarer und es erklärt sich vieles.
Praktisch bedeutet das dann doch, dass man am M106 (=M106 S255) einmalig setzt und dann alle weiteren M106 Modifikationen im Code vermeidet, denn selbst wenn später ein M106 S255 auf ein früheres M106 S<255 trifft, scheinen Anlaufschwierigkeiten zu entstehen. Ich gebe Georg recht, dass es eher unwichtig ist, ob der Lüfter auf 100% oder einer, etwa 89,56% Leistung bläst. Dumm ist nur wenn der Slicer da was Unnötiges reinmontiert und so die Lüfter ganz "abschaltet" (solche Zeilen sind auch in den mitgelieferten Examples.

Hier auf dem RF2000 dreht sich auch in mjh11's Code kein Lüfter nach dem ersten Wechsel mehr auf Deinem RF1000, mjh11, mit anderem/einem Lüfter scheint dieser zumindest zu laufen. Ich werde mich da mal an die Prüfung machen ob meine Lüfterkombo da ne Macke hat. Für mich interessant wäre auch, wenn ein anderer RF2000 Besitzer den Code (nur eine Leerfahrt) mal diesbezüglich testen könnte.

@ Moderatoren: Könntet Ihr den Thread etwa in "Lüfterprobleme durch M106 Befehle" o.ä. umbenennen, evtl auch verschieben - mit den ursprünglich angenommenen Floats und Slicersoftware hat das nach besserer Einsicht nichts zu tun.

Danke
Gunter
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2066
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 268 times
Been thanked: 544 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von rf1k_mjh11 »

Gunter/MagWeb,
MagWeb hat geschrieben:....Dumm ist nur wenn der Slicer da was Unnötiges reinmontiert und so die Lüfter ganz "abschaltet" (solche Zeilen sind auch in den mitgelieferten Examples. ...
Das Problem kannst du in Slic3r damit umgehen, dass du unter "Filament Settings", dann "Cooling" und letztlich unter "Fan settings" jeweils "100%" unter den Min. und Max. einträgst (zur Not 99% für Min., 100% für Max.).

Dann müsste der Lüfter einmal eingeschaltet werden (erst ab einem gewissen Layer: "Disable fan for the first: X layers") und bis zum Schluss an bleiben. Erst der End-Code würde den Lüfter mittels M107 ausschalten.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
MagWeb
3D-Drucker
3D-Drucker
Beiträge: 76
Registriert: Mo 28. Dez 2015, 21:06
Has thanked: 6 times
Been thanked: 10 times

Re: Nachkommastellen im M106 S-Parameter

Beitrag von MagWeb »

Danke auch für diesen Hinweis, ich hatte gedacht einfach AutoCooling ganz abzuschalten und dann Min auf 100% zu setzen. Aber wie Du das vorschlägst bleibt zumindest die Speed Absenkung für kurze Layer nutzbar.
Antworten

Zurück zu „Sonstige“