编写运动控制器的 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

 

posted @ 2022-07-04 16:38  正运动技术  阅读(1227)  评论(1编辑  收藏  举报