技术频道

娓娓工业
您现在的位置: 中国传动网 > 技术频道 > 应用方案 > EtherCAT与RTEX驱动器轴回零的配置与实现

EtherCAT与RTEX驱动器轴回零的配置与实现

时间:2022-11-18 13:37:33来源:深圳市正运动技术有限公司

导语:​上节课程,正运动小助手给大家分享了运动控制器提供的回零模式配置与实现。本节课程主要介绍控制器实现EtherCAT与RTEX驱动器的回零及其配置。

  上节课程,正运动小助手给大家分享了运动控制器提供的回零模式配置与实现。本节课程主要介绍控制器实现EtherCAT与RTEX驱动器的回零及其配置。

  01、总线驱动器回零模式

       正运动控制器提供自己的回零模式,也支持使用EtherCAT总线驱动器提供的回零模式,或RTEX总线驱动器的提供的回零模式,均可使用DATUM指令实现回零,但采用的回零模式和配置方法与控制器提供的回零方式有所区别。

  以上两类总线驱动器回零模式采用21,回零模式由总线驱动器提供,参见驱动器手册说明。

  语法:DATUM(21,驱动器提供的回零模式)总线驱动器回零时,除了模式需要采用驱动器提供的,原点开关、正/负限位开关需要接入驱动器的IO端子上,一般驱动器IO端子有指定的HOME、POT,NOT用于回零,引脚需查看驱动器手册说明。1.EtherCAT总线驱动器

  可使用EtherCAT总线驱动器回零功能,DATUM(21,mode2),此时mode2有效,mode2为EtherCAT总线驱动器6098h提供的原点回归模式。

运动控制器

  使用此模式需要参考驱动器手册的说明,找到手册对应的章节,如上图,配置驱动器回零PDO所需要的功能,按照驱动器手册提供的信号接线方式完成开关信号的接线,将原点和正/负限位信号接在驱动器IO指定的HOME、POT,NOT端子上,等待DATUM触发回零即可。

运动控制器

  示例:初始化完成后再运行驱动器回零程序。

  ·

  BASE(iAxis) '按驱动器轴号逐个回零AXIS_STOPREASON = 0SPEED = 100 '回零速度CREEP = 10 '反找速度ACCEL = 1000DATUM(21,2) '驱动器回零模式value=2WAIT IDLEIF AXIS_STOPREASON = 0 THEN ?"回零成功"ELSE ?"回零失败" ,"停止原因:",AXIS_STOPREASON,"状态字0X",HEX(DRIVE_STATUS)ENDIF

  2.RTEX总线驱动器

  此模式下可使用RTEX总线驱动器回零功能,此时mode2有效,回零模式查看驱动器手册即可(如下表)。使用此模式原点和正负限位信号接在驱动器指定IO上,等待DATUM触发回零即可。

运动控制器

  02、EtherCAT总线驱动器回零方式

       使用EtherCAT总线驱动器提供的回零,需要将原点信号接入驱动器指定IO上,不同的厂商的使用要求略有差异,需要阅读驱动器手册之后再进行配置。参考步骤如下:

       1.硬件接线:以下以某个驱动器为例,将原点等信号接入下图指定引脚即可,无需映射,并且按要求给驱动器的IO端子供电。

运动控制器

  使用控制器OP输出模拟IO信号输入,控制器OUT0口接到驱动器控制端子8引脚,模拟原点信号,控制器OUT6口接到驱动器控制端子9引脚,模拟负限位信号,控制器OUT5口接到驱动器控制端子10引脚,模拟正限位信号。

       2.驱动器配置要求:根据驱动器手册说明配置回零所需要的功能,例如下方配置说明中,6040h和6041是必须模式,其他模式均为选配,故DRIVE_PROFILE配置驱动器PDO时,需要包含必须模式才可完成回零操作。

运动控制器

  3.总线初始化:运动下方初始化模板程序,合理配置DRIVE_PROFILE,使能总线驱动器。

  4.驱动器回零:初始化成功方可执行回零程序,设置合理的总线轴参数,配置回零的找原点速度SPEED和反找速度CREEP,发送DATUM(21,mode2)驱动器开始找原点运动,例程使用模式如下,回零成功停止运动,DPOS和MPOS自动清零。

