const gstore = '108_108' const agvId = '4' const demoLocList = ['rack3/0/2/0', 'rack3/1/2/0'] const demoLocList2 = ['rack3/0/2/0', 'rack3/1/2/0'].reverse() while (true) { await LCC.sleep(3000) const [dd] = (await LCC.queryInv({ rack: gstore })).data if (dd) { // 地堆上有托盘, 找一个空货位放过去 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('agvCarry', gstore, loc) await RCS.agvCarry(agvId, gstore, loc) await RCS.waitTaskFinish(agvId) continue; } } } else { // 地上没有托盘位, 找个位置拖过去 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('agvCarry', rack + '/' + bay + '/' + level + '/' + cell, gstore) await RCS.agvCarry(agvId, rack + '/' + bay + '/' + level + '/' + cell, gstore) await RCS.waitTaskFinish(agvId) } } if (!has) { LCC.log('货架没有空托盘,无法执行') } } }