上节课程,正运动小助手给大家分享了运动控制器提供的回零模式配置与实现。本节课程主要介绍控制器实现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 = 0
SPEED = 100 '回零速度
CREEP = 10  '反找速度
ACCEL = 1000
DATUM(21,2) '驱动器回零模式value=2
WAIT IDLE
IF 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 = -1
global Bus_TotalAxisnum    '检查扫描的总轴数
delay(3000)        '延时3S等待驱动器上电,不同驱动器自身上电时间不同,具体根据驱动器调整延时
?"总线通讯周期:",SERVO_PERIOD,"us"
Ecat_Init()      '初始化ECAT总线
while (Bus_InitStatus = 0)Ecat_Init()
wend
end
'***************************ECAT总线初始化*****************************
'初始流程: slot_scan(扫描总线) ->   从站节点映射轴/io  ->  SLOT_START(启动总线) -> 初始化成功
'**********************************************************************
global sub Ecat_Init()local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_AliasRAPIDSTOP(2)for i=0 to MAX_AXISNUM - 1              '初始化还原轴类型AXIS_ENABLE(i) = 0atype(i)=0  AXIS_ADDRESS(i) =0DELAY(10)                    '防止所有驱动器全部同时切换使能导致瞬间电流过大nextBus_InitStatus = -1Bus_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    '初始化失败。报警提示returnendif   '"开始映射轴号"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)  '读取设备拨码IDif 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 = 1disable_group(Temp_Axis)        '每轴单独分组Bus_TotalAxisnum=Bus_TotalAxisnum+1    '总轴数+1next      endifnext?"轴号映射完成","连接总轴数:"Bus_TotalAxisnumDELAY 200SLOT_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=1nextBus_InitStatus  = 1?"轴使能完成"'本地脉冲轴配置for i = 0 to PUL_AxisNum - 1base(PUL_AxisStart + i)AXIS_ADDRESS  = (-1<<16) + iATYPE = 4next?"总线开启成功"run "Basic1",1    '开启回零任务else?"总线开启失败"Bus_InitStatus = 0endif  else?"总线扫描失败"Bus_InitStatus = 0endif
end sub

2.驱动器回零程序

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

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

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

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

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

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

EtherCAT与RTEX驱动器轴回零的配置与实现相关推荐

  1. 运动控制器轴回零的配置与实现

    今天,正运动小助手给大家分享一下运动控制器轴回零的配置与实现.本文主要介绍控制器提供的回零模式,驱动器自身的回零模式我们将在下篇为大家讲解. 01 轴回零 一.回零说明 在高精度自动化设备上都有自己的 ...

  2. PDPS软件:机器人行走轴虚拟仿真操作方法,即外部轴添加与配置

    目录 概述 机器人行走轴模型运动机构分析及导入 机器人安装到行走轴 机器人外部轴添加与配置 机器人行走轴示教编程 仿真运行 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSi ...

  3. 三菱Q系列plc,11轴标准程序,包含轴回零,相对定位,绝对定位,程序有两轴直线插补

    三菱Q系列plc,11轴标准程序,包含轴回零,相对定位,绝对定位,程序有两轴直线插补,一共有五组插补,整个程序的模块都有,程序框架符合广大编程人员思维,只要弄明白这个程序,一般的项目都不会无从下手,参 ...

  4. elmo驱动器使用EAS II配置教程

    一.驱动器接线 1.1驱动器接口: 驱动器接线,需要连接两个接口,一个是反馈接口,一个是STO接口. 反馈接口,我这里使用了elmo驱动器的Port A.这个接口提供5v电源.并且可以输入旋转编码器和 ...

  5. Ethercat解析(十)之从站配置

    配置文件根据设定的从站在总线上面的位置.厂商ID和产品码与具体的从站进行绑定.对于从站在总线上的位置,驱动提供了别名和位置编码相结合的方式寻找对应的从站.别名和位置编码都是16位的数字,其存放在从站的 ...

  6. 经济型EtherCAT运动控制器(八):轴参数与运动指令

    一.XPLC006E功能简介 XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器,XPLC系列运动控制器可应用于各种需要脱机或联机运行的场合. XPLC006E自带6 ...

  7. CODESYS (V3.5 SP12 Patch)程序开发前的配置及简单应用 第 1 篇(长沙赛搏机器智能MIC7001总线控制器+松下A6BE总线驱动器)

    在这个实例中,我会用CODESYS这个开发环境写一个简单的实例,我有一个总线控制器,用于控制两个松下总线伺服驱动器进而控制电机的运动,并写一个简单的控制界面.此外,这里还涉及到了驱动器相应的参数配置, ...

  8. 汇川Inoproshop软件CIA402轴基本配置

    添加伺服从站后,双击"轴"会出现轴配置界面,下面按照由上至下的顺序依次对轴配置界面选项卡功能进行介绍. 一.轴基本设置 轴基本设置中包括虚轴/实轴模式两种工作模式,其定义如下表所述 ...

  9. abb外部轴零位校准_RobotStudio软件:机器人自定义行走轴配置与仿真

    概述 很多时候由于安装场地限制的原因,使用ABB机器人厂商提供的标准行走轴并不能满足系统集成的需求.这个时候就需要自定义设计机器人行走轴,对机器人生产线进行仿真时就同样需要使用自定义设计的行走轴. R ...

最新文章

  1. 使用matlab进行mex编译时的路径问题mexopts
  2. 从Git存储库中删除文件而不从本地文件系统中删除它
  3. 快速理解Spark Dataset
  4. 自制vue组件通信插件:教你如何用mixin写插件
  5. 前端学习(96):切图流程
  6. 对数据库连接池的理解
  7. Codeforces 213E Two Permutations 线段树 (看题解)
  8. ip_conntrack: falling back to vmalloc解决办法
  9. 往PPT幻灯中添加图片的方法有哪些?
  10. 解决SVN403问题
  11. Python-《转载-Github上的python开源项目》
  12. 智能防盗报警系统前端报警设备的选择
  13. 100种网站推广方法全集
  14. 多轴机械人运动学正逆解,简单粗暴!!!!!!
  15. 懒人教你用猕猴桃一月饱减16斤_过路老熊_新浪博客
  16. [MySQL系列] 使用STRAIGHT_JOIN 优化inner join查询排序索引问题
  17. Facebook 如何存储150亿张、1.5PB的照片
  18. window系统 安装 nvm 详细步骤
  19. Linux正确删除软链接
  20. Mysql单表查询和多表查询

热门文章

  1. 博弈的意思_“博弈”是什么意思,用在什么地方?
  2. 便携式CAN分析仪、CAN接口卡、USBCAN 如何选型?
  3. mac上安装旧版火狐与firebug和firepath插件
  4. Windows7 操作系统文件搜索方法
  5. php卡密验证源码防破解抓包,PHP授权系统v2.7.0定制版 带卡密自助授权功能盗版检测一键更新...
  6. android面试经验谈
  7. linux c程序获取u盘序列号,linux下怎么用c获取硬盘物理序列号
  8. matlab练习程序(条件膨胀)
  9. Outlook、Teams无法连接服务器
  10. linux刷rockchip工具,[Radxa Rock]如何刷机到NAND闪存