Controlling chamber heater
-
I start a new topic about this since I have somehow solved my problem (https://forum.duet3d.com/topic/25006/safety-heater-temperature-control?_=1631135336331), but I have not achieved my desired type of control.
My actual setup is a heated chambers, heated with 2 resistors, both of them connected to a solid state rele (they use AC energy). And this rele is controlled by the duet 3 board as a heater
I have a thermistor for controlling the chamber temperature, and I have installed 2 thermocouples to check the resistors temperature to be sure they dont burn out. I have set a limit of 590 degrees on them. Any of them reaching this temperature, temporary shut down the heating system.
Initially the thermocouples were configured independently then I connected them in series to the temp board.The config to do this is:
;Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"chamber" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out7" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.092 C284.700:284.700 D30 S1.00 V0 B0 ; enable PID mode for the chamber heater and set PWM limit
M141 H0 ; map chamber to heater 0
M143 H0 P0 S240 ; set temperature limit for heater 0 to 240C
M570 H0 T25 ; variation temp limit of the chamber set at delta 25
M308 S3 P"spi.cs0"Y"thermocouple-max31856" K"J" A"chamber_resistorR"
; M950 H3 C"out8" T3
M143 H0 T3 S590 A2
;M308 S4 P"spi.cs1"Y"thermocouple-max31856" K"J" A"chamber_resistorL"
; M950 H4 C"out9" T4
; M143 H0 T4 S590 A2But what I would really like to do is the following:
to read the temperature of each one of he resistors, and to shut down ONLY the resistor reaching the max allowed temperature, not both of them.
I tried to do that configuring "heaters" in order to be able to add 2 extra reles so I can shut down each one of the resistors independently, but the config doesnt work (the commands are the ones commented out above).
When I use those commands, one o f the thermocuples just desapear, I get always an error of "out9 is already being used.
The extra reles are connected to out8 and out9, the "main" rele is connected to out7. and it is working ok.Ideas about how I can achieve my objective?
Thanks in advance
-
Can you show your full config?
When it complains that out9 is already being used has it actually been used previously?
@tinchus said in Controlling chamber heater:
to read the temperature of each one of he resistors, and to shut down ONLY the resistor reaching the max allowed temperature, not both of them.
This may be problematic because you would then need 2 chamber heaters defined and I'm not sure that's currently possible. It would also make PID tuning both of them difficult as well.
-
@phaedrux HI!
The config that is working now it is the one below. In this config, there are no extra heater. Just 1 heater declared for the chamber and 3 sensors. The thermocouples are sensors 3 and 4, and any of them reaching a temp of 590 will temporary shutdown the chamber heater. You will see 2 M950 commands commented out, That was my try to create 2 extra heaters on out8 and out9. On those pins I wanted to connect a SSR for each heater. The both SSR would be connected to the main SSR of the chamber heater (connected to out 7 now, working as expected).
But those M950 are the ones not working.;General preferences
G90 ; Home virtual
M83 ; Movimiento relativo para extrusores
M669 K0 ; Tipo de impresora cartesina;Definición de ejes
M569 P0.0 S1 D2 ;Sentido y comporamiento del driver 0 ***
M569 P0.1 S0 D2 ;Sentido y comporamiento del driver 1 ***
M569 P0.2 S1 D2 ;Sentido y comporamiento del driver 2
M569 P0.3 S1 D2 ;Sentido y comporamiento del driver 3
M569 P0.4 S1 D2 ;Sentido y comporamiento del driver 4
M569 P0.5 S1 D2 ;Sentido y comporamiento del driver 5M584 X0.0 Y0.1 Z0.2:0.3 E0.4:0.5 ;Asignación de driver a cada eje
M350 X16 Y16 Z16 E16:16 I1;Configuración de micropasos por ejesM92 X320 Y320 Z1600 E428.25:428.25 ; seteo de pasos por motor *** X Y
M566 X400.00 Y400.00 Z300.00 E500:500 P0 ; seteo de velocidad instantanea *** X Y
M203 X15000.00 Y15000.00 Z340.00 E2400.00:2400.00 ; seteo de velocidad máxima *** X Y
M201 X1500 Y1500 Z200 E1500.00:1500.00 ; seteo aceleración *** X Y valor bajo por seguridad
;M204 P100 T100 ; seteo de aceleración de impresión y viaje/ está desactivado ya que lo definen por intefaz
M906 X4400 Y2000 Z1000 E900:900 I50 ; seteo de la corriente de cada motor (mA), con porcenaje extra para motor quieto del 30%
M84 S300 ;Seteo de espera de inactividad para desbloquear motores 300s;Distancia de cada eje
M208 X0 Y0 Z0 S1 ;Distancia mínima de los 3 ejes *** X Y
M208 X400 Y400 Z406 S0 ;Distancia mínima de los 3 ejes *** X Y;Definición de Endstops
M574 X1 S1 P"!io1.in" ; Endstop X min, en el conector "io1.in" *** X
M574 Y1 S1 P"!io0.in" ; Endstop Y min, en el conector "io0.in" *** Y
M574 Z2 S2 ; Endstop Z Min.; Sensado Z
M558 P5 C"^!io3.in" H5 F120 T18000 ; tipo de sensor de z. P5 = switch NC, con el nombre "^!io3.in", H5 cuanto baja, T:velocidad mm/minG31 P500 X-7 Y-29 Z2.45 ; seteo del valor de prueba de Z y los offset correspondiente en cada coordenada
M557 X15:330 Y10:330 S35:30 ; define los puntos mínimos y máximos del testeo en X e Y, con una distancia de 41,25mm *** X Y;Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"chamber" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out7" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.092 C284.700:284.700 D30 S1.00 V0 B0 ; enable PID mode for the chamber heater and set PWM limit
M141 H0 ; map chamber to heater 0
M143 H0 P0 S240 ; set temperature limit for heater 0 to 240C
M570 H0 T25 ; variation temp limit of the chamber set at delta 25
M308 S3 P"spi.cs0"Y"thermocouple-max31856" K"J" A"chamber_resistorR"
; M950 H3 C"out8" T3
M143 H0 T3 S590 A2M308 S4 P"spi.cs1"Y"thermocouple-max31856" K"J" A"chamber_resistorL"
; M950 H4 C"out9" T4
M143 H0 T4 S590 A2M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.19622e-7 ; 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 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M308 S2 P"temp2" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit;Herramientas/Elementos calefactores
M563 P0 D0 H1 ;define tool 0/ Definición del hotend 1
G10 P0 X0 Y0 Z0 ;set tool 0 axis offsets/ Donde está posicionado el pico cuando se hace el home
G10 P0 R0 S0 ;set initial tool 0 active and standby temperatures to 0C/ Posición de espera de enfriamiento
M563 P1 D1 H2 ;define tool 1/ Definición del hotend 2
G10 P1 X-61 Y0 Z-2.05 ;set tool 1 axis offsets/ Donde está posicionado el pico cuando se hace el home
G10 P1 R0 S0 ;set initial tool 1 active and standby temperatures to 0C/ Posición de espera de enfriamiento;Otros
;Retracción
M207 S6 R0.2 F1800 ;firmware retraction/ 6mm de retracción, 0,2 de cebado para compensar la inercia
M83
; movimiento relativo en extrusores/ es la segunda vez que se llama, revisar si es necesario
;Servo
M950 S0 C"0.out9" ; servo "0" in pin out9/ Este comando puede agregar un servo, elemento calefactor o un cooler *** ver si es igual por t°
M280 P0 S17 ; move servo for T1 up default position / posicionamiento del servo
; M376 H30;Temp Max cancell mesh levelling at 30 mm
M143 S450 ; set max temp to 450 degrees for T0
M143 H2 S450 ; set max temp to 450 for T1;Stop emergency
M950 J0 C"^io8.in" ; Se define el pin de emergencia/ J:número de pin -nombre del pin
M581 P0 R0 T0 ; Assigment of the emergency stop/ R: Modo(0= default) / T: número de disparador = pin;Buzzer
M950 P5 C"out3" ; assign gpio port 5 to out3 for buzzer. control with M42 P5 SX range 0 to 1
; M671 X0:350 Y175:175 S3 ; set 2 probing points to correct any possible tilted bed; Seguridad de cierre
; M591 D1 P1 C"io5.in" S1 ; pin tapa superior stop
M950 J6 C"io5.in" ; Se define el sensor de puerta cerrada
M581 P6 T2 S0 R1 ; set trigger2.g to be excuted if door opened while printing/ T2: llama a trigger2S0:flanco down - R1:cuando está imprimiendo
M950 J7 C"io6.in" ; define top lid pin stop
M581 P7 T3 S0 R1 ; set trigger3.g to be excuted if door opened while printing;M671 X230:0 Y175:175 S5 ;Define la posicion de los tornillos de la cama para la calibración manual
M671 X350:0 Y175:175 S5 ; set 2 probing points to correct any possible tilted bedM501 ; load saved parameters from non-volatile memory
T0 ; select first tool 0Thanks in advance
-
@tinchus said in Controlling chamber heater:
I get always an error of "out9 is already being used.
The "out9" is already configured for your servo!
@tinchus said in Controlling chamber heater:
;Servo
M950 S0 C"0.out9" ; servo "0" in pin out9/ Este comando puede agregar un servo, elemento calefactor o un cooler *** ver si es igual por t° -
@cosmowave no it is not... not at least phisically, the servo is connected in other pin that I can see is also named out9... so it mus be a problem of pin names?
-
@tinchus said in Controlling chamber heater:
also named out9... so it mus be a problem of pin names?
Which board is it on? What port is also named out9?