T技术支持ech Support
EtherCAT总线型运动控制系统入门教程(1)

 

得益于高传输效率、简化操作、维护方便等种种优势,在自动化工厂中,网络化运动控制系统的发展趋势日益明显,Ethercat等各种工业总线技术的成熟,让运动控制变得更加方便、易用,为智慧工厂的建设提供了强大的技术支撑。今天,小编就带大家认识一下EtherCAT总线技术及基于EtherCAT开发的各类运动控制产品。

 

全文6315字,阅读约需要12分钟  

 

 

EtherCAT总线是由德国倍福(BECKHOFF)自动化公司于2003年提出的实时工业以太网技术,具有高速和高效的优点。

其介质访问控制MAC(MediaAccessControl)方式使用主从模式,主站发送以太网帧给各从站,从站从数据帧中抽取数据或将数据插入数据帧。从而彻底避免报文冲突。主站使用标准的以太网接口卡,从站使用专用的EtherCAT从站控制器ESC(EtherCATSlaveController)。EtherCAT物理层使用标准的以太网物理层器件。EtherCAT协议结构如图1.1所示。

 

 

EtherCAT包括一下几种应用协议:

CoE(CANopen over EtherCAT);该协议在CANopen协议的基础上做了扩充。

◆ SoE(Servo Drive over EtherCAT);该协议用于伺服电机的控制。

◆ EoE(Ethernet over EtherCAT)

◆ FoE(File Access over EtherCAT)

EhterCAT总线主要特点如下:

◆ 速度快,数据刷新周期可达100微秒。

◆ 同步性好,各从站节点设备的时钟同步精度可达1微秒。

◆ 通讯数据量大,波特率为100Mbps。(比CAN总线的速度快100倍。)

◆ 从站节点数多,最大可有65535个。(比CAN总线的节点多600倍。)

◆ 通讯距离长,节点间最大距离可达100米。(比CAN总线的远2.5倍。)

◆ 完全符合以太网标准,可以与其他以太网设备及协议并存于同一总线,以太网交换机等标准结构主件也可用于EtherCAT总线。

 

 

2018年雷赛公司推出的DMC-E3032运动控制卡最多可以控制32个EtherCAT总线型电机及扩展功能模块。可实现多轴点位运动、16轴直线插补运动、3轴空间圆弧插补、手轮控制、编码器位置检测、IO控制、位置比较、位置锁存等功能。

DMC-E3032运动控制卡的运动控制函数库功能丰富、易学易用,用户开发应用软件十分方便;并提供C#、VB.net、Delphi、Labview编程语言的例程。随卡免费提供的Motion调试软件,不但可以设置EtherCAT总线参数、总线节点的参数,而且可用于控制卡及运动控制系统的硬件测试。

DMC-E3032运动控制卡的外形如图2.1所示,其主要参数如表2.1所示。

DMC-E3032运动控制卡的卡号设置、IO接口、编码器接口、手轮接口及驱动软件的安装方法都和普通脉冲运动控制卡相同。详见产品手册。

 

 

  

 

 

一)A6系列伺服电机的特点

松下公司2016年推出的A6系列产品的性能比A5系列有明显提高。如:电机尺寸更小、重量更轻;电机转速更高、响应更快,定位更精确,抑振效果更好。具体表现为:

● 最高转速由5000rpm提高到6000rpm。

● 响应频率提高139%,达3.2kHz。

● 编码器分辨率提高至23位(223 = 8388608)(A5系列:相对式20位、绝对式17位)

● A6系列产品还增加了EtherCAT总线和RTEX总线型产品。

 

二)A6系列EtherCAT总线型伺服电机的特点

A6系列伺服电机EtherCAT总线的规格参数见表3.1。

 

  

A6系列脉冲型驱动器的最大指令脉冲频率为8MHz;电机每转1圈的最大指令脉冲数(Pr0.08)只能设为8388608。

若电机最高转速为6000 rpm,电机每转1圈的最大指令脉冲数设为8388608。则脉冲输入频率为800 MHz(8388608 p/r ´ 100 r/s)。显然,这个与最大指令脉冲频率8 MHz有矛盾。

 

