ECAT轴【调试笔记】

网口区分输入输出:插错会导致总线棕色三角标

看清楚从站的rj45网口的in和out,不要插错了。

硬件搭建好后:
1鼠标点击 EtherCat主站
2点击【扳手在线】
3【ecat主站】右键,扫描网络【如果报错,修改实际ecat网口mac】,扫描出硬件,复制到工程,
        然后【离线】然后驱动器下添加【CIA402电机】然后电机改别名,如【X1】
4【扳手在线】点击从站电机
5调试
6电机点击对应按钮,电机应该正常工作【能旋转】

 学前知识:

SDO和PDO有区别:
SDO是对单一寄存器的读写。【效率低】
SDO只在PDO通讯前,只运行一次。【相当于对对象的初始化】

PDO是批量读写多个寄存器【效率高】【利用一帧数据的数据包长度,
直接覆盖到对应的寄存器组】这样【一帧数据包】就能批量写多个寄存器了
PDO是在硬件的ecat线程中死循环运行的。

驱动器使用前的注意事项:

步进电机不同于伺服。【缺力矩模式】
1先用SDO调节电机电流。   【参考:雷赛 0x2000】
2再修改电机一圈脉冲当量。 【参考:雷赛 0x2001】

在驱动器页》SDO启动参数》添加

 0x6060是伺服的工作模式【定位,速度,力矩,力矩定位,等】。

【1】先设置电机额定电流;【2】再设置圈脉冲。 

回零:【0x6098赋值35和37是当前位置为零点】

伺服模式:6060    //【1位置 3速度 4扭矩 6回零 7补间 8CSP  // 8是ecat

设置速度:6081
起跳速度:6082
加速:6083
减速:6084
急停速度:6085

原点偏置:607C
回零方式:6098 // 【35和37当前位置,设置零位】17~37(十进制)
回零高速:6099-01
回零低速:6099-02
回零加减速:609A
回零最大速度:607F

位置偏差阀值:6065

当前模式:6061
状态字:6041
指令位置:60FC
编码值:6063
坐标位置:6064
位置偏差:60F4
速度反馈:606C
错误码:603F

//6040-b4触发    b8停止

 0x6098设置35后,这样调试的时候,方便调节电机零位,先失能后转动电机,然后使能,然后回零。

点击通用》勾选专家模式》点击COE在线》设置0x6098=35;

 

电子齿轮比: 

电子齿轮比非常重要。
这个分2部分:软件缩放比和伺服齿轮比。

软件缩放比: 软件上位置1.00mm对应给下位机发多少脉冲。
假设丝杆导程是5mm【电机转一圈是5毫米】// 始终以一圈为参考单位
软件5mm发25万脉冲给下位机,那缩放比是【10000 : 1】
就是说:软件走1毫米,发给下位机10000脉冲。//伺服位置寄存器u32bit
【一个导程,你想发多少脉冲当量】
//=========================
伺服电机:
分子:填编码器脉冲数
分母:一个导程的脉冲当量【例如:设置50000,就是上位机要发5万脉冲,电机才能转1圈】

【转速】一个导程值,为1秒1圈。
每分钟转数【/】60【x】导程值

 要改成 10000比1   或者  【50000 比 5 】

【编码器脉冲数】        【电机圈数】
【电机圈速】            【减速机输出圈速】
【减速机输出圈速】       【应用程序移动单元】

同样的步进电机也要改齿轮比。

都是以1圈为参考:
伺服齿轮比改成:50000脉冲 一圈

雷赛的参数在  0x2001=50000;

距离 除以 速度  等于   多少秒完成。【可以大概计算出路径多少秒完成】 

距离设置5,按住按钮,电机正好转1圈。 

速度:【r/s】转/秒  //只需要填实际速度【r/s】
60步进电机140转秒     //42步进2.5A240r/s, 1A90r/s

加速度:【r/s】转/秒
600 r/s

减速度:
1600 r/s  //  超过极限,没意义

加加速:
不清楚

计算时间:  路径 /  距离 = n秒完成
600/10= 60秒完成
或者 步进电机 140mm/s  计算出距离

CNC很重视精度,所以齿轮比一定要学会设置。伺服的齿轮比还涉及到编码器的位数,所以参考一圈脉冲当量。

从轴跟随:

  

【注:】所有轴控函数,要放在ecat线程内。 

新手先跳过。

主要分3大块:基础Basic,CNC,机械臂Robotic
//======================================
基础:
凸轮【耦合】        MC_CamIn
绑定凸轮表          MC_CamTableSelect
凸轮【解耦】        MC_CamOut
修正凸轮偏移        MC_Phasing
追剪               MC_GearInPos
获取凸轮从轴信息    SMC_GetCamSlaveSetPosition
获取当前挺杆输出值  SMC_GetTappetValue

位置【跟随】        SMC_FollowPosition    
位置速度【跟随】    SMC_FollowPositionVelocity    
速度【跟随】        SMC_FollowVelocity
可选项【跟随】      SMC_FollowSetValues    // 力矩,速度,位置,加减速等【跟随】
直接轴【跟随】      SMC_TrackAxis (FB)// 从轴要使能状态下
                        bExecute上升沿:开始执行功能块。
                        Velocity 最大速度[u/s]
                        Acceleration 最大加速度,单位为[u/s²]。
                        Deceleration 最大减速度,单位为【u/s²】。
                        Jerk    起跳速度,单位为【u/s³】。

