编写运动控制器的 EtherCAT 初始化程序示例

人工智能68

正运动控制器的EtherCAT 总线接口可用于连接 EtherCAT 伺服驱动器和 EtherCAT 扩展模块,无论连接什么模块, EtherCAT 总线都需要编写一段 EtherCAT 总线初始化程序来进行电机和 EtherCAT 扩展模块的使能。使能之 后的应用与脉冲电机一致,运动指令都是相同的。

初始化程序一般过程:

1.使用 SLOT_SCAN 扫描设备,判断 RETURN 是否正确,未连接设备时不会报错。

2.通过 NODE_INFO/ NODE_AXIS_COUNT 等对设备类型、信息等进行判断。

3.依次设置 AIXS_ADDRESS,ATYPE,DRIVE_PROFILE,DRIVE_IO 等。

4.SLOT_START 启动设备。

5.设置每个轴的 AXIS_ENABLE=1,打开轴的使能,设置 WDOG=1,所有轴使能允许。(部分驱动 器需要使用 DRIVE_CONTROLWORD 指令清除驱动器报警)

6.建立连接后主站和从站即可进行周期性数据交换。

EtherCAT 初始化程序:

使用要求:控制器带 EtherCAT 接口,伺服驱动器必须支持 EtherCAT 总线,ZDevelop 需要 2.5 以上版本。 此初始化程序只进行了总线使能操作,轴的脉冲当量、轴速度、运动轨迹需要在上位机进行设置。

'''''''''''''''''''''''' 初始化准备

RAPIDSTOP(2)

WAIT IDLE

FOR i=0 to 10

'取消原来的总线轴设置

ATYPE(i)=0

NEXT

'''''''''''''''''''''''' EtherCAT 总线初始化

SLOT_SCAN(0)

'开始扫描

IF RETURN THEN

?"总线扫描成功","连接设备数:"NODE_COUNT(0)

?"开始映射轴号"

AXIS_ADDRESS(0)=0+1

'映射轴号

ATYPE(0)=65

'EtherCAT 类型

'65 位置控制,66 速度控制,67 力矩控制

DRIVE_PROFILE(0)= -1

'伺服 PDO 功能

'ATYPE=66 时设置 DRIVE_PROFILE=20

'ATYPE=67 时设置 DRIVE_PROFILE=30

DISABLE_GROUP(0)

'每轴单独分组

?"轴号映射完成"

DELAY (100)

SLOT_START(0) '总线开启

IF RETURN THEN

?"总线开启成功"

?"开始清除驱动器错误(根据驱动器数据字典设置)"

DRIVE_CONTROLWORD(0)=0 '配合伺服清除错误

DELAY (10)

DRIVE_CONTROLWORD(0)=128 'bit7=1 强制伺服清除错误

DELAY (10)

DRIVE_CONTROLWORD(0)=0 '配合伺服清除错误

DELAY (10)

DATUM(0)

'清除控制器所有轴错误

DELAY (100)

?"轴使能准备"

AXIS_ENABLE(0)=1 '轴 0 使能

WDOG=1

'使能总开关

?"轴使能完成"

ELSE

?"总线开启失败"

ENDIF

ELSE

?"总线扫描失败"

ENDIF

END

Original: https://www.cnblogs.com/zmtion/p/16419329.html
Author: 正运动技术
Title: 编写运动控制器的 EtherCAT 初始化程序示例