Пример #1
0
        public Boolean move_XYZABC_TogetherMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc)
        {
            if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0])
            {
                if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1])
                {
                    if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2])
                    {
                        if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3])
                        {
                            if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4])
                            {
                                if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5])
                                {

                                    float[] XyzabcWaitTime = new float[3];
                                    float[] TempWaitTime = new float[3];
                                    int[] Order = new int[3] { -1, -1, -1 };
                                    int SwitchMode;
                                    TempWaitTime[0] = Math.Abs(((newXyzabc.X - oldXyzabc.X) / Vel) * 12);
                                    TempWaitTime[1] = Math.Abs(((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12);
                                    TempWaitTime[2] = Math.Abs(((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12);
                                    XyzabcWaitTime[0] = ((newXyzabc.X - oldXyzabc.X) / Vel) * 12;
                                    XyzabcWaitTime[1] = ((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12;
                                    XyzabcWaitTime[2] = ((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12;
                                    Array.Sort(TempWaitTime);

                                    for (int i = 0; i < 3; i++)
                                    {
                                        if ((Order[0] == -1) & Math.Abs(TempWaitTime[0] - Math.Abs(XyzabcWaitTime[i])) < 0.01)
                                        {
                                            Order[0] = i;
                                        }
                                        else if ((Order[1] == -1) & Math.Abs(TempWaitTime[1] - Math.Abs(XyzabcWaitTime[i])) < 0.01)
                                        {
                                            Order[1] = i;
                                        }
                                        else if ((Order[2] == -1) & Math.Abs(TempWaitTime[2] - Math.Abs(XyzabcWaitTime[i])) < 0.01)
                                        {
                                            Order[2] = i;
                                        }

                                    }

                                    if (((int)(TempWaitTime[1] - TempWaitTime[0]) == 0) & ((int)(TempWaitTime[2] - TempWaitTime[1]) == 0))
                                    {
                                        SwitchMode = 3;
                                    }
                                    else if (((int)(TempWaitTime[1] - TempWaitTime[0]) == 0))
                                    {
                                        SwitchMode = 1;
                                    }
                                    else if (((int)(TempWaitTime[2] - TempWaitTime[1]) == 0))
                                    {
                                        SwitchMode = 2;
                                    }
                                    else
                                    {
                                        SwitchMode = 0;
                                    }


                                    

                                    switch (SwitchMode)
                                    {
                                        case 0:
                                            xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString();
                                            xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString();
                                            xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString();
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round(TempWaitTime[0]));
                                            xyzabcCommand[Order[0]] = "0";
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round((TempWaitTime[1] - TempWaitTime[0])));
                                            xyzabcCommand[Order[1]] = "0";
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round((TempWaitTime[2] - TempWaitTime[1])));
                                            xyzabcCommand[Order[2]] = "0";
                                            move_KukaArm("Xyzabc");
                                            break;

                                        case 1:
                                            xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString();
                                            xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString();
                                            xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString();
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round(TempWaitTime[0]));
                                            xyzabcCommand[Order[0]] = "0";
                                            xyzabcCommand[Order[1]] = "0";
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round((TempWaitTime[2] - TempWaitTime[1])));
                                            xyzabcCommand[Order[2]] = "0";
                                            move_KukaArm("Xyzabc");
                                            break;

                                        case 2:
                                            xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString();
                                            xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString();
                                            xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString();
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round(TempWaitTime[0]));
                                            xyzabcCommand[Order[0]] = "0";
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round((TempWaitTime[1] - TempWaitTime[0])));
                                            xyzabcCommand[Order[1]] = "0";
                                            xyzabcCommand[Order[2]] = "0";
                                            move_KukaArm("Xyzabc");
                                            break;

                                        case 3:
                                            xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString();
                                            xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString();
                                            xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString();
                                            move_KukaArm("Xyzabc");

                                            Thread.Sleep((int)Math.Round(TempWaitTime[0]));
                                            xyzabcCommand[Order[0]] = "0";
                                            xyzabcCommand[Order[1]] = "0";
                                            xyzabcCommand[Order[2]] = "0";
                                            move_KukaArm("Xyzabc");
                                            break;

                                        default:
                                            break;
                                    }                                  

                                }
                            }
                        }
                    }
                }
                return true;
            }

            else
            {
                return false;
            }
        }