//========================================
CNC:
这个是用于轴组。比如CNC或机械臂还有3轴机械臂等。【也用于机器跟随主轴脉冲】
使用轴组方便减少代码,直接绑定实轴的话,后期改伺服品牌改动的多。
绑定虚轴,能方便调试。
SMC_ControlAxisByPos (FB)    //跟随位置 、、、SM_Drive_Virtual_1.fSetPosition
SMC_ControlAxisByPosVel (FB) //跟随速度和位置
SMC_ControlAxisByVel (FB)    //跟随速度
注:iStatus 用 IPO_ACCEL 
    bEnable 为 True

SMC_INT_STATUS (ENUM)
0 IPO_UNKNOWN:SMC_Interpolator完全通过后可能不会出现的内部状态。
1 IPO_INIT:初始化状态;运动尚未开始
2 IPO_ACCEL:插值正在进行;当前正在加速
3 IPO_CONSTANT:以恒定速度进行插值
4 IPO_DECEL:插值正在进行;当前正在减速
5 IPO_FINISHED:插值完成
6 IPO_WAIT:插值正在进行;当前正在等待,例如通过停止输入或M命令
7 IPO_INCREASING_ACCEL:插值正在进行;目前正在加速
8 IPO_DECREASING_ACCEL:插值正在进行;当前正在降低加速度
9 IPO_INCREASING_DECEL:插值正在进行;目前正在加速减速
10IPO_DECREASING_DECEL:插值正在进行;目前正在减速

//========================================
【robotic库函数】

轴组中断        GroupInterrupt
轴组中断条件    SMC_GroupInterruptAt (FB)
轴组中断位置    SMC_GroupInterruptPosition (UNION)
                    SMC_GroupInterruptPositionMvtRel (STRUCT)
轴组继续        MC_GroupContinue (FB)
轴组暂停        MC_GroupHalt (FB)
轴组中断        MC_GroupInterrupt (FB)
轴组停止        MC_GroupStop (FB)
循环绝对运动    MC_MoveCircularAbsolute (FB)
循环相对运动    MC_MoveCircularRelative (FB)
直接绝对运动    MC_MoveDirectAbsolute (FB)
直接相对运动    MC_MoveDirectRelative (FB)
线性绝对运动    MC_MoveLinearAbsolute (FB)
线性相对运动    MC_MoveLinearRelative (FB)
错误恢复        SMC_GroupEnableResumeAfterError (FB)
//SMC_GroupJog (FB)
点动            SMC_GroupJog2 (FB)
更新数据        SMC_GroupUpdateContinueData (FB)
等待            SMC_GroupWait (FB)
//=============================================
MC_AddAxisToGroup (FB)
轴组关闭        MC_GroupDisable (FB)
轴组使能        MC_GroupEnable (FB)        【第2步】
轴组复位        MC_GroupReset (FB)
轴组设置位置    MC_GroupSetPosition (FB)
MC_RemoveAxisFromGroup (FB)
MC_UngroupAllAxes (FB)
SMC_DynLoad (STRUCT)
轴组上电        SMC_GroupPower (FB)        【第1步】
SMC_GroupReadTool (FB)
SMC_GroupSaveContinueData (FB)
SMC_GroupSetLoad (FB)
SMC_GroupSetPathTolerance (FB)
SMC_GroupSetTool (FB)
SMC_GroupSetUnits (FB)
SMC_GroupUnits (STRUCT)

调试:

 

第一个是显示数字的长度。

第二个是显示字符的长度。 

注:点动等功能块必须运行在ECAT线程下。

 

 圆盘的加载方法:  【可视化工具箱】》【基本的】》【Frame】

添加其他可视化控件也是如此。          vc: VisuStruct3DControl;

常用块: 

重新启动轴:    SMC3_ReinitDrive
读电机位置:  MC_ReadActualPosition
绝对定位:    MC_MoveAbsolute
编码器清零:    HC_PresetValue
编码器设位置:    HC_Counter
编码器虚轴.diEncoderPosition



速度:

速度:60FF
加速:6083
减速:6084
最大速度:607F
到速阀值:606D
到时阀值:606E //达到速度时间
零速阀值:606F
到时阀值:6070 // 零速时间
最大加速:60C5
最大减速:60C6


编码器:6063
齿轮比:6091 【汇川】
当前坐标:6064
当前速度:606C

//6040-b8停止   0x10F 》0x0F  //电机使能后,Bit8下降沿再触发一次即可开始运行

【转速】一个导程值,为1秒1圈。
每分钟转数【/】60【x】导程

定位:

目标位置:607A
起跳速度:6081
加速:6083
减速:6084

编码器位置:6063
齿轮比:6091
当前坐标:6064

//6040-b4触发  b5立即 b6绝对相对  b8停止
b5:0非立即:  0x4F--0x5F(相对位置)/0xF--0x1F(绝对位置)
    1立即:    0x6F--0x7f(相对位置)/0x2F--0x3F(绝对位置)

b6:0绝对,1相对

b8:上升沿   0x10F

力矩:

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值