当前位置:首页 > 工业园区 >总线运动控制器编程(总线运动控制系统)

总线运动控制器编程(总线运动控制系统)

视频教程《视频教程:EtherCAT总线运动控制器应用进阶一》

01 准备工作

总线运动控制器编程(总线运动控制系统)

1、材料准备

1.硬件

A. 1 个带有EtherCAT 总线接口的ZMC432 控制器。

B.松下EtherCAT伺服驱动器+电机组

C、一台电脑。

D. 两根屏蔽网线。

E、24V直流电源1个。

F. 若干接线端子和连接线。

2.软件

A.ZDevelop V3.10版控制器编程软件。

从Zmotion官网www.zmotion.com.cn下载压缩包,解压后直接运行应用程序,无需安装。

B.松下伺服驱动器上位机调试软件。

从松下官方网站下载并安装。

2、硬件接线

1.控制器接线

控制器接口的用途请参见下图。

A、主电源:将控制器主电源端子上的E+24V端子连接24V直流电源正极,EGND端子连接24V直流电源负极。

B. 网口接线:使用网线将控制器的以太网口与电脑的以太网口连接。

C、伺服驱动器与控制器之间的接线:使用网线将控制器的EtherCAT 总线端口与伺服驱动器的X2A 或X2B 端口连接。

请注意,伺服驱动器有两个EtherCAT 接口。有的驱动器可以随意连接这两个接口,有的则分为EtherCAT IN和EtherCAT OUT。 IN接口连接上级设备,OUT接口连接下级设备。两者不能混用。注意连接顺序。

多轴控制时,伺服驱动器的EtherCAT OUT端口与下一级驱动设备的EtherCAT IN端口连接,以此类推。

2.驱动器接线

伺服驱动器、电机、编码器的接线参见驱动器说明书,将驱动器连接至220V市电。

02 连接控制器与电脑

控制器与计算机可通过串口或网口连接。以下是网口连接示例。

1、网口通讯操作方法

首先用网线将控制器与电脑连接,打开控制器电源,然后打开ZDevelop编程软件,点击菜单栏中的“控制器”“连接”,打开“连接控制器”窗口。

通过“连接控制器”窗口,您可以快速查看本地IP,并比较控制器与电脑是否在同一网段。

下拉选择IP地址列表时,会自动搜索当前局域网内可用的控制器IP地址(控制器上电时POWER、RUN灯亮即可找到控制器的IP地址) )。

当同一网络中有多个控制器时,如果IP下拉列表中没有显示目标控制器的IP地址,您可以使用IP扫描查看当前所有可用的控制器IP地址。扫描完成后,请务必关闭此窗口并重新选择IP 下拉列表。

选择正确的IP地址并点击连接后,编程软件与控制器成功连接,并在在线命令和输出窗口中打印信息提示。

控制器的出厂默认IP 地址为192.168.0.11。 “连接到控制器”窗口可以显示本地IP地址。请注意设置有线网卡和无线网卡各自的IP。电脑需要设置IP地址和控制器IP在同一网段才能连接。即四个段中的前三个段必须相同,最后一个段必须不同才能通信。

如果控制器和计算机不在同一网段,则需要修改控制器或计算机的IP地址,使其处于同一网段。

修改控制器IP地址,需要先使用串口连接控制器,获取控制器IP地址,然后修改本地IP或控制器IP,使其在同一网段。

2.修改控制器IP地址

首先使用串口连接控制器,获取控制器IP地址,然后修改控制器IP地址。

方法一:可以通过菜单栏“控制器”“修改IP地址”窗口直接修改控制器IP地址。

方法二:通过IP_ADDRESS指令发送在线命令修改。

命令发送并修改成功后,连接将自动断开。在线命令将打印控制器连接错误消息。选择新的IP地址192.168.0.23,通过网口连接再次连接到控制器。修改成功后IP地址永久有效。

3.修改本机IP地址

以WIN10为例,打开开始菜单中的控制面板,打开“网络和Internet”。

再次打开“网络和共享中心”。

单击“以太网”。

点击“以太网状态”窗口中的“属性”,打开“以太网属性”窗口,找到Internet协议版本4(TCP/IPv4)并打开,会看到本地IP地址修改窗口,勾选“使用以下IP”地址”,修改IP地址输入栏的IP,将本机IP更改为与控制器IP同一网段,修改完成后点击“确认”即可成功修改IP。

再次打开“连接到控制器”窗口并尝试连接到控制器。

03 DPOS与MPOS的区别

DPOS是用户自定义的目标位置,即控制器发出的命令位置。单位是单位。该值的大小等于控制器实际发送的脉冲数除以脉冲当量。

写入DPOS会自动转换为DEFPOS绝对坐标位置偏移,并且不会移动电机。

