From 8bf03fb22f95cbf976a11bf8c641a1dbf19dbcd3 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Thu, 10 Jul 2025 18:10:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B0=E6=B9=BE=E5=B1=95=E4=BC=9A=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tw_test/scripts/CL2_DEMO.ts | 61 -------------------------------- tw_test/scripts/ZH_CL2.ts | 85 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 61 deletions(-) delete mode 100644 tw_test/scripts/CL2_DEMO.ts create mode 100644 tw_test/scripts/ZH_CL2.ts diff --git a/tw_test/scripts/CL2_DEMO.ts b/tw_test/scripts/CL2_DEMO.ts deleted file mode 100644 index 2f35439..0000000 --- a/tw_test/scripts/CL2_DEMO.ts +++ /dev/null @@ -1,61 +0,0 @@ -const gstore = '105_105' -const agvId = '3' -const demoLocList = ['rack1/1/1/0', 'rack2/0/1/0', 'rack2/1/1/0'] -const demoLocList2 = [ 'rack1/1/1/0', 'rack2/0/1/0', 'rack2/1/1/0' ].reverse() - -while (true) { - - const [dd] = (await LCC.queryInv({ rack: gstore })).data - if (dd) { - // 地堆上有托盘, 找一个空货位放过去 - LCC.log('地堆上有托盘') - for (const loc of demoLocList) { - const [rack, bay, level] = loc.split('/') - if (!rack) { - continue; - } - const [emptyLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data - if (!emptyLoc) { - // 这是一个好位置 - LCC.log(`RCS.agvCarry('${agvId}', '${gstore}', '${loc}')`) - await RCS.agvCarry(agvId, gstore, loc) - await RCS.waitTaskFinish(agvId) - await LCC.sleep(1000) - break; - } - } - - - } else { - // 地上没有托盘位, 找个位置拖过去 - const [carInv] = (await LCC.queryInv({ rack: agvId, bay: 0, level: 0, cell: 0 })).data - if (carInv) { - LCC.log('托盘在车上') - LCC.log(`RCS.agvUnload('${agvId}', '${gstore}')`) - await RCS.agvUnload(agvId, gstore) - await RCS.waitTaskFinish(agvId) - await LCC.sleep(1000) - continue; - } else { - LCC.log('托盘在货架') - } - - let has = false - for (const loc of demoLocList2) { - const [rack, bay, level, cell] = loc.split('/') - const [palletLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data - if (palletLoc) { - has = true - LCC.log(`RCS.agvCarry('${agvId}', '${loc}', '${gstore}')`) - await RCS.agvCarry(agvId, loc, gstore) - await RCS.waitTaskFinish(agvId) - await LCC.sleep(1000) - break - } - } - - if (!has) { - LCC.log('货架没有空托盘,无法执行') - } - } -} \ No newline at end of file diff --git a/tw_test/scripts/ZH_CL2.ts b/tw_test/scripts/ZH_CL2.ts new file mode 100644 index 0000000..1e03f0f --- /dev/null +++ b/tw_test/scripts/ZH_CL2.ts @@ -0,0 +1,85 @@ +const gstore = '504_501' +const agvId = '1' +const demoLocList = ['rack1/0/1/0', 'rack1/1/1/0', 'rack1/2/1/0', 'rack1/3/1/0'] +const demoLocList2 = [ ...demoLocList ].reverse() + +while (true) { + + const [dd] = (await LCC.queryInv({ rack: gstore })).data + if (dd) { + // 地堆上有托盘, 找一个空货位放过去 + LCC.log('地堆上有托盘') + for (const loc of demoLocList) { + const [rack, bay, level] = loc.split('/') + if (!rack) { + continue; + } + const [emptyLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data + if (!emptyLoc) { + // 这是一个好位置 + LCC.log(`RCS.agvCarry('${agvId}', '${gstore}', '${loc}')`) + await RCS.agvCarry(agvId, gstore, loc) + await RCS.waitTaskFinish(agvId) + await LCC.sleep(1000) + break; + } + } + + + } else { + // 地上没有托盘位, 找个位置拖过去 + const [carInv] = (await LCC.queryInv({ rack: agvId, bay: 0, level: 0, cell: 0 })).data + if (carInv) { + LCC.log('托盘在车上') + LCC.log(`RCS.agvUnload('${agvId}', '${gstore}')`) + await RCS.agvUnload(agvId, gstore) + await RCS.waitTaskFinish(agvId) + await LCC.sleep(1000) + continue; + } else { + LCC.log('托盘在货架') + } + + let has = false + for (const loc of demoLocList2) { + const [rack, bay, level, cell] = loc.split('/') + const [palletLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data + if (palletLoc) { + has = true + LCC.log(`RCS.agvCarry('${agvId}', '${loc}', '${gstore}')`) + await RCS.agvCarry(agvId, loc, gstore) + await RCS.waitTaskFinish(agvId) + await LCC.sleep(1000) + break + } + } + + if (!has) { + LCC.log('货架没有空托盘,无法执行') + } + } +} + +async function freeLoc(){ + for (const loc of demoLocList) { + const [rack, bay, level] = loc.split('/') + if (!rack) { + continue; + } + const [emptyLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data + if (!emptyLoc) { + // 这是一个好位置 + return loc; + } + } +} + +async function invLoc(){ + for (const loc of demoLocList2) { + const [rack, bay, level, cell] = loc.split('/') + const [palletLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data + if (palletLoc) { + return loc + } + } +}