C#之雷赛控制板卡-单轴连续运动

C#之雷赛控制板卡-连续运动代码操作流程-原理

一直运动,直到限位

    /// <summary>
    /// 连续运动
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button4_Click(object sender, EventArgs e)
    {

        // 1.获取参数

        // 1.获取参数

        // 1.1起始速度

        double startSpeed = Convert.ToDouble(tbxStartSpeed.Text.Trim());
        // 1.2运行速度
        double runSpeed = Convert.ToDouble(tbxRunSpeed.Text.Trim());


        // 1.3停止速度
        double StopSpeed = Convert.ToDouble(tbxStopSpeed.Text.Trim());

        // 1.4加速时间
        double AccTime = Convert.ToDouble(tbxAccTime.Text.Trim());


        // 1.5减速时间
        double DecTime = Convert.ToDouble(tbxDecTime.Text.Trim());


        // 1.6S段时间
        double STime = Convert.ToDouble(tbxSTime.Text.Trim());


        // 1.7 选择的轴
        ushort axis = Axises[comboBox1.SelectedIndex];
        // 1.8 移动的距离
        int distance = Convert.ToInt32(tbxMoveLocation.Text.Trim());
        // 1.9 设置为相对运动,0为相对运动,1为绝对运动
        ushort mode = 0;
        // 1.10 获取运动方向
        ushort dir = 0;



        // 2.运动
        if (IsInitFlag)
        {
            // 设置单轴运动曲线
            LTDMC.dmc_set_profile(CardNum, axis, startSpeed, runSpeed, AccTime, DecTime, StopSpeed);
            // 设置S段时间
            LTDMC.dmc_set_s_profile(CardNum, axis, mode, STime);
            // 设置减速停止时间
            LTDMC.dmc_set_dec_stop_time(CardNum, axis, DecTime);
            // 启动连续运动
            int res =  LTDMC.dmc_vmove(CardNum, axis, dir);
            if (res != 0)
            {

                MessageBox.Show("连续运动失败!");
                return;
            }
        }

    }
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