MPOS 是用户单位的轴测量位置,也称为实际位置,单位为UNITS。该值是编码器测量的轴的实际位置。连接到伺服电机的编码器用于测量电机的旋转角度和速度。 MPOS 值通常遵循DPOS 值。该值的大小等于编码器测量的值。实际脉冲数除以脉冲当量即可得到。当没有编码器时,该轴的MPOS值自动复制DPOS值。

写入MPOS会自动将其转换为DEFPOS绝对坐标位置偏移量。

有些电机有一定的跟随误差(DPOS-MPOS)。这与机器和电机本身的刚性有关。机器越好,电机越好,调节越刚性,跟随误差越小,但跟随误差永远存在。它是不可能消除的,并且它是实时变化的。在实际应用中,尽量增加机械刚性和电机刚性,以尽量减少跟随误差,使速度尽可能平滑,使MPOS更加准确。

另外,SPEED为控制器给定速度,MSPEED为编码器实际测量的反馈速度。

如下图所示,轴类型ATYPE=65,EtherCAT周期位置模式,带编码器反馈,因此脉冲信号输出和编码器反馈信号都在轴0上。此时MPOS为真,跟随DPOS。

当ATYPE=4或65或50模式时,轴号配备编码器反馈。

OFFPOS指令相对偏移量修改所有坐标,不会影响已经运行/进入缓冲区的运动。

DEFPOS 指令将当前轴位置设置为新的绝对位置值,并且不会影响已经运行/进入缓冲区的运动。

例子:

BASE(0,1) '选择轴0、轴1

DPOS=100,100 '设置当前仓位为100,100

?DPOS(0),DPOS(1) '打印确认,当前仓位为100,100

OFFPOS=10,20 '多次调用OFFPOS相对位置

OFFPOS=10,20

?DPOS(0),DPOS(1) '此时当前仓位变为120,140

DEFPOS(10,20) '设置当前位置为10,20

?DPOS(0),DPOS(1) '当前位置为10,20

04 EtherCAT伺服驱动器

参数设置

1、电子齿轮比的应用

伺服电机电子齿轮比是指伺服对接收到的控制器脉冲频率进行放大或缩小。其中一个参数是分子,另一个是分母。如果分子与分母的比值大于1,则表示放大,如果比值小于1,则表示缩小。当比率等于1时,电机接收的脉冲数等于控制器发送的脉冲数。

计算公式:电机实际接收的脉冲数=控制器发送的脉冲数*电子齿轮比

例如:控制器发出10000 个脉冲,电子齿轮比的分子设置为1,分母设置为2,电子齿轮比为0.5,则舵机实际运行以5000 个脉冲为基础。控制器发出10000个脉冲,电子齿轮比的分子设置为2,分母设置为1,电子齿轮比为2,那么舵机的实际运行是以20000个脉冲为基础的。

松下驱动电子齿轮的比值在1000-1/1000范围内有效。

电子齿轮比由数据字典6091h中子字典01h和02h的比率设定。 6091h-01h 设置电子齿轮比的分子,6091h-02h 设置电子齿轮比的分母。

数据字典6092h的子字典01h用于设置电机转一圈所需的脉冲数。一般根据编码器的分辨率来设置。 6092h 的子词典02h 的值默认为1。

电子齿轮比等驱动器相关参数的修改可以直接通过驱动器软件修改,也可以使用SDO指令读写相应的数据字典进行配置。

1.驱动软件修改电子齿轮比

要修改驱动器参数,请先连接驱动器。您可以选择USB 电缆或WLAN 来连接驱动器。使用USB线连接电脑的X1口和驱动器。打开驱动器电源。打开松下驱动软件PANATERM。将弹出“选择与驱动器通信”窗口。选择要与之通信的驱动器。通过USB连接后,会自动获取驱动器信息并显示在窗口中。单击“确定”即可成功连接并设置驱动器。

点击菜单栏中的“显示”“对象编辑器”,打开如下窗口,找到需要设置的数据字典,直接在“设置值”栏中修改数据字典的内容。

修改完成后,将参数传送给驱动器,并写入驱动器的EEPROM中。该参数需驱动器重新上电后生效。

图中电子齿轮比=1:1,电机一转脉冲数为10000。

2.SDO指令修改电子齿轮比

SDO指令包括数据字典读取SDO_READ、SDO_READ_AXIS和数据字典写入SDO_WRITE、SDO_WRITE_AXIS。

数据字典读取语法:

SDO_READ(槽号、设备号、数据字典号、数据字典子号、数据类型、读取数据存储TABLE位置)

SDO_READ_AXIS(轴号、数据字典号、数据字典子号、数据类型、读取数据存储TABLE位置)

