Duet Filamentsensor abfrage

Moin,

Folgendes Setup:
Duet Board (RRF3.4) per usb mit Repetier-Server (1.4.6)

config.g:
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138                ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0                                                         ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.150 K0.067:0.000 D40.82 E1.35 S1.00             ; enable bang-bang mode for the bed heater and set PWM limit B1 = BangBangMode on
M140 H0                                                                         ; map heated bed to heater 0
M143 H0 S100                                                                 ; set temperature limit for heater 0 to 100C
M308 S1 P"temp1" Y"thermistor" T100000 B4138                ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1                                                         ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 R2.430 K0.560:0.000 D5.50 E1.35 S1.00 B0 V0.0   ; disable bang-bang mode for heater  and set PWM limit
M143 H1 S280                                                                 ; set temperature limit for heater 1 to 280C

; Custom settings
M591 D0 P1 C"io4.in" S1                            ; Filament run-out sensor / P-> Switchtype 1=high 2=low / S-> 0=Off 1=On

Situation:
Filament Runout wird von DWC erkannt und während einem SD-Druck ausgeführt. Auch ein M591 D0 zeigt, den richtigen zustand vom Filament an.
Bei einem Druck per Repetier wird weitergedruckt.

In der Konsole kommt flogende Meldung:
Recv:15:53:41.518: - Event notification -
Recv:15:53:41.519: Filament error on extruder 0: noFilament

Also habe ich diese bei RepetierServer G-Code als Ereigniss angelegt als "Filament error on extruder 0: noFilament"

Problem:
Das Ereignis wird ausgeführt, jedoch im Sekundentakt egal ob Filament eingelegt ist oder nicht. Darauf hin habe ich ACK aktiviert und gesehen, dass egal welcher zustand der Filament Sensor hat dauerhaft ein " "msgBox":{"msg":"Filament error on extruder 0: noFilament", " gesendet wird.

Frage:
Wie löse ich das Problem? :-D 

Vielen Dank schon mal im voraus für eure Hilfe :-)

Comments

  • Ok das Problem ist leicht zu lösen. Die Meldung die du willst fängt mit dem Satz an und muss ich nicht enthalten. Fange also deine Regel mit ^ and um anzuzeigen das die Antwort damit anfangen muß. Damit wird deie Mledung in msg ignoriert. Also
    ^Filament error on extruder 0: noFilament

    als Regel. Das event wird ja anscheinend nur einmal erzeugt. Jetzt muss ich noch gucken wegen der msg box. Dialoge über dcs werden jetzt gezeigt, vielleicht finde ich hie rauch eine Lösung die messages im interface zu Zeigen, ist ja der Sinn der msg meldung. Und die Meldung werde ich dann vermutlich als Filamentwechsel aufforderung ansetzen was danna uch gleich eine Pause erzeugt.
  • Ok, ab der nächsten Version erkennt er das automatisch, wechselt in Filemantwechsel und zeigt ein popup mit der Meldung an weil er die duet Dialogboxen jetzt erkennt.
  • Ihr seid einfach nur geil/spitze/super/genial ... sucht euch was aus :-D
  • Ich schon wieder. Ich steh gerade glaube ich auf dem schlauch. Ich habe jetzt den nächsten Duet-Umbau hinter mir. Dieses mal mit einem SBC per Flachbandkabel am duet-board angeschlossen.
    Ist ist eigentlich das gleiche Setup wie oben, nur dass es dieses mal zwei Extruder für ein Hotend gibt. 

    Wenn ich ein Filament Runout provoziere, erhalte ich im DWC wie auch im Repetier-Server die Meldung "Filament error on extruder 0: noFilament" als PopUp, jedoch nichts in der Konsole auf das der Repetier-Server reagieren könnte. 

    Was übersehe ich? Oder muss ich den Filamentsensor als Trigger konfigurieren und nicht als Filamentsensor? Würde sich aber auch irgendwie flasch anfühlen :-D

    mit freundlichsten Grüßen
    What
  • Beim DCS geht nicht alles über die Konsole. Duet hat ja ein Objekt Model das den Drucker und Status beschreibt. Dieses Model bilden wir intern nach und aktualisieren es parallel so das es imme rmit dem in DWC übereinstimme (wenn das plugin aktiviert ist). Du kannst sogar mit computed expressions darauf zugreifen oder die duer globalen variablen ausgeben.

    Wenn der status des Filamentsensors auf "noFilament" wechselt sollte der Filament Wechseln Dialog automatisch gewählt werden. Wenn die Meldung mir der im DWC identisch ist kommt sie wohl als nachricht vom duet. Hoffe das ist auch was bei dir passiert.

    Was genau möchtest du gerade erreichen?

    Parallel wird das Ereignis "changeFilamentRequested" nach dem pause start getriggert. Darauf kannst du dir ja Funktionen legen wenn du was machen must.
  • Hi, 

    sorry für die lange Antwortzeit ich war krank. Welches Plugin?  :o 

    Bei mir ist es so, dass duet den Filament-run-out erkennt und auch ein Popup öffnet, jedoch arbeitet Repetier weiter den Gcode ab und es kommt auch keine Benachrichtigung im Repetier an.

    Ich hatte es bei der Verbindung über USB so gemacht, dass ich mir Macros gemacht habe um entsprechende Befehle an Repetier zu senden.

    Zum Beispiel:
    Macro in Duet zum Manuelle starten per Paneldue:
    M118 P1 S"setze_den_druck_fort"


    Im Repetier Antworten auf Ereignis:
    Regulärer Ausdruck: setze_den_druck_fort
    Auszuführender G-Code: @continue


    Wahrscheinlich alles viel zu umständlich?

  • Im DWS kann man das Plugin Object Model Browser aktivieren, um das Objekt Model zu sehen. Das ist so auch im server abfragbar mit der entsprechenden json abfrage.

    Autamisch erkennen sollte er es wenn der schalter in sensors.filamentMonitors erscheint und in tools[].filamentExtruder der auf den Sensor verweist. Das wäre die offizielle Lösung von RRF.

    DCS nutzt den Telnet Channel, hier muss M118 also P4 haben damit es gesehen wird, ansonsten würde der gleiche Trick klappen um dem Server etwas mitzuteilen.
  • Oh man.....es kann so  einfach sein  :D Ich hätte vielleicht einfach besser die Dokumentation lesen sollen. Vielen dank für die Hilfe :-)
Sign In or Register to comment.