运动控制器

  程序分为两部分执行,先总线初始化,再回零。

  1.总线初始化参考程序:

  ·

  '*******************************************************ECAT总线初始化global CONST BUS_TYPE = 0 '总线类型。可用于上位机区分当前总线类型global CONST MAX_AXISNUM = 16 '最大轴数global CONST Bus_Slot = 0 '槽位号0(单总线控制器缺省0)global CONST PUL_AxisStart = 0 '本地脉冲轴起始轴号global CONST PUL_AxisNum = 0 '本地脉冲轴轴数量global CONST Bus_AxisStart = 0 '总线轴起始轴号global CONST Bus_NodeNum = 1 '总线配置节点数量,用于判断实际检测到的从站数量是否一致global Bus_InitStatus '总线初始化完成状态Bus_InitStatus = -1global Bus_TotalAxisnum '检查扫描的总轴数delay(3000) '延时3S等待驱动器上电,不同驱动器自身上电时间不同,具体根据驱动器调整延时?"总线通讯周期:",SERVO_PERIOD,"us"Ecat_Init() '初始化ECAT总线 while (Bus_InitStatus = 0) Ecat_Init()wendend'***************************ECAT总线初始化*****************************'初始流程: slot_scan(扫描总线) -> 从站节点映射轴/io -> SLOT_START(启动总线) -> 初始化成功'**********************************************************************global sub Ecat_Init() local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias RAPIDSTOP(2) for i=0 to MAX_AXISNUM - 1 '初始化还原轴类型 AXIS_ENABLE(i) = 0 atype(i)=0 AXIS_ADDRESS(i) =0 DELAY(10) '防止所有驱动器全部同时切换使能导致瞬间电流过大 next Bus_InitStatus = -1 Bus_TotalAxisnum = 0 SLOT_STOP(Bus_Slot) delay(200) slot_scan(Bus_Slot) '扫描总线 if return then ?"总线扫描成功","连接从站设备数:"NODE_COUNT(Bus_Slot) if NODE_COUNT(Bus_Slot) <> Bus_NodeNum then '判断总线检测数量是否为实际接线数量 ?"" ?"扫描节点数量与程序配置数量不一致!" ,"配置数量:"Bus_NodeNum,"检测数量:"NODE_COUNT(Bus_Slot) Bus_InitStatus = 0 '初始化失败。报警提示 return endif '"开始映射轴号" for Node_Num=0 to NODE_COUNT(Bus_Slot)-1'遍历扫描到的所有从站节点 Drive_Vender = NODE_INFO(Bus_Slot,Node_Num,0) '读取驱动器厂商 Drive_Device = NODE_INFO(Bus_Slot,Node_Num,1) '读取设备编号 Drive_Alias = NODE_INFO(Bus_Slot,Node_Num,3) '读取设备拨码ID if NODE_AXIS_COUNT(Bus_Slot,Node_Num) <> 0 the '判断当前节点是否有电机 for j=0 to NODE_AXIS_COUNT(Bus_Slot,Node_Num)-1 '根据节点带的电机数量循环配置轴参数(针对一拖多驱动器) Temp_Axis = Bus_AxisStart + Bus_TotalAxisnum '轴号按NODE顺序分配 'Temp_Axis = Drive_Alias '轴号按驱动器设定的拨码分配(一拖多需要特殊处理) base(Temp_Axis) AXIS_ADDRESS= Bus_TotalAxisnum+1 '映射轴号 ATYPE=65 '设置控制模式 65-位置 66-速度 67-转矩 DRIVE_PROFILE = 1 disable_group(Temp_Axis) '每轴单独分组 Bus_TotalAxisnum=Bus_TotalAxisnum+1 '总轴数+1 next endif next ?"轴号映射完成","连接总轴数:"Bus_TotalAxisnum DELAY 200 SLOT_START(Bus_Slot) '启动总线 if return then wdog=1 '使能总开关 '?"开始清除驱动器错误" for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 BASE(i) DRIVE_CLEAR(0) DELAY 50 '?"驱动器错误清除完成" datum(0) '清除控制器轴状态错误" DELAY 100 '"轴使能" AXIS_ENABLE=1 next Bus_InitStatus = 1 ?"轴使能完成" '本地脉冲轴配置 for i = 0 to PUL_AxisNum - 1 base(PUL_AxisStart + i) AXIS_ADDRESS = (-1<<16) + i ATYPE = 4 next ?"总线开启成功" run "Basic1",1 '开启回零任务 else ?"总线开启失败" Bus_InitStatus = 0 endif else ?"总线扫描失败" Bus_InitStatus = 0 endifend sub

  2.驱动器回零程序:

  ·

  ?"开始回零"TABLE(0)=0BASE(0)UNITS=(8388608/360) '脉冲当量SPEED=50 '找原点速度CREEP=10 '反找速度 ACCEL=1000 DECEL=1000 DELAY(100)DATUM(21,19) '开始回零,模式19WHILE 1 WAIT IDLE TABLE(0)=DRIVE_STATUS '读取6041h状态字判断回零状态 IF READ_BIT2(15,TABLE(0)) THEN ?"回零完成" EXIT WHILE ENDIFWENDEND

  示波器采用回零成功波形如下:采用模式19,采用OP模拟原点信号,驱动器感应到原点后低速反找,离开原点时停止运动,清空位置信息。

运动控制器

  回零时碰到限位开关停止运动,AXISSTATUS轴状态显示40h正在回零中,回零完成状态为0h。

运动控制器

  本次,正运动技术EtherCAT与RTEX驱动器轴回零的配置与实现,就分享到这里。

  更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。

  本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

标签: 运动控制器驱动器

点赞

分享到:

上一篇:合信物流方案①:完整的摆轮...

下一篇:圆柱形锂电池与软包锂电池对...

中国传动网版权与免责声明:凡本网注明[来源:中国传动网]的所有文字、图片、音视和视频文件,版权均为中国传动网(www.chuandong.com)独家所有。如需转载请与0755-82949061联系。任何媒体、网站或个人转载使用时须注明来源“中国传动网”,违反者本网将追究其法律责任。

本网转载并注明其他来源的稿件,均来自互联网或业内投稿人士,版权属于原版权人。转载请保留稿件来源及作者,禁止擅自篡改,违者自负版权法律责任。

网站简介|会员服务|联系方式|帮助信息|版权信息|网站地图|友情链接|法律支持|意见反馈|sitemap

中国传动网-工业自动化与智能制造的全媒体“互联网+”创新服务平台

网站客服服务咨询采购咨询媒体合作

Chuandong.com Copyright ©2005 - 2023 ,All Rights Reserved 版权所有 粤ICP备 14004826号 | 营业执照证书 | 不良信息举报中心 | 粤公网安备 44030402000946号