/// <summary> /// 插补运动运行 /// </summary> public static void Interpolation_Start() { //设置X轴误差带 Gts_Return = MC.GT_SetAxisBand(1, Para_List.Parameter.Axis_X_Band, 4 * Para_List.Parameter.Axis_X_Time);//20-0.1um,4*2-250us Log.Commandhandler("X轴到位误差带", Gts_Return); //设置Y轴误差带 Gts_Return = MC.GT_SetAxisBand(2, Para_List.Parameter.Axis_Y_Band, 4 * Para_List.Parameter.Axis_Y_Time);//20-0.1um,4*2-250us Log.Commandhandler("Y轴到位误差带", Gts_Return); //缓存区延时指令 Gts_Return = MC.GT_BufDelay(1, 2, 0);//2ms Log.Commandhandler("Line_Interpolation--缓存区延时指令", Gts_Return); //启动坐标系1、FIFO0插补运动 Gts_Return = MC.GT_CrdStart(1, 0); Log.Commandhandler("Line_Interpolation--启动坐标系1、FIFO0插补运动", Gts_Return); //脉冲输出 do { //查询坐标系1、FIFO0插补运动状态 Gts_Return = MC.GT_CrdStatus( 1, //坐标系1 out run, //插补运动状态 out segment, //当前已完成的插补段数 0 ); //查询剩余插补段数 Gts_Return = MC.GT_GetRemainderSegNum( 1, //坐标系1 out Remain_Segment, //剩余插补段数 0 ); //获取坐标系位置 Gts_Return = MC.GT_GetCrdPos(1, out Crd_Pos[0]); //延时 Thread.Sleep(100); } while (run == 1); ////到位检测 //do //{ // //延时 // Thread.Sleep(100); //} while (!Prompt.Refresh.Axis01_Posed || !(Prompt.Refresh.Axis02_Posed)); //延时 Thread.Sleep(Para_List.Parameter.Posed_Time); }