返回主站|会员中心|保存桌面

ABB机器人备品配件服务商    

ABB机器人备件,ABB示教器,ABB伺服电机,ABB减速机,ABB通讯...

站内搜索
 
新闻分类
  • 暂无分类
联系方式
  • 联系人:吴经理
  • 电话:18576370666
友情链接
首页 > 新闻中心 > 通过编码器的数值,控制18个伺服电机工作!
新闻中心
通过编码器的数值,控制18个伺服电机工作!
发布时间:2025-09-10        浏览次数:1        返回列表

通过编码器数值控制 18 个伺服电机协同工作,核心是建立 “编码器反馈值→位置 / 速度指令” 的映射关系,实现多轴按预设逻辑联动(如同步跟随、差速运行、位置触发等)。以下是基于 PLC 的实现方案,包含硬件架构、核心控制逻辑及程序样例:

一、硬件架构设计

需解决编码器信号采集、多轴伺服控制及同步逻辑处理三大核心问题:


组件选型建议作用说明
主控制器西门子 S7-1214C(支持 16 轴脉冲)或三菱 FX5U(支持 20 轴)处理编码器信号,计算各伺服指令,支持高速计数和脉冲输出
编码器增量式编码器(如 1024 线,A/B 相 + Z 相)提供位置 / 速度基准信号(如主轴或传送带位置)
伺服系统18 套带脉冲接口的伺服驱动器 + 电机接收 PLC 脉冲指令,执行位置 / 速度控制
高速计数模块若 PLC 内置高速计数不足,需扩展(如 EM253)采集编码器高频脉冲(支持≥100kHz)
脉冲输出模块按轴数扩展(如每模块 4 轴)向伺服驱动器输出方向 + 脉冲信号

二、核心控制逻辑

根据编码器数值(位置 / 速度)控制 18 个伺服,常见模式有两种:

1. 位置触发模式(适合点位控制)

  • 原理:设定编码器的关键位置点(如 1000、2000、3000 脉冲),当编码器值达到对应点时,触发特定伺服电机动作(如启动、停止、切换速度)。

  • 示例:编码器检测传送带位置,当传送带移动到 100mm(对应 1000 脉冲)时,伺服 1 启动推料;移动到 200mm(2000 脉冲)时,伺服 2 启动压合。

2. 速度 / 位置跟随模式(适合同步控制)

  • 原理:以编码器速度 / 位置为基准,各伺服按比例关系跟随(如伺服 1 速度 = 编码器速度 ×0.8,伺服 2 位置 = 编码器位置 + 500 脉冲)。

  • 示例:印刷设备中,编码器检测主辊位置,18 个伺服控制不同色组,按比例跟随主辊位置确保套印精度。

三、程序实现(以位置触发模式为例)

1. 编码器信号采集(高速计数)

ladder

// 西门子S7-1200示例:初始化高速计数(编码器A/B相接入I0.0/I0.1)
LD     "首次扫描"
CALL   "HSC_Init"                   // 高速计数初始化函数
       EN:=TRUE
       Mode:=0                      // 模式0:A/B相正交计数
       Preset:=0                    // 预设值0
       Enable:=TRUE
       Q:=#HSC_Enabled

// 读取当前编码器值(存储到DB1.DBD0)
LD     "循环扫描"
CALL   "HSC_Read"
       EN:=#HSC_Enabled
       CurrentCount:=DB1.DBD0       // 编码器当前值(双整数)

2. 位置触发逻辑(18 轴动作控制)

ladder

// 当编码器值≥1000脉冲时,启动伺服1(Q0.0输出脉冲)
LD     "循环扫描"
LDD>=  DB1.DBD0, 1000               // 编码器值≥1000
AN     "伺服1已启动"                 // 未启动状态
=      "伺服1启动标志"

// 伺服1启动:输出脉冲(目标位置5000脉冲,速度10000脉冲/秒)
LD     "伺服1启动标志"
CALL   "PULSE_OUTPUT"
       Axis:=1                      // 轴1
       Mode:=1                      // 位置模式
       TargetPos:=5000
       Speed:=10000
       Start:=TRUE
       Done=>"伺服1完成标志"

// 当编码器值≥2000脉冲时,启动伺服2(同理扩展至18轴)
LD     "循环扫描"
LDD>=  DB1.DBD0, 2000               // 编码器值≥2000
AN     "伺服2已启动"
=      "伺服2启动标志"
// 伺服2控制指令(略,同伺服1)

// ... 依次扩展至18个伺服的触发逻辑

3. 同步跟随逻辑(速度比例跟随)

ladder

// 计算编码器速度(单位:脉冲/秒,存储到DB1.DBD4)
LD     "循环扫描"
CALL   "CALC_SPEED"                 // 速度计算函数(通过前后两次位置差/时间)
       CurrentPos:=DB1.DBD0
       Speed:=DB1.DBD4              // 编码器当前速度

// 伺服3速度=编码器速度×0.8(比例跟随)
LD     "循环扫描"
LDN    "伺服3故障"
MOVR   DB1.DBD4, #Temp1             // 读取编码器速度
MULR   #Temp1, 0.8, #Temp2          // 乘以比例系数0.8
CALL   "SERVO_SPEED"
       Axis:=3                      // 轴3
       Speed:=#Temp2                // 设定速度
       Enable:=TRUE

四、关键技术要点

  1. 编码器信号处理

    • 增量式编码器需通过 “高速计数” 模块采集(普通 I/O 无法处理高频脉冲),并做滤波处理(如 PLC 参数设置滤波时间 10μs),避免干扰导致计数错误。

    • 若需绝对位置,可使用绝对式编码器(如 SSI 协议),减少回零操作。

  2. 多轴同步精度

    • 脉冲输出模块需支持 “同步启动” 功能(如西门子 1214C 的 PTO 同步输出),确保 18 轴指令同时生效。

    • 若精度要求高(如≤0.1mm),建议采用总线型伺服(如 EtherCAT),通过总线同步时钟(如 DC 同步)替代脉冲控制。

  3. 负载均衡与故障处理

    • 18 轴同时工作时,PLC 脉冲输出负载可能过大,需分散脉冲输出模块的轴数(如分 4 个模块,每模块控制 4~5 轴)。

    • 每个伺服轴增加 “故障反馈” 信号(如伺服报警 I 点),触发时立即暂停所有关联轴,避免连锁故障。

  4. 程序优化

    • 编码器采集和伺服指令计算放入 “中断程序”(如 1ms 定时中断),减少扫描周期对同步精度的影响。

    • 18 轴逻辑采用 “数组 + 循环” 结构化编程(如西门子 SCL、三菱 ST 语言),避免重复代码,便于维护:

      stl


    • // 结构化示例:用数组遍历18轴触发条件
      FOR #i := 1 TO 18 DO
          IF DB1.DBD0 >= DB2.DBD[#i*4] AND NOT "Servo_Started"[#i] THEN
              "Servo_Start"[#i] := TRUE;  // 第i轴启动
          END_IF;
      END_FOR;


五、适用场景与扩展

  • 适用场景:流水线多工位协同(如电子组装线)、大型印刷设备、多轴同步送料系统等。

  • 功能扩展

    • 增加 “电子齿轮” 功能(伺服位置 = 编码器位置 × 分子 / 分母),实现精准比例跟随。

    • 通过 HMI 设置各轴触发位置 / 比例系数,提高灵活性。


通过以上方案,可实现编码器数值对 18 个伺服电机的精准控制,核心是根据实际需求选择 “位置触发” 或 “同步跟随” 模式,并优化信号处理和程序结构以保证稳定性。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服