hlp:修复隐藏功能m显示不全的问题,需要搭配等宽的小数点,空格,数字和字母m使用,修改版本号为GuiLin版本
This commit is contained in:
+348
-337
@@ -26,7 +26,7 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
|
||||
ui(new Ui::InkJetPrinter)
|
||||
{
|
||||
// 隐藏系统任务栏,隐藏后,如果需要激活任务栏,则需要呼出QtUI中的任意弹出式、非全屏窗口,然后使用鼠标将光标移动至屏幕最左侧或最顶部则可以呼出任务栏
|
||||
int ret = system("xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2");
|
||||
int ret = system("xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 2");
|
||||
qInfo() << "Hide system panel ret:" << ret;
|
||||
|
||||
// system("ifconfig eth1 down");
|
||||
@@ -52,13 +52,14 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
|
||||
m_serialThreadFPGA = new QThread;
|
||||
serialFPGA = new Serial("/dev/ttyAS5");
|
||||
|
||||
connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
|
||||
|
||||
serialFPGA->moveToThread(m_serialThreadFPGA);
|
||||
connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
|
||||
connect(serialFPGA,SIGNAL(resendFPGAData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
|
||||
connect(sysPara->devOp,SIGNAL(sendSerialDataToFPGA(int,int,unsigned char*,int,int)),serialFPGA,SLOT(sendSerialData(int,int,unsigned char*,int,int)),Qt::QueuedConnection);
|
||||
connect(serialFPGA,SIGNAL(getFPGAVersion(uint)),this,SLOT(saveFPGAVersionNum(uint)));
|
||||
connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
|
||||
|
||||
connect(serialFPGA,SIGNAL(stopSendData(bool)),this,SLOT(stopSendFPGAData(bool)));
|
||||
connect(serialFPGA,SIGNAL(getFPGAPhaseDetectHighTm(unsigned char*)),this,SLOT(saveFPGAPhaseDetectHighTm(unsigned char*)));
|
||||
connect(serialFPGA,SIGNAL(getFPGAStatus(unsigned char*)),this,SLOT(saveFPGAStatus(unsigned char*)));
|
||||
@@ -74,6 +75,9 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
|
||||
|
||||
m_serialThreadSTM32 = new QThread();
|
||||
serialSTM32 = new Serial("/dev/ttyAS2");
|
||||
|
||||
connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
|
||||
|
||||
serialSTM32->moveToThread(m_serialThreadSTM32);
|
||||
connect(serialSTM32,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendSTM32Date(int,int,unsigned char*,int,int)));
|
||||
connect(sysPara->devOp,SIGNAL(sendSerialDataToSTM32(int,int,unsigned char*,int,int)),serialSTM32,SLOT(sendSerialData(int,int,unsigned char*,int,int)));
|
||||
@@ -84,7 +88,7 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
|
||||
connect(serialSTM32,SIGNAL(getSTM32Time(unsigned char*)),this,SLOT(saveSTM32Time(unsigned char*)));
|
||||
connect(serialSTM32,SIGNAL(stopSendData(bool)),this,SLOT(stopSendSTM32Data(bool)));
|
||||
connect(serialSTM32,SIGNAL(powerOffReady()),ui->tabMainWindow,SLOT(powerOffConfirmed()));
|
||||
connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
|
||||
|
||||
connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),ui->tabMainWindow,SLOT(showSTM32queuesize(int)));
|
||||
connect(ui->tabSystemManage,SIGNAL(upgradeSTM32(QString)),serialSTM32,SLOT(upgradeSTM32File(QString)));
|
||||
connect(ui->tabSystemManage,SIGNAL(enableClick(bool)),this,SLOT(enableInkJetTabClick(bool)));
|
||||
@@ -183,9 +187,11 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
|
||||
connect(ui->tabSystemSetting,SIGNAL(pressureAdjust()),this,SLOT(pressureAdjustForsystemseeting()));
|
||||
|
||||
#ifdef COUNTER1_BY_GROUP /* 分段计米 */
|
||||
connect(this,SIGNAL(updateCnt1GroupDisp(bool)),ui->tabPrintSetting,SLOT(onUpdateCnt1GroupDisp(bool)));
|
||||
connect(this,SIGNAL(updateCnt1GroupDisp(bool)),
|
||||
ui->tabPrintSetting,SLOT(onUpdateCnt1GroupDisp(bool)));
|
||||
#endif
|
||||
initCntGroup();
|
||||
initCntGroup();
|
||||
|
||||
msgtest = new QMessageBox(this);
|
||||
connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int)));
|
||||
msgBox1 = new QMessageBox(this);
|
||||
@@ -253,7 +259,7 @@ initCntGroup();
|
||||
sysPara->status.FileChangeRestCntFlag=0;
|
||||
sysPara->status.HVFaultCloseEn=0;
|
||||
sysPara->devOp->printCtrl( PRINT_CTRL_STOP);
|
||||
sysPara->devOp->writeFpgaCalandar(1);//
|
||||
sysPara->devOp->writeFpgaCalandar(1);
|
||||
//qDebug()<<sysPara->para.calandar_and_dat.year;
|
||||
sysPara->status.cnt1GroupRunningIndex=0;
|
||||
//sysPara->status.cnt1RepeatCurrent=0;
|
||||
@@ -267,31 +273,31 @@ initCntGroup();
|
||||
//JSON data
|
||||
#ifdef MODBUS
|
||||
|
||||
modbus = NULL;
|
||||
memset((uint8_t *)&sysPara->modbusParas, 0, sizeof(sysPara->modbusParas));
|
||||
sysPara->modbusStatus.receiveEnbleFlag = 1;
|
||||
snprintf((char *)sysPara->modbusParas.selectFileName, sizeof(sysPara->modbusParas.selectFileName), "%s",QFileInfo(sysPara->para.lastOpenedFileName).fileName().toLatin1().constData());
|
||||
modbus = new ModbusTcp(&sysPara->modbusParas, &sysPara->modbusStatus);
|
||||
m_thread = new QThread();
|
||||
modbus->moveToThread(m_thread);
|
||||
connect(m_thread, SIGNAL(started()),modbus,SLOT(pvPollingThread()));
|
||||
connect(modbus, SIGNAL(updateQRcode()), ui->tabMainWindow, SLOT(modbusUpdateQRCode()), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(pausePrint()), ui->tabMainWindow, SLOT(on_pushButtonPausePrint_pressed()), Qt::QueuedConnection);//暂时屏蔽排除问题
|
||||
connect(modbus,SIGNAL(stopPrint()),ui->tabMainWindow,SLOT(on_pushButtonStopPrint_pressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar()),this,SLOT(onModbusWriteCalendar()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar1()),this,SLOT(onModbusWriteCalendar1CurrValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar1EndValue()),this,SLOT(onModbusWriteCalendar1EndValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2EndValue()),this,SLOT(onModbusWriteCalendar2EndValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2RepeatValue()),this,SLOT(onModbusWriteCalendar2RepeatValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2InitValue()),this,SLOT(onModbusWriteCalendar2InitValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(CNTResetNow()),ui->tabMainWindow,SLOT(onModbusCNTResetNowPressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(faultResume()),ui->tabMainWindow,SLOT(onLabelFaultRusumePressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(mbLineAndCharSpace(int, int)),ui->tabMainWindow->getTexteditOption(),SLOT(onMbSetLineAndChar(int, int)), Qt::QueuedConnection);
|
||||
connect(this,SIGNAL(updataPara2UI()),ui->tabPrintSetting,SLOT( PrintupdateSysParaToUI() ), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
|
||||
modbus = NULL;
|
||||
memset((uint8_t *)&sysPara->modbusParas, 0, sizeof(sysPara->modbusParas));
|
||||
sysPara->modbusStatus.receiveEnbleFlag = 1;
|
||||
snprintf((char *)sysPara->modbusParas.selectFileName, sizeof(sysPara->modbusParas.selectFileName), "%s",QFileInfo(sysPara->para.lastOpenedFileName).fileName().toLatin1().constData());
|
||||
modbus = new ModbusTcp(&sysPara->modbusParas, &sysPara->modbusStatus);
|
||||
m_thread = new QThread();
|
||||
modbus->moveToThread(m_thread);
|
||||
connect(m_thread, SIGNAL(started()),modbus,SLOT(pvPollingThread()));
|
||||
connect(modbus, SIGNAL(updateQRcode()), ui->tabMainWindow, SLOT(modbusUpdateQRCode()), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
|
||||
connect(modbus, SIGNAL(pausePrint()), ui->tabMainWindow, SLOT(on_pushButtonPausePrint_pressed()), Qt::QueuedConnection);//暂时屏蔽排除问题
|
||||
connect(modbus,SIGNAL(stopPrint()),ui->tabMainWindow,SLOT(on_pushButtonStopPrint_pressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar()),this,SLOT(onModbusWriteCalendar()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar1()),this,SLOT(onModbusWriteCalendar1CurrValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar1EndValue()),this,SLOT(onModbusWriteCalendar1EndValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2EndValue()),this,SLOT(onModbusWriteCalendar2EndValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2RepeatValue()),this,SLOT(onModbusWriteCalendar2RepeatValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(writeCalendar2InitValue()),this,SLOT(onModbusWriteCalendar2InitValue()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(CNTResetNow()),ui->tabMainWindow,SLOT(onModbusCNTResetNowPressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(faultResume()),ui->tabMainWindow,SLOT(onLabelFaultRusumePressed()), Qt::QueuedConnection);
|
||||
connect(modbus,SIGNAL(mbLineAndCharSpace(int, int)),ui->tabMainWindow->getTexteditOption(),SLOT(onMbSetLineAndChar(int, int)), Qt::QueuedConnection);
|
||||
connect(this,SIGNAL(updataPara2UI()),ui->tabPrintSetting,SLOT( PrintupdateSysParaToUI() ), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
|
||||
#endif
|
||||
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(false);
|
||||
@@ -704,6 +710,7 @@ void InkJetPrinter::initCntGroup()
|
||||
connect(this, &InkJetPrinter::sig_updateDisp,
|
||||
SectionalManager::instance(), &SectionalManager::sig_updateCntGroupDisp);
|
||||
}
|
||||
|
||||
float PID_realize(float speed);
|
||||
|
||||
struct _pid{
|
||||
@@ -757,7 +764,7 @@ float PID_realize2(float speed, float act){
|
||||
pid.err = pid.SetSpeed - pid.ActualSpeed;
|
||||
|
||||
float delta_u = pid.Kp * (pid.err - pid.err_last)
|
||||
+ pid.Ki * pid.err;
|
||||
+ pid.Ki * pid.err;
|
||||
|
||||
// 自适应非对称限幅:
|
||||
// 压力严重偏高(err < -30):允许快速减速,限制慢速加速
|
||||
@@ -836,7 +843,7 @@ void InkJetPrinter::pressureAdj()
|
||||
if(m_pumpState != DPUMP_STOPPED) {
|
||||
u = 0.0f;
|
||||
sysPara->para.gearPumpValue = 0;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
m_pumpState = DPUMP_STOPPED;
|
||||
m_stateChangeCount = 0;
|
||||
m_adjSkip = 0;
|
||||
@@ -880,7 +887,7 @@ void InkJetPrinter::handleStoppedState(int err, bool canSwitch)
|
||||
|
||||
// 启动爬升状态处理:从低转速逐步提升到工作转速
|
||||
void InkJetPrinter::handleStartingState(int err, int actual, int target)
|
||||
{
|
||||
{
|
||||
const int STARTING_TO_RUNNING_RANGE = 30; // 进入目标±50范围转到运行状态
|
||||
const float MAX_WORKING_SPEED = 350.0f; // 最大工作转速
|
||||
const float START_SPEED_STEP_LARGE = 40.0f;
|
||||
@@ -891,11 +898,11 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
|
||||
|
||||
// 每800ms调整一次(8个100ms周期)
|
||||
if(m_adjSkip < 8) {
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
return;
|
||||
}
|
||||
m_adjSkip = 0;
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
return;
|
||||
}
|
||||
m_adjSkip = 0;
|
||||
|
||||
// 判断是否进入运行状态
|
||||
int absErr = (err >= 0) ? err : -err;
|
||||
@@ -908,15 +915,15 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
|
||||
m_lastActualPressure = actual;
|
||||
m_stateChangeCount = 0; // 重置计数器
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 继续爬升:根据误差自适应增速
|
||||
float step;
|
||||
float step;
|
||||
if(err > 100) step = START_SPEED_STEP_LARGE;
|
||||
else if(err > 50) step = START_SPEED_STEP_MED;
|
||||
else step = START_SPEED_STEP_SMALL;
|
||||
|
||||
u += step;
|
||||
u += step;
|
||||
if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED;
|
||||
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
@@ -926,7 +933,7 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
|
||||
|
||||
// 运行微调状态处理:使用增量式控制算法
|
||||
void InkJetPrinter::handleRunningState(int err, bool canSwitch)
|
||||
{
|
||||
{
|
||||
const int RUN_TO_STOP_THRESHOLD = 5; // 压力高于目标10准备停泵(扩大滞环)
|
||||
const int EMERGENCY_STOP_THRESHOLD = 10; // 压力高于目标20立即停泵(不受800ms限制)
|
||||
|
||||
@@ -950,7 +957,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
|
||||
m_stateChangeCount = 0;
|
||||
m_adjSkip = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// === 增量式微调控制(每200ms调整一次)===
|
||||
m_adjSkip++;
|
||||
@@ -968,10 +975,10 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
|
||||
// 死区:误差≤0.5不调整
|
||||
if(absErr < 0.5f) {
|
||||
m_lastActualPressure = actual;
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
return;
|
||||
}
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
return;
|
||||
}
|
||||
|
||||
// 计算压力变化率(微分项)
|
||||
int pressureChange = actual - m_lastActualPressure;
|
||||
@@ -1002,7 +1009,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
|
||||
if(delta_u < -maxDelta) delta_u = -maxDelta;
|
||||
|
||||
// 更新控制量
|
||||
u += delta_u;
|
||||
u += delta_u;
|
||||
|
||||
// 限制范围
|
||||
const float MIN_RUNNING_SPEED = 30.0f; // 最低运行转速(低于此值泵不转)
|
||||
@@ -1012,7 +1019,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
|
||||
if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED;
|
||||
|
||||
sysPara->para.gearPumpValue = (unsigned short)(int)u;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
}
|
||||
|
||||
|
||||
@@ -1223,10 +1230,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
static float gearPumpRunNormalValue = 0.0;
|
||||
if(sysPara){
|
||||
xxxm=1;
|
||||
if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
|
||||
sysPara->para.flagOfModuleDecimal = 0;
|
||||
sysPara->para.flagOfModuleHide = 0;
|
||||
}
|
||||
|
||||
sysPara->para.ReadFileErrorCnt=0; // 正常打开文件
|
||||
|
||||
@@ -1552,47 +1555,57 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
}
|
||||
|
||||
if(gearPumpRunFlag || sysPara->para.gearPumpEnable == 0)
|
||||
{
|
||||
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
|
||||
if(gearPumpRunFlag || sysPara->para.gearPumpEnable == 0)
|
||||
{
|
||||
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
|
||||
sysPara->status.selfCheckDone = true;
|
||||
ui->tabMainWindow->updatePrintDisplayLabel();
|
||||
sysPara->status.flagOfAbnormalStatus = true;
|
||||
sysPara->status.flagOfAbnormalStatus = true;
|
||||
|
||||
static bool onceLog = true;
|
||||
if(onceLog) {
|
||||
LogInfo::setRunStatusText(tr("打印过程中死机了!!!"));
|
||||
qDebug()<<"打印过程中死机了!!!";
|
||||
onceLog = false;
|
||||
|
||||
ui->tabMainWindow->updatePrintDisplayLabel();
|
||||
}
|
||||
if(!sysPara->status.selfCheckDone)
|
||||
|
||||
ui->tabMainWindow->on_pushButtonStopPrint_pressed();
|
||||
|
||||
}
|
||||
if(!sysPara->status.selfCheckDone)
|
||||
{
|
||||
/*开机自检*/
|
||||
autoControlValvePump();
|
||||
if(pulse_100ms){
|
||||
pressureAdj();
|
||||
}
|
||||
/*-----------------------------------------------------*/
|
||||
if(!sysPara->status.selfCheckCnt) {
|
||||
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(false);
|
||||
ui->tabMainWindow->enablePrintButton(false);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->para.TrunOnPowerCnt++;// 20151218 开机次数加1
|
||||
sysPara->saveParaToFile(); // 保存开机次数值
|
||||
|
||||
sysPara->status.lastProductCnt = sysPara->status.productCnt ; //这会让产品计数显示出来
|
||||
|
||||
ui->tabMainWindow->updateTotalCnt(0);
|
||||
|
||||
|
||||
}
|
||||
if((++sysPara->status.selfCheckCnt % 100) == 0){
|
||||
ui->tabMainWindow->setRunStatus(tr("开始自检,请等待%1秒...............").arg((MAX_SELF_CHECK_CNT - sysPara->status.selfCheckCnt)/100));
|
||||
}
|
||||
|
||||
if(sysPara->status.selfCheckCnt >= MAX_SELF_CHECK_CNT)
|
||||
{
|
||||
/*开机自检*/
|
||||
autoControlValvePump();
|
||||
if(pulse_100ms){
|
||||
pressureAdj();
|
||||
}
|
||||
/*-----------------------------------------------------*/
|
||||
if(!sysPara->status.selfCheckCnt) {
|
||||
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(false);
|
||||
ui->tabMainWindow->enablePrintButton(false);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->para.TrunOnPowerCnt++;// 20151218 开机次数加1
|
||||
sysPara->saveParaToFile(); // 保存开机次数值
|
||||
|
||||
sysPara->status.lastProductCnt = sysPara->status.productCnt ; //这会让产品计数显示出来
|
||||
|
||||
ui->tabMainWindow->updateTotalCnt(0);
|
||||
|
||||
|
||||
}
|
||||
if((++sysPara->status.selfCheckCnt % 100) == 0){
|
||||
ui->tabMainWindow->setRunStatus(tr("开始自检,请等待%1秒...............").arg((MAX_SELF_CHECK_CNT - sysPara->status.selfCheckCnt)/100));
|
||||
}
|
||||
|
||||
if(sysPara->status.selfCheckCnt >= MAX_SELF_CHECK_CNT)
|
||||
{
|
||||
sysPara->status.selfCheckDone = 1;
|
||||
u = (float)sysPara->para.gearPumpValue;
|
||||
sysPara->status.selfCheckDone = 1;
|
||||
u = (float)sysPara->para.gearPumpValue;
|
||||
// 自检完成后管道恢复正常阻力,重置状态机让压力重新平稳收敛
|
||||
// 不清零 u,从当前控制字开始,避免突变
|
||||
// 不清零 u,从当前控制字开始,避免突变
|
||||
if(u > 40.0f) {
|
||||
m_pumpState = DPUMP_RUNNING; // 如果当前有转速,进入运行状态
|
||||
} else {
|
||||
@@ -1602,68 +1615,68 @@ void InkJetPrinter::timerHandler(void){
|
||||
m_adjSkip = 0;
|
||||
m_lastActualPressure = 0;
|
||||
m_bufValidCount = 0;
|
||||
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
|
||||
m_bufIdx = 0;
|
||||
LogInfo::setRunStatusText(tr("自检完成!!!"));
|
||||
ui->tabMainWindow->setRunStatus(tr("自检完成!!!"));
|
||||
qDebug()<<"自检完成!!!";
|
||||
ui->tabPrintSetting->PrintSettingLog();
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(true);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.canRunAirPushing = true;
|
||||
|
||||
if(sysPara->para.Reciclar)
|
||||
test_flag = 1;
|
||||
}
|
||||
else {
|
||||
if((sysPara->status.selfCheckCnt % 200) == 0)
|
||||
// sysPara->devOp->controlReclaimTankOpen(false);
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(false);
|
||||
}
|
||||
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
|
||||
m_bufIdx = 0;
|
||||
LogInfo::setRunStatusText(tr("自检完成!!!"));
|
||||
ui->tabMainWindow->setRunStatus(tr("自检完成!!!"));
|
||||
qDebug()<<"自检完成!!!";
|
||||
ui->tabPrintSetting->PrintSettingLog();
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(true);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.canRunAirPushing = true;
|
||||
|
||||
if(sysPara->para.Reciclar)
|
||||
test_flag = 1;
|
||||
}
|
||||
else{
|
||||
// 开机自检完成的前提下
|
||||
if (!sysPara->status.airPushing || ui->tabMainWindow->m_2sFlag) {
|
||||
autoControlValvePump();
|
||||
}
|
||||
// 检测回收泵模式切换,切换时重置泄漏保护学习状态和软启动状态
|
||||
if(m_lastReclaimMode != sysPara->para.flagOfReclaimPumEnable)
|
||||
{
|
||||
m_lastReclaimMode = sysPara->para.flagOfReclaimPumEnable;
|
||||
gearPumpRunNormalFlag = false; // 泄漏保护重新学习
|
||||
gearPumpRunNormalValue = 0.0f;
|
||||
else {
|
||||
if((sysPara->status.selfCheckCnt % 200) == 0)
|
||||
// sysPara->devOp->controlReclaimTankOpen(false);
|
||||
ui->tabMainWindow->enableReclaimCtrlButton(false);
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
// 开机自检完成的前提下
|
||||
if (!sysPara->status.airPushing || ui->tabMainWindow->m_2sFlag) {
|
||||
autoControlValvePump();
|
||||
}
|
||||
// 检测回收泵模式切换,切换时重置泄漏保护学习状态和软启动状态
|
||||
if(m_lastReclaimMode != sysPara->para.flagOfReclaimPumEnable)
|
||||
{
|
||||
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;
|
||||
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
|
||||
m_bufIdx = 0;
|
||||
}
|
||||
if(pulse_100ms && sysPara->para.gearPumpEnable && !sysPara->status.isPumpValveControledByHand && ControledSwitchFlag ) {
|
||||
pressureAdj();
|
||||
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
|
||||
m_bufIdx = 0;
|
||||
}
|
||||
if(pulse_100ms && sysPara->para.gearPumpEnable && !sysPara->status.isPumpValveControledByHand && ControledSwitchFlag ) {
|
||||
pressureAdj();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
static bool flag = 1;
|
||||
if(delay3s){
|
||||
if(flag){
|
||||
flag = 0;
|
||||
LogInfo::setRunStatusText(tr("缺少墨水,喷码机不能正常工作!"));
|
||||
qDebug()<<"缺少墨水,喷码机不能正常工作!";
|
||||
}
|
||||
ui->tabMainWindow->setRunStatus(tr("缺少墨水,喷码机不能正常工作!"));
|
||||
}
|
||||
else{
|
||||
static bool flag = 1;
|
||||
if(delay3s){
|
||||
if(flag){
|
||||
flag = 0;
|
||||
LogInfo::setRunStatusText(tr("缺少墨水,喷码机不能正常工作!"));
|
||||
qDebug()<<"缺少墨水,喷码机不能正常工作!";
|
||||
}
|
||||
ui->tabMainWindow->setRunStatus(tr("缺少墨水,喷码机不能正常工作!"));
|
||||
}
|
||||
/*----------------------------控制温度--------------------------------------*/
|
||||
if(pulse_300ms){
|
||||
autoControlHeater();
|
||||
sysPara->devOp->readSyncCounterAtZero();
|
||||
}
|
||||
}
|
||||
/*----------------------------控制温度--------------------------------------*/
|
||||
if(pulse_300ms){
|
||||
autoControlHeater();
|
||||
sysPara->devOp->readSyncCounterAtZero();
|
||||
}
|
||||
|
||||
sysPara->status.lostCommuFlag = lostCommuFlag; //务必放在后面
|
||||
static unsigned int lastProductCnt =0;
|
||||
@@ -1697,18 +1710,17 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(pulse_300ms){
|
||||
if (manager_rfid)
|
||||
manager_rfid->handleCheck(addr);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
if(pulse_300ms){
|
||||
if(pulse_300ms){
|
||||
sysPara->devOp->readCalandarDat(); //务必读一下此数据
|
||||
if(sysPara->status.RandomNum>0)
|
||||
sysPara->devOp->Read_RanddomFromFpga();
|
||||
#ifdef COUNTER1_BY_GROUP /* 分段计米 */
|
||||
// cnt1GroupCheck();//分段计米
|
||||
cntGroupCheck();//分段计米
|
||||
cnt1GroupCheck();//分段计米
|
||||
#endif
|
||||
|
||||
cntGroupCheck();//分段计米
|
||||
|
||||
QWidget *widget = this->currentWidget();
|
||||
static bool read_flag = false;
|
||||
@@ -1775,12 +1787,12 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
if(sysPara->para.speedoverPaushPrint) {
|
||||
ui->tabMainWindow->on_pushButtonPausePrint_pressed();// 2014-03-19
|
||||
// emit OnSpeedOver(2);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!"));
|
||||
// emit OnSpeedOver(2);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!"));
|
||||
ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!"));
|
||||
|
||||
}
|
||||
else {
|
||||
// emit OnSpeedOver(1);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全!!!"));
|
||||
// emit OnSpeedOver(1);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全!!!"));
|
||||
ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全!!!"));
|
||||
}
|
||||
|
||||
@@ -1814,14 +1826,14 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
/*****************墨水刷卡控制start**********************************************/
|
||||
/*****************墨水刷卡控制start**********************************************/
|
||||
/*墨水刷卡新的控制逻辑*/
|
||||
/* 1.任何时候,打印墨点数达到2.3billion之后,提示24小时内刷卡,否则禁止使用机器*/
|
||||
/* 1.任何时候,打印墨点数达到2.3billion之后,提示24小时内刷卡,否则禁止使用机器*/
|
||||
/*2.当墨水液位后,持续提示刷卡,24小时后如果还没有刷卡,禁止使用机器*/
|
||||
static bool logFlag4 = 1;
|
||||
static int warnNum1 = 0;
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN))
|
||||
warnNum1 = 0;
|
||||
warnNum1 = 0;
|
||||
if((sysPara->status.statWarn & WARN_STATUS_INK_WARN) || sysPara->para.RFIDInkWarn){
|
||||
if(!sysPara->para.RFIDInkWarn){
|
||||
if(++warnNum1 >6){
|
||||
@@ -1861,28 +1873,28 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS || sysPara->para.RFIDInkWarn){
|
||||
sysPara->status.flagOfNeedInkCard = true;
|
||||
if(sysPara->RFIDPara.InkRFIDCnt == 0){
|
||||
msgtest->setText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
msgtest->show();
|
||||
ui->tabMainWindow->setRunStatus(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
LogInfo::setRunStatusText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
}
|
||||
int timeRemain = (MAX_INK_RFIDTIME - sysPara->RFIDPara.InkRFIDCnt)/60;
|
||||
if(timeRemain > 60){
|
||||
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
|
||||
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
|
||||
else
|
||||
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
|
||||
}
|
||||
else if(timeRemain > 0){
|
||||
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
|
||||
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
|
||||
else
|
||||
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
|
||||
}
|
||||
if(sysPara->RFIDPara.InkRFIDCnt % 300 == 0)
|
||||
sysPara->saveRFIDPara();
|
||||
if(++sysPara->RFIDPara.InkRFIDCnt >= MAX_INK_RFIDTIME)
|
||||
sysPara->status.flagOfInkMaxDot = true;
|
||||
msgtest->setText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
msgtest->show();
|
||||
ui->tabMainWindow->setRunStatus(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
LogInfo::setRunStatusText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
|
||||
}
|
||||
int timeRemain = (MAX_INK_RFIDTIME - sysPara->RFIDPara.InkRFIDCnt)/60;
|
||||
if(timeRemain > 60){
|
||||
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
|
||||
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
|
||||
else
|
||||
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
|
||||
}
|
||||
else if(timeRemain > 0){
|
||||
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
|
||||
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
|
||||
else
|
||||
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
|
||||
}
|
||||
if(sysPara->RFIDPara.InkRFIDCnt % 300 == 0)
|
||||
sysPara->saveRFIDPara();
|
||||
if(++sysPara->RFIDPara.InkRFIDCnt >= MAX_INK_RFIDTIME)
|
||||
sysPara->status.flagOfInkMaxDot = true;
|
||||
}
|
||||
|
||||
if(sysPara->status.flagOfInkMaxDot){
|
||||
@@ -1914,7 +1926,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
/*****************溶剂刷卡控制start**********************************************/
|
||||
/*溶剂刷卡新的控制逻辑*/
|
||||
/* 1.任何时候,混合阀打开次数达到360次,提示2小时关机,必须刷卡才能恢复*/
|
||||
/* 1.任何时候,混合阀打开次数达到360次,提示2小时关机,必须刷卡才能恢复*/
|
||||
/*2.溶剂液位报警后,提示刷卡,允许有10次的混合阀打开次数,必须刷卡才能恢复*/
|
||||
if(sysPara->RFIDPara.solventNumber >= MAX_SOLV_OPENNUM){ //混合阀打开次数达到360次
|
||||
sysPara->status.flagOfNeedSolventCard = true;
|
||||
@@ -1935,7 +1947,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
static bool logFlag5 = 1;
|
||||
static int warnNum2 = 0;
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_SOLV_WARN))
|
||||
warnNum2 = 0;
|
||||
warnNum2 = 0;
|
||||
if((sysPara->status.statWarn & WARN_STATUS_SOLV_WARN) || sysPara->para.RFIDSolventWarn){
|
||||
if(!sysPara->para.RFIDSolventWarn){
|
||||
if(++warnNum2 > 6){
|
||||
@@ -1983,7 +1995,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
ui->tabMainWindow->on_pushButtonStopPrint_pressed();
|
||||
static bool logFlag3 = true;
|
||||
if(sysPara->para.RFIDSolventWarnMixCnt>=10){
|
||||
ui->tabMainWindow->setRunStatus(tr("请刷溶剂卡以恢复机器的正常功能"));
|
||||
ui->tabMainWindow->setRunStatus(tr("请刷溶剂卡以恢复机器的正常功能"));
|
||||
if(logFlag3){
|
||||
logFlag3 = false;
|
||||
msgtest->setText(tr("请刷溶剂卡以恢复机器的正常功能!"));
|
||||
@@ -2101,7 +2113,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(pulse_100ms)
|
||||
{
|
||||
if(pre_hvcurrent>150 && ( sysPara->status.HV_DETOUT> pre_hvcurrent+20) && (sysPara->status.waitHightVolOn==8 || sysPara->status.waitHightVolOff==1) && sysPara->status.isPrinting )
|
||||
pre_hvcurrent = sysPara->status.HV_DETOUT;
|
||||
pre_hvcurrent = sysPara->status.HV_DETOUT;
|
||||
|
||||
if(sysPara->status.waitHightVolOn<8)sysPara->status.waitHightVolOn++;
|
||||
if(sysPara->status.isPrinting==0) sysPara->status.waitHightVolOn=0;
|
||||
@@ -2125,16 +2137,16 @@ void InkJetPrinter::timerHandler(void){
|
||||
else{
|
||||
pulse_30s++;
|
||||
if(pulse_30s >= 30){
|
||||
sysPara->status.flagOfSpeedAlarm = true;
|
||||
sysPara->devOp->color_flag = 2;
|
||||
if(pulse_30s % 500 == 0){
|
||||
sysPara->status.flagOfSpeedAlarm = true;
|
||||
sysPara->devOp->color_flag = 2;
|
||||
if(pulse_30s % 500 == 0){
|
||||
LogInfo::setRunStatusText(tr("泵转速异常过高,请立即停机并联系供应商!"));
|
||||
qDebug()<<"泵转速异常过高,请立即停机并联系供应商!";
|
||||
}
|
||||
}
|
||||
ui->tabMainWindow->setRunStatus(tr("泵转速异常过高,请立即停机并联系供应商!"));
|
||||
sysPara->devOp->controlRedLight(true);
|
||||
if(sysPara->status.isPrinting)
|
||||
ui->tabMainWindow->on_pushButtonStopPrint_pressed();
|
||||
sysPara->devOp->controlRedLight(true);
|
||||
if(sysPara->status.isPrinting)
|
||||
ui->tabMainWindow->on_pushButtonStopPrint_pressed();
|
||||
}
|
||||
if(pulse_30s % 10 == 0)
|
||||
qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
|
||||
@@ -2352,34 +2364,34 @@ void InkJetPrinter::autoControlValvePump(void)
|
||||
}
|
||||
|
||||
/*-----------------------------------主墨泵------------------------------------------*/
|
||||
if(sysPara->status.SEPTAL_POSITION < (sysPara->para.septalPostion - DIFF_SEPTAL_POSITION))
|
||||
sysPara->status.septalPositionOverFlowCnt ++;
|
||||
else
|
||||
sysPara->status.septalPositionOverFlowCnt = 0;
|
||||
if(sysPara->status.septalPositionOverFlowCnt > 2 && !sysPara->status.mainInkPumpError){ //主墨泵
|
||||
if(!sysPara->devOp->isMainInkPumpOpen()){
|
||||
sysPara->devOp->controlMainInkPump(true);
|
||||
sysPara->status.mainInkPumpRunTmCnt = 0;
|
||||
if(sysPara->status.SEPTAL_POSITION < (sysPara->para.septalPostion - DIFF_SEPTAL_POSITION))
|
||||
sysPara->status.septalPositionOverFlowCnt ++;
|
||||
else
|
||||
sysPara->status.septalPositionOverFlowCnt = 0;
|
||||
if(sysPara->status.septalPositionOverFlowCnt > 2 && !sysPara->status.mainInkPumpError){ //主墨泵
|
||||
if(!sysPara->devOp->isMainInkPumpOpen()){
|
||||
sysPara->devOp->controlMainInkPump(true);
|
||||
sysPara->status.mainInkPumpRunTmCnt = 0;
|
||||
}
|
||||
else if(sysPara->status.selfCheckDone){
|
||||
if(sysPara->status.mainInkPumpRunTmCnt < MAX_MAIN_INK_PUMP_RUN_TIME){ //
|
||||
sysPara->status.mainInkPumpRunTmCnt ++;
|
||||
}
|
||||
else if(sysPara->status.selfCheckDone){
|
||||
if(sysPara->status.mainInkPumpRunTmCnt < MAX_MAIN_INK_PUMP_RUN_TIME){ //
|
||||
sysPara->status.mainInkPumpRunTmCnt ++;
|
||||
}
|
||||
else {
|
||||
if(!sysPara->para.gearPumpEnable)
|
||||
{
|
||||
sysPara->status.mainInkPumpError = true;
|
||||
sysPara->devOp->controlMainInkPump(false);
|
||||
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!主墨泵故障"));
|
||||
ui->tabMainWindow->setRunStatus(tr("主墨泵故障!!!"));
|
||||
}
|
||||
else {
|
||||
if(!sysPara->para.gearPumpEnable)
|
||||
{
|
||||
sysPara->status.mainInkPumpError = true;
|
||||
sysPara->devOp->controlMainInkPump(false);
|
||||
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!主墨泵故障"));
|
||||
ui->tabMainWindow->setRunStatus(tr("主墨泵故障!!!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(sysPara->status.SEPTAL_POSITION > sysPara->para.septalPostion){
|
||||
if(sysPara->devOp->isMainInkPumpOpen())
|
||||
sysPara->devOp->controlMainInkPump(false);
|
||||
}
|
||||
}
|
||||
else if(sysPara->status.SEPTAL_POSITION > sysPara->para.septalPostion){
|
||||
if(sysPara->devOp->isMainInkPumpOpen())
|
||||
sysPara->devOp->controlMainInkPump(false);
|
||||
}
|
||||
/*-----------------------------------压缩机------------------------------------------*/
|
||||
|
||||
if((sysPara->para.pressure - sysPara->status.PRESSURE > MAX_PRESSURE_DIFF) && !sysPara->status.compressPumpError){ //压缩机
|
||||
@@ -2411,130 +2423,130 @@ void InkJetPrinter::autoControlValvePump(void)
|
||||
/*------------------------------------粘度泵,混合阀-----------------------------------------*/
|
||||
|
||||
/*-----------------------------每30s打开一次粘度泵以及相关处理--------------------------------------*/
|
||||
static bool hasDetectedBellow = false; // 检测到下位灯
|
||||
static bool hasDetectedTop = false; // 检测到上位灯
|
||||
static int viscosity_low = 0; //统计粘度连续偏低10%次数
|
||||
static unsigned char Mixing_valve_open = 0; //统计粘度连续偏高5%次数
|
||||
static unsigned char viscosity_faulty_num = 0; //统计粘度连续偏高13%次数
|
||||
static bool flag = 0;
|
||||
static bool hasDetectedBellow = false; // 检测到下位灯
|
||||
static bool hasDetectedTop = false; // 检测到上位灯
|
||||
static int viscosity_low = 0; //统计粘度连续偏低10%次数
|
||||
static unsigned char Mixing_valve_open = 0; //统计粘度连续偏高5%次数
|
||||
static unsigned char viscosity_faulty_num = 0; //统计粘度连续偏高13%次数
|
||||
static bool flag = 0;
|
||||
|
||||
if(sysPara->status.cycleValveOpenCntAfterSWintOff) { //关闭墨线的时候要提前开粘度泵
|
||||
sysPara->status.viscosityDelayCnt = sysPara->para.viscosityPumpInterval*100 + 100;
|
||||
}
|
||||
++sysPara->status.viscosityDelayCnt;
|
||||
int mixer_open_threshold = (105*sysPara->para.viscosity)/100;
|
||||
int viscosity_faulty_threshold =(113*sysPara->para.viscosity)/100;
|
||||
if(sysPara->status.viscosityDelayCnt >= sysPara->para.viscosityPumpInterval*100 && flag == 0)
|
||||
if(sysPara->status.cycleValveOpenCntAfterSWintOff) { //关闭墨线的时候要提前开粘度泵
|
||||
sysPara->status.viscosityDelayCnt = sysPara->para.viscosityPumpInterval*100 + 100;
|
||||
}
|
||||
++sysPara->status.viscosityDelayCnt;
|
||||
int mixer_open_threshold = (105*sysPara->para.viscosity)/100;
|
||||
int viscosity_faulty_threshold =(113*sysPara->para.viscosity)/100;
|
||||
if(sysPara->status.viscosityDelayCnt >= sysPara->para.viscosityPumpInterval*100 && flag == 0)
|
||||
{
|
||||
flag=1;
|
||||
if (!sysPara->devOp->isViscosityPumpOpen())
|
||||
{
|
||||
flag=1;
|
||||
if (!sysPara->devOp->isViscosityPumpOpen())
|
||||
{
|
||||
sysPara->devOp->controlViscosityPump(true);
|
||||
viscosity_timer->start(10000);
|
||||
qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
|
||||
}
|
||||
if((sysPara->status.viscosity >= 90*sysPara->para.viscosity/100) && (sysPara->status.viscosity <= mixer_open_threshold))
|
||||
{
|
||||
sysPara->status.viscosityFault = 0;
|
||||
viscosity_low=0;
|
||||
Mixing_valve_open = 0;
|
||||
viscosity_faulty_num = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity < 90*sysPara->para.viscosity/100)
|
||||
{
|
||||
viscosity_low++;
|
||||
viscosity_faulty_num = 0;
|
||||
Mixing_valve_open = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity > mixer_open_threshold && sysPara->status.viscosity <= viscosity_faulty_threshold)
|
||||
{
|
||||
Mixing_valve_open++;
|
||||
viscosity_low = 0;
|
||||
viscosity_faulty_num = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity > viscosity_faulty_threshold){
|
||||
Mixing_valve_open++;
|
||||
viscosity_faulty_num++;
|
||||
viscosity_low = 0;
|
||||
}
|
||||
|
||||
if((!sysPara->devOp->isMixValveOpen()) && (((Mixing_valve_open > 1) && (!sysPara->para.gearPumpEnable)) || ((Mixing_valve_open > 4) && sysPara->para.gearPumpEnable))) { //
|
||||
sysPara->devOp->controlMixValve(true);
|
||||
Mixing_valve_open = 0;
|
||||
LogInfo::setRunStatusText(tr("添加溶剂:")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"添加溶剂";
|
||||
}
|
||||
|
||||
if(viscosity_low >= 60)
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("警告!!!!!!!!!!!粘度值偏低")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"粘度值偏低";
|
||||
sysPara->status.viscosityFault = 2;
|
||||
if(sysPara->devOp->isMixValveOpen()) {
|
||||
sysPara->devOp->controlMixValve(false);
|
||||
}
|
||||
}
|
||||
if(viscosity_faulty_num >= 5)
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!粘度偏大故障")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"粘度偏大故障";
|
||||
sysPara->status.viscosityFault = 1;
|
||||
}
|
||||
|
||||
sysPara->devOp->controlViscosityPump(true);
|
||||
viscosity_timer->start(10000);
|
||||
qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
|
||||
}
|
||||
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+120)) && flag==1)
|
||||
if((sysPara->status.viscosity >= 90*sysPara->para.viscosity/100) && (sysPara->status.viscosity <= mixer_open_threshold))
|
||||
{
|
||||
sysPara->status.viscosityFault = 0;
|
||||
viscosity_low=0;
|
||||
Mixing_valve_open = 0;
|
||||
viscosity_faulty_num = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity < 90*sysPara->para.viscosity/100)
|
||||
{
|
||||
viscosity_low++;
|
||||
viscosity_faulty_num = 0;
|
||||
Mixing_valve_open = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity > mixer_open_threshold && sysPara->status.viscosity <= viscosity_faulty_threshold)
|
||||
{
|
||||
Mixing_valve_open++;
|
||||
viscosity_low = 0;
|
||||
viscosity_faulty_num = 0;
|
||||
}
|
||||
if(sysPara->status.viscosity > viscosity_faulty_threshold){
|
||||
Mixing_valve_open++;
|
||||
viscosity_faulty_num++;
|
||||
viscosity_low = 0;
|
||||
}
|
||||
|
||||
if((!sysPara->devOp->isMixValveOpen()) && (((Mixing_valve_open > 1) && (!sysPara->para.gearPumpEnable)) || ((Mixing_valve_open > 4) && sysPara->para.gearPumpEnable))) { //
|
||||
sysPara->devOp->controlMixValve(true);
|
||||
Mixing_valve_open = 0;
|
||||
LogInfo::setRunStatusText(tr("添加溶剂:")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"添加溶剂";
|
||||
}
|
||||
|
||||
if(viscosity_low >= 60)
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("警告!!!!!!!!!!!粘度值偏低")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"粘度值偏低";
|
||||
sysPara->status.viscosityFault = 2;
|
||||
if(sysPara->devOp->isMixValveOpen()) {
|
||||
sysPara->devOp->controlMixValve(false);
|
||||
}
|
||||
}
|
||||
|
||||
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+130)) && flag==1)
|
||||
if(viscosity_faulty_num >= 5)
|
||||
{
|
||||
if (sysPara->devOp->isViscosityPumpOpen()) {
|
||||
sysPara->devOp->controlViscosityPump(false);
|
||||
}
|
||||
sysPara->status.viscosityDelayCnt = 0;
|
||||
flag=0;
|
||||
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!粘度偏大故障")+QString::number(sysPara->status.viscosity));
|
||||
qDebug()<<"粘度偏大故障";
|
||||
sysPara->status.viscosityFault = 1;
|
||||
}
|
||||
|
||||
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY){ //上位灯检测标志位
|
||||
viscosity_timer->stop();
|
||||
}
|
||||
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+120)) && flag==1)
|
||||
{
|
||||
if(sysPara->devOp->isMixValveOpen()) {
|
||||
sysPara->devOp->controlMixValve(false);
|
||||
}
|
||||
}
|
||||
|
||||
if(sysPara->status.viscosityDelayCnt < sysPara->para.viscosityPumpInterval*100) {
|
||||
static int detectBelow = 0;
|
||||
if (++detectBelow%400 == 0) {
|
||||
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY)
|
||||
{
|
||||
if(sysPara->status.rWarnViscoReady>=15){
|
||||
sysPara->status.viscosityFault = 1;
|
||||
sysPara->status.viscosity=0;
|
||||
if(!firstTime)
|
||||
qDebug()<<"错误!粘度计下位灯故障."+QString::number(sysPara->status.viscosity);
|
||||
// LogInfo::setRunStatusText(tr("错误!粘度计下位灯故障.")+QString::number(sysPara->status.viscosity));
|
||||
hasDetectedBellow = true;
|
||||
}
|
||||
else sysPara->status.rWarnViscoReady++;
|
||||
}
|
||||
else {
|
||||
sysPara->status.rWarnViscoReady = 0;
|
||||
sysPara->status.viscosityFault = 0;
|
||||
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+130)) && flag==1)
|
||||
{
|
||||
if (sysPara->devOp->isViscosityPumpOpen()) {
|
||||
sysPara->devOp->controlViscosityPump(false);
|
||||
}
|
||||
sysPara->status.viscosityDelayCnt = 0;
|
||||
flag=0;
|
||||
}
|
||||
|
||||
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY){ //上位灯检测标志位
|
||||
viscosity_timer->stop();
|
||||
}
|
||||
|
||||
if(sysPara->status.viscosityDelayCnt < sysPara->para.viscosityPumpInterval*100) {
|
||||
static int detectBelow = 0;
|
||||
if (++detectBelow%400 == 0) {
|
||||
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY)
|
||||
{
|
||||
if(sysPara->status.rWarnViscoReady>=15){
|
||||
sysPara->status.viscosityFault = 1;
|
||||
sysPara->status.viscosity=0;
|
||||
if(!firstTime)
|
||||
qDebug()<<"错误!粘度计下位灯故障."+QString::number(sysPara->status.viscosity);
|
||||
// LogInfo::setRunStatusText(tr("错误!粘度计下位灯故障.")+QString::number(sysPara->status.viscosity));
|
||||
hasDetectedBellow = true;
|
||||
}
|
||||
else sysPara->status.rWarnViscoReady++;
|
||||
}
|
||||
else {
|
||||
sysPara->status.rWarnViscoReady = 0;
|
||||
sysPara->status.viscosityFault = 0;
|
||||
}
|
||||
}
|
||||
if(hasDetectedBellow && hasDetectedTop)
|
||||
{
|
||||
if(sysPara->devOp->isMixValveOpen()) { //
|
||||
sysPara->devOp->controlMixValve(false); //如果检测不到上下位灯就关掉混合阀
|
||||
}
|
||||
}
|
||||
if(hasDetectedBellow && hasDetectedTop)
|
||||
{
|
||||
if(sysPara->devOp->isMixValveOpen()) { //
|
||||
sysPara->devOp->controlMixValve(false); //如果检测不到上下位灯就关掉混合阀
|
||||
}
|
||||
if(sysPara->status.viscosityFault==0)
|
||||
{
|
||||
hasDetectedBellow = false;
|
||||
hasDetectedTop = false;
|
||||
}
|
||||
// }
|
||||
}
|
||||
if(sysPara->status.viscosityFault==0)
|
||||
{
|
||||
hasDetectedBellow = false;
|
||||
hasDetectedTop = false;
|
||||
}
|
||||
// }
|
||||
/*-----------------------------------回收泵------------------------------------------*/
|
||||
|
||||
if(!sysPara->status.autoCtlReclaimAfterSWintOff)
|
||||
@@ -2650,10 +2662,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
sysPara->status.currReclaimTankPos =10*sysPara->status.curr_reclaimTankTime;
|
||||
sysPara->status.reclaimTankBlockedAppending =0;
|
||||
//qDebug()<<sysPara->status.reclaimTankstatus;
|
||||
// if(sysPara->status.currReclaimTankPos == 0)
|
||||
// ui->tabMainWindow->setReBootQtUIEnable(false);
|
||||
// else
|
||||
// ui->tabMainWindow->setReBootQtUIEnable(true);
|
||||
// if(sysPara->status.currReclaimTankPos == 0)
|
||||
// ui->tabMainWindow->setReBootQtUIEnable(false);
|
||||
// else
|
||||
// ui->tabMainWindow->setReBootQtUIEnable(true);
|
||||
|
||||
if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
@@ -3038,7 +3050,7 @@ bool InkJetPrinter::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
|
||||
if(sysPara->status.flagOfKeyBoardType)
|
||||
return QTabWidget::eventFilter(watched,event);
|
||||
return QTabWidget::eventFilter(watched,event);
|
||||
|
||||
QSpinBox *qsb=dynamic_cast<QSpinBox*>(watched);
|
||||
QLineEdit *qle=dynamic_cast<QLineEdit*>(watched);
|
||||
@@ -3069,19 +3081,19 @@ void InkJetPrinter::sendDataManual(QString cmdstr,QString addrstr,QString datast
|
||||
QByteArray data;
|
||||
data.resize(datastr.length() / 2);
|
||||
|
||||
for (int i = 0; i < datastr.length(); i += 2) {
|
||||
// 提取每两个字符
|
||||
QString byteString = datastr.mid(i, 2);
|
||||
// 将16进制字符串转换为unsigned char
|
||||
bool ok;
|
||||
unsigned char byte = static_cast<unsigned char>(byteString.toUInt(&ok, 16));
|
||||
data[i / 2] = byte;
|
||||
}
|
||||
// quint16 data1[] = {68, 90, 108, 125, 141, 156, 170, 170, 180, 193, 204, 214};
|
||||
const char* charData = data.constData();
|
||||
for (int i = 0; i < datastr.length(); i += 2) {
|
||||
// 提取每两个字符
|
||||
QString byteString = datastr.mid(i, 2);
|
||||
// 将16进制字符串转换为unsigned char
|
||||
bool ok;
|
||||
unsigned char byte = static_cast<unsigned char>(byteString.toUInt(&ok, 16));
|
||||
data[i / 2] = byte;
|
||||
}
|
||||
// quint16 data1[] = {68, 90, 108, 125, 141, 156, 170, 170, 180, 193, 204, 214};
|
||||
const char* charData = data.constData();
|
||||
|
||||
// 转换为 unsigned char 指针
|
||||
const unsigned char* unsignedCharData = reinterpret_cast<const unsigned char*>(charData);
|
||||
// 转换为 unsigned char 指针
|
||||
const unsigned char* unsignedCharData = reinterpret_cast<const unsigned char*>(charData);
|
||||
}
|
||||
|
||||
void InkJetPrinter::slt_showMsg(QString msg)
|
||||
@@ -3293,14 +3305,14 @@ void InkJetPrinter::checkPressureControl(){ //1s
|
||||
highPressureCnt = 0;
|
||||
|
||||
if(highPressureCnt >= 4 && sysPara->status.PRESSURE > 1000){
|
||||
QString str = tr("压力过高,请检查管路是否堵塞,然后点击故障恢复按钮");
|
||||
showMessage(str);
|
||||
sysPara->para.gearPumpValue = 0;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
sysPara->status.isPumpValveControledByHand = true;
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.flagOfPressureFault = true;
|
||||
}
|
||||
QString str = tr("压力过高,请检查管路是否堵塞,然后点击故障恢复按钮");
|
||||
showMessage(str);
|
||||
sysPara->para.gearPumpValue = 0;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
sysPara->status.isPumpValveControledByHand = true;
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.flagOfPressureFault = true;
|
||||
}
|
||||
}
|
||||
|
||||
void InkJetPrinter::showMessage(QString str){
|
||||
@@ -3392,4 +3404,3 @@ void InkJetPrinter::restartSerialPort(){
|
||||
|
||||
flagOfSerialThreadStratEn = true;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -417,13 +417,13 @@ void PrintSetting::showMachInfo(QString Mac)
|
||||
{
|
||||
QString VernonBach;
|
||||
VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
|
||||
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_";//+UP_PRINTER_STAGE_VER;
|
||||
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
|
||||
}
|
||||
void PrintSetting::showRemoteControl(QString SuperNodeIP,QString EdgeIP)
|
||||
{
|
||||
QString VernonBach;
|
||||
VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
|
||||
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_";//+UP_PRINTER_STAGE_VER;
|
||||
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
|
||||
}
|
||||
|
||||
void PrintSetting::applyUIPara(){
|
||||
|
||||
@@ -434,6 +434,11 @@ void SectionalWid::on_Cnt3AddRowBtn_2_clicked()
|
||||
}
|
||||
ui->tableWidget_2->setRowCount(rowCnt+1);
|
||||
rowWidgetCreate2(rowCnt);
|
||||
// 获取新行第2列(索引为1)的 QSpinBox,设置值为 1
|
||||
QSpinBox *spinBox = qobject_cast<QSpinBox*>(ui->tableWidget_2->cellWidget(rowCnt, 1));
|
||||
if (spinBox) {
|
||||
spinBox->setValue(1);
|
||||
}
|
||||
}
|
||||
|
||||
void SectionalWid::on_Cnt3InsertRowBtn_2_clicked()
|
||||
|
||||
+6
-4
@@ -648,10 +648,8 @@ bool TextEditOption::maybeSave(){
|
||||
SectionalManager::instance()->emitCancelSection();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -666,12 +664,13 @@ void TextEditOption::on_bottonNew_pressed()
|
||||
textEdit->clear();
|
||||
fileName = "";
|
||||
sysPara->sysFile = "";
|
||||
QFile file(fileName);
|
||||
QFile file(fileName);
|
||||
emit fileNameChanged(QFileInfo(fileName).fileName());
|
||||
}
|
||||
#ifdef VARCOLOR
|
||||
textEdit->insertHtml(QString("<span style='background:#ffffff;color=#000000;'> <span />"));
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void TextEditOption::onOpenNewFile()
|
||||
@@ -756,6 +755,9 @@ void TextEditOption::on_buttonInsertVari_pressed()
|
||||
|
||||
unsigned char splitMode = sysPara->para.ExpirySplitMode;
|
||||
dialogInsertVari->getValue(&varType,&digitalNum,&splitMode);
|
||||
if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
|
||||
digitalNum += 1;
|
||||
}
|
||||
|
||||
fmt = textEdit->currentCharFormat();
|
||||
|
||||
|
||||
+4
-8
@@ -2,12 +2,13 @@
|
||||
#define VERBVERSION_H
|
||||
#include "myinclude.h"
|
||||
/*
|
||||
VX5.D.0826.0100-C
|
||||
VX5.D.0826.0100_Std(-C)
|
||||
MACHINAE_VER.PUMP_VER.MMdd.SUB_VER+SUB_RFID
|
||||
*/
|
||||
#define MACHINAE_VER "VX5"
|
||||
#define PUMP_VER "D"
|
||||
#define SUB_VER "0100"
|
||||
//#define SUB_VER "0100"
|
||||
#define SUB_VER "GuiLin"
|
||||
|
||||
#ifdef __RFID_OLD
|
||||
#define SUB_RFID "_RO"
|
||||
@@ -17,14 +18,9 @@
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
#undef SUB_RFID
|
||||
#define SUB_RFID "_RFID"
|
||||
#define SUB_RFID "-C"
|
||||
#endif
|
||||
|
||||
//#define UP_PRINTER_STAGE_VER "Std"
|
||||
//#define UP_PRINTER_STAGE_VER "Beta"
|
||||
//#define UP_PRINTER_STAGE_VER "RC"
|
||||
//#define UP_PRINTER_STAGE_VER "Release"
|
||||
|
||||
|
||||
#define VERNONBACH_VERSION(a,b,c) (((a)<<16) + ((b)<<8) + (c))
|
||||
|
||||
|
||||
+3
-7
@@ -2046,16 +2046,11 @@ void MainWindow::enablePrintButton(bool enable){
|
||||
ui->pushButtonStopPrint->setEnabled(enable);
|
||||
}
|
||||
|
||||
static int mainInkPumpCtrlStatus = 0;
|
||||
static int mainInkPumpCtrlCnt = 0;
|
||||
//100ms 为单位
|
||||
void MainWindow::airPushingProcess()
|
||||
{
|
||||
if(sysPara){
|
||||
if (sysPara->status.airPushing) {
|
||||
|
||||
setRunStatus(tr("正在排气 ..............."));
|
||||
|
||||
//qDebug()<< "start airPushingProcess "<<sysPara->status.airPushingOnTime;
|
||||
// 执行排气 4 秒
|
||||
sysPara->status.airPushingOnTime += 100;
|
||||
@@ -4590,8 +4585,9 @@ void MainWindow::UpdateUIVersion(){
|
||||
QString STM32Ver = QString("S:%1.%2.%3_B%4").arg((sysPara->status.stm32Verion>>16)&0x7F)
|
||||
.arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF).arg(baudRateValue);
|
||||
|
||||
QString VernonBach = SUB_RFID;
|
||||
// VernonBach.sprintf("A%d.%d.%02d%s%s", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID);
|
||||
QString VernonBach;
|
||||
VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
|
||||
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
|
||||
|
||||
QString Mac = QString::number(sysPara->status.machineMac);
|
||||
LogInfo::showVerionInformation(Mac,VernonBach,fpgaVersion,STM32Ver,sysPara->status.flagOfPowerOnMode);
|
||||
|
||||
Reference in New Issue
Block a user