如果要实现电机的最大分辨率,则电机要牺牲最大转速。这时电机最大转速仅为60 rpm。

如果要实现最大转速,就要牺牲电机的分辨率。电机的分辨率下降100倍,只能设为83886,即电子齿轮比设为100。

 

而A6系列总线型驱动器的电机每转1圈的指令脉冲数可设为1~4294967295。

若设电机每转1圈的指令脉冲数为8388608,和编码器分辨率相同,即电子齿轮比为1,电机最高转速为6000rpm时,相当于接收的指令脉冲频率为839 MHz。

也就是说:只有总线型驱动器才能将A6系列的23位编码器的定位精度发挥到极致。其定位精度比脉冲型电机的高100倍!

 

三)伺服电机及驱动器的硬件连接

以100W伺服电机MSMF012L1U2M及EtherCAT总线驱动器MADLN05BE为例。电机、驱动器及电源的接线图如图3.1所示。

 

 

驱动器上的X4为并行I/O连接器,是输入、输出信号接口。

连接器X4上有3个输出信号,如图3.2所示。出厂默认值分别是SO1为刹车信号BRK-OFF、SO2为通用输出信号EX-OUT1、SO3为报警信号ALM。这3个输入口也可以通过通过软件定义为其他功能信号。

 

连接器X4上有8个输入信号。出厂默认值为:SI2为正限位信号、SI3为负限位信号、SI4为原点信号。SI1、SI7、SI8为通用输入信号,SI5、SI6为外部锁存输入信号。

 

如果用信号的上升沿作为触发信号时,需要使用具有锁存补偿功能的输入口SI5、SI6或SI7。为了提高信号响应速度,可将原点信号Home接入SI5、正限位信号POT接入SI6、负限位信号NOT接入SI7,如图3.2所示。其他输入口可通过软件定义为通用输入信号或其他功能信号。

连接器X4的插头引脚编号如图3.3所示。

 

 

 

 

四)伺服驱动器的参数设置

1.安装软件

