云计算百科
云计算领域专业知识百科平台

Elmo 驱动器 |上位机配置、 调试及 CANopen 通信

注:本文为 “Elmo 驱动器” 相关合辑。 图片清晰度受引文原图所限。 略作重排,未整理去重。 如有内容异常,请看原文。


Elmo 驱动器上位机软件的基础配置

江湖上都叫我秋博 已于 2024-12-11 11:02:37 修改

一 硬件接线规范

1 电机/编码器 与 Elmo 驱动器的接线

Elmo 驱动器驱动机电执行元件的首要步骤为完成硬件接线,需实现 电机-编码器 → Elmo驱动器 的电气连接,接线前需准备并核对三份技术文档:电机规格书、编码器规格书、Elmo 驱动器规格书,确保接线逻辑无偏差。

电机规格书 img

编码器规格书 img

Elmo 驱动器规格书 img img

2 驱动器供电配置

img

Elmo 驱动器的供电类型为 直流电,驱动器实物端已引出正负极接线端子,分别以红、黑两色标识正极、负极。 供电电压要求:Elmo 驱动器为宽电压适配型,输入电压满足手册标称的电压区间即可,本配置案例中选用的供电参数为

30

 V

/

3

 A

30\\ \\text{V}/3\\ \\text{A}

30 V/3 A

img

3 驱动器与上位机的通讯接线

本案例中选用的 Elmo 驱动器,与上位机的通讯接口为

RS232

\\text{RS232}

RS232

img

接线实操:USB 转 RS232 模块的接头为 DB9 公头,驱动器端需将信号线转接至 DB9 母头,再与 USB 转 RS232 模块的公头对接。

img

4 驱动器与 GD32 控制板的通讯接线

Elmo 驱动器与 GD32 控制板的通讯接口为

CAN

\\text{CAN}

CAN,通讯协议为

CANopen

\\text{CANopen}

CANopen。 驱动器配备两路 CAN 接口:

CANopen IN

\\text{CANopen IN}

CANopen IN

CANopen OUT

\\text{CANopen OUT}

CANopen OUT,基础接线仅需将控制板的 CAN 接口接入驱动器的

CANopen IN

\\text{CANopen IN}

CANopen IN 即可;

CANopen OUT

\\text{CANopen OUT}

CANopen OUT 为总线拓展接口,可接入另一台驱动器的

CANopen IN

\\text{CANopen IN}

CANopen IN,实现单控制板对多驱动器的组网控制,单电机工况下该端口空置即可。

img

控制板接线规则:选用控制板的

CAN1

\\text{CAN1}

CAN1 通道,

CAN1H

\\text{CAN1H}

CAN1H 接驱动器

CANopen IN

\\text{CANopen IN}

CANopen IN

CAN-H

\\text{CAN-H}

CAN-H

CAN1L

\\text{CAN1L}

CAN1L 接驱动器

CANopen IN

\\text{CANopen IN}

CANopen IN

CAN-L

\\text{CAN-L}

CAN-L

二 Elmo 上位机与驱动器的链路建立

1 创建工作空间(Workspace)

img

自定义工作空间名称,并指定本地路径作为工作空间的存储目录。

img

2 打开已创建的工作空间

img img

3 添加驱动器至工作空间

img img

4 通过 RS232 串口建立通讯链路

前置要求:完成上述所有硬件接线,且接线无误。

img img img

三 Elmo Quick Tuning 快速参数整定

当 PC 通过上位机软件与驱动器完成串口通讯后,即可启动电机的快速调参流程。

img img

1 Axis Configurations 轴系配置

img 配置完成后,点击

Apply

\\text{Apply}

Apply 写入参数。

2 Motor Settings 电机参数配置

参照本文第一章节的电机规格书,录入匹配的电机额定参数,不同型号电机需按对应手册调整参数。

img img img 配置完成后,点击

Apply

\\text{Apply}

Apply 写入参数。

3 Feedback Settings 反馈参数配置

电机常用的反馈元件分为 增量式差分编码器(ABZ 信号) 与 绝对式编码器,本配置案例以增量式差分编码器为例。 驱动器的反馈接口包含

Port A/Port B/Port C

\\text{Port A/Port B/Port C}

Port A/Port B/Port C,上位机的接口选择与硬件接线严格对应;驱动器内部对

Port B/Port C

\\text{Port B/Port C}

Port B/Port C 的适配性,需与厂商确认。

img

本案例的硬件接线为驱动器的

Port A

\\text{Port A}

Port A,反馈元件为增量式差分编码器,故上位机配置选择

Encoder Quad, Port A

\\text{Encoder Quad, Port A}

Encoder Quad, Port A

Quad

\\text{Quad}

Quad 代表方波信号);若硬件接线为

Port B

\\text{Port B}

Port B 且驱动器支持,则选择

Encoder Quad, Port B

\\text{Encoder Quad, Port B}

Encoder Quad, Port B

img

选型建议:反馈元件类型的配置存在多选项,若无法确定适配选型,可直接咨询编码器或驱动器厂商获取精准指导。

选型完成后,录入编码器的参数:本案例中编码器的

counts/revolution

=

2

×

10

6

\\text{counts/revolution}=2\\times10^6

counts/revolution=2×106,即电机单圈对应

200

200

200 万个脉冲数。 编码器线数与脉冲数的换算关系为 4倍频,即标称线数 $\\times4 = $ 实际脉冲数/圈。

img

接线与配置的验证方法:手动转动电机轴,若上位机的

Position

\\text{Position}

Position 数值随电机转动实时变化,则说明硬件接线与参数配置无误。

img 配置无误后,点击

Apply

\\text{Apply}

Apply 写入参数。

4 Automatic Tuning 自动参数整定

完成轴系配置、电机参数配置、编码器参数配置后,即可启动自动整定流程,点击

Run

 

Automatic

 

Tuning

\\textbf{Run Automatic Tuning}

Run Automatic Tuning

img

整定启动后,软件将自动完成全流程参数测算,该过程中电机会产生旋转动作,重要警示:若电机因机械结构限制无法无限制旋转,则禁止启用本功能。

img

整定过程中软件将弹出阶段性提示,其中

Commutation

\\text{Commutation}

Commutation(换相向)为整定的重要环节,该环节整定成功的特征为:电机末端发出

w

u

\\boldsymbol{wu\\sim}

wu 的谐振音。自动整定的故障高发点为换相向环节,若该环节失败,需采用下文的 专家调参模式 手动完成全流程整定。

img img

参数备份:整定完成后建议对驱动器当前参数执行备份,便于后期参数调优失效时的回滚操作。

img

四 转速给定与配置验证

重要警示:验证过程中电机会按给定转速持续旋转,若电机因机械约束无法无限制旋转,需暂停本环节操作。

img img

