From 49bd2172d26fe32bd425c6c5d3316032fce578d2 Mon Sep 17 00:00:00 2001 From: yvan Date: Thu, 10 Jul 2025 18:45:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B0=E6=B9=BE=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tw_test/envs/3.json | 4 +-- tw_test/scripts/ZH_CL2.ts | 62 ++++++++++++++++++++--------------------------- 2 files changed, 28 insertions(+), 38 deletions(-) diff --git a/tw_test/envs/3.json b/tw_test/envs/3.json index 6803895..06e3e86 100644 --- a/tw_test/envs/3.json +++ b/tw_test/envs/3.json @@ -4,10 +4,10 @@ "isVirtual": true, "envConfig": { "mqtt": { - "brokerUrl": "tcp://127.0.0.1:1883", + "brokerUrl": "tcp://10.10.101.8:1883", "username": "user", "password": "user", - "websocket": "mqtt://127.0.0.1:7883" + "websocket": "mqtt://10.10.101.8:7883" }, "mysql": { "jdbc-url": "jdbc:p6spy:mysql://180.100.199.56:8306/rcs2_tw_zhanghui", diff --git a/tw_test/scripts/ZH_CL2.ts b/tw_test/scripts/ZH_CL2.ts index 1e03f0f..88678cc 100644 --- a/tw_test/scripts/ZH_CL2.ts +++ b/tw_test/scripts/ZH_CL2.ts @@ -4,63 +4,53 @@ 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 [carInv] = (await LCC.queryInv({ rack: agvId, bay: 0, level: 0, cell: 0 })).data 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; - } + const freeLoc = await findFreeLoc() + if (carInv) { + // 托盘在车上 + LCC.log('托盘在车上') + LCC.log(`RCS.agvUnload('${agvId}', '${freeLoc}')`) + await RCS.agvUnload(agvId, freeLoc) + await RCS.waitTaskFinish(agvId) + await LCC.sleep(1000) + continue; } + LCC.log(`RCS.agvCarry('${agvId}', '${gstore}', '${freeLoc}')`) + await RCS.agvCarry(agvId, gstore, freeLoc) + await RCS.waitTaskFinish(agvId) } 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('货架没有空托盘,无法执行') + const invLoc = await findRackInvLoc() + if(!invLoc){ + LCC.log('货架没有托盘,无法执行') + }else{ + LCC.log(`RCS.agvCarry('${agvId}', '${invLoc}', '${gstore}')`) + await RCS.agvCarry(agvId, invLoc, gstore) + await RCS.waitTaskFinish(agvId) } } + + await LCC.sleep(1000) } -async function freeLoc(){ +async function findFreeLoc(){ for (const loc of demoLocList) { const [rack, bay, level] = loc.split('/') if (!rack) { @@ -74,7 +64,7 @@ async function freeLoc(){ } } -async function invLoc(){ +async function findRackInvLoc(){ 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