diff --git a/tw_zh/scripts/ZH_CLX.ts b/tw_zh/scripts/ZH_CLX.ts new file mode 100644 index 0000000..d3649cd --- /dev/null +++ b/tw_zh/scripts/ZH_CLX.ts @@ -0,0 +1,77 @@ +const gstore = '500_500' +const agvId = '2' +const demoLocList = ['rack1/0/2/0', 'rack1/1/2/0', 'rack1/2/2/0', 'rack1/3/2/0'] + +while (true) { + const [carInv] = (await LCC.queryInv({ rack: agvId, bay: 0, level: 0, cell: 0 })).data + const [dd] = (await LCC.queryInv({ rack: gstore })).data + // demoLocList.reverse() + const pp = demoLocList.pop() + demoLocList.push(pp) + + if (dd) { + // 地堆上有托盘, 找一个空货位放过去 + LCC.log('地堆上有托盘') + 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 { + // 地上没有托盘位, 找个位置拖过去 + if (carInv) { + // 托盘在车上 + LCC.log('托盘在车上') + LCC.log(`RCS.agvUnload('${agvId}', '${gstore}')`) + await RCS.agvUnload(agvId, gstore) + await RCS.waitTaskFinish(agvId) + await LCC.sleep(1000) + continue; + } + + 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 findFreeLoc(){ + 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 findRackInvLoc(){ + for (const loc of demoLocList) { + const [rack, bay, level, cell] = loc.split('/') + const [palletLoc] = (await LCC.queryInv({ rack, bay: parseInt(bay), level: parseInt(level) })).data + if (palletLoc) { + return loc + } + } +}