commit 4013920c9517f2733bdd61a137a7f50dc6a1b248 Author: luoyifan Date: Mon Jun 30 22:18:19 2025 +0800 lcc-map diff --git a/test/catalog.json b/test/catalog.json new file mode 100644 index 0000000..f28b6e7 --- /dev/null +++ b/test/catalog.json @@ -0,0 +1,130 @@ +[ + { + "label": "仓库楼层", + "items": [ + { + "catalogCode": "__f1", + "label": "路径压力测试 (-f1)" + }, + { + "catalogCode": "__f2", + "label": "箱子压力测试 (-f2)" + }, + { + "catalogCode": "__f3", + "label": "货架压力测试 (-f3)" + }, + { + "catalogCode": "__f4", + "label": "标尺压力测试 (-f4)" + }, + { + "catalogCode": "__f5", + "label": "地堆压力测试 (-f5)" + }, + { + "catalogCode": "f1", + "label": "一楼 (f1)" + }, + { + "catalogCode": "f2", + "label": "二楼 (f2)" + }, + { + "catalogCode": "f3", + "label": "三楼 (f3)" + }, + { + "catalogCode": "f4", + "label": "AGV测试区 (f4)" + }, + { + "catalogCode": "f5", + "label": "标准容器 (f5)" + }, + { + "catalogCode": "OUT", + "label": "外场 (OUT)" + }, + { + "catalogCode": "fe", + "label": "楼层电梯 (fe)" + } + ] + }, + { + "label": "立体库", + "items": [ + { + "catalogCode": "asrs1", + "label": "D1 (asrs1)" + }, + { + "catalogCode": "asrs2", + "label": "D2 (asrs2)" + }, + { + "catalogCode": "asrs3", + "label": "D3 (asrs3)" + }, + { + "catalogCode": "asrs4", + "label": "D4 (asrs4)" + }, + { + "catalogCode": "de1", + "label": "提升机 (de1)" + } + ] + }, + { + "label": "密集库区域", + "items": [ + { + "catalogCode": "flash1", + "label": "1层 (flash1)" + }, + { + "catalogCode": "flash2", + "label": "2层 (flash2)" + }, + { + "catalogCode": "flash3", + "label": "3层 (flash3)" + }, + { + "catalogCode": "flash4", + "label": "4层 (flash4)" + }, + { + "catalogCode": "me", + "label": "提升机 (me)" + } + ] + }, + { + "label": "多穿库", + "items": [ + { + "catalogCode": "shuttle1", + "label": "E1 (shuttle1)" + }, + { + "catalogCode": "shuttle2", + "label": "E2 (shuttle2)" + }, + { + "catalogCode": "shuttle3", + "label": "E3 (shuttle3)" + }, + { + "catalogCode": "shuttle4", + "label": "E4 (shuttle4)" + }, + { + "catalogCode": "ee1", + "label": "提升机 (ee1)" + } + ] + } +] diff --git a/test/project.json b/test/project.json new file mode 100644 index 0000000..e69de29 diff --git a/tw_zhanghui/catalog.json b/tw_zhanghui/catalog.json new file mode 100644 index 0000000..7c19914 --- /dev/null +++ b/tw_zhanghui/catalog.json @@ -0,0 +1,11 @@ +[ + { + "label": "仓库楼层", + "items": [ + { + "catalogCode": "f1", + "label": "一楼 (f1)" + } + ] + } +] diff --git a/tw_zhanghui/config.json b/tw_zhanghui/config.json new file mode 100644 index 0000000..5dee4d9 --- /dev/null +++ b/tw_zhanghui/config.json @@ -0,0 +1,19 @@ +{ + "mqtt": { + "brokerUrl": "tcp://10.10.101.8:1885", + "username": "admin", + "password": "admin", + "websocket": "mqtt://10.10.101.8:9001" + }, + "mysql": { + "jdbc-url": "jdbc:p6spy:mysql://180.100.199.56:8306/rcs2_tw_zhanghui", + "username": "rcs2_tw_zhanghui", + "password": "Rcs2_tw_zhanghui" + }, + "redis": { + "host": "180.100.199.56", + "port": 6379, + "database": 0, + "password": "yxt123456" + } +} diff --git a/tw_zhanghui/config2.json b/tw_zhanghui/config2.json new file mode 100644 index 0000000..a99e2f9 --- /dev/null +++ b/tw_zhanghui/config2.json @@ -0,0 +1,20 @@ +{ + "mqtt": { + "brokerUrl": "tcp://127.0.0.1:1883", + "clientId": "yvan-rcs-dev-1", + "username": "user", + "password": "user", + "websocket": "mqtt://127.0.0.1:7883" + }, + "mysql": { + "jdbc-url": "jdbc:p6spy:mysql://180.100.199.56:8306/rcs2_tw_zhanghui", + "username": "rcs2_tw_zhanghui", + "password": "Rcs2_tw_zhanghui" + }, + "redis": { + "host": "180.100.199.56", + "port": 6379, + "database": 0, + "password": "yxt123456" + } +} diff --git a/tw_zhanghui/floor/f1.json b/tw_zhanghui/floor/f1.json new file mode 100644 index 0000000..0d15afb --- /dev/null +++ b/tw_zhanghui/floor/f1.json @@ -0,0 +1,868 @@ +[ + { + "id": "rack1", + "t": "rack", + "v": true, + "tf": [ + [ + 1.55, + 0, + -1.5 + ], + [ + 0, + 0, + 0 + ], + [ + 2.2, + 1.211, + 1 + ] + ], + "dt": { + "rackDepth": 1, + "bottomBarHeight": 0.2, + "bottomLinkHeight": 0.2, + "topLinkDistance": 0.2, + "levelCount": 2, + "bayCount": 2, + "hideFloor": 0, + "extendColumns": 1, + "columnSpacing": 1, + "bays": [ + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 1.21 + ], + "topHeight": 2 + }, + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 1.21 + ], + "topHeight": 2 + } + ], + "center": [], + "in": [], + "out": [], + "rackWidth": 2.2, + "rackHeight": 1.211 + }, + "_rid": "_2" + }, + { + "id": "rack2", + "t": "rack", + "v": true, + "tf": [ + [ + 3.9, + 0, + -1.5 + ], + [ + 0, + 0, + 0 + ], + [ + 2.2, + 2.186, + 1 + ] + ], + "dt": { + "rackDepth": 1, + "bottomBarHeight": 0.2, + "bottomLinkHeight": 0.2, + "topLinkDistance": 0.2, + "levelCount": 2, + "bayCount": 2, + "hideFloor": 0, + "extendColumns": 1, + "columnSpacing": 1, + "bays": [ + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 2.185 + ], + "topHeight": 2 + }, + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 2.185 + ], + "topHeight": 2 + } + ], + "center": [], + "in": [], + "out": [], + "rackWidth": 2.2, + "rackHeight": 2.186 + }, + "_rid": "_3" + }, + { + "id": "105_105", + "t": "gstore", + "v": true, + "tf": [ + [ + 4.44, + 0, + 1.5 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 0.01, + 1.2 + ] + ], + "dt": { + "in": [], + "out": [], + "center": [], + "strokeWidth": 0.1 + }, + "_rid": "_4" + }, + { + "id": "6_4", + "t": "way", + "v": true, + "logicX": 1, + "logicY": 2, + "tf": [ + [ + 1, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "7_4" + ], + "out": [ + "7_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack1", + "bay": 0, + "level": 0, + "cell": 0, + "direction": "up" + }, + { + "item": "rack1", + "bay": 0, + "level": 1, + "cell": 0, + "direction": "up" + } + ] + }, + "_rid": "_5" + }, + { + "id": "7_4", + "t": "way", + "v": true, + "logicX": 2, + "logicY": 2, + "tf": [ + [ + 2.1, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "6_4", + "8_4" + ], + "out": [ + "6_4", + "8_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack1", + "bay": 1, + "level": 0, + "cell": 0, + "direction": "up" + }, + { + "item": "rack1", + "bay": 1, + "level": 1, + "cell": 0, + "direction": "up" + } + ] + }, + "_rid": "_6" + }, + { + "id": "8_4", + "t": "way", + "v": true, + "logicX": 3, + "logicY": 2, + "tf": [ + [ + 3.39, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "7_4", + "9_4" + ], + "out": [ + "7_4", + "9_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack2", + "bay": 0, + "level": 0, + "cell": 0, + "direction": "up" + }, + { + "item": "rack2", + "bay": 0, + "level": 1, + "cell": 0, + "direction": "up" + } + ] + }, + "_rid": "_7" + }, + { + "id": "9_4", + "t": "way", + "v": true, + "logicX": 4, + "logicY": 2, + "tf": [ + [ + 4.44, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "8_4", + "10_4" + ], + "out": [ + "8_4", + "10_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack2", + "bay": 1, + "level": 0, + "cell": 0, + "direction": "up" + }, + { + "item": "rack2", + "bay": 1, + "level": 1, + "cell": 0, + "direction": "up" + }, + { + "item": "105_105", + "bay": 0, + "level": 0, + "cell": 0, + "direction": "down" + } + ] + }, + "_rid": "_8" + }, + { + "id": "10_4", + "t": "way", + "v": true, + "logicX": 5, + "logicY": 2, + "tf": [ + [ + 5.44, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "9_4", + "11_4" + ], + "out": [ + "9_4", + "11_4" + ], + "center": [] + }, + "_rid": "_9" + }, + { + "id": "11_4", + "t": "way", + "v": true, + "logicX": 6, + "logicY": 2, + "tf": [ + [ + 6.44, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "10_4", + "charger1" + ], + "out": [ + "10_4", + "charger1" + ], + "center": [], + "agvRotation": [ + "cl2", + "clx" + ] + }, + "_rid": "_10" + }, + { + "id": "5_4", + "t": "way", + "v": true, + "logicX": 5, + "logicY": 4, + "tf": [ + [ + -0.29, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "4_4" + ], + "out": [ + "4_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack3", + "bay": 1, + "level": 1, + "cell": 0, + "direction": "up" + } + ] + }, + "_rid": "_11" + }, + { + "id": "4_4", + "t": "way", + "v": true, + "logicX": 4, + "logicY": 4, + "tf": [ + [ + -1.39, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "5_4", + "3_4" + ], + "out": [ + "5_4", + "3_4" + ], + "center": [], + "linkStore": [ + { + "item": "rack3", + "bay": 0, + "level": 1, + "cell": 0, + "direction": "up" + } + ] + }, + "_rid": "_12" + }, + { + "id": "3_4", + "t": "way", + "v": true, + "logicX": 3, + "logicY": 4, + "tf": [ + [ + -2.34, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "4_4", + "2_4" + ], + "out": [ + "4_4", + "2_4" + ], + "center": [] + }, + "_rid": "_13" + }, + { + "id": "2_4", + "t": "way", + "v": true, + "logicX": 2, + "logicY": 4, + "tf": [ + [ + -3.34, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "1_4", + "3_4" + ], + "out": [ + "1_4", + "3_4" + ], + "center": [] + }, + "_rid": "_14" + }, + { + "id": "1_4", + "t": "way", + "v": true, + "logicX": 1, + "logicY": 4, + "tf": [ + [ + -4.34, + 0.01, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "2_4", + "1_3" + ], + "out": [ + "2_4", + "1_3" + ], + "center": [], + "agvRotation": [ + "cl2", + "clx" + ] + }, + "_rid": "_15" + }, + { + "id": "1_3", + "t": "way", + "v": true, + "logicX": 1, + "logicY": 3, + "tf": [ + [ + -4.34, + 0.01, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "1_4", + "1_2" + ], + "out": [ + "1_4", + "1_2" + ], + "center": [], + "linkStore": [ + { + "item": "108_108", + "bay": 0, + "level": 0, + "cell": 0, + "direction": "left" + } + ] + }, + "_rid": "_16" + }, + { + "id": "1_2", + "t": "way", + "v": true, + "logicX": 1, + "logicY": 2, + "tf": [ + [ + -4.34, + 0.01, + -2 + ], + [ + 0, + 0, + 0 + ], + [ + 0.25, + 0.1, + 0.25 + ] + ], + "dt": { + "in": [ + "1_3", + "charger2" + ], + "out": [ + "1_3", + "charger2" + ], + "center": [] + }, + "_rid": "_17" + }, + { + "id": "charger2", + "t": "charger", + "v": true, + "tf": [ + [ + -4.34, + 0.01, + -2.4 + ], + [ + 0, + 180, + 0 + ], + [ + 0.6, + 1, + 0.3 + ] + ], + "dt": { + "in": [ + "1_2" + ], + "out": [ + "1_2" + ], + "center": [], + "isCharger": true, + "chargerPortDirection": "down" + }, + "_rid": "_18" + }, + { + "id": "charger1", + "t": "charger", + "v": true, + "tf": [ + [ + 6.84, + 0.01, + 0 + ], + [ + 0, + 90, + 0 + ], + [ + 0.6, + 1, + 0.3 + ] + ], + "dt": { + "in": [ + "11_4" + ], + "out": [ + "11_4" + ], + "center": [], + "chargerPortDirection": "left" + }, + "_rid": "_19" + }, + { + "id": "rack3", + "t": "rack", + "v": true, + "tf": [ + [ + -0.82, + 0, + -1.5 + ], + [ + 0, + 0, + 0 + ], + [ + 2.2, + 2.186, + 1 + ] + ], + "dt": { + "rackDepth": 1, + "bottomBarHeight": 0.2, + "bottomLinkHeight": 0.2, + "topLinkDistance": 0.2, + "levelCount": 2, + "bayCount": 2, + "hideFloor": 0, + "extendColumns": 1, + "columnSpacing": 1, + "bays": [ + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 2.185 + ], + "topHeight": 2 + }, + { + "bayWidth": 1.1, + "levelHeight": [ + 0.001, + 2.185 + ], + "topHeight": 2 + } + ], + "center": [], + "in": [], + "out": [], + "rackWidth": 2.2, + "rackHeight": 2.186 + }, + "_rid": "_20" + }, + { + "id": "108_108", + "t": "gstore", + "v": true, + "tf": [ + [ + -6, + 0, + -1 + ], + [ + 0, + -90, + 0 + ], + [ + 1, + 0.01, + 1.2 + ] + ], + "dt": { + "in": [], + "out": [], + "center": [], + "strokeWidth": 0.1 + }, + "_rid": "_21" + } +] diff --git a/tw_zhanghui/project.json b/tw_zhanghui/project.json new file mode 100644 index 0000000..d2276d1 --- /dev/null +++ b/tw_zhanghui/project.json @@ -0,0 +1,48 @@ +{ + "project_uuid": "tw_zhanghui", + "project_label": "台湾物流展会", + "project_version": 0, + "server": "demo", + "Tool": { + "Group": [], + "GlobalVariables": [], + "UserCommand": [], + "Dashboard": [], + "DataTable": [], + "Trigger": [ + { + "name": "OnOpen", + "fn": "" + }, + { + "name": "OnReset", + "fn": "" + }, + { + "name": "OnStart", + "fn": "" + }, + { + "name": "OnStop", + "fn": "" + } + ], + "gridHelper": { + "axesEnabled": true, + "axesSize": 5, + "axesColor": 14540253, + "axesWidth": 2, + "gridEnabled": true, + "gridSize": 1000, + "gridDivisions": 1000, + "gridColor": 14540253, + "gridOpacity": 1, + "backgroundColor": 16119285, + "snapEnabled": true, + "snapDistance": 0.25 + } + }, + "elevator": [], + "wall": [], + "pillar": [] +} diff --git a/tw_zhanghui/scripts/01.ts b/tw_zhanghui/scripts/01.ts new file mode 100644 index 0000000..53b8cfa --- /dev/null +++ b/tw_zhanghui/scripts/01.ts @@ -0,0 +1,39 @@ +// 充电 +await RCS.cancelTasks('3') +await RCS.agvToCharger('3', 'charger1') + +// 初始 6_2 的右姿态,转到 6_2 的左姿态 +await RCS.cancelTasks('3'); +await RCS.agvMove('3', '4_2', '', { priority: 1, forceStartWayPointId: '6_2', forceStartDirection: 'RIGHT' }) + +/* 立刻载货 */ +await RCS.cancelTasks('3'); +await RCS.agvLoad('3', '105_105', { priority: 1, forceStartWayPointId: '4_2', forceStartDirection: 'LEFT' }) + +/* 立刻卸货 */ +await RCS.cancelTasks('3'); +await RCS.agvUnload('3', '105_105', { priority: 1, forceStartWayPointId: '4_2', forceStartDirection: 'LEFT' }) + +/* 3_2 -> 2_2 -> 1_2 */ +await RCS.cancelTasks('3'); +await RCS.agvMove('3', '1_2', '', { priority: 1, forceStartWayPointId: '4_2', forceStartDirection: 'LEFT' }) + +/* 5_2 -> 4_2 -> 3_2 -> 2_2 -> 1_2 -> load -> 2_2 -> unload */ +await RCS.cancelTasks('3'); +await RCS.agvCarry('3', 'rack1/0/0/0', 'rack1/1/0/0', { priority: 1, forceStartWayPointId: '6_2', forceStartDirection: 'RIGHT' }) + +/* 5_2 -> 4_2 -> 3_2 -> 2_2 -> 1_2 -> load -> 2_2 -> 3_2 -> 4_2 -> 5_2 -> 6_2 -> Rotation180 -> 5_2 -> 4_2 -> unload */ +await RCS.cancelTasks('3'); +await RCS.agvCarry('3', 'rack1/0/0/0', '105_105', { priority: 1, forceStartWayPointId: '6_2', forceStartDirection: 'RIGHT' }) + +/* 5_2 -> 4_2 -> 3_2 -> 2_2 -> 1_2 -> load */ +await RCS.cancelTasks('3'); +await RCS.agvLoad('3', 'rack1/0/0/0', { priority: 1, forceStartWayPointId: '6_2', forceStartDirection: 'RIGHT' }) + +/* 4_2 -> 5_2 -> 6_2 -> Rotation180 -> 5_2 -> 4_2 -> load */ +await RCS.cancelTasks('3'); +await RCS.agvLoad('3', '105_105', { priority: 1, forceStartWayPointId: '3_2', forceStartDirection: 'RIGHT' }) + +/* Rotation180 -> 5_2 -> 4_2 -> unload */ +await RCS.cancelTasks('3'); +await RCS.agvUnload('3', '105_105', { priority: 1, forceStartWayPointId: '6_2', forceStartDirection: 'RIGHT' }) diff --git a/tw_zhanghui/scripts/02.ts b/tw_zhanghui/scripts/02.ts new file mode 100644 index 0000000..76eb505 --- /dev/null +++ b/tw_zhanghui/scripts/02.ts @@ -0,0 +1,47 @@ +// 动画 +const cl2 = Model.getClx('199') +const palletId = 'pallet1125' +const yy = Model.getPositionByEntityId(palletId).y + +cl2.addTravel('1') +cl2.addRotation(-90) +cl2.addTravel('8') +cl2.addArmRaise(yy) +cl2.addArmExtender() +cl2.addLoad(palletId) +cl2.addArmRetractor() +cl2.addArmLower() +cl2.addTravel('1') +cl2.addRotation(0) +cl2.addTravel('36') +cl2.addArmRaise(0.3) +cl2.addArmExtender() +cl2.addArmLower() +cl2.addUnload(palletId, '47') +cl2.addArmRetractor() +cl2.addTravel('38') +cl2.taskStartRun() + +// 动画 +const cl2 = Model.getCl2('ptr1') +const palletId = 'pallet1124' +const yy = Model.getPositionByEntityId(palletId).y + +cl2.addTravel('23') +cl2.addRotation(90) +cl2.addTravel('27') +cl2.addArmRaise(yy) +cl2.addArmExtender() +cl2.addLoad(palletId) +cl2.addArmRetractor() +cl2.addArmLower() +cl2.addTravel('23') +cl2.addRotation(-90) +cl2.addTravel('20') +cl2.addArmRaise(0.2) +cl2.addArmExtender() +cl2.addArmLower() +cl2.addUnload(palletId, '20') +cl2.addArmRetractor() +cl2.addTravel('17') +cl2.taskStartRun() diff --git a/tw_zhanghui/virtual_executor.json b/tw_zhanghui/virtual_executor.json new file mode 100644 index 0000000..9f98d38 --- /dev/null +++ b/tw_zhanghui/virtual_executor.json @@ -0,0 +1,62 @@ +[ + { + "id": "3", + "t": "cl2", + "v": true, + "tf": [ + [ + 6.44, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 1.5, + 1.98, + 1.5 + ] + ], + "dt": { + "in": [], + "out": [], + "center": [], + "ptrWidth": 1.5, + "ptrDepth": 1.5, + "ptrHeight": 1.98 + } + }, + { + "id": "4", + "t": "clx", + "v": true, + "tf": [ + [ + 6.44, + 0, + 0 + ], + [ + 0, + 0, + 0 + ], + [ + 1.65, + 3.358, + 1.65 + ] + ], + "dt": { + "in": [], + "out": [], + "center": [], + "ptrWidth": 1.5, + "ptrDepth": 1.5, + "ptrHeight": 1.98 + } + } +]