diff --git a/InkJetPrinter.cpp b/InkJetPrinter.cpp index 76e1306..303ff56 100644 --- a/InkJetPrinter.cpp +++ b/InkJetPrinter.cpp @@ -1417,7 +1417,7 @@ void InkJetPrinter::timerHandler(void){ test_flag = 0; } if(pulse_1s) { - if(sysPara->status.selfCheckDone && sysPara->para.gearPumpEnable && sysPara->para.flagOfReclaimPumEnable) + if(sysPara->status.selfCheckDone && sysPara->para.gearPumpEnable) checkPressureControl(); if((QTime::currentTime()>=QTime(00,00,00))&&(QTime::currentTime()<=QTime(00,00,02))&&sysPara->para.Reciclar){ if(ui->tabMainWindow->getCurrPrintStatus() != 1){ @@ -1679,12 +1679,19 @@ void InkJetPrinter::timerHandler(void){ m_lastReclaimMode = sysPara->para.flagOfReclaimPumEnable; gearPumpRunNormalFlag = false; // 泄漏保护重新学习 gearPumpRunNormalValue = 0.0f; - // 重置隔膜泵状态机,适应新模式 - m_pumpState = DPUMP_STOPPED; - m_stateChangeCount = 0; - m_adjSkip = 0; - m_lastActualPressure = 0; - m_bufValidCount = 0; + // 重置隔膜泵状态机,适应新模式 + u = 0.0f; + pid.integral = 0.0f; + pid.err_last = 0.0f; + sysPara->para.gearPumpValue = 0; + sysPara->devOp->WriteMoterPump(); + if(!sysPara->para.flagOfReclaimPumEnable) + sysPara->devOp->controlReclaimPump(false, false); + m_pumpState = DPUMP_STOPPED; + m_stateChangeCount = 0; + m_adjSkip = 0; + m_lastActualPressure = 0; + m_bufValidCount = 0; for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0; m_bufIdx = 0; } diff --git a/PrintSetting.cpp b/PrintSetting.cpp index 5d394e6..41e65aa 100644 --- a/PrintSetting.cpp +++ b/PrintSetting.cpp @@ -2233,7 +2233,7 @@ void PrintSetting::ModuleDecimalHideDisplay(const bool bEnabled) } void PrintSetting::specailMachineSetting(bool enable){ - ui->checkBox_ReclaimPumpEnable->setEnabled(enable); + ui->checkBox_ReclaimPumpEnable->setEnabled(enable && PUMP_VER == QString("G")); ui->spinBox_gearPumpSpeedAlarm->setEnabled(enable); } diff --git a/SysPara.cpp b/SysPara.cpp index 1d5ce19..9133b64 100644 --- a/SysPara.cpp +++ b/SysPara.cpp @@ -23,6 +23,7 @@ #include #include #include +#include "VerBVersion.h" #define VNLG SysPara::SysPara(void): @@ -60,6 +61,10 @@ SysPara::SysPara(void): //para.HVFaultCloseEn= 1; //开机默认为1,允许高压故障自动关闭回收功能 + // 隔膜泵版本强制开启回收泵模式 + if(PUMP_VER == QString("D")) + para.flagOfReclaimPumEnable = true; + devOp->writeFpgaPrintPara(true); //系统起来的时候,将上次记录的配置写入fpga,比如晶振分频等信息 devOp->writeFpgaVariCtrl(); devOp->resumeFault();