0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍控制器实现EtherCAT与RTEX驱动器的回零及其配置

伺服与运动控制 来源:正运动小助手 作者:正运动技术 2022-11-29 15:22 次阅读

01 总线驱动器回零模式

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

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

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

1.EtherCAT总线驱动器

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

65fd1d86-6d1f-11ed-8abf-dac502259ad0.png

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

66106be8-6d1f-11ed-8abf-dac502259ad0.png

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

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触发回零即可。

初始化模式 11h Z相
12h HOME↑*2
13h HOME↓*3
14h POT↑*2
15h POT↓*3
16h NOT↑*2
17h NOT↓*3
18h EXT1↑*2
19h EXT1↓*3
1Ah EXT2↑*2
1Bh EXT2↓*3
1Ch EXT3↑*2
1Dh EXT3↓*3

02 EtherCAT总线驱动器回零方式

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

参考步骤如下:

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

66410622-6d1f-11ed-8abf-dac502259ad0.png

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

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

6668d47c-6d1f-11ed-8abf-dac502259ad0.png

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

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

66795a4a-6d1f-11ed-8abf-dac502259ad0.png

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

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_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
DELAY200
        SLOT_START(Bus_Slot)        '启动总线
        ifreturnthen
            wdog=1'使能总开关
            '?"开始清除驱动器错误"
            for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 
                BASE(i)
                DRIVE_CLEAR(0)
                DELAY50
                '?"驱动器错误清除完成"
                datum(0)            '清除控制器轴状态错误"
                DELAY100
                '"轴使能"
                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
    endif
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 1
    WAIT IDLE
    TABLE(0)=DRIVE_STATUS    '读取6041h状态字判断回零状态
    IF READ_BIT2(15,TABLE(0)) THEN
        ?"回零完成"
        EXIT WHILE
    ENDIF
WEND
END
示波器采用回零成功波形如下:采用模式19,采用OP模拟原点信号,驱动器感应到原点后低速反找,离开原点时停止运动,清空位置信息

66865790-6d1f-11ed-8abf-dac502259ad0.png

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

6697fbc6-6d1f-11ed-8abf-dac502259ad0.png

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





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    53

    文章

    8326

    浏览量

    147272
  • 运动控制器
    +关注

    关注

    2

    文章

    412

    浏览量

    24840
  • ethercat
    +关注

    关注

    19

    文章

    756

    浏览量

    38956

原文标题:EtherCAT与RTEX驱动器轴回零的配置与实现