Пример #2
0
        public Boolean move_XYZABC_RotationMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc)
        {
            if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0])
            {
                if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1])
                {
                    if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2])
                    {
                        if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3])
                        {
                            if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4])
                            {
                                if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5])
                                {
                                    float[] SleepTime = new float[3];

                                    SleepTime[0] = newXyzabc.A - oldXyzabc.A;
                                    SleepTime[1] = newXyzabc.B - oldXyzabc.B;
                                    SleepTime[2] = newXyzabc.C - oldXyzabc.C;   


                                    xyzabcCommand[3] = (Math.Sign(SleepTime[0]) * rotation_Vel).ToString();
                                    move_KukaArm("Xyzabc");

                                    Thread.Sleep((int)Math.Round(((Math.Abs(SleepTime[0]) * 12.0)) / rotation_Vel));
                                    xyzabcCommand[3] = "0";
                                    xyzabcCommand[4] = (-Math.Sign(SleepTime[1]) * rotation_Vel).ToString();
                                    move_KukaArm("Xyzabc");

                                    Thread.Sleep((int)Math.Round(((Math.Abs(SleepTime[1]) * 12.0)) / rotation_Vel));
                                    xyzabcCommand[4] = "0";
                                    move_KukaArm("Xyzabc");

                                }
                            }
                        }
                    }
                }
                return true;
            }
            else
            {
                return false;
            }
        }
Пример #3
0
        public void move_XYZABC(Coordinate_XYZABC newXyzabc)
        {

            xyzabcCommand[0] = newXyzabc.X.ToString();
            xyzabcCommand[1] = newXyzabc.Y.ToString();
            xyzabcCommand[2] = newXyzabc.Z.ToString();
            xyzabcCommand[3] = newXyzabc.A.ToString();
            xyzabcCommand[4] = newXyzabc.B.ToString();
            xyzabcCommand[5] = newXyzabc.C.ToString();
            move_KukaArm("Xyzabc");
            //(12ms =  一單位)
            Thread.Sleep(12);
            xyzabcCommand[0] = "0";
            xyzabcCommand[1] = "0";
            xyzabcCommand[2] = "0";
            xyzabcCommand[3] = "0";
            xyzabcCommand[4] = "0";
            xyzabcCommand[5] = "0";
            move_KukaArm("Xyzabc");
          
        }
Пример #4
0
        public Boolean move_XYZABC_SingalMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc)
        {
            if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0])
            {
                if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1])
                {
                    if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2])
                    {
                        if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3])
                        {
                            if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4])
                            {
                                if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5])
                                {
                                    Double[] XyzabcWaitTime = new Double[6];

                                    XyzabcWaitTime[0] = ((newXyzabc.X - oldXyzabc.X) / Vel) * 12.0;
                                    XyzabcWaitTime[1] = ((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12.0;
                                    XyzabcWaitTime[2] = ((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12.0;

                                    xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString();
                                    xyzabcCommand[1] = "0";
                                    xyzabcCommand[2] = "0";
                                    xyzabcCommand[3] = "0";
                                    xyzabcCommand[4] = "0";
                                    xyzabcCommand[5] = "0";
                                    move_KukaArm("Xyzabc");

                                    Thread.Sleep( (int)Math.Round(Math.Abs(XyzabcWaitTime[0])));
                                    XyzabcCommand[0] = "0";
                                    XyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString();
                                    XyzabcCommand[2] = "0";
                                    xyzabcCommand[3] = "0";
                                    xyzabcCommand[4] = "0";
                                    xyzabcCommand[5] = "0";
                                    move_KukaArm("Xyzabc");

                                    Thread.Sleep((int)Math.Round(Math.Abs(XyzabcWaitTime[1])));
                                    xyzabcCommand[0] = "0";
                                    xyzabcCommand[1] = "0";
                                    xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString();
                                    xyzabcCommand[3] = "0";
                                    xyzabcCommand[4] = "0";
                                    xyzabcCommand[5] = "0";
                                    move_KukaArm("Xyzabc");

                                    Thread.Sleep((int)Math.Round(Math.Abs(XyzabcWaitTime[2])));
                                    xyzabcCommand[0] = "0";
                                    xyzabcCommand[1] = "0";
                                    xyzabcCommand[2] = "0";
                                    xyzabcCommand[3] = "0";
                                    xyzabcCommand[4] = "0";
                                    xyzabcCommand[5] = "0";
                                    move_KukaArm("Xyzabc");

                                }
                            }
                        }
                    }
                }
                return true;
            }

            else
            {
                return false;
            }
        }
