From 963e6bffaaf6a62a1f764c6633cf6accbb1608c9 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 17 六月 2025 08:54:35 +0800
Subject: [PATCH] 1.两片玻璃贴合后一起搬运的逻辑问题再优化,同时修改Slot信息,贴合后的玻璃应该放置在同一Slot.
---
SourceCode/Bond/Servo/CMaster.cpp | 86 ++++++-------------------------------------
1 files changed, 12 insertions(+), 74 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 79da60d..18d615c 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -477,7 +477,7 @@
// Fliper(G2) -> Bonder
// VacuumBake(G1) -> Bonder
- if (!rmd.armState[1]) {
+ if (!rmd.armState[1] && !pBonder1->hasBondClass()) {
m_pActiveRobotTask = createTransferTask(pFliper, pBonder1, primaryType, secondaryType, 2);
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->pick();
@@ -491,7 +491,7 @@
}
}
- if (!rmd.armState[1]) {
+ if (!rmd.armState[1] && !pBonder2->hasBondClass()) {
m_pActiveRobotTask = createTransferTask(pFliper, pBonder2, primaryType, secondaryType, 2);
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->pick();
@@ -505,7 +505,7 @@
}
}
- if (!rmd.armState[0]) {
+ if (!rmd.armState[0] && !pBonder1->hasBondClass()) {
m_pActiveRobotTask = createTransferTask(pVacuumBake, pBonder1, primaryType, secondaryType);
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->pick();
@@ -519,7 +519,7 @@
}
}
- if (!rmd.armState[0]) {
+ if (!rmd.armState[0] && !pBonder2->hasBondClass()) {
m_pActiveRobotTask = createTransferTask(pVacuumBake, pBonder2, primaryType, secondaryType);
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->pick();
@@ -1204,14 +1204,11 @@
if (pSrcSlot != nullptr && nullptr != pTarSlot) {
- int srcPos, srcSlot, tarPos, tarSlot;
- transformPosAndSlot(pSrcSlot->getPosition(), pSrcSlot->getNo(), srcPos, srcSlot);
- transformPosAndSlot(pTarSlot->getPosition(), pTarSlot->getNo(), tarPos, tarSlot);
pTask = new CRobotTask();
pTask->setContext(pSrcSlot->getContext());
pTask->setEFEM((CEFEM*)getEquipment(EQ_ID_EFEM));
- taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, armNo, srcPos,
- tarPos, srcSlot, tarSlot);
+ taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, armNo, pSrcSlot->getPosition(),
+ pTarSlot->getPosition(), pSrcSlot->getNo(), pTarSlot->getNo());
}
@@ -1228,14 +1225,11 @@
pSrcSlot = pSrcEq->getProcessedSlot(MaterialsType::G1);
if (pSrcSlot != nullptr && nullptr != pTarSlot) {
- int srcPos, srcSlot, tarPos, tarSlot;
- transformPosAndSlot(pSrcSlot->getPosition(), pSrcSlot->getNo(), srcPos, srcSlot);
- transformPosAndSlot(pTarSlot->getPosition(), pTarSlot->getNo(), tarPos, tarSlot);
pTask = new CRobotTask();
pTask->setContext(pSrcSlot->getContext());
pTask->setEFEM((CEFEM*)getEquipment(EQ_ID_EFEM));
- taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, srcPos,
- tarPos, srcSlot, tarSlot);
+ taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, pSrcSlot->getPosition(),
+ pTarSlot->getPosition(), pSrcSlot->getNo(), pTarSlot->getNo());
}
@@ -1253,14 +1247,11 @@
pSrcSlot = pSrcEq->getProcessedSlot2(MaterialsType::G1, slotsSrc);
if (pSrcSlot != nullptr && nullptr != pTarSlot) {
- int srcPos, srcSlot, tarPos, tarSlot;
- transformPosAndSlot(pSrcSlot->getPosition(), pSrcSlot->getNo(), srcPos, srcSlot);
- transformPosAndSlot(pTarSlot->getPosition(), pTarSlot->getNo(), tarPos, tarSlot);
pTask = new CRobotTask();
pTask->setContext(pSrcSlot->getContext());
pTask->setEFEM((CEFEM*)getEquipment(EQ_ID_EFEM));
- taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, srcPos,
- tarPos, srcSlot, tarSlot);
+ taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, pSrcSlot->getPosition(),
+ pTarSlot->getPosition(), pSrcSlot->getNo(), pTarSlot->getNo());
}
@@ -1277,68 +1268,15 @@
pSrcSlot = pSrcEq->getProcessedSlot2(MaterialsType::G1, slots);
if (pSrcSlot != nullptr && nullptr != pTarSlot) {
- int srcPos, srcSlot, tarPos, tarSlot;
- transformPosAndSlot(pSrcSlot->getPosition(), pSrcSlot->getNo(), srcPos, srcSlot);
- transformPosAndSlot(pTarSlot->getPosition(), pTarSlot->getNo(), tarPos, tarSlot);
pTask = new CRobotTask();
pTask->setContext(pSrcSlot->getContext());
pTask->setEFEM((CEFEM*)getEquipment(EQ_ID_EFEM));
- taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, srcPos,
- tarPos, srcSlot, tarSlot);
+ taskSeqNo = pTask->setRobotTransferParam(taskSeqNo, 1, pSrcSlot->getPosition(),
+ pTarSlot->getPosition(), pSrcSlot->getNo(), pTarSlot->getNo());
}
return pTask;
- }
-
- void CMaster::transformPosAndSlot(int srcPos, int srcSlot, int& tarPos, int& tarSlot)
- {
- switch (srcPos)
- {
- case EQ_ID_LOADPORT1:
- case EQ_ID_LOADPORT2:
- case EQ_ID_LOADPORT3:
- case EQ_ID_LOADPORT4:
- case EQ_ID_ARM_TRAY1:
- case EQ_ID_ARM_TRAY2:
- case EQ_ID_ALIGNER:
- case EQ_ID_FLIPER:
- tarPos = srcPos;
- tarSlot = 1;
- break;
- case EQ_ID_Bonder1:
- if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 9 + srcSlot;
- tarSlot = 1;
- }
- break;
- case EQ_ID_Bonder2:
- if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 11 + srcSlot;
- tarSlot = 1;
- }
- break;
- case EQ_ID_VACUUMBAKE:
- if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 13 + srcSlot;
- tarSlot = 1;
- }
- break;
- case EQ_ID_BAKE_COOLING:
- if (1 <= srcSlot && srcSlot <= 4) {
- tarPos = 15 + srcSlot;
- tarSlot = 1;
- }
- break;
- case EQ_ID_MEASUREMENT:
- tarPos = 19;
- tarSlot = 1;
- break;
- default:
- tarPos = srcPos;
- tarSlot = srcSlot;
- break;
- }
}
int CMaster::abortCurrentTask()
--
Gitblit v1.9.3