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('货架没有空托盘,无法执行') } } }