public bool currLoadPointIndex; // 当前落脚点 public hyCarrier(hyWorkFlow wf) { this.workFlow = wf; pos = hyWorkFlow.POS_LOAD; currPosDraw = new ServoPoint(LayoutDrawing.loadPoints[hyWorkFlow.POS_LOAD].X, LayoutDrawing.loadPoints[hyWorkFlow.POS_LOAD].Z); currPosReal = new ServoPoint(ABTask.loadPoints[hyWorkFlow.POS_LOAD].X, ABTask.loadPoints[hyWorkFlow.POS_LOAD].Z); }
public LayoutDrawing() { // ----------------------------------------------------------------------------- // // 动画的装载点位 // logicPoints[0] = loadPoints[hyWorkFlow.POS_LOAD] = new ServoPoint(0, 100);// 装载点 logicPoints[1] = loadPoints[0] = new ServoPoint(145, 171); logicPoints[2] = loadPoints[1] = new ServoPoint(213, 171); logicPoints[3] = loadPoints[2] = new ServoPoint(283, 171); logicPoints[4] = loadPoints[3] = new ServoPoint(370, 156); logicPoints[5] = loadPoints[4] = new ServoPoint(466, 156); logicPoints[6] = loadPoints[5] = new ServoPoint(562, 156); logicPoints[7] = loadPoints[6] = new ServoPoint(650, 156); //logicPoints[8] = loadPoints[7] = new ServoPoint(880, 171); logicPoints[8] = loadPoints[7] = new ServoPoint(733, 171); logicPoints[9] = loadPoints[8] = new ServoPoint(806, 171); //logicPoints[10] = loadPoints[9] = new ServoPoint(733, 171); logicPoints[10] = loadPoints[9] = new ServoPoint(880, 171); logicPoints[12] = loadPoints[hyWorkFlow.POS_IDLE] = new ServoPoint(954, 156);// 空地 logicPoints[11] = loadPoints[10] = new ServoPoint(964, 156); logicPoints[13] = loadPoints[11] = new ServoPoint(1093, 156); logicPoints[14] = loadPoints[12] = new ServoPoint(1188, 156); logicPoints[15] = loadPoints[hyWorkFlow.POS_UNLOAD] = new ServoPoint(1380, 100);// 卸载点 //loadPoints[hyWorkFlow.POS_ZERO] = zeroPos;// 零点 // destPosDraw = new ServoPoint(0, 0); currPosDraw = new ServoPoint(zeroPos.X, zeroPos.Z); // ----------------------------------------------------------------------------- // // 任务线程 // threadAB = new Thread(new ThreadStart(ThreadAB)); //也可简写为 new Thread(ThreadMethod); threadAB.Start(); //启动线程 // threadOpenStoveLid = new Thread(new ThreadStart(ThreadOpenStoveLid)); threadOpenStoveLid.Start();// 打开、关闭炉盖任务 if (drawOnly) {// 模拟操作 for (int i = 0; i < 7; i++) { SerialManual.stoveLidState[i] = SerialManual.STOVE_LID_STATE.CLOSED; } } }
public ABTask LoadXmlNodeTaskInfo() { if (xmlDoc == null) { xmlDoc = new XmlDocument(); xmlDoc.Load(xmlName); //加载xml文件 xroot = xmlDoc.SelectSingleNode("task"); } XmlNodeList xnl = xroot.ChildNodes; ABTask task = null; foreach (hyWorkFlow wf in workGroup.workFlowList) { if (wf.carrier.status == hyCarrier.STATUS.DOING_CHANGE_OVER) { // 寻找当前正在换型的夹具 if (wf.carrier.id == Convert.ToInt32(xnl[3].InnerText)) { // 确定夹具ID是一致的(复查) task = new ABTask(wf); task.taskStatus = (ABTask.STATUS)Convert.ToInt32(xnl[0].InnerText); // task_status task.AB_TASK_A = Convert.ToInt32(xnl[1].InnerText); // A task.AB_TASK_B = Convert.ToInt32(xnl[2].InnerText); // B task.carrier = wf.carrier; currCarrier = wf.carrier; carrierList.Add(currCarrier); int p = task.AB_TASK_A; switch (task.taskStatus) { case ABTask.STATUS.IDLE: case ABTask.STATUS.PREA: case ABTask.STATUS.CLAMPA: p = task.AB_TASK_A; break; default: p = task.AB_TASK_B; break; } currCarrier.currPosDraw = new ServoPoint(loadPoints[p].X, loadPoints[p].Z); currPosDraw = new ServoPoint(currCarrier.currPosDraw.X, currCarrier.currPosDraw.Z); taskList.Add(task); } } } return(task); }
public static void Init() { if (loadPoints == null) { // ----------------------------------------------------------------------------- // // 实际装载点位 // loadPoints = new ServoPoint[hyProcess.loadPointsNum]; logicPoints = new ServoPoint[hyProcess.loadPointsNum]; logicPoints[0] = loadPoints[hyWorkFlow.POS_LOAD] = new ServoPoint(0, 1360);// 装载点 logicPoints[1] = loadPoints[0] = new ServoPoint(2795, 2810); logicPoints[2] = loadPoints[1] = new ServoPoint(4215, 2810); logicPoints[3] = loadPoints[2] = new ServoPoint(5560, 2810); logicPoints[4] = loadPoints[3] = new ServoPoint(7250, 2670); logicPoints[5] = loadPoints[4] = new ServoPoint(9130, 2685); logicPoints[6] = loadPoints[5] = new ServoPoint(10920, 2720); logicPoints[7] = loadPoints[6] = new ServoPoint(12765, 2700); logicPoints[8] = loadPoints[7] = new ServoPoint(14460, 2805); //logicPoints[8] = loadPoints[7] = new ServoPoint(17120, 2820);//第6号水槽作为第4个位置 logicPoints[9] = loadPoints[8] = new ServoPoint(15790, 2810); //logicPoints[10] = loadPoints[9] = new ServoPoint(14460, 2805);//第4号水槽作为第6个位置 logicPoints[10] = loadPoints[9] = new ServoPoint(17120, 2820); logicPoints[11] = loadPoints[hyWorkFlow.POS_IDLE] = new ServoPoint(1100, 100);// 空地 //暂未标定12 13 14,且12号变为空冷,不要除渣炉 logicPoints[12] = loadPoints[10] = new ServoPoint(18260, 1365); logicPoints[13] = loadPoints[11] = new ServoPoint(24728, 500); logicPoints[14] = loadPoints[12] = new ServoPoint(26878, 500); logicPoints[15] = loadPoints[hyWorkFlow.POS_UNLOAD] = new ServoPoint(18260, 1365);//空地卸载点 //logicPoints[15] = loadPoints[hyWorkFlow.POS_UNLOAD] = new ServoPoint(28150, 1370);// 标准卸载点 //loadPoints[hyWorkFlow.POS_ZERO] = zeroPos;// 零点 } }
public bool PointsInRange(ServoPoint a, ServoPoint b, int range) { return((Math.Abs(a.X - b.X) <= range) && (Math.Abs(a.Z - b.Z) <= range)); }