From fd5e26f363ad30c627a6aca5ba0294a1b58b5360 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Tue, 8 Jul 2025 14:30:57 +0800 Subject: [PATCH] CLX demo --- tw_test/floor/f1.json | 4 ++-- tw_test/scripts/CLX_DEMO.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 tw_test/scripts/CLX_DEMO.ts diff --git a/tw_test/floor/f1.json b/tw_test/floor/f1.json index 2fae13f..bee1410 100644 --- a/tw_test/floor/f1.json +++ b/tw_test/floor/f1.json @@ -845,7 +845,7 @@ ], [ 0, - -90, + 0, 0 ], [ @@ -861,4 +861,4 @@ "strokeWidth": 0.1 } } -] \ No newline at end of file +] diff --git a/tw_test/scripts/CLX_DEMO.ts b/tw_test/scripts/CLX_DEMO.ts new file mode 100644 index 0000000..c0f1776 --- /dev/null +++ b/tw_test/scripts/CLX_DEMO.ts @@ -0,0 +1,45 @@ +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('货架没有空托盘,无法执行') + } + } +} \ No newline at end of file