canopen 驱动台达电机

首先熟悉了ds301,搞懂了sdo,Pdo,sync,heart beat,等协议基本知识,使用CAN协议分析仪通过sdo简单的进行修改pdo映射,修改控制模式等操作,然后将开源协议canfestival移植到实验板,设定好pdo的通信参数,包括cobid设置,同步方式等,然后就是映射参数,在这里要注意的是如果是动态映射,流程如下所示:

//动态映射流程,直接写入会出现无法写入的问题     
//1) Disable PDO (1400/01 = 80000000h)
//2) Delete PDO mapping (1600/00 = 0)
//3) Set new PDO mapping (1600/01 = XXXX,1600/02 = XXXX....)
//4) Set PDO mapping number (1600/00 = new number)
//5) Enable PDO (1400/01 = 00000XXX(COB-ID))

搞定了ds301的基本通信之后,就可以进行ds402的学习了,可以参考ds402和汇川的canopen说明书和台达canopen使用说明书,相互借鉴参考,先搞定最简单的速度控制模式,然后再搞位置控制模式,其中涉及到一个叫做controlword控制字的设置问题.具体设置根据需要参考如下

 index6040 controlword 

    
    //1: 判断状态字6041的bit12位是否能接新的位置指令
    //2: 将控制字6040bit5设置1
    //3: bit10 ,bit12 目标位置是否到达 是否可接收新的指令
    //在PP模式下6040 控制字的部分定义
    //-------------------------------------------------------------------------------------------------------------------------------------//
    //bit0: Switch on
    //bit1: enable volatge
    //bit2: 快速停机
    //bit3: 伺服运行
    //bit4:使能新位置指令,0->1表示预使能一段新的位置指令,是否使能成功由伺服状态决定。1->0 表示清零状态字的bit12,是否成功取决与伺服状态。
    //bit5: 位置指令更新模式,0 非立刻更新, 1 立刻更新
    //bit6: 位置指令类型, 0 目标位置是绝对位置指令 1 目标位置是相对位置指令
  //-------------------------------------------------------------------------------------------------------------------------------------//
 

index6041 statusword 状态字(只读)

    //在pp模式下6041 状态字的部分定义
    //-------------------------------------------------------------------------------------------------------------------------------------//
    //bit10: 目标位置是否到达:0 目标位置未到达 1 目标位置已到达
    //bit11: 软件内部设置超限:0 位置指令未到达软件内部位置限制 1 位置指令已到达软件内部位置限制
    //bit12: 位置指令是否能够接收: 0  伺服可接受新的位置指令   1  伺服不能接受新的位置指令
  //bit13: 位置偏差状态: 0 位置偏差在位置偏差过大阈值  1位置偏差超出位置偏差过大阈值
    //bit14: NA
    //bit15: 原点回零完成: 0 原点回零未完成  1 原点回零完成
    //--------------------------------------------------------------------------------------------------------------------------------------//    

搞定了位置模式就是插补模式了,插补模式可以实现多轴的精准同步,对控制字的要求不多,通过pdo发送

控制字为0x0f servo on 之后再每个同步周期通过pdo给index60c1-sub01发送插补值就可以了。

//插补模式控制
//P1-01 = 0x0C,

//Object 60C0h: Interpolation sub mode select
//0:廠商自訂 (線性插值—不須設定
//pos difference[OD-60C1sub2])
//-1:廠商自訂 (台達自訂–-須設定 pos
//difference[OD-60C1sub2])

//Object 60C1h: Interpolation data record
//收到 SYNC message 前, PDO 每 T msec 設定一次此紀錄; T 值是由 60C2h:01h 決定

//Object 60C2h: Interpolation time period

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值