文章出处:【微信号:伺服与运动控制,微信公众号:伺服与运动控制】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    为什么需要栅极驱动器?栅极驱动器及其应用介绍

    栅极驱动器是低压控制器和高功电路之间的缓冲电路,用于放大控制器控制信号,从而实现功率器件更有效的导通和关断。
    的头像 发表于 04-02 14:16 1890次阅读
    为什么需要栅极<b class='flag-5'>驱动器</b>?栅极<b class='flag-5'>驱动器</b><b class='flag-5'>及其</b>应用<b class='flag-5'>介绍</b>

    EtherCAT驱动器控制器EtherCAT超高速实时运动控制卡XPCIE1032H上位机开发

    驱动器上位机
    正运动技术
    发布于 :2024年01月12日 09:19:28

    步进电机驱动控制器介绍

    基于ESP8266 WiFi控制的步进升降机械平台本文将实验室中另外一款步进电机驱动及其控制命令进行介绍。▲ 单轴SH-20403
    发表于 08-31 08:32

    EtherCAT总线运动控制的优势主要体现在哪?

    EtherCAT技术的优异性能,可以实现用传统现场总线系统所无法实现控制方法。正运动技术的ZMC464运动控制器,实际测试过100us可以
    发表于 02-20 10:20

    经济型EtherCAT运动控制器EtherCAT总线快速入门

    本文主要介绍XPLC006E多轴经济型EtherCAT总线运动控制器控制EtherCAT总线驱动器
    发表于 05-11 09:49

    EtherCAT总线运动控制的优势主要体现在哪?

    。利用EtherCAT技术的优异性能,可以实现用传统现场总线系统所无法实现控制方法。 正运动技术的ZMC464运动控制器,实际测试过100
    发表于 12-13 11:37

    基于SDP伺服驱动器控制配置电路图

    本文档内容介绍了基于SDP伺服驱动器控制配置电路图,供网友参考。
    发表于 09-25 18:01 29次下载
    基于SDP伺服<b class='flag-5'>驱动器</b>的<b class='flag-5'>控制</b>及<b class='flag-5'>配置</b>电路图

    ES系列的驱动器控制及故障处理

    本文档介绍了基于ES系列的相关知识,包含下列章节: 1、控制键盘 提供了控制键盘的描述以及使用说明。 2、程序功能 介绍驱动器的基本功能与特
    发表于 09-26 10:22 6次下载
    ES系列的<b class='flag-5'>驱动器</b>的<b class='flag-5'>控制</b>及故障处理

    EtherCAT总线快速入门

    本节主要介绍XPLC006E多轴经济型EtherCAT总线运动控制器控制EtherCAT总线驱动器
    的头像 发表于 08-11 14:40 7143次阅读
    <b class='flag-5'>EtherCAT</b>总线快速入门

    运动控制器配置实现

    今天,正运动小助手给大家分享一下运动控制器配置实现。本文主要介绍
    的头像 发表于 11-12 14:25 1508次阅读
    运动<b class='flag-5'>控制器</b>轴<b class='flag-5'>回</b><b class='flag-5'>零</b>的<b class='flag-5'>配置</b>与<b class='flag-5'>实现</b>

    EtherCATRTEX驱动器配置实现

    上节课程,正运动小助手给大家分享了运动控制器提供的模式配置实现。本节课程主要介绍
    的头像 发表于 11-16 17:07 1398次阅读
    <b class='flag-5'>EtherCAT</b>与<b class='flag-5'>RTEX</b><b class='flag-5'>驱动器</b>轴<b class='flag-5'>回</b><b class='flag-5'>零</b>的<b class='flag-5'>配置</b>与<b class='flag-5'>实现</b>

    全国产EtherCAT运动控制边缘控制器(五):IO配置运动的Python+Qt开发

    Python+QT开发环境的配置以及单轴运动的实现效果。
    的头像 发表于 10-20 10:08 638次阅读
    全国产<b class='flag-5'>EtherCAT</b>运动<b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>(五):IO<b class='flag-5'>配置</b>与<b class='flag-5'>回</b><b class='flag-5'>零</b>运动的Python+Qt开发

    全国产EtherCAT运动控制边缘控制器(五):IO配置运动的Python+Qt开发

    全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,运动控制接口兼容EtherCAT总线和脉冲型的独立
    的头像 发表于 10-22 10:51 1087次阅读
    全国产<b class='flag-5'>EtherCAT</b>运动<b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>(五):IO<b class='flag-5'>配置</b>与<b class='flag-5'>回</b><b class='flag-5'>零</b>运动的Python+Qt开发

    EtherCAT驱动器控制器EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(九)

    EtherCAT总线驱动器控制器模式介绍以及实现
    的头像 发表于 01-11 10:27 657次阅读
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>驱动器</b><b class='flag-5'>回</b><b class='flag-5'>零</b>与<b class='flag-5'>控制器</b><b class='flag-5'>回</b><b class='flag-5'>零</b>:<b class='flag-5'>EtherCAT</b>超高速实时运动<b class='flag-5'>控制</b>卡XPCIE1032H上位机C#开发(九)

    V90伺服控制器

    电子发烧友网站提供《V90伺服控制器.pdf》资料免费下载
    发表于 09-02 14:31 0次下载