文章:伺服电机的回零(进阶篇)

所有者:TerryWang(呢称); 发布时间:2021-02-25 00:28:25; 更新时间:2021-02-25 00:28:56

阅读所需积分:0; 

简介:回零是伺服控制的一个大课题。系统对回零的要求各种各样,各厂家的运动控制器或驱动器支持的回零方式各不相同,且伺服电机也有多种反馈类型,由此衍生出多种回零方式。另,各厂家对与回零相关的关键术语的描述也不尽相同,因此,有很多与伺服回零相关的话题和讨论。 4月15日,本公众号曾发了一篇“伺服电机的回零”的学习笔记。那篇

简  介


回零是伺服控制的一个大课题。系统对回零的要求各种各样,各厂家的运动控制器或驱动器支持的回零方式各不相同,且伺服电机也有多种反馈类型,由此衍生出多种回零方式。另,各厂家对与回零相关的关键术语的描述也不尽相同,因此,有很多与伺服回零相关的话题和讨论。
 
本篇以ABB Microflex e190伺服驱动器配17位单圈绝对值伺服电机为例,讲解基于伺服驱动器的回零,以及如何通过Beckhoff PLC,在伺服驱动器上实现伺服回零。

基于伺服的回零

基于伺服自身回零,即DriveBased Homing。ABB 的Microflex e190是新一代智能伺服驱动器,自身可编程。通过对伺服驱动器编程,其命令发出和回零的执行都在驱动器内部实现,响应快,回零精确。

Microflex e190支持的是Mint编程语言,需使用ABB MintWorkbench软件对伺服进行编程。

1:伺服装置

伺服回零需要定义一个零点开关,使用HOMEINPUT关键字定义,如语句HOMEINPUT(0)=1设定伺服的DI1输入点为零点开关。

需要设置找零点开关的速度,以及找到零点开关后的回退速度,分别用HOMESPEED和HOMEBACKOFF关键字设置。

当回零需要找索引脉冲时,还需要设置零点开关OFF后,找索引脉冲的爬行速度,用关键字HOMECREEPSPEED设置!所谓的索引脉冲,对于增量式编码器对应的是Z相脉冲,对于绝对值编码器对应的是绝对读数为零的角度位置。旋转变压器没有索引标记,但驱动器会根据旋变的反馈信号,通过算法,计算出一个索引标记。

依据以上描述,实验中对于Homing配置的编程代码如下:

图2:回零配置Mint代码

HOMEBACKOFF=2指找到零点开关后,回退速度为HOMESPEED的二分之一,即15/2=7.5!(用户单位已定义为r/s)。

以上代码仅对回零功能进行配置,并未触发回零动作。回零动作,需要执行HOME(0)=value指令,比如可用如下代码启动回零:

图3:回零执行代码

把HOME启动指令放到与DI2对应的EVENT事件中。用DI2启动HOME指令。
给HOME(0)赋不同的值,对应不同的回零功能。本例中,Value为3,定义回零方法。本回零方法共分三步:

第一步:以HOMESPEED=15正向运动寻找零点开关(DI1 ON)

第二步:找到DI1后以(HOMESPEED/HOMEBACKOFF=7.5)的速度回退(DI1 OFF)

第三步:待DI1OFF后,以HOMECREEPSPEED=0.2的速度寻找索引脉冲

抓取的回零过程实时曲线如下图,图中蓝色为伺服的速度,红色为原点信号,粉色为伺服的位置。三个步骤分别对应下图的1,2,3。

图4:回零执行曲线
 
回零完成后,当前值改成0。

Microflex e190中定义了多种回零方式,可实现各种回零功能。

图5:多种回零方式

GDI控制的DS-402 Homing

GDI是ABB伺服专有的控制方式。在伺服驱动器中下载ABB GDI程序。GDI程序中定义了伺服驱动器的接口变量NETDATA(输入和输出)。PLC通过读写NETDATA寄存器,即可实现对伺服驱动器的控制。GDI方式可支持多种通讯方式和多PLC品牌。本实验以西门子PLC为例讲解。

图6:西门子PLC配置
 
在GDI程序中,可设置HOMETYPE所支持的DS-402 Homing回零方式。如以下代码设置第21种回零方式,DI1设置为回零开关。


在TIA中,PLC程序调用ABB提供的GDI控制库中的GDI_Home功能块。


图7:GDI_HOME程序块

DS-402 Homing 定义了37种HomeType,可参考相关参考资料,或Mint Workbench软件的帮助文档。

另,通过GDI控制方式,也可实现挡块回零,在库中需调用另一个功能块:

图8:GDI挡块回零
 
其中TorqueLimit为扭矩限值,其设置单位为伺服电机额定扭矩的百分比
有的厂家也称为撞块回零,在PLCopen运动控制规范Part 5中(英文的),有功能块MC_StepBlock与本功能块相对应。

图9:MC_StepBlock示意图

这两种方式,回零方式HomeType由DS-402 Homing中回零方式界定。但回零的本质都是通过伺服驱动器内的GDI程序实现,因此,这种方式也是基于驱动器的回零。
 
基于Beckhoff PLC的回零

继上篇“Beckhoff PLC在ABB伺服上实现探针功能”之后,Beckhoff PLC又不甘寂寞,拍拍衣襟,迫不及待得闯入大家的眼帘。B&R PLC你先忍忍,对你另有安排!