在松下伺服电机网页下载最新的电机调试软件PANATERM Ver.6。(网址:https://device.panasonic.cn/ac/c/motor/fa-motor/ac-servo/index.jsp)然后,安装软件PANATERM。

 

2.设置电子齿轮比

A6系列EtherCAT总线型伺服驱动器的电子齿轮比的设置方式和脉冲型驱动器的不同,是通过修改EtherCAT总线的数据对象的参数完成设置。与电子齿轮比相关的数据对象定义及地址如下:

编码器增量:608Fh-01h

电机转动圈数:608Fh-02h

电机轴转动圈数:6091h-01h

驱动轴转动圈数:6091h-02h

进给量:6092h-01h

驱动轴转动圈数:6092h-02h

电子齿轮比的计算公式如下:

 

打开PANATERM软件,连接上驱动器后,在“其他”项中选“对象编辑器”,如图3.4所示,设置与电子齿轮比相关的数据对象为:

(608Fh-01h)=2²³

(608Fh-02h)=(6091h-01h)=(6091h-02h)=(6092h-02h)= 1

(6092h-01h)= 2²³

即:电子齿轮比为1。编码器的分辨率为2²³/圈,电机转一圈需要2²³个脉冲。

注意:修改完参数后,需要点击“EEP”图标,将参数写入驱动器。

 

3.设置编码器输出脉冲数

打开PANATERM软件中的“参数”项,将驱动器参数Pr0.11(电机每旋转1圈输出脉冲数)设置为2097152,即2²¹。如图3.5所示

因为在运动控制卡上编码器输入信号是4倍频,即得到的电机每旋转1圈输出脉冲数为2²³。

 

 

 

 

4.设置定位完成范围Pr4.31

该参数之间影响电机的定位精度。出厂设置为10(指令脉冲数),对应的Pr0.08为10000(电机每旋转1圈的指令脉冲数)。

因为我们已经将电机转一圈的脉冲数设为223个(8388608,比出厂值高了838倍)。故将Pr4.31设置为50。定位精度比出厂设置值高了167倍。

另外,将参数Pr4.32(定位完成输出设定)设为1。即:无位置指令时,且位置偏差小于参数Pr4.31时,定位完成信号INP为ON。

 

5.自动调整电机的增益

每个电机的负载都不一样,为了使伺服电机工作在“快、准、稳”的最佳状态,必须调整电机的增益参数。使用PANATERM软件中的“适合增益”功能,可以自动调整电机的增益且效果良好。

 

 

6.设置输入信号

参照表3.2的定义,将连接器X4的8个输入信号的设置如表3.3所示。每个输入口的设定值有3个字节,对应于位置、速度、转矩这3种控制模式下的输入信号。

打开PANATERM软件中的“参数”项,将Pr4.00~Pr4.07设置为表3.3中所示值。

 

 

6.设置输入信号

参照表3.2的定义,将连接器X4的8个输入信号的设置如表3.3所示。每个输入口的设定值有3个字节,对应于位置、速度、转矩这3种控制模式下的输入信号。

打开PANATERM软件中的“参数”项,将Pr4.00~Pr4.07设置为表3.3中所示值。

 

 

5个通用输入信号SI-MON1~SI-MON5映射至EtherCAT总线上的轴输入信号为In19~In23。

原点信号Home、正限位POT、负限位NOT信号对应于轴输入信号In2、In1、In0。

注意:定位完成信号INP对应于轴输入信号的In24。

 

7.设置输出信号

参照表3.4的定义,将连接器X4的3个输出信号的设置如表3.5所示。定位完成信号在速度和转矩模式下无效。

用PANATERM软件将Pr4.10~Pr4.12设置为表3.5中所示值。

 

 

 

参数修改完后,点击“设定值变更”按钮,再点击“EEP”按钮,将参数存入伺服驱动器中。

 

8.电机运动模式

众所周知,交流伺服电机有位置模式、速度模式和力矩模式。在使用EtherCAT总线伺服电机时,用户并不需要关注怎么设置电机的运动模式。运动控制器给伺服电机发什么指令,电机就在相应的模式下工作。

(注:力矩控制指令正在开发中。)

 

9.电机的节点号

A6系列伺服电机可以设置节点号。但是,雷赛DMCE3032运动控制卡是根据节点在总线上的物理位置确定其节点号,不识别A6系列伺服电机设置的节点号。

 

五)用Motion软件测试伺服电机的方法

1.启动Motion软件。可直接运行光盘中“Motion”子目录中的Leadshine.DMCMotion.exe文件。其主页如图3.6所示。如果右下角的“总线状态”栏提示总线错误,可用鼠标右键点击“DMC-E3032”图片,进入“硬件复位”,点击“冷复位”。可使总线恢复正常。

在没有添加任意一个总线设备时,总线状态会显示错误,但可直接进入下一步。

 

 

2.自动添加节点设备。在主页面上点击“总线配置”按钮,进入到如图3.7所示界面。

总线上的从站设备都接好并上电,然后右键点击主站,选择“扫描设备”进行自动扫描。如图3.7所示。扫描完成后,主站节点下会显示总线上所有的从站,如图3.8所示。

 

然后,将总线周期时间设为500微秒。主站页面里的周期时间也改为500微秒。

 

  

完成从站配置后,需要把配置文件下载到控制卡。点击“下载配置文件”完成配置文件下载;若软件未自动复位控制卡,需要手动点击“复位系统”来复位重启控制卡。

 

3.测试输入信号。在主页面上点击“运动状态”按钮,进入到如图3.9所示界面。

在“专用信号状态”栏中,可以测试原点信号ORG(对应于伺服电机上的HOME信号)、正限位信号ELP(对应于伺服电机上的POT信号)和负限位信号ELN(对应于伺服电机上的NOT信号)。


 

在如图3.10所示的“轴IO状态”栏中,可以测试输入信号SI-MON1~5,它们对应于电机输入信号In19~In23。

 

 

4.输出信号的配置与测试。


