LAPTOP-SNT8I5JK\Boounion
2025-08-26 73f93ffcc9f292e6b17c51fbf4d7cda42356a16d
1.Panel Start/Panel End事件上报功能实现,EAP模拟器接收数据并验证;
已修改9个文件
108 ■■■■ 文件已修改
Document/Panel Bonder八零联合 SecsTest CheckList_v3.0.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/HsmsPassive.cpp 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/HsmsPassive.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Model.cpp 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/CollectionEventList.txt 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/ReportList.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/VariableList.txt 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/Panel Bonder°ËÁãÁªºÏ SecsTest CheckList_v3.0.xlsx
Binary files differ
SourceCode/Bond/Servo/CMaster.cpp
@@ -952,6 +952,11 @@
                                    pGlass->getID().c_str());
                            }
                            // è¿™é‡Œä¸ŠæŠ¥Panel Start事件
                            if (m_listener.onPanelStart != nullptr) {
                                m_listener.onPanelStart(this, pGlass);
                            }
                            goto BATCH_PORT_GET;
                        }
                    }
@@ -1393,6 +1398,9 @@
                            LOGE("<Master>Glass(%s)从工艺列队到完成列队转移失败.",
                                pGlass->getID().c_str());
                        }
                        if (m_listener.onPanelEnd != nullptr) {
                            m_listener.onPanelEnd(this, pGlass);
                        }
                        // æ£€æŸ¥PJ是否已经完成
                        CProcessJob* pJob = getGlassProcessJob((CGlass*)m_pActiveRobotTask->getContext());
@@ -1711,7 +1719,6 @@
        // æ¨¡æ‹Ÿæµ‹è¯•
        /*
        static int aaa = 0;
        aaa++;
        if (aaa % 30 == 0) {
@@ -1719,6 +1726,11 @@
                CGlass* pGlass = m_queueGlasses.front();
                pGlass->start();
                glassFromQueueToInPorcess(pGlass);
                // è¿™é‡Œä¸ŠæŠ¥Panel Start事件
                if (m_listener.onPanelStart != nullptr) {
                    m_listener.onPanelStart(this, pGlass);
                }
            }
        }
@@ -1728,6 +1740,10 @@
                pGlass->complete();
                glassFromInPorcessToComplete(pGlass);
                // è¿™é‡Œä¸ŠæŠ¥Panel End事件
                if (m_listener.onPanelEnd != nullptr) {
                    m_listener.onPanelEnd(this, pGlass);
                }
                CProcessJob* pJob = getGlassProcessJob(pGlass);
                if (pJob != nullptr && checkAndUpdatePjComplete(pJob)) {
@@ -1739,7 +1755,7 @@
                }
            }
        }
        */
    }
    void CMaster::connectEquipments()
SourceCode/Bond/Servo/CMaster.h
@@ -67,6 +67,8 @@
        ONCTROUNDEND            onCTRoundEnd;
        ONPJSTART               onPjStart;
        ONPJSTART               onPjEnd;
        ONPJSTART               onPanelStart;
        ONPJSTART               onPanelEnd;
    } MasterListener;
    class CMaster : public IResourceView
SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -1889,6 +1889,15 @@
    return requestEventReportSend("PJ_End");
}
int CHsmsPassive::requestEventReportSend_Panel_Start()
{
    return requestEventReportSend("Panel_Start");
}
int CHsmsPassive::requestEventReportSend_Panel_End()
{
    return requestEventReportSend("Panel_End");
}
SourceCode/Bond/Servo/HsmsPassive.h
@@ -194,6 +194,8 @@
    int requestEventReportSend_PJ_Queued();
    int requestEventReportSend_PJ_Start();
    int requestEventReportSend_PJ_End();
    int requestEventReportSend_Panel_Start();
    int requestEventReportSend_Panel_End();
private:
    void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName);
SourceCode/Bond/Servo/Model.cpp
@@ -395,6 +395,14 @@
        m_hsmsPassive.setVariableValue("PJEndID", ((SERVO::CProcessJob*)pj)->id().c_str());
        m_hsmsPassive.requestEventReportSend_PJ_End();
    };
    masterListener.onPanelStart = [&](void* pMaster, void* pj) {
        m_hsmsPassive.setVariableValue("PanelStartID", ((SERVO::CGlass*)pj)->getID().c_str());
        m_hsmsPassive.requestEventReportSend_Panel_Start();
    };
    masterListener.onPanelEnd = [&](void* pMaster, void* pj) {
        m_hsmsPassive.setVariableValue("PanelEndID", ((SERVO::CGlass*)pj)->getID().c_str());
        m_hsmsPassive.requestEventReportSend_Panel_End();
    };
    m_master.setListener(masterListener);
    m_master.setContinuousTransferCount(m_configuration.getContinuousTransferCount());