数据字典写入语法:

SDO_WRITE(插槽号、设备号、数据字典号、数据字典子号、数据类型、写入数据值)

SDO_WRITE_AXIS(轴号、数据字典号、数据字典子号、数据类型、写入数据值)

例子:

SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '设置电子齿轮比分子为1

SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '设置电子齿轮比分母为1

SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '设置电机一转脉冲数为10000

SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '写入EPPROM(写入EPPROM后驱动器需要重新上电)

使用命令更改后,查看驱动器参数如下:

2.读取多圈编码器值

当驱动器带有多圈绝对值编码器时,可以使用ENCORDE指令读取编码器硬件寄存器的原始值,即多圈绝对值。该参数是只读类型。仅当配置为使用编码器的ATYPE 时才能读取它。

驱动器重新启动后,ENCORDE 值将清零。

?*ENCODER '打印各轴编码器值,驱动器上电时初始值为0

?ENCODER(0) '打印单轴编码器值

?ENCODER AXIS(0) '打印单轴编码器值

如下图所示,使用带有编码器反馈的EtherCAT驱动器,控制轴0继续向前移动MOVE(500)。此时发送的脉冲总数=UNITS * DPOS=100 * 500=50000。

ENCORDE指令读取驱动器多圈绝对式编码器的值,该值等于编码器检测到的接收脉冲总数50,000。

此时如果改变DPOS和MPOS,ENCORDE的值不会改变,因为坐标改变时电机不会运动,编码器接收到的脉冲数也不会改变。

由于读取的是多圈的绝对值,所以负向运动的ENCORDE值减小,正向运动的ENCORDE值增大。

松下驱动软件可以设置绝对编码器。

由参数Pr0.15设定。

Pr0.15参数选择说明:三个设定值说明如下。上例为默认值1,用作增量编码器。

3、驱动IO操作

读取驱动器IN输入、OP输出

使用DRIVE_IO 指令将60FDh 驱动程序IO 输入和60FEh 驱动程序IO 输出的起始IO 号映射到驱动程序对象字典中。

驱动器映射IO信号后,就可以根据编号来控制驱动器的IO信号。 IO信号输出可由OP指令控制。

位bit的值设置为1表示ON,设置为0表示OFF。

驱动IO映射示例:映射正负限位信号

只有设置正确的DRIVE_PROFILEE或PDO后才能正常映射输入。也就是说DRIVE_PROFILE驱动PDO配置模式包含两个数据字典,60FDh和60FEh。

DRIVE_PROFILE(iAxis)=5 '设置IO映射对应的PDO模式

DRIVE_IO(iAxis)=i_IoNum '设置IO起始编号

REV_IN(iAxis)=i_IoNum '负限制应为60FD BIT0

FWD_IN(iAxis)=i_IoNum + 1 '正限位先对应60FD BIT1

DATUM_IN(iAxis)=i_IoNum + 2 '原点信号对应60FD BIT2

INVERT_IN(i_IoNum,ON) '特殊信号有效电平反转

INVERT_IN(i_IoNum + 1,ON)

INVERT_IN(i_IoNum + 2,ON)

驱动IO输出:

DRIVE_PROFILE(iAxis)=5 '设置IO映射对应的PDO模式

DRIVE_IO(iAxis)=i_IoNum '设置IO起始编号

OP(i_IoNum, ON) '打开驱动器的第一个OUT端口

在驱动器的“参数”窗口中可以找到参数类别4来操作驱动器的IO信号,如下图。

4、驱动器回零

EtherCAT总线可以使用控制器提供的回零方式DATUM(模式)。模式值的选择请参考ZBasic编程手册中的DATUM指令。 EtherCAT总线也可以使用驱动器本身的回零模式。

驱动器本身使用DATUM(21,mode2)命令回零。 mode2模式值请查驱动手册数据字典6098h回零模式。如下图所示,填写mode2对应的Value值。 mode2默认值为0,也就是驱动器的回零。模式,请注意此时原点限位等信号必须连接到驱动器上,所以当想要使用驱动器回零时,需要映射驱动器的IO。

例子:

初始化完成后,运行驱动程序的回零程序。按照上节的例子,将驱动器的限位信号和原点信号映射到控制器的IO,然后运行下面的回零程序。

BASE(iAxis) '根据驱动轴号一一回零

AXIS_STOPREASON=0

SPEED=100 '返回零速度

CREEP=10 '反向搜索速度

加速=1000

DATUM(21,2) '驱动器回零模式值=2

等待空闲

如果AXIS_STOPREASON=0 那么

?'回零成功'

别的

?'归零失败','停止原因:',AXIS_STOPREASON,'状态字0X',HEX(DRIVE_STATUS)

万一

5、扭矩实时读取