在“总线配置”界面上,在左边的总线节点树上双击伺服电机驱动器“MADLN05BE”,看见如图3.11所示的界面。在“选择输出”栏中选中“Receive PDO mapping1”;然后,点击下方的“编辑”按钮。得到图3.12所示的PDO编辑界面。

 

 

 

在“PDO编辑”界面上,点击“添加”按钮,进入如图3.13所示“PDO项编辑”界面。先后添加两个数据:PhysicalOutputs和Bit Mask,其地址和数据类型如图所示。点击“确定”,返回“过程数据”界面。这时,在“选择输出”栏中多出2个数据PhysicalOutputs和Bit Mask。

下载配置文件后,在图3.10所示界面中可测试通用输出信号。EX-OUT1对应于轴输出信号的Out16。

 

 

 

5.电机测试。在主页面上点击“功能测试”按钮,进入到如图3.14所示界面。在“单轴测试”栏中,进行电机测试。

注意:在点击“启动”按钮之前,必须点击“单轴使能开”按钮。

 

 

六)用C#编写程序控制松下伺服电机的方法

下面通过一个例程,演示C#程序控制松下伺服电机的方法。

 

例程1:

伺服电机的硬件连接及输入输出口的定义如图3.1、3.2所示,电机的参数设置如第三章第三节所示。

程序界面设计如图3.15所示,程序代码见附录中的例程1。

 

该程序可实现的功能及编程要点如下:

1.初始化运动控制卡

总线型运动控制卡的初始化过程与一般脉冲型运动控制卡的一样,代码详见附录例程1中的函数Form1_Load(…)。

在伺服电机运动之前要将使能信号打开。其指令为:nmc_set_axis_enable(卡号,轴号);

注意:不要忘记将LTDMC.cs拷贝置项目文件夹中,并在“解决方案”中添加LTDMC.cs;并且要将DMC2410.dll拷贝至项目文件夹中的bin文件夹中的Debug文件夹内。

 

2.关闭运动控制卡

关闭总线型运动控制卡的过程与一般脉冲型运动控制卡的一样,代码详见附录例程1中的函数Form1_FormClosing(…)。

关闭伺服电机的使能信号指令为:nmc_set_axis_disable(卡号,轴号);

 

3.点位运动

点位运动的指令与一般脉冲型运动控制卡的一样,代码详见附录例程1中的函数button5_Click(…)。

 

 

4.连续正反转运动

伺服电机定位精度高。应该在运动指令发送结束后,再判断其到位信号INP,以确定电机运动是否停止。代码详见附录例程1中的函数Check_INP(…)。

读取电机的输入口状态的指令为:nmc_get_axis_io_in(卡号,轴号);它一次将该电机所有的输入信号读入一个无符号32位变量中。判断到位信号INP,还需要进行一次与运算,将第24位的到位信号INP解析出来,如以下代码所示。

inINP = LTDMC.nmc_get_axis_io_in(cardID0, 0);

inINP = inINP & 0x1000000;      // 读取第24位的到位信号INP

5.Jog运动

Jog运动即为定速运动。按钮“Jog+”按下后,启动vmove指令,电机定速运动;按钮“Jog+”抬起后,启动减速停止指令,使定速运动停止。代码详见附录例程1中的函数button1_MouseDown()、button1_MouseUp(…)。

 

6.定速运动及在线变速

按下“连续运动开始”按钮,电机以设定的速度连续运动。之后,每按一次“速度+10%”或“速度-10%”,电机都会进行在线变速。

在线变速的指令为:dmc_change_speed_unit(卡号,轴号,新速度,变速调整时间);

 

7.回原点运动

回原点运动和一般脉冲型运动控制卡的不一样。回零模式是按照IEC61800-7CiA402标准协议定义的。常用的4种如下:

19号回零方式:电机正方向旋转高速回原点,检测到原点信号后,低速后退,出零点检测范围后停止。

21号回零方式:电机负方向旋转高速回原点,检测到原点信号后,低速后退,出零点检测范围后停止。

