コード例 #1
0
        public static void Jog(int id, SDKHrobot.HRobot.CallBackFun callback)
        {
            device_id = id;
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                callback = new SDKHrobot.HRobot.CallBackFun(EventFun);
            }
            else
            {
                Console.WriteLine("connect failure.");
            }

            if (SDKHrobot.HRobot.get_motor_state(device_id) == 0)
            {
                SDKHrobot.HRobot.set_motor_state(device_id, 1);   // Servo on
            }

            SDKHrobot.HRobot.set_override_ratio(device_id, 100);
            Thread printThread = new Thread(PrintFunction);

            printThread.Start();
            while (true)
            {
                ConsoleKey keyNum = Console.ReadKey().Key;
                if (keyNum == ConsoleKey.Escape)
                {
                    break;
                }
                JogByKeyDown(keyNum, 0);
                WaitKeUp();
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: HIWINCorporation/hiwin_sdk
 public static void Disconnect(int device_id, SDKHrobot.HRobot.CallBackFun callback)
 {
     if (device_id >= 0)
     {
         SDKHrobot.HRobot.disconnect(device_id);
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: HIWINCorporation/hiwin_sdk
        public static void Motion(int device_id, SDKHrobot.HRobot.CallBackFun callback)
        {
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                callback = new SDKHrobot.HRobot.CallBackFun(EventFun);
            }
            else
            {
                Console.WriteLine("connect failure.");
                return;
            }

            if (SDKHrobot.HRobot.get_motor_state(device_id) == 0)
            {
                SDKHrobot.HRobot.set_motor_state(device_id, 1);   // Servo on
                SDKHrobot.HRobot.set_override_ratio(device_id, 50);
                Thread.Sleep(3000);
            }

            double[] cp1  = { 100, 368, 200, 180, 0, 90 };
            double[] cp2  = { 0, 368, 100, 180, 0, 90 };
            double[] cp3  = { -100, 368, 0, 180, 0, 90 };
            double[] cp4  = { 0, 368, -100, 180, 0, 90 };
            double[] cp5  = { 100, 368, 0, 180, 0, 90 };
            double[] cp6  = { 0, 368, 100, 180, 0, 90 };
            double[] cp7  = { -100, 368, 200, 180, 0, 90 };
            double[] cp8  = { 0, 368, 293.5, 180, 0, 90 };
            double[] Home = { 0, 0, 0, 0, -90, 0 };

            SDKHrobot.HRobot.set_override_ratio(device_id, 60); //override speed ratio
            SDKHrobot.HRobot.ptp_axis(device_id, 0, Home);      //ptp to axis home

            SDKHrobot.HRobot.circ_pos(device_id, 1, cp1, cp2);  //circ motion
            Thread.Sleep(1000);
            SDKHrobot.HRobot.motion_hold(device_id);
            Thread.Sleep(1000);
            SDKHrobot.HRobot.motion_continue(device_id);
            SDKHrobot.HRobot.motion_delay(device_id, 500);
            SDKHrobot.HRobot.circ_pos(device_id, 1, cp3, cp4);
            Thread.Sleep(1000);
            SDKHrobot.HRobot.motion_abort(device_id);

            SDKHrobot.HRobot.circ_axis(device_id, 1, cp5, cp6);
            Thread.Sleep(500);
            SDKHrobot.HRobot.circ_axis(device_id, 1, cp7, cp8);
            Thread.Sleep(500);
        }
コード例 #4
0
        public static void Connect(int device_id, SDKHrobot.HRobot.CallBackFun callback)
        {
            device_id = HRobot.open_connection("127.0.0.1", 1, callback);
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                StringBuilder v = new StringBuilder(100);
                SDKHrobot.HRobot.get_hrsdk_version(v);
                Console.WriteLine("hrsdk_version:" + v);

                int level = SDKHrobot.HRobot.get_connection_level(device_id);
                Console.WriteLine("level:" + level);

                SDKHrobot.HRobot.set_connection_level(device_id, 1);
                level = SDKHrobot.HRobot.get_connection_level(device_id);
                Console.WriteLine("level:" + level);

                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("connect failure.");
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: HIWINCorporation/hiwin_sdk
        public static void LINMotion(int device_id, SDKHrobot.HRobot.CallBackFun callback)
        {
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                callback = new SDKHrobot.HRobot.CallBackFun(EventFun);
                SDKHrobot.HRobot.set_override_ratio(device_id, 100);
            }
            else
            {
                Console.WriteLine("connect failure.");
                return;
            }

            if (SDKHrobot.HRobot.get_motor_state(device_id) == 0)
            {
                SDKHrobot.HRobot.set_motor_state(device_id, 1);   // Servo on
                SDKHrobot.HRobot.set_override_ratio(device_id, 50);
                Thread.Sleep(3000);
            }

            List <double> x = new List <double>();
            List <double> y = new List <double>();
            List <double> z = new List <double>();

            double[] pos     = { 0, 450, 200, 180, 0, 90 };
            int      xoffset = 20;
            int      zoffset = 10;

            //make path
            x.Add(pos[0]);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2] - zoffset);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2] - zoffset);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0]);
            y.Add(pos[1]);
            z.Add(pos[2]);

            //line motion
            for (int a = 0; a < x.Count; a++)
            {
                pos[0] = x[a];
                pos[1] = y[a];
                pos[2] = z[a];
                while (SDKHrobot.HRobot.get_command_count(device_id) > 100)
                {
                    Thread.Sleep(500);
                }
                SDKHrobot.HRobot.lin_pos(device_id, 2, 50, pos);
            }
            Thread.Sleep(1000);
            //axis
            double[] pos_home = { 0, 0, 0, 0, -90, 0 };
            SDKHrobot.HRobot.lin_axis(device_id, 2, 50, pos_home);

            //rel_pos
            Thread.Sleep(500);
            double[] pos1 = { 10, 0, 0, 0, 0, 0 };
            SDKHrobot.HRobot.lin_rel_pos(device_id, 2, 50, pos1);
            //rel_axis
            Thread.Sleep(500);
            double[] pos2 = { 10, 10, -10, 10, -10, 10 };
            SDKHrobot.HRobot.lin_rel_axis(device_id, 2, 50, pos2);

            Thread.Sleep(500);
            SDKHrobot.HRobot.lin_pr(device_id, 2, 50, 1);
        }