在Beckhoff TwinCAT中提前配置好伺服轴,让伺服轴能转起来,详情可参考往期视频。关于Beckhoff中三类轴的定义,在此有必要再强调一下。TwinCAT中,共有物理轴,NC轴和PLC轴三种轴概念。物理轴对应伺服驱动器,NC轴不需要编程,它的运算分为轨迹规划、PID运算和IO接口处理。PLC轴即在PLC程序中定义的轴变量。NC轴处于中间位置,提供与PLC轴和物理轴的接口。

图10:TwinCAT轴概念图
 
本实验软硬件配置与TouchProbe篇相同:

图11:Beckhoff PLC实验配置图
 
在TwinCAT中需添加TC2_MC2运动控制库。MC_Home功能块包含在这个库里。

具体编程过程不详述,Beckhoff常规的回零通过MC_Home功能块实现的。

图12:MC_Home程序块

Homing Mode: 共有四个取值。标准Homing取值为MC_DefauleHoming,执行标准的回零程序。其它几个取值不会触发回零动作。

bCalibrationCam: 对应零点开关。如果对BeckhoffPLC的话语体系不熟,仅从字面理解,又是校准又是凸轮的,是不是一脸懵?这个信号可对应PLC的一个DI输入, 也可以用程序中定义的一个BOOL变量替代!

BufferMode & Option: 开路即可。

回零需要的很多参数怎么没在这个功能块里出镜?别急,它们在TwinCATSystem Manager NC轴的Parameter标签页下。

图13:回零速度设置

又看到了cam,不过我们已经不用把它理解成凸轮了,理解成啥呢,看上文的bCalibrationCam!Beckhoff的术语是否挺卡人的?别急,后边还有更卡人的。

至此为止,如果编程正常,就可以执行回零了。当然,提前要编程MC_Power,  MC_Reset, MC_STOP等基本功能块。

启动MC_Home后,轴会以3的速度寻找bCalibrationCam,bCalibrationCam ON之后,轴以0.3的速度反转,当bCalibrationCam OFF时,轴停止,回零完成。此时的回零功能,与基于Drive的回零“HOME(0)=2”,完成的功能相同。

功能太弱了吧,这种回零精度不够高,连索引脉冲回零和Latch回零都不能实现吗?

幼稚!在TwinCATSystem Manager的Enc参数的Parameter标签页,有Homing栏。在Homing栏里有个ReferenceMode。刚才实现的功能,只是ReferenceMode取值“Default”时的功能。而Reference Mode 还有很多其他取值,可对应不同的回零功能。

图14:不同回零方式选择 

请注意现在深色的”HardwareSync”选项,选中这个值后,伺服回零会在撩bCalibrationCam一个回合以后,继续向前寻找索引脉冲。并在找到索引脉冲后停止,修改当前值,结束回零。“Hardware Sync” 是不是更卡人,Beckhoff老这么定义,是不是有点小傲娇?

再注意一下HardwareLatch1(pos. edge),选项,这个选项在撩bCalibrationCam一个回合以后,不寻找索引脉冲,而是寻找伺服驱动器上Latch 1的上升沿。(Latch 1对应Microflex e190的DI1)。如选这种方式回零,在物理轴的PDO中,需配置PDO 输入0x60B9和输出0x60B8。是不是很面熟?对,TouchProbe功能也必须要配置这两个PDO。只有这样,Beckhoff PLC 才能捕获驱动器侧的Latch1信号。

以上几种,可满足常规回零需求。

其他几个选项有的支持,有的不支持。毕竟,Beckhoff的软件不是专为ABB伺服驱动器开发,就不进一步详述。
 
伺服回零高级功能

感觉这几种回零方式也没啥特别的呀?  
                   
你还想要啥!

想问一下子,有没有那种感觉特高级,功能很复杂,不明觉厉的!也不一定用,就是想问问…

淘气!针对高级或专家级用户,PLCopen技术委员会的任务小组,专门定义了“Function Blocks formotion control: Part 5 – Homing Procedures”,其中对Homing进行了非常详细的定义和说明。规范中定义了很多Homing的专用功能块,列举如下:

          回零分步执行功能块
MC_StepAbsoluteSwitch
MC_StepLimitSwitch
MC_StepBlock
MC_StepReferencePulse
MC_StepDistanceCoded
 
可运行中执行的功能块
MC_StepReferenceFlyingSwitch
MC_StepReferenceFlyingRefPulse
MC_AbortPassiveHoming
 
回零流程结束功能块
MC_HomeDirect
MC_HomeAbsolute
MC_FinishHoming
 
这些功能块可以理解成Homing流程的分解动作,有时一个回零流程需要先后调用几个功能块实现。
 
针对一些高级应用,BeckhoffPLC也提供了高级的回零功能库TC3_MC2_AdvancedHoming与PLCopen MC Part 5中的功能块相对应。有兴趣的小伙伴可自行研究测试,不再深入讲解!BTW,PLCopen规范都是英语的,其话语体系跟Beckhoff又有很大的不同!
 
懵了吧,高级不?
草率了!!!
总  结

本文以ABB Microflex e190为实验对象,讲解了完全基于驱动器的回零,通过PLC通讯实现基于GDI程序的DS-402 回零以及BeckhoffPLC通过EtherCAT在伺服上实现回零.

各厂家控制器和伺服,由于软件不同,固件各异,软件的操作方法差别很大。但万变不离其宗,其基本实现原理和常见实现方法是一致的。

伺服与运动控制

https://mp.weixin.qq.com/s/yQPAb-TbGKnT84fW-e1BxQ