From b54cb6d1d8742e94bd79623d4f410b3ff5abde86 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 26 六月 2025 08:47:12 +0800
Subject: [PATCH] 6.定时轮询比特位,修改为只轮询EFEM, Bonder1, Bonder2, BakeCooling, VacuuumBake, Measurent, 其它只是以上的子单元,共用CC-Link的数据块。 7.修改一处转换机械手的放置目标POS时的错误 问题。 8.增加机械手状态和托盘是否有物料的信息打印,以便于创建搬送任务时观察和调试
---
SourceCode/Bond/Servo/Servo.vcxproj | 1 +
SourceCode/Bond/Servo/CEquipment.cpp | 1 +
SourceCode/Bond/Servo/CRobotTask.cpp | 8 ++++----
SourceCode/Bond/Servo/CEFEM.cpp | 8 ++++++++
SourceCode/Bond/Servo/CMaster.cpp | 34 ++++++++--------------------------
SourceCode/Bond/Servo/CEFEM.h | 1 +
SourceCode/Bond/Servo/ServoDlg.cpp | 2 ++
7 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEFEM.cpp b/SourceCode/Bond/Servo/CEFEM.cpp
index 901e3ae..8175eed 100644
--- a/SourceCode/Bond/Servo/CEFEM.cpp
+++ b/SourceCode/Bond/Servo/CEFEM.cpp
@@ -880,4 +880,12 @@
{
return 10000;
}
+
+ void CEFEM::printDebugRobotState()
+ {
+ LOGI("<CEFEM>Robot status:%d, ARM1:%s, ARM2:%s",
+ m_robotData.status,
+ m_robotData.armState[1] ? _T("ON") : _T("OFF"),
+ m_robotData.armState[2] ? _T("ON") : _T("OFF"));
+ }
}
diff --git a/SourceCode/Bond/Servo/CEFEM.h b/SourceCode/Bond/Servo/CEFEM.h
index 4e0d202..12603d3 100644
--- a/SourceCode/Bond/Servo/CEFEM.h
+++ b/SourceCode/Bond/Servo/CEFEM.h
@@ -59,6 +59,7 @@
int robotSendTransferAndHome(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot, ONWRITED onWritedBlock = nullptr);
int robotSendGetAndPut(int seq, int armNo, int getPos, int getSlot, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
int robotSendPutAndHome(int seq, int armNo, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
+ void printDebugRobotState();
private:
CLoadPort* m_pPort[4];
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index 5336a26..5518246 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -41,6 +41,7 @@
m_nBaseAlarmId = 0;
m_pArm = nullptr;
m_processState = PROCESS_STATE::Ready;
+ m_blockReadBit = { 0 };
InitializeCriticalSection(&m_criticalSection);
}
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 5023f98..9cbcbd7 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -779,11 +779,12 @@
for (auto item : m_listEquipment) {
const StationIdentifier& station = item->getStation();
MemoryBlock& block = item->getReadBitBlock();
-
- int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
- block.start, block.size, block.buffer);
- if (0 == nRet) {
- item->onReceiveLBData(block.buffer, block.size);
+ if (block.end > block.start) {
+ int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
+ block.start, block.size, block.buffer);
+ if (0 == nRet) {
+ item->onReceiveLBData(block.buffer, block.size);
+ }
}
}
}
@@ -1028,7 +1029,7 @@
pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
pEquipment->setName("Fliper(G2)");
pEquipment->setDescription("Fliper(G2).");
- pEquipment->setReadBitBlock(0x4000, 0x45ff);
+ pEquipment->setReadBitBlock(0x0, 0x0);
pEquipment->setStation(0, 255);
addToEquipmentList(pEquipment);
@@ -1063,7 +1064,7 @@
pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
pEquipment->setName("Aligner");
pEquipment->setDescription("Aligner.");
- pEquipment->setReadBitBlock(0x4000, 0x45ff);
+ pEquipment->setReadBitBlock(0x0, 0x0);
pEquipment->setStation(0, 255);
addToEquipmentList(pEquipment);
@@ -1190,27 +1191,8 @@
}
- // 按一定频率扫描LB数据
static int i = 0;
i++;
- /*
- if (i % (4 * 1) == 0) {
-
- for (auto item : m_listEquipment) {
- if (item->getID() == EQ_ID_Bonder1) {
- const StationIdentifier& station = item->getStation();
- MemoryBlock& block = item->getReadBitBlock();
-
- int nRet = m_cclink.ReadData2(station, (DeviceType)block.type,
- block.start, block.size, block.buffer);
- if (0 == nRet) {
- item->onReceiveLBData(block.buffer, block.size);
- }
- }
- }
- }
- */
-
// 自动保存缓存
if (i % (4 * 2) == 0) {
diff --git a/SourceCode/Bond/Servo/CRobotTask.cpp b/SourceCode/Bond/Servo/CRobotTask.cpp
index 582e63c..b549782 100644
--- a/SourceCode/Bond/Servo/CRobotTask.cpp
+++ b/SourceCode/Bond/Servo/CRobotTask.cpp
@@ -368,25 +368,25 @@
break;
case EQ_ID_Bonder1:
if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 9 + srcSlot;
+ tarPos = 9 + srcSlot - 1;
tarSlot = 1;
}
break;
case EQ_ID_Bonder2:
if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 11 + srcSlot;
+ tarPos = 11 + srcSlot - 1;
tarSlot = 1;
}
break;
case EQ_ID_VACUUMBAKE:
if (1 <= srcSlot && srcSlot <= 2) {
- tarPos = 13 + srcSlot;
+ tarPos = 13 + srcSlot - 1;
tarSlot = 1;
}
break;
case EQ_ID_BAKE_COOLING:
if (1 <= srcSlot && srcSlot <= 4) {
- tarPos = 15 + srcSlot;
+ tarPos = 15 + srcSlot - 1;
tarSlot = 1;
}
break;
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index 3b20373..e754738 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -46,6 +46,7 @@
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
+ <EnableASAN>true</EnableASAN>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index dde6456..de985ad 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -899,11 +899,13 @@
}
else if (id == IDC_BUTTON_SETTINGS) {
SERVO::CEquipment* pEq = theApp.m_model.m_master.getEquipment(EQ_ID_EFEM);
+ ((SERVO::CEFEM*)pEq)->printDebugRobotState();
pEq->printDebugString001();
pEq = theApp.m_model.m_master.getEquipment(EQ_ID_Bonder1);
pEq->printDebugString001();
pEq = theApp.m_model.m_master.getEquipment(EQ_ID_Bonder2);
pEq->printDebugString001();
+
}
else if (id == IDC_BUTTON_OPERATOR) {
int menuId = (int)wParam;
--
Gitblit v1.9.3