diff --git a/Cigarette/cigarette.cpp b/Cigarette/cigarette.cpp index 18a16f6..1a1a664 100644 --- a/Cigarette/cigarette.cpp +++ b/Cigarette/cigarette.cpp @@ -1454,16 +1454,171 @@ void Cigarette::handleTimeout() QString run_stat = QString(QStringLiteral("运行%1天%2时%3分%4秒")) .arg(days).arg(hours).arg(minutes).arg(second); ui.label_run_stat->setText(run_stat); + int Kick[NumberOfSupportedCameras] = { 0 }; - //当班产量(从配置的PLC地址中读取) if (m_PLCDevice->g_plc_ok) { if (!g_plc_dialog_open) //PLC配置对话框没有打开 { + //当班产量(从配置的PLC地址中读取) if (g_modbus_conf.quantity > 0) { + // 读取剔除值 +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0) + if (g_modbus_conf.kick1 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick1, 2, dest16); + if (ret == 2) + { + Kick[0] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_1->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 0; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1) + if (g_modbus_conf.kick2 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick2, 2, dest16); + if (ret == 2) + { + Kick[1] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_2->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 1; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2) + if (g_modbus_conf.kick3 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick3, 2, dest16); + if (ret == 2) + { + Kick[2] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_3->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 2; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3) + if (g_modbus_conf.kick4 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick4, 2, dest16); + if (ret == 2) + { + Kick[3] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_4->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 3; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4) + if (g_modbus_conf.kick5 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick5, 2, dest16); + if (ret == 2) + { + Kick[4] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_5->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 4; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5) + if (g_modbus_conf.kick6 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick6, 2, dest16); + if (ret == 2) + { + Kick[5] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_6->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 5; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6) + if (g_modbus_conf.kick7 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick7, 2, dest16); + if (ret == 2) + { + Kick[6] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_7->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 6; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif +#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7) + if (g_modbus_conf.kick8 > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick8, 2, dest16); + if (ret == 2) + { + Kick[7] = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_kick_8->display(dest16[0] + (dest16[1] << 16)); +#ifdef __UDPSend + _UDPSendInfo UDPSendInfo; + UDPSendInfo.FrameID = kick_frame; + UDPSendInfo.index = 7; + UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); + UDP_Info_queue->put(UDPSendInfo); +#endif + } + } +#endif + // 读取产量值 uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.quantity, 2, dest16); + int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.quantity, 2, dest16); if (ret == 2) { int cur_quantity = dest16[0] + (dest16[1] << 16); @@ -1474,10 +1629,10 @@ void Cigarette::handleTimeout() #endif ui.label_plc->setText(QStringLiteral("PLC在线")); ui.label_plc->setStyleSheet(tr("background-color: rgb(0, 170, 0);")); - if(!(m_PLCDevice->g_plc_status&0x01)) + if (!(m_PLCDevice->g_plc_status & 0x01)) { init_plc_value(); - if(g_working) + if (g_working) { if (g_debug_mode) { @@ -1490,10 +1645,10 @@ void Cigarette::handleTimeout() { pause_work(); } - m_PLCDevice->g_plc_status|=(0x01); + m_PLCDevice->g_plc_status |= (0x01); } //自动换班 - if (g_sys_conf.auto_shift&&g_working) + if (g_sys_conf.auto_shift && g_working) { g_seconds++; if (g_seconds % 10 == 0) @@ -1525,7 +1680,7 @@ void Cigarette::handleTimeout() { g_op_mode = true; //激活操作员模式 on_btn_pause_released(); //停止工作 - record_output_statistic(cur_quantity, 0); + record_output_statistic(cur_quantity, Kick, 0); on_pushButton_clear_released(); //换班 on_btn_start_released(); //开始 g_op_mode = false; //退出操作员模式 @@ -1534,7 +1689,7 @@ void Cigarette::handleTimeout() { g_op_mode = true; //激活操作员模式 on_btn_pause_released(); //停止工作 - record_output_statistic(cur_quantity, 1); + record_output_statistic(cur_quantity, Kick, 1); on_pushButton_clear_released(); //换班 on_btn_start_released(); //开始 g_op_mode = false; //退出操作员模式 @@ -1543,7 +1698,7 @@ void Cigarette::handleTimeout() { g_op_mode = true; //激活操作员模式 on_btn_pause_released(); //停止工作 - record_output_statistic(cur_quantity, 2); + record_output_statistic(cur_quantity, Kick, 2); on_pushButton_clear_released(); //换班 on_btn_start_released(); //开始 g_op_mode = false; //退出操作员模式 @@ -1554,160 +1709,153 @@ void Cigarette::handleTimeout() { ui.label_plc->setText(QStringLiteral("PLC断开")); ui.label_plc->setStyleSheet(tr("background-color: rgb(255, 255, 0);")); - m_PLCDevice->g_plc_status&=~(0x01); + m_PLCDevice->g_plc_status &= ~(0x01); } } - } - } - //剔除次数 - if (m_PLCDevice->g_plc_ok) - { - if (!g_plc_dialog_open) //PLC配置对话框没有打开 - { -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0) - if (g_modbus_conf.kick1 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.kick1, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_1->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 0; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1) - if (g_modbus_conf.kick2 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.kick2, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_2->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 1; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2) - if (g_modbus_conf.kick3 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick3, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_3->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 2; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3) - if (g_modbus_conf.kick4 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick4, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_4->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 3; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4) - if (g_modbus_conf.kick5 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick5, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_5->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 4; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5) - if (g_modbus_conf.kick6 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick6, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_6->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 5; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6) - if (g_modbus_conf.kick7 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick7, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_7->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 6; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7) - if (g_modbus_conf.kick8 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick8, 2, dest16); - if (ret == 2) - { - ui.lcdNumber_kick_8->display(dest16[0] + (dest16[1] << 16)); -#ifdef __UDPSend - _UDPSendInfo UDPSendInfo; - UDPSendInfo.FrameID = kick_frame; - UDPSendInfo.index = 7; - UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); - UDP_Info_queue->put(UDPSendInfo); -#endif - } - } -#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0) +// if (g_modbus_conf.kick1 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.kick1, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_1->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 0; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1) +// if (g_modbus_conf.kick2 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.kick2, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_2->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 1; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2) +// if (g_modbus_conf.kick3 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick3, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_3->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 2; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3) +// if (g_modbus_conf.kick4 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick4, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_4->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 3; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4) +// if (g_modbus_conf.kick5 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick5, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_5->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 4; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5) +// if (g_modbus_conf.kick6 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick6, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_6->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 5; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6) +// if (g_modbus_conf.kick7 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick7, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_7->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 6; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif +//#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7) +// if (g_modbus_conf.kick8 > 0) +// { +// uint16_t dest16[2]; +// int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick8, 2, dest16); +// if (ret == 2) +// { +// ui.lcdNumber_kick_8->display(dest16[0] + (dest16[1] << 16)); +//#ifdef __UDPSend +// _UDPSendInfo UDPSendInfo; +// UDPSendInfo.FrameID = kick_frame; +// UDPSendInfo.index = 7; +// UDPSendInfo.Kick[UDPSendInfo.index] = dest16[0] + (dest16[1] << 16); +// UDP_Info_queue->put(UDPSendInfo); +//#endif +// } +// } +//#endif } } //相机掉线检测 @@ -3587,104 +3735,8 @@ void Cigarette::CleanThreadStartAuto() handleThread->start(); } -void Cigarette::record_output_statistic(qint64 quantity, int shift) +void Cigarette::record_output_statistic(qint64 quantity, int Kick[NumberOfSupportedCameras], int shift) { - float Kick[NumberOfSupportedCameras] = {0}; - if (m_PLCDevice->g_plc_ok) - { - if (!g_plc_dialog_open) //PLC配置对话框没有打开 - { -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0) - if (g_modbus_conf.kick1 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick1, 2, dest16); - if (ret == 2) - { - Kick[0] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1) - if (g_modbus_conf.kick2 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick2, 2, dest16); - if (ret == 2) - { - Kick[1] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2) - if (g_modbus_conf.kick3 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick3, 2, dest16); - if (ret == 2) - { - Kick[2] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3) - if (g_modbus_conf.kick4 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick4, 2, dest16); - if (ret == 2) - { - Kick[3] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4) - if (g_modbus_conf.kick5 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick5, 2, dest16); - if (ret == 2) - { - Kick[4] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5) - if (g_modbus_conf.kick6 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick6, 2, dest16); - if (ret == 2) - { - Kick[5] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6) - if (g_modbus_conf.kick7 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick7, 2, dest16); - if (ret == 2) - { - Kick[6] = dest16[0] + (dest16[1] << 16); - } - } -#endif -#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7) - if (g_modbus_conf.kick8 > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc(g_modbus_conf.kick8, 2, dest16); - if (ret == 2) - { - Kick[7] = dest16[0] + (dest16[1] << 16); - } - } -#endif - } - } - for (int i = 0; i < NumberOfSupportedCameras; i++) { if (SingleCamInfo[i].IsOpen && quantity > 0) { @@ -3705,7 +3757,12 @@ void Cigarette::record_output_statistic(qint64 quantity, int shift) cfg_file.write(buf, strlen(buf)); } memset(buf, 0, 256); - sprintf(buf, "%c 总产量:%010I64d 剔除率:%02.5f%% 合格率:%02.5f%% \n", (shift == 0) ? 'A' : ((shift == 1) ? 'B' : 'C'), quantity, (Kick[i] / quantity) * 100, (1.0 - (Kick[i] / quantity)) * 100); + double ng_rate; + if (ng[i] > 0) + ng_rate = double(ng[i]) / production_number[i]; + else + ng_rate = 0; + sprintf(buf, "%c 总产量:%010I64d 剔除率:%02.5f%% 合格率:%02.5f%% NG率:%02.5f%%\n", (shift == 0) ? 'A' : ((shift == 1) ? 'B' : 'C'), quantity, ((double)Kick[i] / quantity) * 100, (1.0 - ng_rate) * 100, ng_rate * 100); cfg_file.write(buf, strlen(buf)); memset(buf, 0, 256); diff --git a/Cigarette/cigarette.h b/Cigarette/cigarette.h index a185b06..d11ea43 100644 --- a/Cigarette/cigarette.h +++ b/Cigarette/cigarette.h @@ -161,7 +161,7 @@ public: DebugThread debug_thread[NumberOfSupportedCameras]; SaveThread saveThread; - void record_output_statistic(qint64 cur_quantity, int shift); + void record_output_statistic(qint64 cur_quantity, int Kick[NumberOfSupportedCameras], int shift); QTimer *m_pTimer; QTimer *m_delay; //鎹㈢彮闃叉杩炲嚮