Seite 3 von 6
Re: So sieht ein richtiger Crash aus
Verfasst: Di 30. Sep 2014, 11:34
von riu
Habe ich.
Mit der Lösung die ich oben geschrieben habe wäre das nicht passiert.
Gruss,
Udo
Re: So sieht ein richtiger Crash aus
Verfasst: Di 30. Sep 2014, 11:41
von riu
Achso das Video. Mit den Schaltern? Ich dachte du meinst die Bilder. Ja das Video habe ich gesehen. Die Schalter sind aber dafür nicht sonderlich geeignet. Die Dinger taugen einfach nichts. Das Überfahren des ersten Schalters maltretiert diese Platinenschalter einfach zu sehr. Zwei ordentliche Microschalter machen das Ganze auch Dauereinsatzfähig.
Gruss,
Udo
Re: So sieht ein richtiger Crash aus
Verfasst: Di 7. Okt 2014, 13:54
von Gemelon
Ich habe jetzt mal bei Conrad nachgefragt. Ich habe den kurz das Problem geschildert und gefragt ob sie da etwas unternehmen können.
Hier die Antwort:
Wir haben Ihr Anliegen an die Entwickler des RF1000 weitergeleitet. Diese haben versucht, den Fehler nachzustellen - bisher allerdings ohne Erfolg. Wie aus dem Forum hervorgeht, tritt dieser allerdings nur zufällig auf.
Auf jeden Fall wird daran gearbeitet, den Fehler ausfindig zu machen und zu beheben.
Es wird also daran gearbeitet
Ich denke die Kollegen bei Conrad werden noch mehr Infos brauchen. Also wenn noch jemand einen Hinweis geben kann, dann bitte hier Posten. Ich werde die Infos dann an Conrad weiterleiten, wenn die nicht so wie so hier mitlesen.
Ich meine dass mein Drucker noch über USB mit dem Rechner verbunden war und ich mit Repetier Host online war. Ich habe mir den Temperaturverlauf anzeigen lassen.
Gruß
Gemelon
Re: So sieht ein richtiger Crash aus
Verfasst: Di 7. Okt 2014, 21:05
von Digibike
Hi!
Husky hatte da eine Vermutung, die Plausibel zu sein scheint...
Würde erklären, warum es nur bei manchen auftritt! Wie du geschrieben hast, nutzt du Reptier Host für die
Temperaturüberwachung, während du per USB druckst, oder?
Wenn du aber per USB druckst, geht die Kontrolle an den Drucker über. Wenn du nun aber von Reptier Host
aus den Druck beendest, greift plötzlich Reptier aktiv per USB ein, aber es werden nach wie vor weiter die
Befehle der SD-Karte abgearbeitet - wahllos in einem eigentlich beendeten Prozess - bekommt also weiter
verfahrensbefehle, obwohl er auf der anderen Seite gezwungen wird, auf Druckende zu gehen...
Und da der Z- Endschalter ja bekanntlich nur ein Signal schickt, welches interpretiert werden muß und nicht ein
Abschaltsignal (sonst würde die Kalibrierung ja auch nicht funktionieren, da da ja etwas über den Abschaltpunkt
gefahren wird...) hat er in diesem Kontrollfreien Chaos keinerlei Wirkung und funktion mehr...
Das würde erklären, warum der Fehler nicht immer auftritt und auch nicht nachvollziehbar ist (werden mit Sicherheit,
wenn Sie mit Reptier beenden, auch über Reptier drucken...)
Empfiehlt sich, glaube ich, direkt über Z ein Notaus nach Udo´s Vorschlag zu realisieren - muß so plaziert sein, daß
Kalibrieren gerade noch gewährleistet ist, aber bei größerer Auslenkung sofort auf Notaus geht...
Schade, daß sich die Funktion in Reptier nicht sperren läßt, wenn man nicht darüber den Druck auch gestartet hat...
Gruß, Christian
Re: So sieht ein richtiger Crash aus
Verfasst: Di 7. Okt 2014, 21:10
von riu
Ich habe ja eher eine andere Vermutung.
Der Druck wurde, so wie ich das verstanden habe, über den Drucker gestartet. Repetier war aber auch verbunden (das war zumindest bei mir so) und hat die Positionen und die Temperaturen aufgezeichnet. Dann den Druck über den Drucker abbrechen - Peng! So war es bei mir.
Wenn der Druck nun über den Drucker mit verbundenem Repetier abgebrochen wird, scheint eine Prozedur die Endschalter ausser kraft zu setzen UND den Tisch in Richtung 0 auf der Z-Achse zu fahren. Der Druck hält ja nicht nur einfach an, sondern es wird ja auch gleichzeitig die Z-Achse angesteuert. X und Y habe ich bei dem Schreck den ich hatte nicht beobachtet.
Gruß,
Udo
Re: So sieht ein richtiger Crash aus
Verfasst: Mi 8. Okt 2014, 09:01
von Gemelon
Ja, so wie es der Udo geschildert hat war es bei mir auch.
Gruß,
Gemelon
Re: So sieht ein richtiger Crash aus
Verfasst: Mi 8. Okt 2014, 09:37
von Oo
Hi,
ich hatte das auch schon 2 mal, Computer war bei mir nie verbunden hab alles über den Drucker gemacht.
Bei mir war das zum Glück nie so schlimm...
Hab es geschafft den Drucker jedes mal schnell auszumachen.
Aber hat sich auch nicht gesund angehört. Denke also nicht das es was damit zu tun hat ob ein Pc angeschlossen ist oder nicht.
Scheint ein Bug im Drucker zu sein.
Ich mach das jetzt immer so wenn ich abbrechen will, Schalter hinten aus Druck ist abgebrochen...
Gruß
Ludwig
Re: So sieht ein richtiger Crash aus
Verfasst: Mi 8. Okt 2014, 15:09
von swdig
Hallo,
nach den ganzen Berichten hier über das unkontrollierte Überfahren des Z-Schalters habe ich mir mal den Sourcecode angesehen und dabei eine heiße Spur endeckt. Vorweg: Ich habe (noch) keinen RF1000 und kann deshalb nicht selber testen.
Lässt man sich in der Arduino-IDE die Compiler-Warnungen anzeigen, so findet man in dem ganzen Wust eine Warnung über einen Integer-Überlauf in dieser Zeile:
Datei: RF1000.cpp Zeile 2564
if( Temp > (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) )
Die Ursache dafür ist diese Definition in Configuration.h:
#define ZAXIS_STEPS_PER_MM 640
#define Z_MAX_LENGTH 202
Ändert man diese in long:
#define ZAXIS_STEPS_PER_MM 640l
#define Z_MAX_LENGTH 202l
ist die Warnung weg. Ohne die Definition als 'long' macht der Compiler aus dem Ausdruck (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) eine negative Zahl, mit der long-Definition eine positive Zahl.
Das ist auch gut im List-File (Assemblercode) zu sehen:
short-Definition:
if( Temp > (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) )
14e0e: 8e 0d add r24, r14
14e10: 9f 1d adc r25, r15
14e12: a0 1f adc r26, r16
14e14: b1 1f adc r27, r17
14e16: 81 58 subi r24, 0x81 ; 129
14e18: 96 4f sbci r25, 0xF6 ; 246
14e1a: af 4f sbci r26, 0xFF ; 255
14e1c: bf 4f sbci r27, 0xFF ; 255
14e1e: 4c f0 brlt .+18 ; 0x14e32
long-Definition:
if( Temp > (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) )
14e0e: 8e 0d add r24, r14
14e10: 9f 1d adc r25, r15
14e12: a0 1f adc r26, r16
14e14: b1 1f adc r27, r17
14e16: 81 58 subi r24, 0x81 ; 129
14e18: 96 4f sbci r25, 0xF6 ; 246
14e1a: a1 40 sbci r26, 0x01 ; 1
14e1c: b0 40 sbci r27, 0x00 ; 0
14e1e: 4c f0 brlt .+18 ; 0x14e32
Abhänging vom Ergebnis dieses Vergleichs wird dann eine Funktion mit einem sehr verdächtigen Namen aufgerufen:
CalculateAllowedZStepsAfterEndStop( );
Diese Funktion wird an mehreren Stellen aufgerufen. Das Ergebnis der if-Abfrage wird immer falsch sein, aber die Reaktion des RF1000 hängt vielleicht davon ab, ob CalculateAllowedZStepsAfterEndStop( ); vorher schon an anderer Stelle aufgerufen wurde.
Den Überlauf gibt es auch in der Datei motion.cpp in Zeile 2183:
if( Temp <= (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) )
Es könnte auch sein, dass solche Integerüberläufe auch bei X und Y auftreten, nur wirken sie sich da nicht so heftig aus.
So - nun freiwillige Tester vor.... bzw. wer schon mit dem Conrad-Support Kontakt hatte, darf das alles gerne weitergeben.
Grüße,
Stefan
Re: So sieht ein richtiger Crash aus
Verfasst: Fr 10. Okt 2014, 15:57
von Gemelon
Hallo Stefan,
das was du da schilderst finde ich bis jetzt wirklich am Plausibelsten. Ich habe das an Conrad weitergeleitet. Ich hoffe die können das bestätigen und damit den Fehler beheben.
Gruß
Gemelon
Re: So sieht ein richtiger Crash aus
Verfasst: Fr 10. Okt 2014, 18:04
von riu
Ja, finde ich auch sehr gute Arbeit! Ich denke swdig kommt von SoftwareDigger, der, der alles ausgräbt
Gruß,
Udo