验证流程:

  • 点击

    Enable

    \\text{Enable}

    Enable 使能电机,驱动器标识

    Drive01

    \\text{Drive01}

    Drive01 右下角的红色指示灯将切换为绿色,代表电机进入就绪状态;

  • 通过

    Jogging

    \\text{Jogging}

    Jogging 模块的方向开关控制电机旋转方向,未触发方向选择时电机无动作,切换开关可实现正反转切换。

  • 验证合格标准:电机可按预设参数(示例为

    1

     r/s

    1\\ \\text{r/s}

    1 r/s)稳定旋转,无堵转、异响、报错等异常现象。


    Elmo 驱动器上位机软件的进阶配置

    江湖上都叫我秋博 已于 2024-12-11 11:02:23 修改

    本文为基础配置的续篇,内容为:在电机位置存在机械约束的工况下,完成驱动器的全流程手动参数整定,同时补充实操调试方法与关键注意事项。

    一 硬件参数说明

    本配置选用的实验设备存在电机位置约束,硬件参数如下:

    1 编码器参数

    读数头位宽:

    26

     bit

    26\\ \\text{bit}

    26 bit;通讯协议:

    Biss-C

    \\text{Biss-C}

    Biss-C;类型:绝对式编码器。

    2 电机规格书参数

    img

    二 Elmo Expert Tuning 专家模式配置

    前置说明:所有参数配置完成后,均需点击

    Apply

    \\textbf{Apply}

    Apply 完成写入,下文将不再重复标注该操作。

    img

    Expert Tuning

    \\text{Expert Tuning}

    Expert Tuning 为全手动调参模式,该模式开放了

    Quick Tuning

    \\text{Quick Tuning}

    Quick Tuning 的全部细节配置项,包含

    Axis configurations、Motor Settings、Feedback Settings

    \\text{Axis configurations、Motor Settings、Feedback Settings}

    Axis configurationsMotor SettingsFeedback Settings 等基础模块,同时增设多级精细化配置项。

    1 Axis configurations 轴系配置

    无新增配置项,常规选择:单轴、旋转电机-旋转负载、单反馈、速度模式,完成配置后执行

    Apply

    \\text{Apply}

    Apply

    2 Motor Settings 电机参数配置

    本案例更换了驱动电机,需按新电机的规格书更新参数;注意事项: 本实验的供电电源极限为

    30

     V

    /

    3

     A

    30\\ \\text{V}/3\\ \\text{A}

    30 V/3 A,若按电机手册录入峰值电流

    16.4

     A

    16.4\\ \\text{A}

    16.4 A、连续堵转电流

    9.3

     A

    9.3\\ \\text{A}

    9.3 A,将导致整定流程失败,甚至烧毁供电模块。因此需对电流参数做适配下调,本案例中配置为:峰值电流

    8

     A

    8\\ \\text{A}

    8 A,连续堵转电流

    4

     A

    4\\ \\text{A}

    4 A

    img

    3 Feedback Settings 反馈参数配置

    本案例的反馈元件更换为绝对式编码器,需重新选择编码器类型,选型结论:选择

    Biss

     

    General

    \\textbf{Biss General}

    Biss General

    选型依据: img

    参数录入:编码器为

    26

     bit

    26\\ \\text{bit}

    26 bit 单圈绝对式,需基于该参数完成反馈元件的全量配置。

    img

    4 Display User Units 显示单位配置

    该模块为个性化配置项,可按需选择位移、速度的显示单位,如:位置单位可选

    counts

    \\text{counts}

    counts

    ^\\circ

    ,速度单位可选

    /

    s

    ^\\circ/\\text{s}

    /s

    RPM

    \\text{RPM}

    RPM(转/分)。

    img img

    5 Limits and protections 限值与保护配置

    该模块为本次进阶配置的重点,所有子项均为位置约束工况的关键配置。

    5.1 Current Limits 电流限制

    该模块可沿用软件默认参数,无需额外调整。

    img

    5.2 Motions Limits and Modulo 运动限制与周期配置

    配置

    \\boldsymbol{配置}

    配置

    Modulo Options

    \\text{Modulo Options}

    Modulo Options 选择

    Using

     

    Position

     

    Limits

    \\textbf{Using Position Limits}

    Using Position Limits,该配置为位置约束工况的保障,可限定电机的最大旋转行程,避免机械限位干涉。

    img img

    5.3 Protections 硬件保护配置

    img

    6 Application Settings 应用层配置

    本案例暂无需调整,沿用默认参数即可。

    7 Current 电流环整定(辨识-设计-验证)

    安全警示:即便完成了位置限位配置,本环节操作前仍需手动将电机旋转至位置极限的中心点,规避机械碰撞风险。

    img

    7.1 Identification 辨识环节

    img

    7.2 Design 设计环节

    img img

    7.3 Verification 验证环节

    img

    验证合格后,点击原

    Verify

    \\text{Verify}

    Verify 按钮位置的

    Stop

    \\text{Stop}

    Stop 终止验证流程;验证的默认测试为跟踪时域方波信号,若跟踪效果不佳,需返回 7.2 环节重新整定参数。

    8 Commutation 换相向与方向标定

    安全警示:本环节操作前,必须将电机手动旋转至位置极限的中心点。

    img img img img

    方向标定完成后,电机的正、负旋转方向将被固化,后续运动控制的方向指令均基于该标定结果执行。

    9 Velocity and Position 速度环与位置环整定

    9.1 Identification 辨识环节

    安全警示:操作前需将电机旋转至位置极限的中心点。

    img img

    9.2 Design 设计环节

    img img

    9.3 scheduing 参数调度配置

    该模块为进阶优化项,常规调试中沿用默认参数即可。

    img

    9.4 Verification 验证环节

    安全警示:操作前需将电机旋转至位置极限的中心点。

    img

    实操建议:本环节仅执行速度验证即可,无需执行位置验证。

    img

    验证合格标准:电机可按给定速度稳定旋转,且停机位置严格约束在 5.2 环节设定的限位区间内。

    10 Summary 参数备份与固化

    该模块为调参的收尾环节,操作:下载驱动器原有参数做备份,将本次整定的最优参数上传并固化至驱动器,完成全流程调参。

    img


    GD32 与 Elmo 驱动器的 CANopen-SDO 通讯实现

    江湖上都叫我秋博 已于 2024-12-11 11:01:54 修改

    本文内容:基于

    CANopen-SDO

    \\text{CANopen-SDO}

    CANopen-SDO 通讯协议,实现 GD32 控制器对 Elmo 驱动器的速度模式、位置模式控制;技术说明:

    CANopen-SDO

    \\text{CANopen-SDO}

    CANopen-SDO 为低速通讯协议,实时性较弱,仅适用于电机速度/位置无需频繁修改的工况,属于 Elmo 驱动器的基础应用场景。本文同时提供已移植

    CANfestival

    \\text{CANfestival}

    CANfestival 开源库的 GD32 嵌入式完整代码。

    一 Elmo 驱动器的 Node-ID 与 CAN 波特率配置

    Elmo 驱动器出厂的

    Node-ID

    \\text{Node-ID}

    Node-ID 为未知状态,而

    CANopen

    \\text{CANopen}

    CANopen 控制器的对象字典配置完全依赖驱动器的

    Node-ID

    \\text{Node-ID}

    Node-ID,因此该参数为通讯配置的首要项;同时需保证控制器与驱动器的

    CAN

    \\text{CAN}

    CAN 波特率一致,方可建立有效通讯。 驱动器的参数配置均通过

    Elmo Application Studio II 64bit

    \\text{Elmo Application Studio II 64bit}

    Elmo Application Studio II 64bit 上位机完成。

    1 Node-ID 配置

    1.1 进入驱动器命令行界面

    img

    1.2 Node-ID 的查询/修改/保存指令

    img

    2 CAN 通讯波特率配置

    2.1 进入驱动器命令行界面

    img

    2.2 CAN 波特率的查询/修改/保存指令

    img

    3 配置结论

    本案例的配置参数:

    • 驱动器

      Node-ID

      =

      0

      x

      02

      \\text{Node-ID} = \\boldsymbol{0x02}

      Node-ID=0x02

    • CAN 通讯波特率 =

      1

       MHz

      \\boldsymbol{1\\ \\text{MHz}}

      1 MHz

    重要要求:GD32 控制器的 CAN 波特率需同步配置为

    1

     MHz

    1\\ \\text{MHz}

    1 MHz,否则通讯链路无法建立。

    二 对象字典配置

    img

    三 嵌入式驱动代码(GD32 + CANfestival)

    本代码基于

    CANfestival

    \\text{CANfestival}

    CANfestival 开源库开发,功能为通过

    CANopen-SDO

    \\text{CANopen-SDO}

    CANopen-SDO 协议向 Elmo 驱动器发送控制指令;针对 SDO 指令的重复性编写问题,已完成功能封装,代码可读性与复用性优化。

    1 系统初始化函数

    void InitializeDrive(void)
    {
    // 设置主站Node_ID为0x01,并依次切换至运行状态
    setNodeId(&master_Data, 0x01);
    setState(&master_Data, Initialisation);
    setState(&master_Data, Pre_operational);
    setState(&master_Data, Operational);
    // 通过NMT服务启动Node_ID=0x02的驱动器,并切换至预运行状态
    masterSendNMTstateChange(&master_Data, 0x02, NMT_Reset_Comunication);
    masterSendNMTstateChange(&master_Data, 0x02, NMT_Start_Node);
    masterSendNMTstateChange(&master_Data, 0x02, NMT_Enter_PreOperational);
    // 驱动器唤醒延时,【必须执行,关键】
    delay_1ms(2000);
    }

    代码说明:

  • 控制器作为 CANopen 主站,

    Node-ID

    =

    0

    x

    01

    \\text{Node-ID}=0x01

    Node-ID=0x01,预运行状态(KaTeX parse error: Expected 'EOF', got '_' at position 10: \\text{Pre_̲operational})即可支持 SDO 通讯;

  • Elmo 驱动器为从站,

    Node-ID

    =

    0

    x

    02

    \\text{Node-ID}=0x02

    Node-ID=0x02

  • 2000

     ms

    2000\\ \\text{ms}

    2000 ms 延时为硬性要求:驱动器接收启动指令后需完成初始化,无延时将导致 SDO 指令报

    0

    x

    80

    0x80

    0x80 错误,为调试高频问题点。

  • 2 配置驱动器为速度模式(PV: Profile Velocity)

    void SetDriveVelocityMode(void)
    {
    unsigned long abortcode=0;
    char size=1;
    char sendData[4]={0};
    // SDO指令:向6060/00写入03,配置为速度模式
    size = 4;
    sendData[0]=0x03;
    sendData[1]=0x00;
    sendData[2]=0x00;
    sendData[3]=0x00;
    writeNetworkDict(&master_Data, 0x02, 0x6060, 0x00, 4, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode) != SDO_FINISHED)
    {
    AddSysLog("Send SDO command 6060,00, 03 00 00 00 [Velocity mode] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    指令:向 CANopen 对象字典的索引 0x6060,子索引 0x00 写入

    0

    x

    03

    0x03

    0x03,驱动器将切换至速度模式。

    3 配置驱动器为位置模式(PP: Profile Position)

    void SetDrivePositionMode(void)
    {
    unsigned long abortcode=0;
    char size=1;
    char sendData[4]={0};
    // SDO指令:向6060/00写入01,配置为位置模式
    size = 4;
    sendData[0]=0x01;
    sendData[1]=0x00;
    sendData[2]=0x00;
    sendData[3]=0x00;
    writeNetworkDict(&master_Data, 0x02, 0x6060, 0x00, 4, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode) != SDO_FINISHED)
    {
    AddSysLog("Send SDO command 6060,00, 01 00 00 00 [Position mode] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    指令:向索引 0x6060,子索引 0x00 写入

    0

    x

    01

    0x01

    0x01,驱动器将切换至位置模式。

    补充:0x6060/00 为 CANopen 标准对象字典,不同数值对应不同运行模式,映射关系如下: img

    4 电机使能/失能控制

    4.1 电机使能函数

    void EnableDrive(void)
    {
    unsigned long abortcode=0;
    char size=1;
    char sendData[4]={0};
    // 依次向6040/00写入06、07、0F,完成电机三级使能
    size = 1;
    sendData[0] = 0x06;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode)!=SDO_FINISHED)
    {
    AddSysLog("Send SDO command 4060, 00, 06 00 00 00 [Enable driver] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    size = 1;
    sendData[0] = 0x07;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    size = 1;
    sendData[0] = 0x0F;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    逻辑:向索引 0x6040,子索引 0x00 依次写入

    0

    x

    06

    0

    x

    07

    0

    x

    0

    F

    0x06、0x07、0x0F

    0x060x070x0F,为 CANopen 标准的电机三级使能流程。

    4.2 电机失能函数

    void DisableDrive(void)
    {
    unsigned long abortcode = 0;
    char size = 1;
    char sendData[4] = {0};
    // 向6040/00写入00,完成电机失能
    size = 1;
    sendData[0] = 0x00;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode)!=SDO_FINISHED)
    {
    AddSysLog("Send SDO command 4060, 00, 00 00 00 00 [Disable driver] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    5 速度模式(PV)- 目标速度给定

    void SetVelModeTargetVelocity(float velocity)
    {
    float usedVelocityFloat = 0;
    long usedVelocityLong = 0;
    char sendData[4] = {0};
    unsigned long abortcode = 0;
    char size = 4;
    // 速度限幅:±360 °/s
    if(velocity > 360) usedVelocityFloat = 360;
    else if(velocity < 360) usedVelocityFloat = 360;
    else usedVelocityFloat = velocity;
    // 角度→脉冲数换算:增量式编码器(50万线) 5555.555555555 cnt/°
    usedVelocityLong = (long)(usedVelocityFloat * 5555.555555555);
    // 32位有符号整型转4字节数组(小端模式)
    sendData[0] = usedVelocityLong & 0xFF;
    sendData[1] = (usedVelocityLong >> 8) & 0xFF;
    sendData[2] = (usedVelocityLong >> 16) & 0xFF;
    sendData[3] = (usedVelocityLong >> 24) & 0xFF;
    // 向60FF/00写入目标速度
    writeNetworkDict(&master_Data, 0x02, 0x60FF, 0x00, size, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode)!=SDO_FINISHED)
    {
    AddSysLog("Send SDO command FF60, 00, XX XX XX XX [Set target velocity] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    技术点:

  • 单位换算:驱动器仅识别 脉冲数 (cnt),角度与脉冲数的换算关系由编码器类型决定:
    • 增量式编码器(50万线):

      500000

      ×

      4

      =

      2

      ×

      10

      6

       cnt/圈

      500000\\times4=2\\times10^6\\ \\text{cnt/圈}

      500000×4=2×106 cnt/

      5555.5555

       

      cnt/

      5555.5555\\ \\text{cnt/}^\\circ

      5555.5555 cnt/

    • 绝对式编码器(26bit):

      2

      26

      =

      67108864

       cnt/圈

      2^{26}=67108864\\ \\text{cnt/圈}

      226=67108864 cnt/

      186413.5111

       

      cnt/

      186413.5111\\ \\text{cnt/}^\\circ

      186413.5111 cnt/

  • 换算因子通用:该系数适用于角度、角速度、角加速度的单位转换;
  • 寄存器:索引 0x60FF,子索引 0x00 为速度模式的目标速度寄存器。
  • 6 位置模式(PP)- 最大速度与目标位置给定

    6.1 位置模式最大速度配置

    void SetPosModeTargetVelocity(float velocity)
    {
    float usedVelocityFloat = 0;
    long usedVelocityLong = 0;
    char sendData[4] = {0};
    unsigned long abortcode = 0;
    char size = 4;
    // 速度限幅:±360 °/s
    if(velocity > 360) usedVelocityFloat = 360;
    else if(velocity < 360) usedVelocityFloat = 360;
    else usedVelocityFloat = velocity;
    // 角度→脉冲数换算
    usedVelocityLong = (long)(usedVelocityFloat * 5555.555555555);
    // 整型转字节数组
    sendData[0] = usedVelocityLong & 0xFF;
    sendData[1] = (usedVelocityLong >> 8) & 0xFF;
    sendData[2] = (usedVelocityLong >> 16) & 0xFF;
    sendData[3] = (usedVelocityLong >> 24) & 0xFF;
    // 向6081/00写入位置模式最大速度
    writeNetworkDict(&master_Data, 0x02, 0x6081, 0x00, size, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode)!=SDO_FINISHED)
    {
    AddSysLog("Send SDO command 8160, 00, XX XX XX XX [Set target velocity] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    说明:位置模式的速度为梯形速度曲线的匀速段速率,寄存器为 索引 0x6081,子索引 0x00,与速度模式的速度寄存器(0x60FF)为不同地址。

    6.2 位置模式目标位置配置

    void SetPosModeTargetPosition(float position)
    {
    float usedPositionFloat = 0;
    long usedPositionLong = 0;
    char sendData[4] = {0};
    unsigned long abortcode = 0;
    char size = 4;
    // 位置限幅:±180 °
    if(position > 180) usedPositionFloat = 180;
    else if(position < 180) usedPositionFloat = 180;
    else usedPositionFloat = position;
    // 角度→脉冲数换算
    usedPositionLong = (long)(usedPositionFloat * 5555.555555555);
    // 整型转字节数组
    sendData[0] = usedPositionLong & 0xFF;
    sendData[1] = (usedPositionLong >> 8) & 0xFF;
    sendData[2] = (usedPositionLong >> 16) & 0xFF;
    sendData[3] = (usedPositionLong >> 24) & 0xFF;
    // 向607A/00写入目标位置
    writeNetworkDict(&master_Data, 0x02, 0x607A, 0x00, size, 0, sendData, 0);
    if(getWriteResultNetworkDict(&master_Data, 0x02, &abortcode)!=SDO_FINISHED)
    {
    AddSysLog("Send SDO command 7A60, 00, XX XX XX XX [Set target position] to driver 0x02 failed");
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    // 写入0x2F、0x3F触发位置指令生效(上升沿触发New set-point)
    size = 2;
    sendData[0] = 0x2F;
    sendData[1] = 0x00;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    size = 2;
    sendData[0] = 0x3F;
    sendData[1] = 0x00;
    writeNetworkDict(&master_Data, 0x02, 0x6040, 0x00, size, 0, sendData, 0);
    delay_1ms(25);
    closeSDOtransfer(&master_Data, 0x02, SDO_CLIENT);
    }

    技术点:

  • 目标位置寄存器:索引 0x607A,子索引 0x00;
  • 指令生效触发:写入位置后,需向 0x6040/00 依次写入

    0

    x

    2

    F

    0

    x

    3

    F

    0x2F、0x3F

    0x2F0x3F,通过

    bit4

    \\text{bit4}

    bit4 的上升沿触发「新位置指令生效」,保证位置切换的实时性。

  • img

    7 完整控制程序示例

    // 综合控制示例:位置模式→速度模式→位置模式切换
    InitializeDrive();
    // PP位置模式控制
    SetDrivePositionMode();
    EnableDrive();
    SetPosModeTargetVelocity(360);
    SetPosModeTargetPosition(0);
    delay_1ms(5000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(180);
    delay_1ms(5000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(0);
    delay_1ms(5000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(180);
    delay_1ms(5000);
    DisableDrive();
    delay_1ms(2000);
    // PV速度模式控制
    SetDriveVelocityMode();
    EnableDrive();
    SetVelModeTargetVelocity(180);
    delay_1ms(5000);
    SetVelModeTargetVelocity(180);
    delay_1ms(5000);
    DisableDrive();
    delay_1ms(2000);
    // 再次切换至PP位置模式
    SetDrivePositionMode();
    EnableDrive();
    SetPosModeTargetVelocity(360);
    SetPosModeTargetPosition(0);
    delay_1ms(10000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(180);
    delay_1ms(5000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(0);
    delay_1ms(5000);
    SetPosModeTargetPosition(90);
    delay_1ms(5000);
    SetPosModeTargetPosition(180);
    delay_1ms(5000);

    示例说明:程序实现「位置模式多点位运动→速度模式正反转→位置模式多点位运动」的全流程切换,完成本示例即实现 GD32 对 Elmo 驱动器的基础闭环控制,可拓展为上位机联控的多模式调速/定位系统。


    Elmo 驱动器的调试流程与运动程序编写

    Stan 编辑于 2020-12-14 20:44

    本文包含 Elmo 两款驱动器(Gold Solo Trombone G-SOLTR012/400EEH、Gold Oboe G-OBO6/230FEHN2)的接线规范、基础调试流程及运动程序的使用说明。

    说明:驱动器的完整技术说明,均收录于官方手册与 Elmo 调试软件 EASⅡ内置的 help 文档,为最优参考依据。

    1 接线配置

    1.1 Gold Solo Trombone G-SOLTR012/400EEH 接线规范

    1.1.1 直流电源接线

    img img img img img img

    该型号驱动器常规接入单相交流电,需将接口

    AC2

    \\text{AC2}

    AC2

    AC3

    \\text{AC3}

    AC3 进行并联处理。 实物接线实操要求:双路

    AC1

    \\text{AC1}

    AC1 接口、双路

    AC2

    \\text{AC2}

    AC2 接口之间,无需额外做并联接线处理。

    img

    1.1.2 驱动器本体接线

    img img

    驱动器的 STO 三路接口,需接入

    24

     V

    24\\ \\text{V}

    24 V 直流电源的正负极。

    img img

    1.2 Gold Oboe G-OBO6/230FEHN2 接线规范

    img img

    该型号驱动器可直接接入市电单相交流电,采用标准三脚插头接线:火线接入

    AC1

    \\text{AC1}

    AC1 端口,零线接入

    AC2

    \\text{AC2}

    AC2 端口,地线接入

    PE

    \\text{PE}

    PE 接地端,

    AC3

    \\text{AC3}

    AC3 端口空置即可。 重要要求:需完成 Port C 端口组内 STO 接口的接线,接入

    24

     V

    24\\ \\text{V}

    24 V 直流电源的正负极。

    img

    当 STO 端口未完成接线时,驱动器将触发报错,报错界面如下:

    img

    2 通讯链路建立

    2.1 USB 直连方式(PC 与 Elmo 驱动器)

    采用 USB 数据线完成 PC 与 Elmo 驱动器的物理连接,启动上位机软件

    Elmo Application Studio II 2.5.1.1

    \\text{Elmo Application Studio II 2.5.1.1}

    Elmo Application Studio II 2.5.1.1。软件操作面板内任意功能模块的释义均可通过悬停鼠标至对应位置后,按下

    F1

    \\text{F1}

    F1 键调取本地化手册说明。

    img

    操作步骤:

  • 点击软件左下角

    System Configuration

    \\text{System Configuration}

    System Configuration 选项;

  • Workspace

    \\text{Workspace}

    Workspace 区域右键,选择

    New Workspace

    \\text{New Workspace}

    New Workspace 新建工作空间。

  • img img

    参数配置示例:将

    Location

    \\text{Location}

    Location 路径设置为 KaTeX parse error: Undefined control sequence: \\ELMO at position 9: \\text{E:\\̲E̲L̲M̲O̲\\RuiRui}

    Workspace Name

    \\text{Workspace Name}

    Workspace Name 命名为 KaTeX parse error: Expected 'EOF', got '_' at position 17: …text{adjustable_̲stiffness},软件将在该路径下自动生成 KaTeX parse error: Expected 'EOF', got '_' at position 17: …text{adjustable_̲stiffness.ElmoW… 工作空间文件。

    img

  • 继续在

    Workspace

    \\text{Workspace}

    Workspace 区域右键,选择

    Add Gold Drive

    \\text{Add Gold Drive}

    Add Gold Drive

  • 在弹出的配置窗口中,

    Connection Type

    \\text{Connection Type}

    Connection Type 下拉栏选择

    Direct Access USB

    \\text{Direct Access USB}

    Direct Access USB

  • Serial Port USB

    \\text{Serial Port USB}

    Serial Port USB 选项中,选取软件自动识别的串口(示例为

    COM10

    \\text{COM10}

    COM10);

  • 点击窗口左上角

    Connect

    \\text{Connect}

    Connect,完成 PC 与 Elmo 驱动器的通讯链路建立。

  • img

    链路建立后,点击左下角

    Drive Setup and Motion

    \\text{Drive Setup and Motion}

    Drive Setup and Motion 进入调试界面;若为设备首次调试,建议选择

    Expert Tunning

    \\text{Expert Tunning}

    Expert Tunning 模式开展参数整定。

    2.2 以太网连接方式(PC 与 Elmo 驱动器)

    该连接方式需配备两根标准网线,接线规则:

  • 第一根网线:连接 PC 网口 与 Elmo 控制器的

    HOST ETH

    \\text{HOST ETH}

    HOST ETH 端口;

  • 第二根网线:连接 Elmo 控制器的

    EtherCAT Master

    \\text{EtherCAT Master}

    EtherCAT Master 端口 与 驱动器的

    EtherCAT IN

    \\text{EtherCAT IN}

    EtherCAT IN 端口。

  • img

    前置操作:完成 PC 本地网卡的 IP 地址修改配置。

    img

    软件配置流程(延续 2.1 步骤):

  • 完成工作空间新建后,在

    Workspace

    \\text{Workspace}

    Workspace 区域右键,选择

    Add Platinum Maestro EtherCAT

    \\text{Add Platinum Maestro EtherCAT}

    Add Platinum Maestro EtherCAT

  • Connection Type

    \\text{Connection Type}

    Connection Type 下拉栏选择

    Maestro TCP/IP

    \\text{Maestro TCP/IP}

    Maestro TCP/IP

  • IP Address

    \\text{IP Address}

    IP Address 下拉栏选取固定地址

    192.168.1.3

    \\text{192.168.1.3}

    192.168.1.3

  • 勾选

    Auto Connect Gateways

    \\text{Auto Connect Gateways}

    Auto Connect Gateways

    Auto Disconnect Gateways

    \\text{Auto Disconnect Gateways}

    Auto Disconnect Gateways 两项;

  • Host IP Address

    \\text{Host IP Address}

    Host IP Address 选择软件自动识别的地址

    192.168.1.100

    \\text{192.168.1.100}

    192.168.1.100

  • 点击左上角

    Connect

    \\text{Connect}

    Connect,完成以太网链路建立。

  • img

    点击

    To System Configuration

    \\text{To System Configuration}

    To System Configuration,调试前需将设备运行状态切换至

    Pre Op Mode

    \\text{Pre Op Mode}

    Pre Op Mode,即可启动参数调试流程。

    img

    3 驱动器参数调试

    3.1 Axis Configurations 轴系配置

    依据被控对象的实际工况,在该模块选择适配的配置项:

    Single Axis

    \\text{Single Axis}

    Single Axis(单轴)、

    Linear Motor Linear Load

    \\text{Linear Motor Linear Load}

    Linear Motor Linear Load(直线电机-直线负载);在

    Mode of Operation

    \\text{Mode of Operation}

    Mode of Operation 选项中,可按需切换 电流模式、速度模式、位置模式 三种运行模式。所有参数配置完成后,需点击

    Apply

    \\text{Apply}

    Apply

    Apply All

    \\text{Apply All}

    Apply All 完成参数写入。

    img

    3.2 Motor and Feedback – Motor Settings 电机参数配置

    该模块需严格参照所驱动机型的技术手册,录入电机的额定参数;本调试案例中选用的电机型号为

    Akribis AUM3-S3

    \\text{Akribis AUM3-S3}

    Akribis AUM3-S3,参数录入时需完成电机峰值电流

    A

    p

    A_{\\text{p}}

    Ap 与有效值电流

    A

    rms

    A_{\\text{rms}}

    Arms 的换算,保证参数匹配性。

    img

    3.3 Motor and Feedback – Feedback Settings 反馈元件配置

    本调试案例中,反馈元件采用 雷尼绍绝对式光栅尺,通讯协议为

    BiSS-C

    \\text{BiSS-C}

    BiSS-C,位宽

    32

     bit

    32\\ \\text{bit}

    32 bit,分辨率

    5

     nm

    5\\ \\text{nm}

    5 nm,硬件接入驱动器

    Port A

    \\text{Port A}

    Port A 端口。 参数换算:因光栅尺的

    Position LSB number

    \\text{Position LSB number}

    Position LSB number

    8

     bit

    8\\ \\text{bit}

    8 bit,故协议总位宽

    Protocol Total Bits

    =

    32

    +

    8

    =

    40

     bit

    \\text{Protocol Total Bits} = 32+8 = 40\\ \\text{bit}

    Protocol Total Bits=32+8=40 bit;基于

    5

     nm

    5\\ \\text{nm}

    5 nm 的分辨率,需将

    micron/count

    \\text{micron/count}

    micron/count 配置为

    0.005

    0.005

    0.005

    SW Sensor Resolution

    \\text{SW Sensor Resolution}

    SW Sensor Resolution 可在

    32

     bit

    32\\ \\text{bit}

    32 bit 以内按需选取,用于微调反馈分辨率。

    img

    若接入的为数字量光栅尺(分辨率

    0.1

     

    μ

    m

    0.1\\ \\mathrm{\\mu m}

    0.1 μm)且硬件接入

    Port A

    \\text{Port A}

    Port A,则需将

    micron/count

    \\text{micron/count}

    micron/count 固定配置为

    0.1

    0.1

    0.1

    img

    3.4 User Units 自定义单位配置

    该模块可对位移、速度的显示单位进行配置,可选类型包含:国际标准单位、脉冲数

    cnt

    \\text{cnt}

    cnt,也可根据调试需求设置用户自定义单位。

    img

    3.5 Limits and Protections 限值与保护配置

    3.5.1 Current Limits 电流限值

    该模块需录入驱动器的 峰值电流 与 持续电流,参数取值均参照所驱动电机的额定电气参数;其余三项保护阈值可沿用软件默认配置,无需额外修改。

    img

    3.6 Current 电流环整定(辨识-设计-验证)

    版本说明:本版 Elmo 调试软件存在算法偏差,在执行电流环辨识前,需先行下调

    Current Limits

    \\text{Current Limits}

    Current Limits 中的

    Peak Current

    \\text{Peak Current}

    Peak Current 数值(示例值调整为

    4

    4

    4),需满足约束条件:

    Peak Current

    ×

    Current Level

    =

    4

    ×

    60

    %

    =

    2.4

    <

    Continuous Current

    =

    2.54

    \\text{Peak Current} \\times \\text{Current Level} = 4\\times60\\% = 2.4 < \\text{Continuous Current} = 2.54

    Peak Current×Current Level=4×60%=2.4<Continuous Current=2.54

    3.6.1 Identification 辨识环节

    点击

    Identify

    \\text{Identify}

    Identify 启动电机电气参数辨识,软件将自动测算电机每一相绕组的等效电阻

    R

    R

    R 与等效电感

    L

    L

    L;辨识完成后点击

    Apply

    \\text{Apply}

    Apply 写入参数。若辨识流程失败,可直接参照电机手册录入额定

    R

    L

    R、L

    RL 值,点击

    Create

     

    Plant

     

    From

     

    R/L

    \\textbf{Create Plant From R/L}

    Create Plant From R/L 完成等效模型构建。

    img

    3.6.2 Design 设计环节

    录入期望的 电流环带宽 与 相位裕度 指标,点击

    Design

    \\text{Design}

    Design,软件将基于预设指标自动整定电流环 PI 控制器的比例、积分参数。

    img

    3.6.3 Verification 验证环节

    点击

    Verify

    \\text{Verify}

    Verify,可分别观测电机

    A、B、C

    \\text{A、B、C}

    ABC 三相的电流环阶跃响应曲线。Elmo 电流环的合格判定标准:响应曲线存在小幅超调,且超调后可快速收敛并稳定跟踪给定值。

    img

    3.7 Commutation 电机寻向配置

    寻向方式与反馈元件类型强匹配:

    • 接入绝对式光栅尺:

      Auto-Phasing Method

      \\text{Auto-Phasing Method}

      Auto-Phasing Method 选择

      Absolute Serial

      \\text{Absolute Serial}

      Absolute Serial

    • 接入增量式光栅尺:

      Auto-Phasing Method

      \\text{Auto-Phasing Method}

      Auto-Phasing Method 选择

      Binary Search

      \\text{Binary Search}

      Binary Search

    Displacement

    \\text{Displacement}

    Displacement 参数用于调整寻向过程中电机的行程量,当被控导轨的有效行程较短时,可下调该参数值,避免机械限位干涉。

    img

    3.8 Velocity and Position 速度环与位置环整定

    3.8.1 Identification 速度开环辨识

    该环节常规选用

    Fast

    \\text{Fast}

    Fast 模式执行扫频测试,参数说明:

  • Current Level

    \\text{Current Level}

    Current Level:为测试阶段电机的限流百分比,低占空比下的测试结果易存在偏差,建议尽可能选用高占空比;若高占空比测试异常,可由低至高调优,直至连续多次测试结果趋同。

  • Excitation Signal Band

    \\text{Excitation Signal Band}

    Excitation Signal Band:为扫频的频率区间,

    Normal

    \\text{Normal}

    Normal 模式扫频范围为

    4.9

     Hz

    1250

     Hz

    4.9\\ \\text{Hz} \\sim 1250\\ \\text{Hz}

    4.9 Hz1250 Hz

    Full

    \\text{Full}

    Full 模式扫频范围为

    4.9

     Hz

    2500

     Hz

    4.9\\ \\text{Hz} \\sim 2500\\ \\text{Hz}

    4.9 Hz2500 Hz

  • img

    3.8.2 Design 速度环/位置环参数整定

    Elmo 驱动器的位置控制算法为 带速度前馈+加速度前馈的 P/PI 控制策略,在

    Controller Tunning

    \\text{Controller Tunning}

    Controller Tunning 面板中:

    • 选择

      PI Controller

      \\text{PI Controller}

      PI Controller:自整定算法不向控制环路中添加任何滤波器;

    • 选择

      Advanced Controller

      \\text{Advanced Controller}

      Advanced Controller:自整定算法将根据系统特性,自动添加低通滤波器与陷波滤波器。

    实操最优配置:

    Objective

    \\text{Objective}

    Objective 选择

    Advanced Controller

    \\text{Advanced Controller}

    Advanced Controller,调度模式选择

    Best Setting + Automatic

    \\text{Best Setting + Automatic}

    Best Setting + Automatic,可获得较优的控制性能;部分复杂工况下,软件自整定的算力不足,无法生成理想参数,此时需基于系统裕度、带宽指标,手动调参(如增设陷波滤波器、修正 P/PI 参数)。

    img img

    3.8.3 Smooth 平滑因子配置

    Smooth (SF)

    \\text{Smooth (SF)}

    Smooth (SF) 为对称七段 S 型速度曲线的急动度

    J

    J

    J 作用时长:

    • SF

      =

      0

      \\text{SF}=0

      SF=0:无急动度作用,运动规划为对称三段 T 型速度曲线;

    • SF

      =

      60

      \\text{SF}=60

      SF=60:急动度作用时长

      60

       ms

      60\\ \\text{ms}

      60 ms,运动规划为标准七段 S 型速度曲线。

    img img

    3.8.4 分段 PID 控制策略

    选用

    Advanced Controller + Best Setting + Automatic

    \\text{Advanced Controller + Best Setting + Automatic}

    Advanced Controller + Best Setting + Automatic 模式时,驱动器启用 带全前馈的 P/PI 回路增益调度控制算法。Elmo 将点位运动(PTP)划分为

    In Motion、Settling、Stand Still

    \\text{In Motion、Settling、Stand Still}

    In MotionSettlingStand Still 三段独立的 PID 控制,实操中可通过在

    Terminal

    \\text{Terminal}

    Terminal 中输入指令

    GS[11]=0

    \\text{GS[11]=0}

    GS[11]=0 关闭

    Settling

    \\text{Settling}

    Settling 段,仅保留前两段控制逻辑:

    • 位置指令未到达目标点:执行

      In Motion

      \\text{In Motion}

      In Motion 段参数;

    • 位置指令到达目标点:执行

      Stand Still

      \\text{Stand Still}

      Stand Still 段参数。

    该模式适配性:尤其适用于 PTP 运动中负载实时变化的工况;若三段控制参数完全一致,则退化为标准带全前馈的 P/PI 伺服控制回路。 规律:该控制回路的速度前馈系数固定为

    1

    1

    1,加速度前馈系数的取值对系统超调量具有显著影响。

    img img

    实测对比:同参数、同被控对象下,

    G-SOLTR012/400EEH

    \\text{G-SOLTR012/400EEH}

    G-SOLTR012/400EEH 的定位振动幅值为

    ±

    10

     cnt

    \\pm10\\ \\text{cnt}

    ±10 cnt

    G-OBO6/230FEHN2

    \\text{G-OBO6/230FEHN2}

    G-OBO6/230FEHN2 的定位振动幅值为

    ±

    2

     cnt

    \\pm2\\ \\text{cnt}

    ±2 cnt;性能差异的原因为后者的电流环动态特性更优,因此定位稳态误差更小。

    所有参数调试完成后,在

    Summary

    \\text{Summary}

    Summary 模块执行参数保存,完成全流程调试。

    4 驱动器运动程序编写

    4.1 程序开发流程

  • 软件中选择

    Drive Programming

    \\text{Drive Programming}

    Drive Programming 模块,右键点击

    Solution

    \\text{Solution}

    Solution,选择

    New Project

    \\text{New Project}

    New Project 新建工程;

  • 右键点击工程名称,选择

    New Program

    \\text{New Program}

    New Program,进入程序编辑界面;

  • 编译前需完成驱动器与工程的绑定:在

    Workspace tree

    \\text{Workspace tree}

    Workspace tree 中右键点击驱动器标识,选择

    Link Project

    \\text{Link Project}

    Link Project

  • 编译与下载:点击

    Build

    \\text{Build}

    Build 按钮,软件将自动编译程序,无编译报错时,程序将自动下载至驱动器(该操作仅支持

    online

    \\text{online}

    online 联机模式),编译结果将在

    Output

    \\text{Output}

    Output 选项卡中显示;

  • 程序运行:点击

    Start

    \\text{Start}

    Start 按钮启动程序,该指令将忽略断点等调试配置,直接执行程序逻辑。

  • 4.2 运动程序示例(电机旋转

    45

    45^\\circ

    45 后延时,反向旋转

    45

    45^\\circ

    45

    function P2P_Abs(float Distance)
    float k

    if (UM!=5) // 判定电机是否为位置模式,非位置模式则失能电机
    MO=0
    end
    if (MO==0)
    UM=5 // 使能前先行配置位置模式
    MO=1 // 电机使能
    end

    k=186413.11111 // 角度与脉冲数的换算系数

    PR= Distance*k // 设置点对点相对运动目标位置,PA为点对点绝对运动
    SP= 0.4e6*k // 设置点对点运动速度
    AC=60*k // 设置点对点运动加速度
    DC=60*k // 设置点对点运动减速度
    SD=60*k // 设置点对点运动急停减速度
    SF=20 // 配置平滑因子
    BG // 启动运动

    return

    // 正向等距分段运动,总行程Distance,分段数Num,适用于激光干涉仪标定
    function pos_func(float Num,float Distance)
    float i,deltaDis,realPos
    deltaDis=Distance/Num
    realPos=0
    for i=1:Num
    realPos=realPos+deltaDis
    P2P_Abs(realPos)
    wait(3000)
    end
    return

    // 反向等距分段运动,总行程Distance,分段数Num
    function neg_func(float Num,float Distance)
    float i,deltaDis,realPos
    deltaDis=Distance/Num
    realPos=Distance
    for i=1:Num
    realPos=realPosdeltaDis
    P2P_Abs(realPos)
    wait(3000)
    end
    return

    // 主程序
    function main()
    int j,k
    HM[1]=1 // 修正位置计数器(回零操作)
    for j=1:200
    pos_func(1,45)
    pos_func(1,45)
    //for k=1:3
    //wait(10e3)
    //end
    end

    MO=0
    return

    点击可播放视频 采用 Elmo 驱动器的双轴转台演示视频 2017 视频


    Elmo 驱动介绍

    Elmo 驱动是以色列 Elmo Motion Control 公司研发生产的高性能伺服驱动器,用于精确控制伺服电机的转矩、速度与位置,适配从工业自动化到航空航天等多领域严苛运动控制需求,以高功率密度、宽动态响应、低 EMI 及紧凑尺寸为显著特征。

    以下对产品系列、应用案例、厂商等内容,从基础定义、技术原理、产品系列、应用案例、国内替代厂商、调试工具等方面展开说明。

    基本定义与定位

    Elmo 驱动本质为集成功率转换、控制算法与通信接口的伺服驱动单元,通过接收上位机指令与电机反馈信号,实现对电机的闭环控制,满足高精度轨迹跟踪、快速动态响应与多轴同步等需求,适配直流、无刷直流及永磁同步电机等多种电机类型。

    技术原理与工作机制

  • 控制架构:采用电流环、速度环、位置环三环嵌套控制,电流环采样周期低至微秒级,支持 1:2000 动态电流范围,适配高低速切换与微定位场景。

  • 功率转换:基于高频 PWM 技术,效率可达 98% – 99%,结合先进散热设计,实现高功率密度与低发热。

  • 通信与反馈:支持 EtherCAT、CANopen 等实时总线,兼容增量编码器、绝对值编码器、旋转变压器等多种反馈器件,提供纳米级定位精度。

  • 算法体系:内置 SimplIQ 控制算法,包含电子齿轮、龙门同步、相位超前等功能,适配复杂运动轨迹与负载变化。

  • Elmo 驱动产品系列

    产品系列功率范围电流范围电压等级尺寸与安装典型特性
    Gold 系列 50 W – 5.5 kW 5 A – 80 A 14 VDC – 200 VDC 超紧凑,可 PCB 安装/关节安装 低 EMI,高功率密度,EtherCAT 同步
    Platinum 系列 5.5 kW – 50 kW 80 A – 360 A 200 VDC – 800 VDC 模块化,机柜安装 SIL 3 安全等级,高压适配,宽温域
    Trombone 系列 5 kW – 50 kW 定制化 定制化 耐压密封,水下安装 适配深海 ROV,抗振动,高效低发热
    Drum/Whistle 系列 1 kW – 10 kW 20 A – 100 A 48 VDC – 400 VDC 紧凑大电流,集成散热 适配 AGV/移动机器人,平滑运动控制
    Titanium 系列 1.2 kW – 2.5 kW 定制化 定制化 多轴集成,严苛环境适配 氮化镓功率开关,多轴安全功能,宽温域

    Elmo 驱动应用案例

    应用领域具体案例采用驱动型号实现效果
    工业机器人 中科新松协作机器人关节驱动 Gold SOLO GUITAR、Gold SOLO WHISTLE 直接关节安装,1:2000 动态电流范围,高低速高精度运行
    移动机器人与 AGV 亚洲电商巨头智能仓储分拣车 Gold Solo Guitar、Gold Solo Whistle 紧凑高功率密度,支撑牵引与升降功能,提升分拣效率
    医疗与康复 脑外科手术机器人 Gold Twitter、Platinum Maestro 微米级定位精度,低 EMI,满足医疗安全标准
    航空航天 NASA 太空挖掘机器人 Platinum 系列 高压适配,宽温域稳定,高精度同步控制
    海洋工程 Nauticus Robotics 深海 ROV Trombone 系列 耐压密封,适配 3000 米深海作业,高效低发热
    农业自动化 草莓采摘机器人 Gold SOLO 系列 小体积高集成,精准轨迹控制,适应户外电源波动
    半导体制造 晶圆测试转塔 Gold 系列 快速响应,低抖动,EMI 兼容,提升测试效率
    高机动机器人 履带式高机动机器人 Gold Whistle 系列 高功率密度,CANopen 通信,重负载下高灵活性

    国内类似 Elmo 驱动的厂商及产品

    厂商名称产品系列性能特点适配场景
    苏州西恩微伺云 泰山、华山、嵩山系列 高功率密度,自研软开关芯片,效率达 99% 人形机器人、工业自动化、半导体装备
    上海优爱宝 UIM62HXX 系列 微型一体化设计,高速高转矩,支持 PVT 插补 机器人关节、自动化生产线
    汇川技术 IS620N 系列 高响应速度,支持多种现场总线,适配多种电机 工业机器人、物流输送设备
    埃斯顿 ProNet 系列 紧凑设计,低 EMI,多轴同步控制 电子制造、包装机械

    技术特性与场景价值

  • 功率密度与尺寸优化:Gold 系列驱动器可直接安装于关节或狭小空间,减少布线与干扰,提升系统集成度。

  • 动态响应与控制精度:1:2000 动态电流范围与宽频带响应,满足高低速切换与微定位需求。

  • 同步与安全功能:内置龙门同步、电子齿轮等功能,降低上位机编程复杂度;Platinum 系列具备 SIL 3 安全等级,适配医疗、航空等场景。

  • 环境适应性:Trombone 等型号耐受高压、水下密封与宽温,适配深海、太空等极端环境。

  • 能效与 EMI 控制:效率达 98% 以上,低 EMI 设计减少滤波器使用,降低系统成本与体积。

  • 调试与开发工具

    Elmo 驱动配套 Elmo Application Studio II(EAS II)软件,提供图形化界面用于参数整定、实时监控、故障诊断与运动轨迹优化,支持离线仿真与在线调试,简化系统开发流程。


    via:

    • Elmo 驱动器上位机软件的简单配置-CSDN 博客 https://blog.csdn.net/heqiunong/article/details/143569853
    • Elmo 驱动器上位机软件的详细配置_elmo 软件使用手册-CSDN 博客 https://blog.csdn.net/heqiunong/article/details/143573631
    • GD32 与 Elmo 驱动器的 CANopen-SDO 通信_elmo canopen-CSDN 博客 https://blog.csdn.net/heqiunong/article/details/143574044
    • Elmo 驱动器的简单调试过程与运动程序 – 知乎 https://zhuanlan.zhihu.com/p/273295434
    • elmo 驱动器上位机软件调试指南 esaii – 知乎 https://zhuanlan.zhihu.com/p/622341905
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Elmo 驱动器 |上位机配置、 调试及 CANopen 通信
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!