Exemple #1
0
        private void button_Turn_Click(int dir)
        {
            int axisNo  = S1data.Axis;
            int dis     = S1data.GetDistence(axisNo);
            int vel     = S1data.GetRunSpd(axisNo);
            int MOutput = S1data.MOutput;

            S1data.SetDire(axisNo, dir);  //记录移动方向

            if ((S1data.COMSoftCon == 1) && ((MOutput & 0x1) == 0))
            {
                if (S1data.GetRunMode(axisNo) == 0)  //相对
                {
                    Com.SetMMmove(dir, dis, vel);
                }
                else if (S1data.GetRunMode(axisNo) == 1)  //连续
                {
                    Com.SetMMmove(dir, 32767, vel);
                }
                else if (S1data.GetRunMode(axisNo) == 2)  //原点
                {
                    Com.SetMMHome(dir, dis, vel);
                }
            }
            else
            {
                lForm.RecodeInfo("执行错误!");
            }
        }
Exemple #2
0
        private void button_Turn_Click(int dir)
        {
            int    axis     = S2data.Axis;
            int    pos      = S2data.GetTargloca(axis);
            int    startVel = S2data.GetStartSpd(axis);
            int    vel      = S2data.GetRunSpd(axis);
            double acc      = S2data.GetAcce(axis);
            double dec      = S2data.GetDece(axis);
            int    dist     = S2data.GetDire(axis) > 0 ? S2data.GetDistence(axis) : (-S2data.GetDistence(axis));
            int    homeDir  = S2data.GetReturnDire(axis);
            int    homeSVel = S2data.GetSecSpd(axis);
            int    homeMode = 0; //预留参数
            int    offset   = 0; //预留参数

            S2data.SetDire(axis, dir);

            if ((S2data.NetSoftCon == 1) && !Net.IsBusy(axis))
            {
                if (S2data.GetRunMode(axis) == 0)  //点对点
                {
                    Net.AbsMove(axis, pos, startVel, vel, acc, dec);
                }
                else if (S2data.GetRunMode(axis) == 1)  //连续
                {
                    Net.RltMove(axis, dir == 0 ? -2147483647 : 2147483647, startVel, vel, acc, dec);
                }
                else if (S2data.GetRunMode(axis) == 2)  //原点
                {
                    Net.Home(axis, startVel, homeDir, homeSVel, vel, acc, dec, homeMode, offset);
                }
            }
            else if ((S2data.COMSoftCon == 1) && !Com.IsBusy(axis))
            {
                if (S2data.GetRunMode(axis) == 0)  //点对点
                {
                    Com.AbsMove(axis, pos, startVel, vel, acc, dec);
                }
                else if (S2data.GetRunMode(axis) == 1)  //连续
                {
                    Com.RltMove(axis, dir == 0 ? -2147483647 : 2147483647, startVel, vel, acc, dec);
                }
                else if (S2data.GetRunMode(axis) == 2)  //原点
                {
                    Com.Home(axis, startVel, homeDir, homeSVel, vel, acc, dec, homeMode, offset);
                }
            }
            else
            {
                lForm.RecodeInfo("执行错误!");
            }
        }