雷赛运动控制卡编程(2)限位设定与回原方式、脉冲模式设置

一、限位开关及急停开关的设置

限位开关的设置

            //设置限位开关
            // dmc_set_el_mode
            ushort _cardNo=0;
            ushort _axisNo = 0;
            ushort _enable = 1;  // 正负限位使能 
            ushort _elLogic = 0;  // 正负限位 低电平 有效
            ushort _model = 0;//  正负限位停止方式为立即停止
            LTDMC.dmc_set_el_mode( _cardNo, _axisNo, _enable, _elLogic, _model);

急停开关设置

            // 急停设置
            LTDMC.dmc_set_emg_mode(_cardNo, _axisNo, _enable, _elLogic);

二、回原点设置

回原点的步骤

回原点运动主要步骤如下:
1)使用 dmc_set_home_pin_logic 函数设置原点开关的有效电平;
2)使用 dmc_set_homemode 函数设置回原点方式;
3)设置回原点运动的速度曲线;
4)设置回零偏移量、回零完成是否清零及非限位回零方式遇限位是否反找;
5)使用 dmc_home_move 函数执行回原点运动;

回原方式

方式 0:一次原点回零

适合于行程短、安全性要求高的场合。动作过程为:电机从初
始位置以恒定速度向原点方向运动,当到达原点开关位置,原点信号被触发,电机立即停止(过
程 0);将停止位置设为原点位置

 方式 1:一次原点回零加回找

该方式先进行方式 0运动,完成后再反向回找原点开关的边缘位置,当原点信号第一次无
效的时候,电机立即停止;

 方式 2:两次原点回零

该方式为方式 0和方式1的组合。先进行方式 1 的回零加反找,完成后再 进行方式 0的一次回零

 方式 3:一次原点回零后再同向找 1 个 EZ 信号后回零

该方式在回原点运动过程中,当找到原点信号后,还要等待该轴的 EZ 信号出现,此时电
机停止

 方式 4:记 1 个 EZ 信号回零

方式 5:一次原点回零再反找 EZ 信号 

该方式在回原点运动过程中,当找到原点信号后,减速停止,然后以反找速度反向找到 EZ 生效此时电机停止

 方式 6:原点锁存

电机先以设定速度回原点,当原点开关边沿触发时,将当前位置锁存下来, 同时电机减速停止。电机减速停止完成后再反向回找锁存位置,运动到锁存位置,电机停止

 方式 7:原点锁存加同向 EZ 锁存

该方式先以方式 6 执行一次原点锁存回零,完成后继续沿设定回零方向运行到 EZ 信号产
生, EZ 信号产生时锁存当前位置并执行减速停,电机减速停止之后再反向回找 EZ 的锁存位
置,运动到锁存位置,电机停止

方式 8:单独记一个 EZ 锁存

在回零过程中检测到 EZ 有效边沿出现,锁存当前位置,执行减速停,电机减速停止之后 再反向回找 EZ 的锁存位置,运动到锁存位置,电机停止

 方式 9:原点锁存加反向 EZ 锁存

该方式先以方式 6 执行一次原点锁存回零,完成后以与设定回零方向相反的方向运行到 EZ 信号产生, EZ 信号产生时锁存当前位置并执行减速停,电机减速停止之后再反向回找 EZ 的锁存位置,运动到锁存位置,电机停止

方式 10:一次限位回零

该方式以设定速度回原点;适合于行程短、安全性要求高的场合。动作过程为:电机从初
始位置以恒定速度向限位方向运动,当到达限位开关位置,限位信号被触发,电机立即停止(过
程 0);将停止位置设为原点位置

 方式 11:一次限位回零加回找

三、 脉冲模式设置

指令脉冲输出模式

 设置指定轴的脉冲输出模式

 读取指定轴的脉冲输出模式设置

四、函数测试

初始化板卡

 控制卡关闭

控制卡硬件复位函数 

获取控制卡硬件 ID 号

获取控制卡固件版本号

获取控制卡硬件版本号

 Code

        private void InitBtn_Click(object sender, EventArgs e)
        {

            short res;
            res = LTDMC.dmc_board_init();
            if (res <= 0 || res > 8)
            {
                Console.WriteLine("shibai");
                return;
            }
            // 获取轴卡上所有的ID号和固件版本号
            ushort cardNumber = 0;
            uint[] CardTypeList = new uint[8];
            ushort[] CardIdList = new ushort[8];
            res = LTDMC.dmc_get_CardInfList(ref cardNumber, CardTypeList, CardIdList);
            if (res == 0)
            {
                // 卡号
                _CardNo = CardIdList[0];
                // 版本
 
            }
            uint axises = 0;
            // 卡的轴数
          short res2=  LTDMC.dmc_get_total_axes(CardIdList[0], ref axises);
            if(res2==0)
            {
                Movtion_Number.Items.Clear();
                for (ushort i = 0; i < axises; i++)
                {
                    Axises[i] = i;
                    Movtion_Number.Items.Add(Axises[i]);
                }
                Movtion_Number.SelectedItem = 0;
                _Init_flag = true;
            }
        }

        private void ClosedBtn_Click(object sender, EventArgs e)
        {
            if (_Init_flag)
            {
                LTDMC.dmc_board_close();
            }
        }

限位开关设置

 设置 EL 限位信号

设置软限位

 

回原 

设置 ORG 原点信号  

读取 ORG 原点信号

*设置回原点模式(重点)

注意
1)当回零模式 mode=4 时,回零速度模式将固定为低速回零
2)DMC3C00 后四轴只支持 0、1、2、10、11、12 六种回零模式
3)后三种回零模式最新固件(3XX201611 及以后固件)才支持。正向回零时进行正限
位回零,负向回零时进行负限位回零; 若开始回零时处于限位信号中,会先向设置的
回零方向的反向运动,移出限位信号范围后,再变向,找相应的限位信号;一次限位回
零遇到限位信号后急停;一次限位回零加反找在反找阶段遇到限位信号后急停;二次限
位回零在第二次遇到限位信号后急停;

 读取回原点模式

回零遇限位是否反找

 读取回零遇限位是否反找

设置回零偏移量及清零模式

读取回零偏移量及清零模式

设置开启限位反找偏移距离

读取限位反找偏移距离

回原点运动

读取回零执行状态

  public int GoHome()
  {
      //设置原点信号的有效电平
      ushort _cardNo = 0;
      ushort _axisNo = 0;
      ushort _org_log = 0;  // 原点信号低电平有效
      double filter = 0.4;  //保留参数
    
      LTDMC.dmc_set_home_pin_logic(_cardNo, _axisNo,_org_log,filter);


      // 选择回原的模式
      ushort _home_dir = 0;  //负方向回零
      double _vel = 0;   //回零速度模式为低速
      ushort _mode = 1;  //回零模式为方式 1,一次回零
      ushort _EZ_count = 2;//保留参数
      LTDMC.dmc_set_homemode(_cardNo, _axisNo, _home_dir, _vel, _mode, _EZ_count);




      // 设置回零遇限位是否反找
      ushort _enable = 0;
      LTDMC.dmc_set_home_el_return(_cardNo, _axisNo, _enable);


      // 设置回零偏移量及清零模式
      LTDMC.dmc_set_home_position(_cardNo, _axisNo,_enable,-19);

      // 按指定的方向和速度方式开始回原点
      LTDMC.dmc_home_move(_cardNo, _axisNo);

      // 读取回零状态
      ushort _statble = 0;
      LTDMC.dmc_get_home_result(_cardNo, _axisNo,ref  _statble);

      return 0;
  }

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值