编写运动控制器的 EtherCAT 初始化程序示例
正运动控制器的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