Пример #5
0
        private void KukaMoveXyzabcModeThread()
        {
            switch (XyzabcMode)
            {
                case "X":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Command.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 1;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = -1;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }
                case "Y":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Command.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 1;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = -1;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }
                case "Z":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Command.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 1;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = -1;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }
                case "A":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Command.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 1;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = -1;
                        newXyzabc.B = 0;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }
                case "B":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Command.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 1;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = -1;
                        newXyzabc.C = 0;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }
                case "C":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Command.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                    }
                    else if (MoveType == "1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = 1;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = 0;
                        newXyzabc.Y = 0;
                        newXyzabc.Z = 0;
                        newXyzabc.A = 0;
                        newXyzabc.B = 0;
                        newXyzabc.C = -1;
                        KukaRobotControlObject.move_XYZABC(newXyzabc);
                        newXyzabc = null;
                    }
                    break;
                }

                case "A1" :
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 1;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = -1;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "A2":
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 1;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = -1;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "A3":
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 1;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = -1;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "A4":
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 1;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = -1;
                        newAxis.A5 = 0;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "A5":
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 1;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = -1;
                        newAxis.A6 = 0;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "A6":
                {
                    if (MoveType == "0")
                    {

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = 1;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    else if (MoveType == "-1")
                    {
                        newAxis = new Coordinate_Axis();
                        newAxis.A1 = 0;
                        newAxis.A2 = 0;
                        newAxis.A3 = 0;
                        newAxis.A4 = 0;
                        newAxis.A5 = 0;
                        newAxis.A6 = -1;
                        KukaRobotControlObject.move_Axis(newAxis);
                        newAxis = null;
                    }
                    break;
                }
                case "Xyzabc":
                {
                    newXyzabc = new Coordinate_XYZABC();
                    oldXyzabc = new Coordinate_XYZABC();
                    newXyzabc.X = float.Parse(X_Command.Text);
                    newXyzabc.Y = float.Parse(Y_Command.Text);
                    newXyzabc.Z = float.Parse(Z_Command.Text);
                    newXyzabc.A = float.Parse(A_Value.Text);
                    newXyzabc.B = float.Parse(B_Value.Text);
                    newXyzabc.C = float.Parse(C_Value.Text);
                    oldXyzabc.X = float.Parse(X_Value.Text);
                    oldXyzabc.Y = float.Parse(Y_Value.Text);
                    oldXyzabc.Z = float.Parse(Z_Value.Text);
                    oldXyzabc.A = float.Parse(A_Value.Text);
                    oldXyzabc.B = float.Parse(B_Value.Text);
                    oldXyzabc.C = float.Parse(C_Value.Text);

                    //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                    if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                    oldXyzabc = null;
                    newXyzabc = null;
                    break;
                }
                case "Axis":
                {
                    if (MoveType == "0")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Command.Text);
                        newAxis.A2 = float.Parse(A2_Command.Text);
                        newAxis.A3 = float.Parse(A3_Command.Text);
                        newAxis.A4 = float.Parse(A4_Command.Text);
                        newAxis.A5 = float.Parse(A5_Command.Text);
                        newAxis.A6 = float.Parse(A6_Command.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;

                    }
                    else if (MoveType == "1")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Command.Text);
                        newAxis.A2 = float.Parse(A2_Value.Text);
                        newAxis.A3 = float.Parse(A3_Value.Text);
                        newAxis.A4 = float.Parse(A4_Value.Text);
                        newAxis.A5 = float.Parse(A5_Value.Text);
                        newAxis.A6 = float.Parse(A6_Value.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "2")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Value.Text);
                        newAxis.A2 = float.Parse(A2_Command.Text);
                        newAxis.A3 = float.Parse(A3_Value.Text);
                        newAxis.A4 = float.Parse(A4_Value.Text);
                        newAxis.A5 = float.Parse(A5_Value.Text);
                        newAxis.A6 = float.Parse(A6_Value.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "3")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Value.Text);
                        newAxis.A2 = float.Parse(A2_Value.Text);
                        newAxis.A3 = float.Parse(A3_Command.Text);
                        newAxis.A4 = float.Parse(A4_Value.Text);
                        newAxis.A5 = float.Parse(A5_Value.Text);
                        newAxis.A6 = float.Parse(A6_Value.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "4")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Value.Text);
                        newAxis.A2 = float.Parse(A2_Value.Text);
                        newAxis.A3 = float.Parse(A3_Value.Text);
                        newAxis.A4 = float.Parse(A4_Command.Text);
                        newAxis.A5 = float.Parse(A5_Value.Text);
                        newAxis.A6 = float.Parse(A6_Value.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "5")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Value.Text);
                        newAxis.A2 = float.Parse(A2_Value.Text);
                        newAxis.A3 = float.Parse(A3_Value.Text);
                        newAxis.A4 = float.Parse(A4_Value.Text);
                        newAxis.A5 = float.Parse(A5_Command.Text);
                        newAxis.A6 = float.Parse(A6_Value.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "6")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(A1_Value.Text);
                        newAxis.A2 = float.Parse(A2_Value.Text);
                        newAxis.A3 = float.Parse(A3_Value.Text);
                        newAxis.A4 = float.Parse(A4_Value.Text);
                        newAxis.A5 = float.Parse(A5_Value.Text);
                        newAxis.A6 = float.Parse(A6_Command.Text);
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Axis Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                    }
                    else if (MoveType == "9")
                    {
                        newAxis = new Coordinate_Axis();
                        oldAxis = new Coordinate_Axis();
                        newAxis.A1 = float.Parse(Path[Path_count, 0].ToString());
                        newAxis.A2 = float.Parse(Path[Path_count, 1].ToString());
                        newAxis.A3 = float.Parse(Path[Path_count, 2].ToString());
                        newAxis.A4 = float.Parse(Path[Path_count, 3].ToString());
                        newAxis.A5 = float.Parse(Path[Path_count, 4].ToString());
                        newAxis.A6 = float.Parse(Path[Path_count, 5].ToString());
                        oldAxis.A1 = float.Parse(A1_Value.Text);
                        oldAxis.A2 = float.Parse(A2_Value.Text);
                        oldAxis.A3 = float.Parse(A3_Value.Text);
                        oldAxis.A4 = float.Parse(A4_Value.Text);
                        oldAxis.A5 = float.Parse(A5_Value.Text);
                        oldAxis.A6 = float.Parse(A6_Value.Text);

                        //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                        if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldAxis = null;
                        newAxis = null;
                        Path_count++;
                        if (Path_count == 20)
                        {
                            Path_count = 0;
                        }
                    }
                    break;
                }
                case "XyzabcHome":
                {
                    newAxis = new Coordinate_Axis();
                    oldAxis = new Coordinate_Axis();
                    newAxis.A1 = 0;
                    newAxis.A2 = -90;
                    newAxis.A3 = 90;
                    newAxis.A4 = 0;
                    newAxis.A5 = -90;
                    newAxis.A6 = -180;
                    oldAxis.A1 = float.Parse(A1_Value.Text);
                    oldAxis.A2 = float.Parse(A2_Value.Text);
                    oldAxis.A3 = float.Parse(A3_Value.Text);
                    oldAxis.A4 = float.Parse(A4_Value.Text);
                    oldAxis.A5 = float.Parse(A5_Value.Text);
                    oldAxis.A6 = float.Parse(A6_Value.Text);

                    //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                    if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis))
                        myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                    oldAxis = null;
                    newAxis = null;
                    break;

                }
                case "PoseEstimation":
                {
                    if (MoveType == "0")
                    {
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[0];
                        newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[1];
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);                      
                        oldXyzabc = null;
                        newXyzabc = null;


                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4];
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4];
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;
                     
                        IsArmCanMove = true;
                        KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9;
                        
                    }
                    else if (MoveType == "1")
                    {
                        
                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;


                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4];
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4];
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;


                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0];
                        newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1];
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        IsArmCanMove = true;
                        KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9;
                        
                    }
                    else if (MoveType == "2")
                    {
                        /*
                         *  抓取物件
                         */
                        GraspObjectType = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._ObjectType;
                        Start_A = float.Parse(A_Value.Text);

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = Start_A + KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._A;
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = Start_A;
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._X;
                        newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._Y;
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._Z;
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        /*
                         *  抓取物件
                         */
                        GraspState = 1;
                        Thread GraspControl = new Thread(new ThreadStart(GraspControlThread));
                        GraspControl.Start();
                        Thread.Sleep(200);

                        /*
                         *  往上移動至擷取圖像點
                         */

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0];
                        newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1];
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = Start_A;
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = Start_A + KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._A;
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                       /* newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4];
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4];
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;*/


                        /*newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;/*


                        /*
                         *    請求Server端擷新影像
                         */
                        KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 5;
                        /*while (KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State == 5)
                        {
                            //Thread.Sleep(50);
                        }*/

                        /*
                         *  放置物件
                         */
                       /* newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;*/

                        /*newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = float.Parse(Z_Value.Text);
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4];
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4];
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;*/


                        //newXyzabc = new Coordinate_XYZABC();
                        //oldXyzabc = new Coordinate_XYZABC();
                        //newXyzabc.X = float.Parse(X_Value.Text);
                        //newXyzabc.Y = float.Parse(Y_Value.Text);
                        //newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        //newXyzabc.A = float.Parse(A_Value.Text);
                        //newXyzabc.B = float.Parse(B_Value.Text);
                        //newXyzabc.C = float.Parse(C_Value.Text);
                        //oldXyzabc.X = float.Parse(X_Value.Text);
                        //oldXyzabc.Y = float.Parse(Y_Value.Text);
                        //oldXyzabc.Z = float.Parse(Z_Value.Text);
                        //oldXyzabc.A = float.Parse(A_Value.Text);
                        //oldXyzabc.B = float.Parse(B_Value.Text);
                        //oldXyzabc.C = float.Parse(C_Value.Text);
                        //if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                        //    myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        //oldXyzabc = null;
                        //newXyzabc = null;

                        if (GraspObjectType == 0)
                        {
                            newXyzabc = new Coordinate_XYZABC();
                            oldXyzabc = new Coordinate_XYZABC();
                            newXyzabc.X = 600;
                            newXyzabc.Y = -200;
                            newXyzabc.Z = 90;
                            newXyzabc.A = float.Parse(A_Value.Text);
                            newXyzabc.B = float.Parse(B_Value.Text);
                            newXyzabc.C = float.Parse(C_Value.Text);
                            oldXyzabc.X = float.Parse(X_Value.Text);
                            oldXyzabc.Y = float.Parse(Y_Value.Text);
                            oldXyzabc.Z = float.Parse(Z_Value.Text);
                            oldXyzabc.A = float.Parse(A_Value.Text);
                            oldXyzabc.B = float.Parse(B_Value.Text);
                            oldXyzabc.C = float.Parse(C_Value.Text);
                            if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                                myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                            oldXyzabc = null;
                            newXyzabc = null;
                        }
                        else if (GraspObjectType == 1)
                        {
                            newXyzabc = new Coordinate_XYZABC();
                            oldXyzabc = new Coordinate_XYZABC();
                            newXyzabc.X = 300;
                            newXyzabc.Y = -200;
                            newXyzabc.Z = float.Parse(Z_Value.Text);
                            newXyzabc.A = float.Parse(A_Value.Text);
                            newXyzabc.B = float.Parse(B_Value.Text);
                            newXyzabc.C = float.Parse(C_Value.Text);
                            oldXyzabc.X = float.Parse(X_Value.Text);
                            oldXyzabc.Y = float.Parse(Y_Value.Text);
                            oldXyzabc.Z = float.Parse(Z_Value.Text);
                            oldXyzabc.A = float.Parse(A_Value.Text);
                            oldXyzabc.B = float.Parse(B_Value.Text);
                            oldXyzabc.C = float.Parse(C_Value.Text);
                            if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                                myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                            oldXyzabc = null;
                            newXyzabc = null;

                            newXyzabc = new Coordinate_XYZABC();
                            oldXyzabc = new Coordinate_XYZABC();
                            newXyzabc.X = float.Parse(X_Value.Text);
                            newXyzabc.Y = float.Parse(Y_Value.Text);
                            newXyzabc.Z = 90;
                            newXyzabc.A = float.Parse(A_Value.Text);
                            newXyzabc.B = float.Parse(B_Value.Text);
                            newXyzabc.C = float.Parse(C_Value.Text);
                            oldXyzabc.X = float.Parse(X_Value.Text);
                            oldXyzabc.Y = float.Parse(Y_Value.Text);
                            oldXyzabc.Z = float.Parse(Z_Value.Text);
                            oldXyzabc.A = float.Parse(A_Value.Text);
                            oldXyzabc.B = float.Parse(B_Value.Text);
                            oldXyzabc.C = float.Parse(C_Value.Text);
                            if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                                myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                            oldXyzabc = null;
                            newXyzabc = null;
                        }
                        else if (GraspObjectType == 2)
                        {
                            newXyzabc = new Coordinate_XYZABC();
                            oldXyzabc = new Coordinate_XYZABC();
                            newXyzabc.X = 450;
                            newXyzabc.Y = -200;
                            newXyzabc.Z = 90;
                            newXyzabc.A = float.Parse(A_Value.Text);
                            newXyzabc.B = float.Parse(B_Value.Text);
                            newXyzabc.C = float.Parse(C_Value.Text);
                            oldXyzabc.X = float.Parse(X_Value.Text);
                            oldXyzabc.Y = float.Parse(Y_Value.Text);
                            oldXyzabc.Z = float.Parse(Z_Value.Text);
                            oldXyzabc.A = float.Parse(A_Value.Text);
                            oldXyzabc.B = float.Parse(B_Value.Text);
                            oldXyzabc.C = float.Parse(C_Value.Text);
                            if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                                myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                            oldXyzabc = null;
                            newXyzabc = null;
                        }

                       
                        /*newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = float.Parse(X_Value.Text);
                        newXyzabc.Y = float.Parse(Y_Value.Text);
                        newXyzabc.Z = 90;
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
             
                         * oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;*/

                        Thread.Sleep(100);
                        GraspState = -1;
                        GraspControl = new Thread(new ThreadStart(GraspControlThread));
                        GraspControl.Start();

                        //newXyzabc = new Coordinate_XYZABC();
                        //oldXyzabc = new Coordinate_XYZABC();
                        //newXyzabc.X = float.Parse(X_Value.Text);
                        //newXyzabc.Y = float.Parse(Y_Value.Text);
                        //newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        //newXyzabc.A = float.Parse(A_Value.Text);
                        //newXyzabc.B = float.Parse(B_Value.Text);
                        //newXyzabc.C = float.Parse(C_Value.Text);
                        //oldXyzabc.X = float.Parse(X_Value.Text);
                        //oldXyzabc.Y = float.Parse(Y_Value.Text);
                        //oldXyzabc.Z = float.Parse(Z_Value.Text);
                        //oldXyzabc.A = float.Parse(A_Value.Text);
                        //oldXyzabc.B = float.Parse(B_Value.Text);
                        //oldXyzabc.C = float.Parse(C_Value.Text);
                        //if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc))
                        //    myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        //oldXyzabc = null;
                        //newXyzabc = null;

                        newXyzabc = new Coordinate_XYZABC();
                        oldXyzabc = new Coordinate_XYZABC();
                        newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0];
                        newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1];
                        newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2];
                        newXyzabc.A = float.Parse(A_Value.Text);
                        newXyzabc.B = float.Parse(B_Value.Text);
                        newXyzabc.C = float.Parse(C_Value.Text);
                        oldXyzabc.X = float.Parse(X_Value.Text);
                        oldXyzabc.Y = float.Parse(Y_Value.Text);
                        oldXyzabc.Z = float.Parse(Z_Value.Text);
                        oldXyzabc.A = float.Parse(A_Value.Text);
                        oldXyzabc.B = float.Parse(B_Value.Text);
                        oldXyzabc.C = float.Parse(C_Value.Text);
                        if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc))
                            myListBox("Error : Xyzabc Out of limited!!", ListMsg);
                        oldXyzabc = null;
                        newXyzabc = null;

                        IsArmCanMove = true;
                        KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9;
                        
                    }
                    break;
                }
                default:
                {
                    break;
                }
            }
        }