当PDO包含数据字典6071h(目标扭矩)时,ATYPE可以设置为67,周期扭矩模式。此时,通过DAC指令控制电机按设定的扭矩值运行。 DAC值范围为0-1000,对应DAC值的0-100%,如DAC=10,此时电机扭矩=扭矩值的1%。

扭矩控制时,DAC单位为千分之一。当等于1000时,表示100%扭矩。此时的值等于数据字典6072h的值(设定最大扭矩)。

注意速度模式和扭矩模式切换时,先设置DAC=0,然后修改ATYPE,防止发生意外。

SDO读取数据字典6071h的值为目标扭矩的大小,即当前发送的DAC的大小。当没有发送DAC 命令时,6071h 的值为0。一般情况下,当前扭矩6071h 的取值范围为0-6072h 的设定值。

例如:ATYPE=67 扭矩模式

数模转换器=40

SDO_READ(0,0,$6071,0,3,0)'读取0轴目标扭矩,TABLE(0)的值变为40

读取驱动器扭矩,当配置的DRIVE_PROFILE 包含数据字典6077h 时,可以使用DRIVE_TORQUE 指令读取当前轴扭矩,或者使用SDO_READ 指令直接读取数据字典6077h 的值,获取当前扭矩和轴扭矩。目标扭矩值。它们之间可能存在波动,读取的是实时值的大小。

例子:

?DRIVE_TORQUE(0) '打印轴0的扭矩

数据字典6077h用于读取当前扭矩值,示例:

SDO_READ(Bus_Slot,iNode,$6077,0,3,0)'读取当前扭矩并保存到TABLE(0)

6. 扭矩限制的应用

扭矩控制用于印刷机、绕线机、注塑机等。使用EtherCAT总线时,电机输出的扭矩与DAC指令输入的值成正比。

为了保护机器,可以限制输出扭矩。电机最大扭矩使用6072h设置,出厂默认值为10。

扭矩控制时,电机扭矩输出由DAC指令控制,但电机转速不受控制。因此,轻载时可能会出现超速现象。为了保护机器,必须限制速度。

数据字典6072h用于设置电机的最大扭矩。 6072h的值设置为1000,表示100%额定扭矩;设置为500时,表示额定扭矩的50%。多种不同的EtherCAT 模式都支持它。例如,在位置模式下,可以设置最大允许扭矩,并使用MOVE等运动指令来控制电机运行。此时,电机速度根据SPEED参数进行移动。如果目标位置设置得较大,这样,遇到障碍物后,速度受到限制,只能发出设定的最大扭矩。

SDO指令读取示例:

SDO_READ(0,0,$6072,0,3,0) '读取数据并保存到TABLE(0),值为5000

7. 电机极性设置

电机极性(旋转方向)通过数据字典607Eh设定。可以设置的bit值有8个,如下图所示。当极性不反转时,将607Eh的第7-5位设置为0;当极性反转时,此时将607Eh的bit7-4设置为1;将其余位4-0 设置为0。

设置方法:当607Eh的值设置为224时,符号取反,给出正向指令,电机旋转方向为CW(顺时针);当607Eh的值设置为0时,符号不反转,给出正向命令。电机旋转方向为CCW(逆时针);电机旋转方向规定见下图。

设置示例:

使用驱动软件或SDO指令来操作数据字典607Eh。

SDO_READ(Bus_Slot,iNode,$607E,0,5,0) '读取极性并将其保存到TABLE(0)

SDO_WRITE(Bus_Slot,iNode,$607E,0,5,$E0) '极性设置

驱动软件设置:可以查看或修改设置值。当值为224时,给定正向运动参数,电机顺时针旋转。

8、驱动器其他参数设置

驱动器出厂设置一般不会对IO电平进行反相,否则会导致驱动器限位报警。发生限位报警后,必须按照驱动器手册设置限位反转。例如松下伺服需要将Pr4.01和Pr4.02的参数分别设置为010101h(65793)和020202h(131586)。

IO输入出厂默认值(下图为十进制):

Pr4.01和Pr4.02的值可以直接在驱动软件上修改,也可以通过SDO_write指令在数据字典3401h和3402h中设置正负限制水平。

使用SDO 指令设置正负限制的示例:

SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101)'正极限电平,出厂值$818181

SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202)'负限位,出厂值$828282

对于修改的值,可以查看数据字典中的值或者查看参数分类。

其他参数的设置可以直接在“对象编辑器”窗口或“参数”窗口中修改。修改完成后,将保存到EEPROM中,并在驱动器再次上电时生效。

“EtherCAT总线运动控制器应用高级1”就到此为止。更多学习视频以及图文详细讲解,请关注我们的公众号“正运动助手”。

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

最新资讯

推荐资讯