Ejemplo n.º 1
0
        /// <summary>
        /// Jog
        /// </summary>
        /// <param name="Axis"></param>
        /// <param name="dir"></param>
        /// <param name="JogVel"></param>
        /// <param name="JogAcc"></param>
        /// <param name="JogDcc"></param>
        public void Jog(short Axis, short dir, decimal JogVel, decimal JogAcc, decimal JogDcc)
        {
            //定义Jog运动参数变量
            MC.TJogPrm prfJog = new MC.TJogPrm();
            //将轴设置为Jog模式
            Gts_Return = MC.GT_PrfJog(Axis);
            LogErr?.Invoke("Motion--将轴设置为Jog模式", Gts_Return);
            //读取轴jog运动参数
            Gts_Return = MC.GT_GetJogPrm(Axis, out prfJog);
            LogErr?.Invoke("Motion--读取轴jog运动参数", Gts_Return);

            //设置要修改的参数
            prfJog.acc = Convert.ToDouble(JogAcc / Program.SystemContainer.SysPara.Gts_Acc_reference); //加速度
            prfJog.dec = Convert.ToDouble(JogDcc / Program.SystemContainer.SysPara.Gts_Acc_reference); //减速度

            //设置jog运动参数
            Gts_Return = MC.GT_SetJogPrm(Axis, ref prfJog);
            LogErr?.Invoke("Motion--设置jog运动参数", Gts_Return);

            //设置轴Jog运行速度
            if (dir == 0) //Jog+
            {
                Gts_Return = MC.GT_SetVel(Axis, Convert.ToDouble(JogVel / Program.SystemContainer.SysPara.Gts_Vel_reference));
                LogErr?.Invoke("Motion--设置轴Jog运行速度", Gts_Return);
            }
            else    // Jog-
            {
                Gts_Return = MC.GT_SetVel(Axis, Convert.ToDouble(-JogVel / Program.SystemContainer.SysPara.Gts_Vel_reference));
                LogErr?.Invoke("Motion--设置轴Jog运行速度", Gts_Return);
            }

            //启动轴运动
            Gts_Return = MC.GT_Update(1 << (Axis - 1));
            LogErr?.Invoke("Motion--启动轴运动", Gts_Return);
        }