preHeatError

correction of preHeatError detection
This commit is contained in:
MRprusa3d 2018-09-27 04:23:00 +02:00
parent c50db2ed7a
commit 0184f06dcf
6 changed files with 49 additions and 52 deletions

View File

@ -1210,24 +1210,24 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
static int __preheat_errors[2] = { 0,0};
#ifdef TEMP_RUNAWAY_BED_TIMEOUT
if (_isbed)
{
__hysteresis = TEMP_RUNAWAY_BED_HYSTERESIS;
__timeout = TEMP_RUNAWAY_BED_TIMEOUT;
}
#endif
#ifdef TEMP_RUNAWAY_EXTRUDER_TIMEOUT
if (!_isbed)
{
__hysteresis = TEMP_RUNAWAY_EXTRUDER_HYSTERESIS;
__timeout = TEMP_RUNAWAY_EXTRUDER_TIMEOUT;
}
#endif
if (millis() - temp_runaway_timer[_heater_id] > 2000)
{
#ifdef TEMP_RUNAWAY_BED_TIMEOUT
if (_isbed)
{
__hysteresis = TEMP_RUNAWAY_BED_HYSTERESIS;
__timeout = TEMP_RUNAWAY_BED_TIMEOUT;
}
#endif
#ifdef TEMP_RUNAWAY_EXTRUDER_TIMEOUT
if (!_isbed)
{
__hysteresis = TEMP_RUNAWAY_EXTRUDER_HYSTERESIS;
__timeout = TEMP_RUNAWAY_EXTRUDER_TIMEOUT;
}
#endif
temp_runaway_timer[_heater_id] = millis();
if (_output == 0)
{
@ -1251,39 +1251,36 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
}
}
if (temp_runaway_status[_heater_id] == TempRunaway_PREHEAT)
if ((_current_temperature < _target_temperature) && (temp_runaway_status[_heater_id] == TempRunaway_PREHEAT))
{
if (_current_temperature < ((_isbed) ? (0.8 * _target_temperature) : 150)) //check only in area where temperature is changing fastly for heater, check to 0.8 x target temperature for bed
__preheat_counter[_heater_id]++;
if (__preheat_counter[_heater_id] > ((_isbed) ? 16 : 8)) // periodicaly check if current temperature changes
{
__preheat_counter[_heater_id]++;
if (__preheat_counter[_heater_id] > ((_isbed) ? 16 : 8)) // periodicaly check if current temperature changes
{
/*SERIAL_ECHOPGM("Heater:");
MYSERIAL.print(_heater_id);
SERIAL_ECHOPGM(" T:");
MYSERIAL.print(_current_temperature);
SERIAL_ECHOPGM(" Tstart:");
MYSERIAL.print(__preheat_start[_heater_id]);*/
if (_current_temperature - __preheat_start[_heater_id] < 2) {
__preheat_errors[_heater_id]++;
/*SERIAL_ECHOPGM(" Preheat errors:");
MYSERIAL.println(__preheat_errors[_heater_id]);*/
}
else {
//SERIAL_ECHOLNPGM("");
__preheat_errors[_heater_id] = 0;
}
if (__preheat_errors[_heater_id] > ((_isbed) ? 2 : 5))
{
if (farm_mode) { prusa_statistics(0); }
temp_runaway_stop(true, _isbed);
if (farm_mode) { prusa_statistics(91); }
}
__preheat_start[_heater_id] = _current_temperature;
__preheat_counter[_heater_id] = 0;
/*SERIAL_ECHOPGM("Heater:");
MYSERIAL.print(_heater_id);
SERIAL_ECHOPGM(" T:");
MYSERIAL.print(_current_temperature);
SERIAL_ECHOPGM(" Tstart:");
MYSERIAL.print(__preheat_start[_heater_id]);*/
if (_current_temperature - __preheat_start[_heater_id] < 2) {
__preheat_errors[_heater_id]++;
/*SERIAL_ECHOPGM(" Preheat errors:");
MYSERIAL.println(__preheat_errors[_heater_id]);*/
}
else {
//SERIAL_ECHOLNPGM("");
__preheat_errors[_heater_id] = 0;
}
if (__preheat_errors[_heater_id] > ((_isbed) ? 2 : 5))
{
if (farm_mode) { prusa_statistics(0); }
temp_runaway_stop(true, _isbed);
if (farm_mode) { prusa_statistics(91); }
}
__preheat_start[_heater_id] = _current_temperature;
__preheat_counter[_heater_id] = 0;
}
}
@ -1293,7 +1290,7 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
temp_runaway_check_active = false;
}
if (!temp_runaway_check_active && _output > 0)
if (_output > 0)
{
temp_runaway_check_active = true;
}
@ -1302,7 +1299,7 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
if (temp_runaway_check_active)
{
// we are in range
if (_target_temperature - __hysteresis < _current_temperature && _current_temperature < _target_temperature + __hysteresis)
if ((_current_temperature > (_target_temperature - __hysteresis)) && (_current_temperature < (_target_temperature + __hysteresis)))
{
temp_runaway_check_active = false;
temp_runaway_error_counter[_heater_id] = 0;

View File

@ -128,7 +128,7 @@ EXTRUDER SETTINGS
#endif
// Extrude mintemp
#define EXTRUDE_MINTEMP 130
#define EXTRUDE_MINTEMP 175
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8

View File

@ -128,7 +128,7 @@ EXTRUDER SETTINGS
#endif
// Extrude mintemp
#define EXTRUDE_MINTEMP 130
#define EXTRUDE_MINTEMP 175
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8

View File

@ -182,7 +182,7 @@
#endif
// Extrude mintemp
#define EXTRUDE_MINTEMP 180
#define EXTRUDE_MINTEMP 175
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8

View File

@ -183,7 +183,7 @@
#endif
// Extrude mintemp
#define EXTRUDE_MINTEMP 180
#define EXTRUDE_MINTEMP 175
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8

View File

@ -299,7 +299,7 @@
#endif
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
#define EXTRUDE_MINTEMP 175
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8