Browse Source

台湾展会地图

master
yuliang 5 months ago
parent
commit
46c037e26d
  1. 24
      tw_test/envs/4.json
  2. 4
      tw_test/scripts/CLX_DEMO.ts
  3. 24
      tw_zh/envs/10.json
  4. 24
      tw_zh/envs/13.json
  5. 1390
      tw_zh/floor/f1.json
  6. 53
      tw_zh/project.json
  7. 61
      tw_zh/scripts/CL2_DEMO.ts
  8. 61
      tw_zh/scripts/CLX_DEMO.ts
  9. 35
      tw_zh/scripts/all_test.ts
  10. 3
      tw_zh/scripts/charger.ts
  11. 24
      tw_zh/scripts/run1.ts

24
tw_test/envs/4.json

@ -0,0 +1,24 @@
{
"envId": 4,
"envName": "监控",
"isVirtual": true,
"envConfig": {
"mqtt": {
"brokerUrl": "tcp://127.0.0.1:1883",
"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"
}
}
}

4
tw_test/scripts/CLX_DEMO.ts

@ -1,7 +1,7 @@
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()
const demoLocList = ['rack3/0/1/0', 'rack3/1/1/0', 'rack3/0/2/0', 'rack3/1/2/0']
const demoLocList2 = ['rack3/0/1/0', 'rack3/1/1/0', 'rack3/0/2/0', 'rack3/1/2/0'].reverse()
while (true) {
await LCC.sleep(3000)

24
tw_zh/envs/10.json

@ -0,0 +1,24 @@
{
"envId": 10,
"envName": "台湾展会物理环境",
"isVirtual": false,
"envConfig": {
"mqtt": {
"brokerUrl": "tcp://10.10.101.8:1885",
"username": "admin",
"password": "admin",
"websocket": "mqtt://10.10.101.8:9001"
},
"mysql": {
"jdbcUrl": "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"
}
}
}

24
tw_zh/envs/13.json

@ -0,0 +1,24 @@
{
"envId": 13,
"envName": "台湾展会虚拟1",
"isVirtual": true,
"envConfig": {
"mqtt": {
"brokerUrl": "tcp://127.0.0.1:1883",
"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"
}
}
}

1390
tw_zh/floor/f1.json

File diff suppressed because it is too large

53
tw_zh/project.json

@ -0,0 +1,53 @@
{
"projectUuid" : "tw_zh",
"projectLabel" : "台湾物流展会",
"subSystemList" : [ "RCS" ],
"projectFileLocation" : "",
"directoryData" : [ {
"label" : "仓库楼层",
"items" : [ {
"catalogCode" : "f1",
"label" : "一楼 (f1)"
} ]
} ],
"otherData" : {
"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" : 11184810,
"axesWidth" : 2,
"groundColor" : 16777215,
"gridEnabled" : true,
"gridSize" : 1000,
"gridDivisions" : 1000,
"gridColor" : 14540253,
"gridOpacity" : 1,
"backgroundColor" : 16119285,
"snapEnabled" : true,
"snapDistance" : 0.25
}
},
"elevator" : [ ],
"wall" : [ ],
"pillar" : [ ]
}
}

61
tw_zh/scripts/CL2_DEMO.ts

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

61
tw_zh/scripts/CLX_DEMO.ts

@ -0,0 +1,61 @@
const gstore = '108_108'
const agvId = '4'
const demoLocList = ['rack3/0/1/0', 'rack3/1/1/0', 'rack3/0/2/0', 'rack3/1/2/0']
const demoLocList2 = ['rack3/0/1/0', 'rack3/1/1/0', '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)
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('货架没有空托盘,无法执行')
}
}
}

35
tw_zh/scripts/all_test.ts

@ -0,0 +1,35 @@
// 初始 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' })

3
tw_zh/scripts/charger.ts

@ -0,0 +1,3 @@
await RCS.cancelTasks('3')
await RCS.agvToCharger('3', 'charger1')
// await RCS.agvInfo('4');

24
tw_zh/scripts/run1.ts

@ -0,0 +1,24 @@
// const v = await RCS.agvCarry('3', 'rack1/1/1/0', 'rack2/1/1/0', { priority: 1 })
// await RCS.agvCarry('3', 'rack2/0/1/0', 'rack2/1/1/0')
// await RCS.agvCarry('3', 'rack2/1/1/0', 'rack2/0/1/0')
// await RCS.cancelTasks('3')
// await RCS.agvUnload('3', 'rack2/0/1/0')
// const v = await RCS.agvCarry('3', 'rack1/0/1/0', '105_105', { priority: 1 })
// const v = await RCS.agvCarry('3','rack2/0/0/0', '105_105', { priority: 1 })
// await RCS.agvCarry('3', 'rack2/0/1/0', '105_105', { priority: 1 })
// await RCS.agvCarry('3', '105_105', 'rack1/1/1/0', { priority: 1 })
// await RCS.agvCarry('3','rack1/1/1/0','105_105', { priority: 1 })
// const v = await RCS.agvMove('3', '6_4', 'LEFT')
// const v = await RCS.agvMove('4', '5_4', 'LEFT')
// await RCS.cancelTasks('3')
// await RCS.agvMove('3', '10_4', 'RIGHT')
// const v = await RCS.agvMove('3', '8_4', 'LEFT')
// await RCS.agvInfo('4')
// await RCS.cancelTasks("4")
// await RCS.agvMove('4', '1_4', 'RIGHT')
// const v = await RCS.agvCarry('4', '108_108/0/0/0', 'rack3/0/1/0', { priority: 1 })
const v = await RCS.agvUnload('4', '108_108/0/0/0', { priority: 1 })
// const v = await RCS.agvCarry('4', 'rack3/0/1/0', 'rack3/1/2/0', { priority: 1 })
// await LCC.moveInv('TP001', 'AGV_3')
Loading…
Cancel
Save