20号回零方式:电机正方向旋转低速回原点,检测到原点信号即停止。

22号回零方式:电机负方向旋转低速回原点,检测到原点信号即停止。

即在调用回原点模式设置函数nmc_set_home_profile(卡号,轴号,回零模式,回零低速,回零高速,回零加速时间,回零减速时间,回零偏移量)时,其中的“回零模式”要设为19或21、20、22。

回原点运动的代码详见附录例程1中的函数button12_Click(…)。

 

8.输出口Output1的控制

电机输出口的控制指令和输入口的一样,也是一次将该电机所有的输出信号读出或写入。因此,在控制输出口Output1时,就要对输出口数据的第16位信号进行处理。置1用或运算、清0用与运算。代码详见附录例程1中的函数checkBox6_CheckedChanged(…)。

 

9.查询输入口状态

输入口状态由定时器定时查询其变化并显示其状态,定时周期50毫秒。代码附录例程1中的详见函数timer2_Tick(…)。

10.编码器位置显示与清零

编码器位置也是由定速器定时查询与显示,代码详见附录例程1中的函数timer2_Tick(…)。

编码器位置清零的代码详见附录例程1中的函数button7_Click (…)。

 

11.总线状态显示与总线复位

总线状态也是由定速器定时查询与显示,代码详见函数timer2_Tick(…)。

当总线状态异常时,可以使用指令dmc_cool_reset(0)对总线复位,同时关闭运动控制卡;复位过程需要10秒钟时间;总线复位完成后,需要对运动控制卡初始化,直接调用函数Form1_Load(sender, e)即可。代码详见附录例程1中的函数button8_Click(…)。

 

 

在EtherCAT总线型运动控制系统中,全部使用伺服电机显然是不合适的。


2016年雷赛智能公司在国内首先推出了EtherCAT总线型步进电机驱动器DM3E系列产品。其外观与参数如图4.1和表4.1所示;其总线参数如表4.2所示。

 

 

 

其接口电路图如图4.2所示,其中CN3为IO接口。IO接口的默认信号如图4.2所示,也可以更改为其他信号,详见该产品手册。

 

 

 

 

DM3E系列驱动器接入总线的方法很简单,和松下交流伺服电机的相似。用雷赛Motion软件,在总线配置界面内,通过“扫描设备”、设置总线周期时间、下载配置文件,即自动配置完成;然后可进行电机的相关测试。(参见第三章第5节)

 

步进电机的峰值电流、每转脉冲数(相当于设置细分数)等参数可以通过EtherCAT总线修改DM3E系列驱动器的对象字典完成。常用参数如表4.3所示。 


 


 

注意:修改参数后,必须向对象字典(1010H-04H)写一个保存命令0x65766173,参数才能写入EEPROM,保留在驱动器中。保存数据的时间大约为10秒钟。

 

例程2:

图4.3是一个DM3E系列驱动器及步进电机的测试程序界面程序,代码见附录中的例程2。该程序可实现的功能及编程要点如下:


 

1.初始化运动控制卡、关闭运动控制卡

代码详见附录例程2中的函数Form1_Load(…)、函数Form1_FormClosing(…)。

 

2.参数的读取与设置

读对象字典参数的指令为:

LTDMC.nmc_get_node_od(卡号,EtherCAT端口号,节点号,对象字典索引,子索引,参数长度,ref参数);

写对象字典参数的指令为:

LTDMC.nmc_set_node_od(卡号,EtherCAT端口号,节点号,对象字典索引,子索引,参数长度,参数);

代码详见附录例程2中的函数button1_Click(…)、函数button2_Click(…)。

注意:EtherCAT端口号固定为2。

 

3.点位运动、Jog运动和回原点运动

运动指令和例程1一样。代码详见附录例程2中的函数button3_Click(…)、button5_MouseDown(…)、button5_MouseUp(…)、button4_Click(…)。

4.读指令脉冲位置

其指令为:LTDMC.dmc_get_position_unit(卡号,轴号, ref指令位置);

代码详见附录例程2中的函数timer1_Tick(…)。

 

