一、限位开关及急停开关的设置
限位开关的设置
//设置限位开关// dmc_set_el_modeushort _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;}