| | |
| | | const zOffset = -480; |
| | | |
| | | const xOffset0 = -1735; |
| | | const yOffset0 = -108; |
| | | const yOffset0 = -117; |
| | | const zOffset0 = -480; |
| | | |
| | | const xOffset1 = -1735; |
| | | const yOffset1 = -107; |
| | | const yOffset1 = -116; |
| | | const zOffset1 = -475; |
| | | |
| | | const palletX = -18; |
| | | const palletY = 2; |
| | | const palletZ = -46; |
| | | |
| | | const goodsX = -17; |
| | | const goodsY = 5; |
| | | const goodsZ = -6; |
| | | |
| | | // 堆垛机当前运行状态对象 |
| | | function CrnTask(crnData, object) { |
| | |
| | | that.preZ = 0; |
| | | that.prePosition = null; |
| | | that.preForkPos = -1; // -1, "不在定位" 0, "货叉原位" 1, "货叉在左侧远" 2, "货叉在左侧" 3, "货叉在右侧" 4, "货叉在右侧远" |
| | | that.preLoadPos = -1; |
| | | // 当前数据 |
| | | that.bay = 1 ; |
| | | that.lev = 1 ; |
| | |
| | | that.z = 0; |
| | | that.position = null; |
| | | that.forkPos = -1; |
| | | that.loadPos = -1; |
| | | |
| | | that.crnBody = null; |
| | | that.crnLoad = null; |
| | | that.crnFork = null; |
| | | |
| | | that.pallet = null; |
| | | that.goods = null; |
| | | |
| | | that.wrkNo = null; |
| | | that.sourceLocNo = null; |
| | | that.locNo = null; |
| | | |
| | | let curves = []; |
| | | |
| | |
| | | that.z = crnData.position.z; |
| | | that.position = crnData.position; |
| | | that.forkPos = crnData.forkPos; |
| | | that.loadPos = crnData.loadPos; |
| | | |
| | | that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body"); |
| | | that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load"); |
| | | that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork"); |
| | | |
| | | if (that.crnBody===null || that.crnLoad===null || that.crnFork==null) { |
| | | // console.log(that.crnNo + "号堆垛机没有初始化"); |
| | | } |
| | |
| | | that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork"); |
| | | return; |
| | | } |
| | | |
| | | // 出库 / 移库 |
| | | if (crnData.sourceLocNo != null) { |
| | | that.pallet = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Pallet"); |
| | | that.goods = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Goods"); |
| | | } else { |
| | | // 入库 |
| | | if (crnData.wrkNo != null) { |
| | | that.pallet = getArrVal(object.objects, "name", crnData.wrkNo + "-Pallet"); |
| | | that.goods = getArrVal(object.objects, "name", crnData.wrkNo + "-Goods"); |
| | | } |
| | | } |
| | | |
| | | if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) { |
| | | return; |
| | | } |
| | |
| | | that.preLev = that.lev; |
| | | that.preX = that.x; |
| | | that.preY = that.y; |
| | | that.preY = that.y; |
| | | that.preZ = that.z; |
| | | that.prePosition = JSON.parse(JSON.stringify(that.position)); |
| | | that.preForkPos = that.forkPos; |
| | | that.preLoadPos = that.loadPos; |
| | | // 当前 |
| | | that.bay = crnData.bay; |
| | | that.lev = crnData.lev; |
| | |
| | | that.z = crnData.position.z; |
| | | that.position = crnData.position; |
| | | that.forkPos = crnData.forkPos; |
| | | that.loadPos = crnData.loadPos; |
| | | that.sourceLocNo = crnData.sourceLocNo; |
| | | that.locNo = crnData.locNo; |
| | | that.wrkNo = crnData.wrkNo; |
| | | |
| | | // 根据货叉上下定位 判断堆垛机取放货作业 ----------------------------------------------- |
| | | |
| | | // 上定位 ===>> 下定位 放货完成 |
| | | if (that.preLoadPos === 1 && that.loadPos === 0) { |
| | | // 入库 / 移库 |
| | | if (that.locNo != null) { |
| | | if (that.pallet != null) { |
| | | that.pallet.name = that.locNo + "-Pallet"; |
| | | } |
| | | if (that.goods != null) { |
| | | that.goods.name = that.locNo + "-Goods"; |
| | | } |
| | | } else { |
| | | // 出库 |
| | | if (crnData.wrkNo != null) { |
| | | if (that.pallet != null) { |
| | | that.pallet.name = crnData.wrkNo + "-Pallet"; |
| | | } |
| | | if (that.goods != null) { |
| | | that.goods.name = crnData.wrkNo + "-Goods"; |
| | | } |
| | | } |
| | | } |
| | | // 下定位 ===>> 上定位 取货完成 |
| | | } else { |
| | | |
| | | } |
| | | |
| | | // create Route ------------------------------------------------ |
| | | |
| | |
| | | start: false, |
| | | progress: 0, |
| | | part: 'fork', |
| | | loaded: crnData.loaded, |
| | | loadPos: crnData.loadPos, |
| | | route: new Route([ |
| | | { |
| | | x: that.prePosition.x, |
| | |
| | | start: false, |
| | | progress: 0, |
| | | part: 'load', |
| | | loaded: crnData.loaded, |
| | | loadPos: crnData.loadPos, |
| | | route: new Route([ |
| | | { |
| | | x: that.crnLoad.position.x, |
| | |
| | | { |
| | | x: that.crnLoad.position.x, |
| | | y: that.position.y, |
| | | z: that.position.z |
| | | } |
| | | ]) |
| | | }) |
| | | } |
| | | |
| | | // 堆垛机本体运动轨迹 |
| | | if (that.prePosition.z !== that.position.z && false) { |
| | | curves.push({ |
| | | start: false, |
| | | progress: 0, |
| | | part: 'body', |
| | | route: new Route([ |
| | | { |
| | | x: that.crnBody.position.x, |
| | | y: that.crnBody.position.y, |
| | | z: that.prePosition.z |
| | | }, |
| | | { |
| | | x: that.crnBody.position.x, |
| | | y: that.crnBody.position.y, |
| | | z: that.position.z |
| | | } |
| | | ]) |
| | |
| | | let point = curves[i].route.getPoint(curves[i].progress); |
| | | if ( point && point.x ) { |
| | | switch (curves[i].part) { |
| | | case 'body': |
| | | that.crnBody.position.set(point.x, point.y, point.z); |
| | | break |
| | | case 'load': |
| | | that.crnBody.position.z = point.z + zOffset; |
| | | that.crnLoad.position.set(point.x, point.y + yOffset0, point.z + zOffset0); |
| | | that.crnFork.position.set(point.x, point.y + yOffset1, point.z + zOffset1); |
| | | that.crnBody.position.z = point.z + zOffset - that.crnBody.userData.crnBodyWidth/2; |
| | | that.crnLoad.position.set(point.x, point.y + yOffset0, point.z + zOffset0 - that.crnLoad.userData.crnLoadWidth/2 + 5); |
| | | that.crnFork.position.set(point.x, point.y + yOffset1, point.z + zOffset1 - that.crnLoad.userData.crnLoadWidth/2); |
| | | if (curves[i].loaded === 1 && that.pallet) { |
| | | that.pallet.position.set(point.x - xOffset + palletX, point.y + palletY, point.z + palletZ); |
| | | that.goods.position.set(point.x - xOffset + goodsX, point.y + goodsY, point.z + goodsZ); |
| | | } |
| | | break |
| | | case 'fork': |
| | | that.crnFork.position.set(point.x + xOffset1, point.y, point.z); |
| | | // console.log("loadPos:" + curves[i].loadPos + "\n" + that.pallet); |
| | | if (curves[i].loadPos === 1 && that.pallet) { |
| | | that.pallet.position.setX(point.x + palletX); |
| | | that.goods.position.setX(point.x + goodsX); |
| | | } |
| | | break |
| | | default: |
| | | break |