雷赛控制卡总线方式的坑

最近在做一台设备,用的雷赛总线控制方式,第一次用,碰到一些坑,记录下。以前我用的雷赛控制卡采用的控制一直是脉冲式。

1.复位方式不同。

//仅贴出不同之处
//脉冲式  复位时的最小速度可以为0  高速 低速给0 和1 就行
if ( 0 != dmc_set_profile( nCardID, nAxisID, dMinVel, dMaxVel ,dAccTime,dDecTime, dStopVel) )
{
	return false ;
}

//回零模式 2 二次回零    EZ_count 0 锁存指令位置  1 锁存编码器位置
if (0 != dmc_set_homemode(nCardID, nAxisID, nTmpDir, HIGH_SPEED, 12, 1))
{
	return false ;
}


//总线方式  这里的坑在于 有些轴最小速度不能设置为0,不然复位时候,检查运动状态时候,会一直显示运动中
nmc_set_home_profile(nCardID,nAxisID,nOriDir,dMinVel,dMaxVel,dAccTime,dDecTime,0);   //回零模式外部可设置   参数要从雷赛软件上看 说明书上没有

if ( 0 != nmc_home_move( nCardID, nAxisID ) )
{
	return false ;
}

复位完成后,总线方式的清零都要带unit的函数。比如dmc_set_position 要改成 dmc_set_position_unit

2.IO模块

脉冲方式可以采用获取卡的IO函数,比如 dmc_read_inport 所有数据读上来后,进行移位得到每一个IO的信息。

但总线方式不行,必须每个IO口都要读一次,只能用  dmc_read_inbit 读单个口。当然,这里IO也是从0开始,但是不是从0-15 而是可以一直往上加。

3.总线控制卡初始化失败时候,需通过冷、热复位进行复位卡操作,复位完成后,需等待一定的时间,再次初始化卡操作。 另外总线方式清除报警,可以用nmc_clear_errcode 给卡号,轴号即可(说明书上没写)。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值