雷赛公司于2010年在国内首创的闭环步进电机控制技术是在普通的步进电机上加装旋转编码器、并使用交流伺服电机控制算法,使步进电机的性能有了质的飞跃。

 

雷赛闭环步进电机及驱动器的特点如下:

1.步进电机采用1000线编码器做位置检测;也可定制5000线编码器。

2.对位置偏差实时补偿,根本解决了普通步进电机的丢步问题。

3.转速可达2500rpm,有效力矩比普通步进电机提高30%以上

4.振动小、噪声低,电机运行平稳。

5.电机电流根据负载大小实时调节,所以电机发热量小。

6.电机参数自动调整,智能水平高。

 

雷赛EtherCAT总线型闭环步进电机驱动器CL3-EC系列产品的参数如表5.1所示。

 

 

 

 

CL3-EC系列驱动器总线参数与雷赛EtherCAT步进电机驱动器一样,参见表4.2。

CL3-EC系列驱动器的接口电路图如图5.2所示。图中CN4接口为数字IO接口,有7路输入信号、6路输出信号;信号可自定义,出厂默认值如图所示。CN4接口上还有一个专用的抱闸输出口,驱动电流高达500mA,并集成了续流二极管,可以不用继电器直接驱动抱闸器。

CL3-EC系列驱动器驱动器接入总线的方法和雷赛总线型步进电机的相似。下面以一个CL3-EC507驱动器为例,介绍其使用方法。

 

首先,用雷赛Motion软件,在总线配置界面内,通过“扫描设备”、设置总线周期时间,可自动找到CL3系列闭环步进电机驱动器,但没有自动完成轴映射,如图5.3所示。

 

在图5.3所示的界面中,点击“添加”按钮,手工进行轴映射。过程如图5.4所示。再点击图5.5中的“上移”按钮,将刚添加的“轴3”上移为“轴1”,如图5.5所示。

然后下载配置文件,完成配置工作。

至此,图5.5中的原点信号Home,正负限位信号POT、NOT,到位信号INP、报警信号ALM,通用输入信号SI-MON1、SI-MON2都可正常使用。

 

如果要使用图5.5中的通用输出口EX-OUT1~EX-OUT4,还需要进行输出口过程数据的设置,方法如下。


 

 

 

 

在Motion软件的“总线配置”界面左边的EtherCAT设备树中,双击“CL3-EC507”,出现图5.6所示的界面。


 

选中“ReceivePDO1”,点击下面的“编辑”按钮,进入到图5.7所示界面。点击“添加”按钮,进入如图5.8所示的界面。


 

 

在图5.8所示的界面中,选择“DigitalOutputs”,分别添加Physical Outputs和BitMask这两个数据;之后,可在输出数据中看到Physical Outputs和BitMask,如图5.9所示。最后,还要下载配置文件。

 

 

CL3-EC系列驱动器的通用IO信号与EtherCAT总线轴IO的映射关系如表5.2所示。控制通用IO信号的指令和松下交流伺服电机例程中的相同。

 

 

 

闭环步进电机的峰值电流、每转脉冲数(相当于设置细分数)等参数可以通过EtherCAT总线修改CL3-EC系列驱动器的对象字典完成。常用参数如表5.3所示。

 

 

 

注意:编码器分辨率是编码器线数的4倍。如果,采用5000线的编码器,这编码器分辨率为20000。和松下交流伺服电机不同,编码器分辨率不可随便改动。修改编码器分辨率后,必须重新启动驱动器才能生效。

 

例程3:

图5.10是CL3-EC系列驱动器及闭环步进电机测试程序的界面。其代码见附录中的例程3。

 

 

以上就是EtherCAT总线控制系统的各类运动控制产品基本操作了,在下篇文章中,将继续为大家带来基于EtherCAT总线的各类扩展模板的使用方法,敬请期待。

 

想要获取完整文章内容可点击文末“阅读原文

 

 

上一条:C#2017编程基础及雷赛运动控制产品应用(下)
下一条:EtherCAT总线型运动控制系统入门教程(2)