Ejemplo n.º 1
0
        /// <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);
        }