コード例 #6
0
        public static void File(int device_id, SDKHrobot.HRobot.CallBackFun callback)
        {
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                callback = new SDKHrobot.HRobot.CallBackFun(EventFun);
            }
            else
            {
                Console.WriteLine("connect failure.");
                return;
            }

            if (SDKHrobot.HRobot.get_motor_state(device_id) == 0)
            {
                SDKHrobot.HRobot.set_motor_state(device_id, 1);   // Servo on
            }

            SDKHrobot.HRobot.ext_task_start(device_id, 0, 1);
            Thread.Sleep(2000);
            SDKHrobot.HRobot.task_start(device_id, "test.hrb");
            Thread.Sleep(2000);
            SDKHrobot.HRobot.task_hold(device_id);
            Thread.Sleep(2000);
            SDKHrobot.HRobot.task_continue(device_id);
            Thread.Sleep(2000);
            SDKHrobot.HRobot.task_abort(device_id);

            Thread.Sleep(2000);
            string from_file_path = "test.hrb";
            string to_file_path   = "Program\\test.hrb";

            SDKHrobot.HRobot.download_file(device_id, from_file_path, to_file_path);   // 下載控制器檔名為test.hrb檔案至專案底下的Program資料夾中,且以test.hrb為名。
            string file_name = "Program\\test.hrb";

            Thread.Sleep(2000);                                           // 等待檔案下載完成,download_file與send_file不可同時進行
            SDKHrobot.HRobot.send_file(device_id, file_name, "test.hrb"); // 從專案底下的Program資料夾中上傳檔名為test.hrb檔案,且以test.hrb為名。
            Thread.Sleep(100);
            int cnt = -1;

            ulong[] alarm = new ulong[20];
            SDKHrobot.HRobot.get_alarm_code(device_id, ref cnt, alarm);
            if (cnt > 0)
            {
                SDKHrobot.HRobot.clear_alarm(device_id);
            }
            Thread.Sleep(200);
            StringBuilder update = new StringBuilder("update");

            SDKHrobot.HRobot.update_hrss(device_id, update);

            SDKHrobot.HRobot.new_folder(device_id, "new_folder");
            SDKHrobot.HRobot.file_rename(device_id, "test2.hrb", "test3.hrb");
            SDKHrobot.HRobot.file_drag(device_id, "test3.hrb", "new_folder/test3.hrb");
            SDKHrobot.HRobot.delete_file(device_id, "new_folder/test3.hrb");
            SDKHrobot.HRobot.delete_folder(device_id, "new_folder");
            for (int i = 0; i < SDKHrobot.HRobot.get_prog_number(device_id); i++)
            {
                StringBuilder str2 = new StringBuilder(20);
                SDKHrobot.HRobot.get_prog_name(device_id, i, str2);
                Console.WriteLine(str2);
            }
            Console.ReadKey();
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: HIWINCorporation/hiwin_sdk
        public static void PTPMotion(int device_id, SDKHrobot.HRobot.CallBackFun callback)
        {
            if (device_id >= 0)
            {
                Console.WriteLine("connect successful.");
                callback = new SDKHrobot.HRobot.CallBackFun(EventFun);
                SDKHrobot.HRobot.set_override_ratio(device_id, 60);
            }
            else
            {
                Console.WriteLine("connect failure.");
                return;
            }

            if (SDKHrobot.HRobot.get_motor_state(device_id) == 0)
            {
                SDKHrobot.HRobot.set_motor_state(device_id, 1);   // Servo on
                SDKHrobot.HRobot.set_override_ratio(device_id, 50);
                Thread.Sleep(3000);
            }


            List <double> x = new List <double>();
            List <double> y = new List <double>();
            List <double> z = new List <double>();

            double[] pos     = { 0, 300, -100, 0, 0, 0 };
            int      xoffset = 20;
            int      zoffset = 10;

            x.Add(pos[0]);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2] - zoffset);

            x.Add(pos[0] + xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2] - zoffset);

            x.Add(pos[0] - xoffset);
            y.Add(pos[1]);
            z.Add(pos[2]);

            x.Add(pos[0]);
            y.Add(pos[1]);
            z.Add(pos[2]);

            //ptp motion
            for (int a = 0; a < x.Count; a++)
            {
                pos[0] = x[a];
                pos[1] = y[a];
                pos[2] = z[a];
                while (SDKHrobot.HRobot.get_command_count(device_id) > 100)
                {
                    Thread.Sleep(500);
                }
                SDKHrobot.HRobot.ptp_pos(device_id, 1, pos);
            }
            Thread.Sleep(5000);
            //axis
            for (int a = 0; a < x.Count; a++)
            {
                pos[0] = x[a];
                pos[1] = y[a] - 300;
                pos[2] = z[a];
                while (SDKHrobot.HRobot.get_command_count(device_id) > 100)
                {
                    Thread.Sleep(500);
                }
                SDKHrobot.HRobot.ptp_axis(device_id, 1, pos);
            }
            Thread.Sleep(5000);
            pos[1] = 0;
            //rel_pos
            SDKHrobot.HRobot.ptp_rel_pos(device_id, 1, pos);
            Thread.Sleep(500);
            //rel_axis
            SDKHrobot.HRobot.ptp_rel_axis(device_id, 1, pos);
            Thread.Sleep(500);
            SDKHrobot.HRobot.ptp_pr(device_id, 1, 1);
        }