SourceCode/Bond/x64/Debug/CollectionEventList.txt
@@ -40,4 +40,6 @@
50000,CarrierID_Readed,,(50000)
50001,PJ_Queued,,(50001)
50002,PJ_Start,,(50002)
50002,PJ_End,,(50003)
50003,PJ_End,,(50003)
50004,Panel_Start,,(50004)
50005,Panel_End,,(50005)
SourceCode/Bond/x64/Debug/ReportList.txt
@@ -18,4 +18,8 @@
50000,(5000)
50001,(5003)
50002,(5004)
50003,(5005)
50004,(5006)
50005,(5007)
SourceCode/Bond/x64/Debug/VariableList.txt
@@ -8,34 +8,37 @@
701,PreviousProcessState,U1,
800,EFEMPPExecName,A20,
801,EQPPExecName,A20,
2000,RbRAxisTorque,I2,机器人R轴扭矩
2001,RbLAxisTorque,l2,机器人L轴扭矩
2002,RbZAxisTorque,l2,机器人Z轴扭矩
2003,RbTHAxisTorque,l2,机器人TH轴扭矩
2004,RbXAxisTorque,l2,机器人X轴扭矩
2005,AxisX111,l2,X111相机前移栽电机扭矩
2006,AxisX112,l2,X112相机后移栽电机扭矩
2007,AxisU113,l2,U113产品旋转电机扭矩
2008,AxisX114,l2,X114产品左整列电机扭矩
2009,AxisY121,l2,Y121产品右整列电机扭矩
2010,AxisY122,l2,Y122产品前整列电机扭矩
2011,AxisY123,l2,Y123产品后阵列电机扭矩
2012,MainAir,U2,总进气压力值
2013,MainVacuum,l2,总真空压力值
2014,RbMainVacuum,l2,机器人真空值
2015,LPMainVacuum,l2,LP真空值#D265
2016,LPMainAir,U2,LP压空值
2017,ALVacuum,l2,Aligner真空值
2018,FFU1RPM,U2,FFU1转速
2019,FFU2RPM,U2,FFU2转速
2020,FFU3RPM,U2,FFU3转速
2021,FFU4RPM,U2,FFU4转速
2022,ESDValue,I2,静电检测值
2023,OCREnable,U2,"OCR使能:O:开启 1:屏蔽"
2024,CCDEnable,U2,"CCD使能:O:开启 1:屏蔽"
2025,FFUParameter,U2,FFU设定值
5000,CarrierID,A20,卡匣ID
2000,RbRAxisTorque,I2,机器人R轴扭矩
2001,RbLAxisTorque,l2,机器人L轴扭矩
2002,RbZAxisTorque,l2,机器人Z轴扭矩
2003,RbTHAxisTorque,l2,机器人TH轴扭矩
2004,RbXAxisTorque,l2,机器人X轴扭矩
2005,AxisX111,l2,X111相机前移栽电机扭矩
2006,AxisX112,l2,X112相机后移栽电机扭矩
2007,AxisU113,l2,U113产品旋转电机扭矩
2008,AxisX114,l2,X114产品左整列电机扭矩
2009,AxisY121,l2,Y121产品右整列电机扭矩
2010,AxisY122,l2,Y122产品前整列电机扭矩
2011,AxisY123,l2,Y123产品后阵列电机扭矩
2012,MainAir,U2,总进气压力值
2013,MainVacuum,l2,总真空压力值
2014,RbMainVacuum,l2,机器人真空值
2015,LPMainVacuum,l2,LP真空值#D265
2016,LPMainAir,U2,LP压空值
2017,ALVacuum,l2,Aligner真空值
2018,FFU1RPM,U2,FFU1转速
2019,FFU2RPM,U2,FFU2转速
2020,FFU3RPM,U2,FFU3转速
2021,FFU4RPM,U2,FFU4转速
2022,ESDValue,I2,静电检测值
2023,OCREnable,U2,"OCR使能:O:开启 1:屏蔽"
2024,CCDEnable,U2,"CCD使能:O:开启 1:屏蔽"
2025,FFUParameter,U2,FFU设定值
5000,CarrierID,A20,卡匣ID
5001,CJobSpace,U1,CJ Space
5002,PJobSpace,U1,PJ Space
5003,PJQueued,L,PJ Queued
5004,PJStartID,A20,PJStartID
5004,PJStartID,A20,PJStartID
5005,PJEndID,A20,PJEndID
5006,PanelStartID,A20,PanelStartID
5007,PanelEndID,A20,PanelEndID