From 331f447bb0e5eccf0b3161ab287c1372b14b8480 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 08 八月 2025 11:53:58 +0800
Subject: [PATCH] 1.增加千传计数,保存计数,重启软件时恢复; 2.千传测试模式,打印相关日志,方便后期提取,用于统计; 3.千传模式时烘烤两腔体都要进入; 4.千传模式时,Fliper到Bonder修改为用手臂2取料; 5.修复千传模式不计运行时的问题; 6.千传模式,最后收料强制放入第一层; 6.修复Buf, 当任务未生成(在符合条件后仍有1秒间隙)而机器单元发送FetchOutJob时,数据检验失败的问题,增加Sleep, 缩小间隙;
---
SourceCode/Bond/Servo/CBonder.cpp | 55 +++++++++++++++++++++++++------------------------------
1 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/SourceCode/Bond/Servo/CBonder.cpp b/SourceCode/Bond/Servo/CBonder.cpp
index 7fe8a94..7ebd7be 100644
--- a/SourceCode/Bond/Servo/CBonder.cpp
+++ b/SourceCode/Bond/Servo/CBonder.cpp
@@ -193,12 +193,13 @@
// master recipe list report
CEqReadStep* pStep = new CEqReadStep(m_nIndex == 0 ? 0xa955 : 0xe955, 255 * 2,
[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
+ CEqReadStep* pTmpStep = (CEqReadStep*)pFrom;
+ short ret = MRLRC_OK;
if (code == ROK && pszData != nullptr && size > 0) {
// 此处解释配方数据
- short ret = decodeRecipeListReport(pszData, size);
- pStep->setReturnCode(ret);
+ ret = decodeRecipeListReport(pszData, size);
}
- pStep->setReturnCode(MRLRC_OK);
+ pTmpStep->setReturnCode(ret);
return -1;
});
pStep->setName(STEP_EQ_MASTER_RECIPE_LIST);
@@ -244,7 +245,7 @@
{
// Received Job Report Upstream #1~9
char szBuffer[256];
- for (int i = 0; i < 1; i++) {
+ for (int i = 0; i < 2; i++) {
CEqReadStep* pStep = new CEqReadStep((m_nIndex == 0 ? 0x8c90 : 0xcc90) + 320 * i, 320 * 2,
[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
if (code == ROK && pszData != nullptr && size > 0) {
@@ -267,13 +268,13 @@
{
// Sent Out Job Report Downstream #1~9
char szBuffer[256];
- for (int i = 0; i < 1; i++) {
+ for (int i = 0; i < 2; i++) {
CEqReadStep* pStep = new CEqReadStep((m_nIndex == 0 ? 0x8000 : 0xc000) + 320 * i, 320 * 2,
[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
if (code == ROK && pszData != nullptr && size > 0) {
int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port");
if (port > 0) {
- decodeReceivedJobReport((CStep*)pFrom, port, pszData, size);
+ decodeSentOutJobReport((CStep*)pFrom, port, pszData, size);
}
}
return -1;
@@ -291,7 +292,7 @@
{
// Fetched Out Job Report #1~15
char szBuffer[256];
- for (int i = 0; i < 1; i++) {
+ for (int i = 0; i < 2; i++) {
CEqReadStep* pStep = new CEqReadStep((m_nIndex == 0 ? 0x9c31 : 0xdc31) + 18 * i, 18 * 2,
[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
if (code == ROK && pszData != nullptr && size > 0) {
@@ -315,7 +316,7 @@
{
// Stored Job Report #1~15
char szBuffer[256];
- for (int i = 0; i < 1; i++) {
+ for (int i = 0; i < 2; i++) {
CEqReadStep* pStep = new CEqReadStep((m_nIndex == 0 ? 0x9b23 : 0xdb23) + 18 * i, 18 * 2,
[&](void* pFrom, int code, const char* pszData, size_t size) -> int {
if (code == ROK && pszData != nullptr && size > 0) {
@@ -344,23 +345,6 @@
pStep->setDataDev(0x923);
pStep->setRetDataDev(0xa00e, 2);
if (addStep(STEP_ID_IN_OP_CMD_REPLY, pStep) != 0) {
- delete pStep;
- }
- }
-
- {
- // Panel Data Report
- CEqReadStep* pStep = new CEqReadStep(0xA17f, 386 * 2,
- [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
- if (code == ROK && pszData != nullptr && size > 0) {
- decodePanelDataReport((CStep*)pFrom, pszData, size);
- }
- return -1;
- });
- pStep->setName(STEP_EQ_PANEL_DATA_REPORT);
- pStep->setProp("Port", (void*)1);
- pStep->setWriteSignalDev(0x45e);
- if (addStep(STEP_ID_PANEL_DATA_REPORT, pStep) != 0) {
delete pStep;
}
}
@@ -422,11 +406,13 @@
m_slot[0].setPosition(m_nID);
m_slot[0].setNo(1);
m_slot[0].setName("Slot 1(G2)");
+ m_slot[0].setLinkSignalPath(0);
m_slot[0].setType(MaterialsType::G2);
m_slot[1].enable();
m_slot[1].setPosition(m_nID);
m_slot[1].setNo(2);
m_slot[1].setName("Slot 2(G1)");
+ m_slot[1].setLinkSignalPath(1);
m_slot[1].setType(MaterialsType::G1);
}
@@ -434,14 +420,17 @@
{
CEquipment::onTimer(nTimerid);
- // test
+ // test
/*
static int i[2] = { 0, 0 };
i[m_nIndex]++;
-
- if (i[m_nIndex] == 15) {
- char szBuffer[26];
- decodeJobProcessStartReport(getStep(STEP_ID_JOB_PROCESS_START_REPORT), szBuffer, 26);
+ if (m_nIndex == 0 && i[m_nIndex] % 20 == 0) {
+ if (m_listener.onAlarm != nullptr) {
+ m_listener.onAlarm(this, 1,
+ i[m_nIndex],
+ getID(),
+ 1);
+ }
}
*/
}
@@ -479,6 +468,12 @@
return pBuddy != nullptr;
}
+ BOOL CBonder::hasG2Class()
+ {
+ CGlass* pGlass = (CGlass*)m_slot[0].getContext();
+ return (pGlass != nullptr);
+ }
+
int CBonder::onProcessData(CProcessData* pProcessData)
{
CEquipment::onProcessData(pProcessData);
--
Gitblit v1.9.3