在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → 运动控制六轴运动

运动控制六轴运动

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:2.68M
  • 下载次数:311
  • 浏览次数:1917
  • 发布时间:2019-05-16
  • 实例类别:C#语言基础
  • 发 布 人:2594079477
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 控制 运动

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using csLTDMC;
namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        private ushort _CardID = 0;//卡号
        private bool shineng = false;//使能
        private bool fuwei = false;//复位
        private void Form3_Load(object sender, EventArgs e)
        {
            // System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
            // path.AddEllipse(this.button1.ClientRectangle);
            // this.button1.Region = new Region(path);

            short num = LTDMC.dmc_board_init();//获取卡的数量
            if (num <= 0 || num > 8)
            {
                MessageBox.Show("初始卡失败", "提示");
            }
            ushort _num = 0;
            ushort[] cardids = new ushort[8];
            uint[] cardtypes = new uint[8];
            short res = LTDMC.dmc_get_CardInfList(ref _num, cardtypes, cardids);
            if (res != 0)
            {
                MessageBox.Show("获取卡信息失败", "提示");
            }

            _CardID = cardids[0];

        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {


            Application.Exit();
        }



        private void label3_Click(object sender, EventArgs e)
        {
            if (this.label3.ImageIndex == 1)
            {
                this.label3.ImageIndex = 0;


                LTDMC.dmc_write_sevon_pin(_CardID, 0, 1);//使能 卡号  轴号  低电平
                LTDMC.dmc_write_sevon_pin(_CardID, 1, 1);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 2, 1);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 3, 1);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 4, 1);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 5, 1);//使能
                MessageBox.Show("关闭使能", "提示", MessageBoxButtons.OK);
                shineng = false;

            }
            else if (this.label3.ImageIndex == 0)
            {
                this.label3.ImageIndex = 1;

                LTDMC.dmc_write_sevon_pin(_CardID, 0, 0);//使能 卡号  轴号  低电平
                LTDMC.dmc_write_sevon_pin(_CardID, 1, 0);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 2, 0);//使能
                LTDMC.dmc_write_sevon_pin(_CardID, 3, 0);//使能
                MessageBox.Show("启动使能", "提示");
                shineng = true;
            }

        }
        #region  参数
        private int y_pos = 0;
        private double start = 1000;
        private double speed = 4000;
        private double acc = 0.1;
        private double dec = 0.1;
        private double stop = 1000;
        #endregion
        private void 启动ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (shineng)
                {
                    if (fuwei)
                    {
                        LTDMC.dmc_set_position(_CardID, 0, 0);
                        LTDMC.dmc_set_position(_CardID, 1, 0);
                        int a = 5;//循环运动的次数

                        //X轴连续运动开始
                        //4.设置S段时间  (0-0.05s)  dmc_set_s_profile   //设置单轴速度曲线 S 段参数值 :CardNo 控制卡卡号 axis 指定轴号, s_mode 保留参数,固定值为 0 s_para S 段时间,单位:s;范围:0~0.5 s 
                        LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);
                        //5.//设置起始速度、运行速度、加速时间、减速时间、停止速度
                        //dmc_set_profile dmc_set_profile 参数CardNo 控制卡卡号 axis 指定轴号,起始速度,最大速度,加速时间,减速时间,停止速度
                        LTDMC.dmc_set_profile(_CardID, 0, start, speed, acc, dec, stop);
                        //6.设置运动方式为定长运动 // dmc_pmove;//定长运动  指定轴点位运动 :CardNo 控制卡卡号 axis 指定轴号, 目标位置(运动距离), posi_mode 运动模式,0:相对坐标模式,1:绝对坐标模式 
                        LTDMC.dmc_pmove(_CardID, 0, 5000, 1);
                        for (int i = 0; i >= 0; i  )
                        {
                            short y = LTDMC.dmc_check_done(_CardID, 0);
                            if (y == 1)
                            {
                                break;
                            }
                        }
                        //整体两轴循环三次
                        while (a >= 0)
                        {

                            #region 注释代码
                            //LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                            //LTDMC.dmc_set_profile(_CardID, 0, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                            ////zCardNo 控制卡卡号 axis 指定轴号 Min_Vel 起始速度, Max_Vel 最大速度 加速时间 减速时间, 停止速度
                            //LTDMC.dmc_vmove(_CardID, 0, 1);//连续运动        正方向

                            //for (int i = 0; i >= 0; i  )
                            //{
                            //    if (y_pos <= posx_1())//X轴达到指定位置  
                            //    {
                            //        //X轴运动停止
                            //        LTDMC.dmc_stop(_CardID, 0, 1); //1 立即停止  0减速停止
                            //        y_pos  = 3000;
                            //        break;
                            //    }
                            //}
                            #endregion


                            //Y轴连续运动开始

                            LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                            LTDMC.dmc_set_profile(_CardID, 1, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                            //zCardNo 控制卡卡号 axis 指定轴号 Min_Vel 起始速度, Max_Vel 最大速度 加速时间 减速时间, 停止速度
                            LTDMC.dmc_vmove(_CardID, 1, 1);//连续运动        正方向
                            for (int i = 0; i >= 0; i  )
                            {
                                if (posy_1() > 8000)//Y轴到达指定位置
                                {
                                    LTDMC.dmc_stop(_CardID, 1, 1);//Y轴运动停止
                                    LTDMC.dmc_set_position(_CardID, 1, 0);
                                    break;
                                }

                            }
                            //XY轴直线插补开始
                            // 设置插补速度 dmc_set_vector_profile_multicoorCardNo 控制卡卡号 Crd 指定控制卡上的坐标系号,  保留参数,固定值为 0  合成最大速度, 加减速时间,  保留参数,固定值为 0  保留参数,固定值为 0 
                            //直线插补运动   dmc_line_multicoor CardNo 控制卡卡号 Crd 坐标系, axisNum 插补轴数, axisList 插补轴列表 DistList 插补轴目标位置列表, posi_mode 运动模式,0:相对坐标模式,1:绝对坐标模式 
                            ushort[] axis = new ushort[2];
                            axis[0] = 0;
                            axis[1] = 1;
                            int[] pos = new int[2];
                            pos[0] = posx_1()   2000;//?绝对运动相对于自身还是原点坐标轴?
                            pos[1] = 0;
                            LTDMC.dmc_set_vector_profile_multicoor(_CardID, 0, 0, 5000, acc, dec, 0);//设置插补速度 
                            //卡号  坐标系 保留参数 最大速度   加速时间 减速时间 保留参数?
                            LTDMC.dmc_line_multicoor(_CardID, 0, 2, axis, pos, 1);
                            //判断直线插补是否完成
                            for (int i = 0; i >= 0; i  )
                            {
                                short xy = LTDMC.dmc_check_done_multicoor(_CardID, 0);
                                if (xy == 1)
                                {
                                    a--;
                                    break;
                                }
                            }
                            if (a == 0)
                            {
                                //设置单轴速度曲线 S 段参数值 
                                LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);
                                LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);
                                LTDMC.dmc_set_profile(_CardID, 0, 1000, 3000, 0.1, 0.1, 1000);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                                LTDMC.dmc_set_profile(_CardID, 1, 1000, 3000, 0.1, 0.1, 1000);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                                LTDMC.dmc_set_homemode(_CardID, 0, (ushort)0, 1, 1, 0);//设置回零模式
                                LTDMC.dmc_set_homemode(_CardID, 1, (ushort)0, 1, 1, 0);//设置回零模式
                                LTDMC.dmc_home_move(_CardID, 0);
                                LTDMC.dmc_home_move(_CardID, 1);
                                LTDMC.dmc_set_position(_CardID, 0, 0);
                                LTDMC.dmc_set_position(_CardID, 1, 0); break;
                            }

                        }
                        //                   while (a > 0)
                        //                   {



                        //                          LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                        //                          LTDMC.dmc_set_profile(_CardID, 0, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                        ////CardNo 控制卡卡号 axis 指定轴号 Min_Vel 起始速度, Max_Vel 最大速度 加速时间 减速时间, 停止速度
                        //                          LTDMC.dmc_vmove(_CardID, 0, 1);//连续运动        正方向
                        //                          for (int j = 1; j >=1; j  )
                        //                          {
                        //                              if (i < posx_1())
                        //                              {---------------------------------------------------

                        //                                  LTDMC.dmc_stop(_CardID, 0, 1); //1 立即停止  0减速停止 
                        //                                  i  = 2000;
                        //                                  LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                        //                                  LTDMC.dmc_set_profile(_CardID, 1, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                        //                                  LTDMC.dmc_vmove(_CardID, 1, 1);//连续运动
                        //                                    for (int q = 0; q >=0 ; q  )
                        //                                    {


                        //                                  if (posy_1()>2000)
                        //                                  {
                        //                                      LTDMC.dmc_stop(_CardID, 1, 1); //1 立即停止  0减速停止 
                        //                                     // 设置插补速度 dmc_set_vector_profile_multicoorCardNo 控制卡卡号 Crd 指定控制卡上的坐标系号,  保留参数,固定值为 0  合成最大速度, 加减速时间,  保留参数,固定值为 0  保留参数,固定值为 0 


                        //                                                          //直线插补运动   dmc_line_multicoor CardNo 控制卡卡号 Crd 坐标系, axisNum 插补轴数, axisList 插补轴列表 DistList 插补轴目标位置列表, posi_mode 运动模式,0:相对坐标模式,1:绝对坐标模式 
                        //                                                          ushort[] axis = new ushort[2];
                        //                                                          axis[0] = 0;
                        //                                                          axis[1] = 1;
                        //                                                          int[] pos = new int[2];
                        //                                                          pos[0] = posx_1()   2000;
                        //                                                          pos[1] = 0;
                        //                                                          LTDMC.dmc_set_vector_profile_multicoor(_CardID, 0, 0, 5000, acc, dec, 0);//设置插补速度 
                        //                                                          //卡号  坐标系 保留参数 最大速度   加速时间 减速时间 保留参数?
                        //                                                          LTDMC.dmc_line_multicoor(_CardID, 0, 2, axis, pos, 1);
                        //                                                          for (int g = 0; g >=0; g  )
                        //                                                          {
                        //                                                                short   xy=LTDMC.dmc_check_done_multicoor(_CardID,0);
                        //                                                              short y = LTDMC.dmc_check_done(_CardID, 0);
                        //                                                              short x = LTDMC.dmc_check_done(_CardID, 1);
                        //                                                              if ( x == 1)
                        //                                                              {
                        //                                                                  a--;
                        //                                                                  break;
                        //                                                              }
                        //                                                          }
                        //                                            break;
                        //                                        }

                        //                                    }


                        //                              } int y1 = LTDMC.dmc_check_done(_CardID, 0);
                        //                              int x1 = LTDMC.dmc_check_done(_CardID, 1);
                        //                              if (y1 == 1 && x1 == 1)
                        //                              {
                        //                                  a--;
                        //                                  break;
                        //                              }
                        //                          }


                        //                                //        int posy = LTDMC.dmc_get_position(_CardID, 0);

                        //                                //        if (posy == i)
                        //                                //        {
                        //                                //            i  = 2000;

                        //                                //            if (posx_1 == i)
                        //                                //            {
                        //                                //                LTDMC.dmc_stop(_CardID, 0, 1); //1 立即停止  0减速停止 
                        //                                //                int posx = LTDMC.dmc_get_position(_CardID, 1);
                        //                                //                LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                        //                                //                LTDMC.dmc_set_profile(_CardID, 1, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                        //                                //                LTDMC.dmc_vmove(_CardID, 1, 1);//连续运动        负方向

                        //                                //                if (posx == 5000)
                        //                                //                {
                        //                                //                    LTDMC.dmc_stop(_CardID, 1, 1); //1 立即停止  0减速停止
                        //                                //                    //设置插补速度 dmc_set_vector_profile_multicoorCardNo 控制卡卡号 Crd 指定控制卡上的坐标系号,  保留参数,固定值为 0  合成最大速度, 加减速时间,  保留参数,固定值为 0  保留参数,固定值为 0 
                        //                                //                    LTDMC.dmc_set_vector_profile_multicoor(_CardID, 0, 0, 10000, acc, dec, 0);//设置插补速度 
                        //                                //                    //卡号  坐标系 保留参数 最大速度   加速时间 减速时间 保留参数?
                        //                                //                    //直线插补运动   dmc_line_multicoor CardNo 控制卡卡号 Crd 坐标系, axisNum 插补轴数, axisList 插补轴列表 DistList 插补轴目标位置列表, posi_mode 运动模式,0:相对坐标模式,1:绝对坐标模式 
                        //                                //                    ushort[] axis = new ushort[2];
                        //                                //                    axis[0] = 0;
                        //                                //                    axis[1] = 1;
                        //                                //                    int[] pos = new int[2];
                        //                                //                    pos[0] = posx_1   1000;
                        //                                //                    pos[1] = 0;
                        //                                //                    LTDMC.dmc_line_multicoor(_CardID, 0, 2, axis, pos, 0);
                        //                                //                    int y = LTDMC.dmc_check_done(_CardID, 0);
                        //                                //                    int x = LTDMC.dmc_check_done(_CardID, 1);
                        //                                //                    if (y==1&&x==1)
                        //                                //                    {

                        //                                //                    }
                        //                                //                    a--;
                        //                                //                }
                        //                                //            }


                        //   }





                    }
                    else
                    {
                        MessageBox.Show("未复位", "提示");
                    }
                }
                else
                {

                    MessageBox.Show("未伺服使能", "提示");
                }

            }
            catch (Exception a)
            {

                throw a;
            }
        }

        private void 复位ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fuwei = true;
            if (shineng)
            {
                try
                {
                    //设置单轴速度曲线 S 段参数值 
                    int posx_1 = LTDMC.dmc_get_position(_CardID, 0);
                    int posy_1 = LTDMC.dmc_get_position(_CardID, 1);
                  //  int posb_1 = LTDMC.dmc_get_position(_CardID, 5);
                    LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);
                    LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);
                  //  LTDMC.dmc_set_s_profile(_CardID, 5, 0, 0.01);
                    LTDMC.dmc_set_profile(_CardID, 0, 500, 3000, 0.1, 0.1, 100);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_set_profile(_CardID, 1, 500, 3000, 0.1, 0.1, 100);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                 //   LTDMC.dmc_set_profile(_CardID, 5, 1000, 3000, 0.1, 0.1, 1000);//设置起始速度、运行速度、停止速度、加速时间、减速时间        
                    LTDMC.dmc_set_homemode(_CardID, 0, (ushort)0, 1, 1, 0);//设置回零模式
                    LTDMC.dmc_set_homemode(_CardID, 1, (ushort)0, 1, 1, 0);//设置回零模式
                  //  LTDMC.dmc_set_homemode(_CardID, 5, (ushort)0, 1, 1, 0);//设置回零模式
                    LTDMC.dmc_home_move(_CardID, 0);
                    LTDMC.dmc_home_move(_CardID, 1);
                  //  LTDMC.dmc_home_move(_CardID, 5);
                    LTDMC.dmc_set_position(_CardID, 0, 0);
                    LTDMC.dmc_set_position(_CardID, 1, 0);
                 //   LTDMC.dmc_set_position(_CardID, 5, 0);
                }
                catch (Exception a)
                {

                    throw a;
                }
            }
            else
            {
                MessageBox.Show("先伺服使能");
            }

        }

        // private void button4_MouseDown(object sender, MouseEventArgs e)
        // {
        //  if (sender.ToString()==this.button1.Text)
        //  { 
        //        LTDMC.dmc_set_s_profile(_CardID, axis, 0, 0.01);//设置S段时间(0-0.05s)       设置情况下为s型运动 不设置为梯形运动
        //    LTDMC.dmc_set_profile(_CardID, axis, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
        //    LTDMC.dmc_vmove(_CardID, axis, dir);//连续运动

        // }
        // else
        // {
        //
        // }


        //   }

        private void button4_Click(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

      
        #region 单轴连续运动函数
        #region Y轴单轴运动按下
        //上
        private void y_downshang()
        {
            double start = 1000;
            double speed = 3000;
            double acc = 1000;
            double dec = 0.1;
            double stop = 0.1;
            LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
            LTDMC.dmc_set_profile(_CardID, 1, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
            LTDMC.dmc_vmove(_CardID, 1, 0);//连续运动   
        }
        //下
        private void y_downxia()
        {
            double start = 1000;
            double speed = 3000;
            double acc = 1000;
            double dec = 0.1;
            double stop = 0.1;
            LTDMC.dmc_set_s_profile(_CardID, 1, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
            LTDMC.dmc_set_profile(_CardID, 1, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
            LTDMC.dmc_vmove(_CardID, 1, 1);//连续运动        负方向
        }

        #endregion
        #region   Y轴单轴运动松开
        //上
        private void y_up()
        {
            LTDMC.dmc_stop(_CardID, 1, 1); //1 立即停止  0减速停止  
        }
        //下
        #endregion
        #region   X轴单轴运动按下
        //左
        private void x_downleft()
        {
            double start = 1000;
            double speed = 3000;
            double acc = 1000;
            double dec = 0.1;
            double stop = 0.1;
            LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
            LTDMC.dmc_set_profile(_CardID, 0, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
            LTDMC.dmc_vmove(_CardID, 0, 0);//连续运动        负方向
        }
        //右
        private void x_downyou()
        {
            double start = 1000;
            double speed = 3000;
            double acc = 1000;
            double dec = 0.1;
            double stop = 0.1;
            LTDMC.dmc_set_s_profile(_CardID, 0, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
            LTDMC.dmc_set_profile(_CardID, 0, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
            LTDMC.dmc_vmove(_CardID, 0, 1);//连续运动        正方向
        }
        #endregion
        #region   X轴单轴运动松开
        //左
        private void x_up()
        {
            LTDMC.dmc_stop(_CardID, 0, 1); //1 立即停止  0减速停止 
        }
        //右
        #endregion 
        #region B轴按下
        //宽
                private void b_downkuan()
        {
            double start = 1000;
            double speed = 2000;
            double acc = 1000;
            double dec = 0.1;
            double stop = 0.1;
            LTDMC.dmc_set_s_profile(_CardID, 5, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
            LTDMC.dmc_set_profile(_CardID,5, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
            LTDMC.dmc_vmove(_CardID, 5, 0);//连续运动   
        }

        //窄
                private void b_downzhai()
                {
                    double start = 1000;
                    double speed = 2000;
                    double acc = 1000;
                    double dec = 0.1;
                    double stop = 0.1;
                    LTDMC.dmc_set_s_profile(_CardID, 5, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                    LTDMC.dmc_set_profile(_CardID, 5, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_vmove(_CardID, 5, 1);//连续运动   
                }
        #endregion
        #region B轴松开
                private void b_up()
                {
                    LTDMC.dmc_stop(_CardID, 5, 1); //1 立即停止  0减速停止 
                }
        #endregion
        #region Z轴按下
        //前进
                private void z_downqianjin()
                {
                    double start = 4000;
                    double speed = 8000;
                    double acc = 0.1;
                    double dec = 0.1;
                    double stop = 4000;
                    LTDMC.dmc_set_s_profile(_CardID, 5, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                    LTDMC.dmc_set_profile(_CardID, 5, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_vmove(_CardID, 5, 1);//连续运动 
                    LTDMC.dmc_set_s_profile(_CardID, 4, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                    LTDMC.dmc_set_profile(_CardID, 4, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_vmove(_CardID, 4, 1);//连续运动 
                }
        //后退
                private void z_downhoutui()
                {
                    double start = 1000;
                    double speed = 2000;
                    double acc = 1000;
                    double dec = 0.1;
                    double stop = 0.1;
                    LTDMC.dmc_set_s_profile(_CardID, 3, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                    LTDMC.dmc_set_profile(_CardID, 3, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_vmove(_CardID, 3, 0);//连续运动 
                    LTDMC.dmc_set_s_profile(_CardID, 2, 0, 0.01);//设置S段时间(0-0.05s)设置情况下为s型运动 不设置为梯形运动
                    LTDMC.dmc_set_profile(_CardID, 2, start, speed, acc, dec, stop);//设置起始速度、运行速度、停止速度、加速时间、减速时间
                    LTDMC.dmc_vmove(_CardID, 2, 0);//连续运动 
                }
        #endregion
        #region Z轴松开
                private void z_up()
                {
                    LTDMC.dmc_stop(_CardID, 4, 1); //1 立即停止  0减速停止 
                    LTDMC.dmc_stop(_CardID, 5, 1); //1 立即停止  0减速停止 
                }
        #endregion
        #endregion


                private void 停止ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LTDMC.dmc_emg_stop(_CardID);
        }

        private int posx_1()
        {
            int posx_1 = LTDMC.dmc_get_position(_CardID, 0);
            return posx_1;
        }

        private int posy_1()
        {
            int posy_1 = LTDMC.dmc_get_position(_CardID, 1);
            return posy_1;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {




            posy_1();
            posx_1();
            this.textBox1.Text = posx_1().ToString();
            this.textBox2.Text = posy_1().ToString();
            if (true)
            {

            }
        }


        #region 单轴鼠标单击松开触发事件
        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            y_downshang();
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            y_up();
        }

        private void button2_MouseDown(object sender, MouseEventArgs e)
        {
            y_downxia();
        }

        private void button2_MouseUp(object sender, MouseEventArgs e)
        {
            y_up();
        }

        private void button3_MouseDown(object sender, MouseEventArgs e)
        {
            x_downleft();
        }

        private void button3_MouseUp(object sender, MouseEventArgs e)
        {
            x_up();
        }

        private void button4_MouseDown(object sender, MouseEventArgs e)
        {
            x_downyou();
        }

        private void button4_MouseUp(object sender, MouseEventArgs e)
        {
            x_up();
        }
        
        private void button8_MouseDown(object sender, MouseEventArgs e)
        {
            z_downqianjin();
        }

        private void button8_MouseUp(object sender, MouseEventArgs e)
        {
            z_up();
            
        }

        private void button9_MouseDown(object sender, MouseEventArgs e)
        {
            z_downhoutui();
            
        }

        private void button9_MouseUp(object sender, MouseEventArgs e)
        {
            z_up();
        }

        private void button6_MouseDown(object sender, MouseEventArgs e)
        {
            b_downkuan();
        }

        private void button6_MouseUp(object sender, MouseEventArgs e)
        {
            b_up();
        }

        private void button7_MouseDown(object sender, MouseEventArgs e)
        {
            b_downzhai();
        }

        private void button7_MouseUp(object sender, MouseEventArgs e)
        {
            b_up();
        }
        #endregion
    }
}

标签: 控制 运动

实例下载地址

运动控制六轴运动

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 ZTS521 发表于: 2021-02-08 20:46 00
什么玩意,这都要积分下载,一点用没有。

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警