- 文档信息
- 文档主题:步进电机控制调试
- 核心设备:西门子S7-200 SMART PLC + DM542步进驱动器 + DC5718HB6401步进电机
- 通信方式:脉冲控制 + 联锁电路
一、实现目标
实现步进电机的精确运动控制,具备以下功能:
- 速度控制:
100~600RPM(推荐工作范围)任意调节,满足不同工况下的运动需求; - 位置控制:可记忆 2 个固定位置(起点 / 终点),
按下对应按钮直接到达,支持线性运动; - 锁止功能:到达目标位置后通过驱动器
励磁锁止,断电 / 急停时刹车抱闸(Q1.3松闸继电器控制); - 状态反馈:实时监控系统电源、刹车反馈、回零完成、系统就绪、系统故障;
电机位置、移动速度等实时在线监视。 - 参数设定:设定移动速度、起点位置、终点位置及使能按钮(
回零校准、起点运动、终点运动),扩展正点动、负点动。
二、设备清单
| 组件 | 型号 | 主要参数 |
|---|---|---|
| PLC | S7-200 SMART | 源型(PNP) 晶体管输出,支持高速脉冲 |
| 步进驱动器 | DM542 | 4.2A峰值,适配两相混合式步进电机,1600细分 |
| 步进电机 | DC5718HB6401 | 步距角:1.8°(物理 200 步 / 转);额定电流:4.0A;扭矩:3.6N・m;刹车电压:DC24V |
| 电源 | 开关电源 | 驱动器供电:DC 36V/48V;PLC 供电:DC 24V |
| 辅件 | 继电器、限位开关 | 中间继电器(刹车控制,隔离感性负载)、限位开关(正式使用必装)、连接线缆 |
三、组态向导
| 参数 | 设定值 | 设定依据与说明 |
|---|---|---|
| 驱动器电流参数 | 3.76A | 电机额定电流 4.0A,按 “接近不超过额定电流” 原则,通过拨码 SW1=ON、SW2=OFF、SW3=OFF 设定 |
| 驱动器细分参数 | 1600 脉冲 / 转(8 细分) | 拨码 SW5=OFF、SW6=OFF、SW7=ON、SW8=ON;提升运行平滑度,适配 PLC 脉冲计算 |
| PLC 最大脉冲输出 | 最高 100kHz | PLC极限值,对应最高转速:(100000/1600)×60≈3750RPM(实际用 600RPM 以内) |
| 丝杠传动比 | 5mm / 转 | 联轴器连接丝杠,电机旋转 1 圈对应平移台移动 5mm(位置计算基础) |
| 行程范围 | 0~200mm | 平移台有效运动行程,位置控制需在此范围内设定目标点 |
| 最大速度设定 | 50mm/s | 600RPM对应的速度为(600转 / 60分 * 5导程 = 50mm/s) |
| 最大速度脉冲 | 1.6KHZ | 600RPM对应的脉冲为(600转 / 60分 * 1600细分 = 1.6KHZ) |
| 控制精度 | 0.01mm | 理论精度(5导程÷1600细分=0.003125mm / 3.125μm) + 机械误差 + 传动误差 ≈ ±0.01mm |
组态:
- 使用“
向导”在PLC中创建一个虚拟的“运动轴”(说明:实际参数设定需根据实际情况得出,文档所指参数值均为经验值并非固定)。
- 设置测量系统:选择 “工程单位”。
- 电机每转的脉冲数 (PPR): 输入DM542驱动器上设置的细分值,例如 1600。
- 电机每转的位移: 如果您的机构是丝杠(例如,丝杠导程为5mm),这里就填5,单位选mm。
工程单位和相对脉冲有什么区别?
- “相对脉冲”:PLC直接发脉冲数(定位指令(如AXIS0_GOTO)时,Position参数直接就是脉冲数,需自己计算)
- “工程单位”:自动将行程(厘米/毫米转换成脉冲数),直接发行程(Position := 100.0移动100毫米)
- 设置方向控制:选择“单相(2输出)”
- 单相(2输出)— 常用
- P0: 脉冲输出(固定为Q0.0)
- P1: 方向控制(固定为Q0.2)
- 大多数步进电机驱动器,简单方向控制的伺服驱动器
- 双相(2输出) 又称"CW/CCW模式"
- P0: 正向脉冲(Clockwise)
- P1: 反向脉冲(Counter-Clockwise)
- 特定的步进驱动器支持此模式,需要明确正反转脉冲分离的应用(两个脉冲输入)
- AB正交相位(2输出)— 高精度编码器仿真
- 输出相位差90°的A、B相脉冲
- 通过A、B相的相位领先关系判断方向
- 模拟增量式编码器输出,控制支持正交输入的设备,高精度定位系统
- 单相(1输出)— 仅脉冲,固定方向
- P0: 脉冲输出
- 方向固定,无法在运行中改变
- 单向运动的简单应用,输送带、风机等不需要反转的设备,测试和调试场合
- 设置输入输出:
- 正限位、负限位、原点(推荐设置)
- 设置电机速度:
- 最大值:电机能达到的最高速度(默认值系统根据PLC最大脉冲数自动得出,公示:PLC最大脉冲数 / 细分 * 导程):
- 例如:200smart的晶体管数字量输出最大为100KHZ,驱动器细分为1600(电机转一圈需要的脉冲数),导程5mm(电机转一圈的位移),理论计算 = 312 mm/s;然而需依据电机的物理特性,如57的步进电机转速带载一般工作转速为600转,实际计算 = 50mm / s(600prm / 60min * 5mm)
- 最小值:系统自动计算,固定值
- 启停速度:最大速度的5%-10%,可以较低速度,防止启动时堵转或失步。
- 设置电机加减速时间:
- 从200ms开始测试,观察运行效果
- 如果运行平稳,可尝试减少到150ms提升响应
- 如果出现振动或丢步,增加到250-300ms
- 精密定位应用建议保持200ms或稍增加
- 减速时间设置与加速时间相同或稍长
- 设置参考点:(重要:绝对位移必须设置参考点)
- 快速回零:电机的工作速度(例如:10mm/s)
- 接近零点慢速:工作速度的20%
- 映射:
- 查看实际对应的绝对地址
完成向导: 点击“生成”,软件会自动创建一系列子程序(如 AXIS0_CTRL, AXIS0_GOTO等)和对应的数据块。那这些块如何使用,都是什么含义呢?
四、设备接线
- 信号线(PUL+ \ -、DIR+ \ -、ENA+ \ -):
- 脉冲 / 方向信号:采用共阴极接法(适配 PLC 源型 PNP 输出);
- 使能信号:悬空(驱动器默认使能)
- 电机绕组(A+\ -、B+ \ -)
- 电机的旋转方向(顺逆时针)可以通过调换某相绕组(例如:驱动器A+接电机A-、驱动-接电机+)的接线改变其运动方向.
- 刹车(红、黑)
- 刹车释放条件:系统上电且无急停
- 刹车施加条件:系统断电或手动急停触发
- 通过中间继电器隔离控制(刹车线圈为感性负载,避免烧毁 PLC 输出点)
- 电源供电
- 驱动器电源与 PLC 电源独立,避免干扰
- 共阴极(负极并联到0V,正极接PLC输出点,高电平有效)
- 共阳极(正极并联到24V,负极接PLC输出点,低电平有效)
IO映射表
| 类型 | 绝对地址 | 信号名称 | 变量标识 | 功能说明 | 状态定义 |
|---|---|---|---|---|---|
| 数字量输入(DI) | I0.0 | Axi0_lmt1 | DI_Axi0_lmt1 | 轴 0 正限位信号 | ON = 触发(超程保护),OFF = 正常 |
| DI | I0.1 | Axi0_lmt0 | DI_Axi0_lmt0 | 轴 0 负限位信号 | ON = 触发(超程保护),OFF = 正常 |
| DI | I0.2 | Axi0_rps | DI_Axi0_rps | 轴 0 原点传感器信号 | ON = 触发(回零定位点),OFF = 未触发 |
| DI | I2.0 | Axi0_driveEL | DI_Axi0_driveEL | 驱动器上电反馈信号 | ON = 驱动器上电,OFF = 未上电 |
| DI | I2.1 | Axi0_unlock | DI_Axi0_unlock | 刹车松闸反馈信号 | ON = 松闸(正常),OFF = 抱闸(断电 / 急停) |
| 数字量输出(DO) | Q0.0 | Axi0_pul | DO_Axi0_pul | 轴 0 脉冲信号输出(PTO) | 高频脉冲(控制转速 / 位移) |
| DO | Q0.1 | Axi0_dir | DO_Axi0_dir | 轴 0 方向信号输出 | ON = 正转,OFF = 反转 |
| DO | Q1.3 | Axi0_unlock | DO_Axi0_unlock | 轴 0 刹车松闸控制(继电器常开) | ON = 松闸(运动允许),OFF = 抱闸(锁止) |
五、控制逻辑
信号流向:
状态机说明: 确保运动控制的唯一性、安全性和位置准确性。
状态划分:系统包含 3 种工作状态,定义如下:
- S0:回零状态(初始状态):执行回零子例程(AXIS0_RSEEK),寻找参考坐标
- S1:自动状态:执行自动定位子例程(AXIS0_GOTO),支持一键到达起始位置 / 目标位置,速度可调
- S2:点动状态:执行点动子例程(AXIS0_MAN),支持正方向点动、负方向点动(单次位移1mm,可组态定义)
控制原则
- 互斥激活:任何时刻仅允许一个运动控制子例程(AXIS0_RSEEK/AXIS0_GOTO/AXIS0_MAN)处于激活状态,避免指令冲突
- 初始化保障:利用 PLC 首次扫描标志(SM0.1)强制初始状态为 S0(回零状态),解决重启 / 下载程序后内存重置、位置丢失问题
- 状态切换约束:回零状态(S0)必须完成回零操作后才能切换至其他状态;自动 / 点动状态可直接切换至任意状态(切换时自动停止当前子例程)
状态机切换:
- S0:回零状态(初始状态)
- 进入条件
- PLC 首次扫描(SM0.1=1)时强制进入
- 其他状态下收到 “切换至回零” 指令时进入
- 执行内容
- 激活回零子例程(AXIS0_RSEEK),发送回零指令
- 退出条件(必须同时满足)
- 回零完成标志位 = 1,即:
- 回零错误码 = 0(无报错)
- 回零指令 DONE=1(指令执行完成)
- 当前位置 POS=0(到达参考坐标)
- 回零传感器 = ON(触发参考点)
- 退出后动作
- 自动切换至 S1(自动状态),激活 AXIS0_GOTO 子例程
- S1:自动状态
- 进入条件
- 回零状态(S0)完成回零后自动进入
- 点动状态(S2)状态下收到 “切换至自动” 指令时进入
- 执行内容
- 1.激活自动定位子例程(AXIS0_GOTO)
- 2.支持操作:
- 一键到达起始位置(触发 “起始位置指令”)(
0~50mm)- 一键到达目标位置(触发 “目标位置指令”)(
50~180mm)- 速度调节(通过 “速度设定变量” 实时修改运动速度)(
0.1~50mm\s)- 实时监控自动定位状态(是否到达目标位置、是否报错)
- 退出条件
- 收到 “切换至回零” 或 “切换至点动” 指令
- 退出后动作
- 停止 AXIS0_GOTO 子例程,根据指令切换至对应状态
- S2:点动状态
- 进入条件
- 其他状态下收到 “切换至点动” 指令时进入
- 执行内容
- 1.激活点动子例程(AXIS0_MAN)
- 2.支持操作:
- 正方向点动(触发一次正向位移1mm)
- 负方向点动(触发一次负向位移1mm)
- 速度调节(通过 “点动速度设定变量” 修改点动速度)
- 退出条件
- 收到 “切换至回零” 或 “切换至自动” 指令
- 退出后动作
- 停止 AXIS0_MAN 子例程,根据指令切换至对应状态
异常处理
- 回零失败:若回零过程中报错(AXIS0_RSEEK.ERR≠0),系统保持在 S0(回零状态),需人工排查后重新触发回零
- 位置丢失处理:若在非回零状态下发生重启 / 下载程序,SM0.1 会强制回到 S0,重新执行回零以校准位置
初始化指令
- 默认起始位置10mm(0~20mm)
- 默认目标位置180mm(0~180mm)
- 默认运动速度10mm/s(0.1~50mm/s)
锁止控制
- 正常锁止:位置控制指令执行完成后,驱动器保持电机励磁(通电),通过 “保持力矩” 锁止电机,无需额外操作;
- 安全锁止:系统断电 / 紧急停止时,刹车自动抱闸(备份锁止);
- 注意:运动前需先释放刹车,运动完成后保持刹车释放(依赖驱动器励磁锁止)。
功能联锁
- 在用户界面显示驱动器上电状态(通过继电器反馈);
- 程序中加入 “驱动器上电” 联锁,未上电禁止读取位置(驱动器未上电,位置显示假值)
六、测试过程
硬件准备:
- 驱动器拨码确认(电流 3.76A、细分 1600 脉冲 / 转);
- 接线检查(脉冲 / 方向共阴极、刹车继电器隔离、电源正负极无反接);
- 机械检查(丝杠无卡死、电机与联轴器连接牢固、限位开关预装到位)。
软件准备:
- 安装 STEP 7-Micro/WIN SMART(Win10/11 需以 “管理员身份运行”,解决兼容性问题);
- PLC 硬件组态(选择对应型号,启用 PTO 功能);
- 使用 “位控向导” 生成脉冲控制程序(不可用普通指令控制 Q0.0,避免失步)。
测试步骤
| 步骤 | 内容 | 预期结果 |
|---|---|---|
| 1. 面板工具(速度模式) | 1. PLC 切换至 “Stop” 模式,上载程序; 2. 进入 “运动控制面板”,设置点动速度(如 1mm/s); 3. 点击 “点动 +”/“点动 -”,观察电机运行 |
驱动器 PWR 灯亮(无 ALM 报警); PLC 运行灯(RUN)亮; 刹车默认抱闸(断电状态) |
| 2. 回零测试 | 1. 执行回零程序; 2. 观察原点传感器触发状态、驱动器回零完成信号 : |
①原点传感器触发; ②回零Done完成; ③Ctrl指令Err无故障; ④Ctrl指令Pos位置归零; 满足 以上4 个条件回零完成 |
| 3. 位置测试 | 1. 设定 2 个目标位置(如起点 0mm、终点 100mm); 2. 执行GoTo指令,一键到达目标点 ,一键到达起点 3. 修改速度(1~50阶梯增加)多次执行 |
电机精准停在目标位置(误差≤3.125μm,即 1 脉冲对应位移); 到达后自动锁止 |
| 4. 锁止测试 | 1. 位置测试完成后,保持系统通电; 2. 手动推平移台,观察是否位移; 3. 断电测试刹车 |
通电时无法推动(驱动器励磁锁止); 断电后刹车抱闸,无位移 |
| 6. 极限测试 | 1. 设置工作速度(如 10mm/s,对应 120RPM); 2. 连续运行 10 次往返,观察稳定性 |
无失步、无报警 位置精度保持一致; 电机 / 驱动器无过热(温度≤60℃) |
七、常见故障
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 命令下发,电机不动 | 1. 负载过大(超过 3.6N・m); 2. 加速过快; 3. 机械卡死; 4. 驱动器未使能; 5. 速度设置为0; 6. 绝对位移已到达目标位置 |
1. 减轻负载或更换高扭矩电机; 2. 增大加减速时间(如 200ms→500ms); 3. 检查丝杠 / 联轴器; 4. 确认 ENA 信号悬空(默认使能) 5. 检查设定参数是否正确 |
| 电机振动 / 噪音大 | 1. 细分设置过小; 2. 负载不均衡 |
1. 提升细分(如 1600→3200 脉冲 / 转); 2. 调整丝杠平行度,确保负载均匀 |
| PLC 监控提示 “设备不支持” | 软件兼容性问题; PLC 型号选择错误 |
1. 以管理员身份运行 STEP 7-Micro/WIN SMART; 2. 重新组态,选择正确的 PLC 型号 |
八、总结
关键经验(避坑要点)
-
PLC 选型:必须选晶体管输出型(MT),继电器输出型无法发出高频脉冲;PNP 输出对应共阴极接线,NPN 对应共阳极,接反会导致无信号;
-
回零必要性:每次 PLC 断电、程序下载后,必须重新回零,否则位置计数器与实际位置偏差会导致定位错误;
-
加减速时间:不可省略,建议设置 200~500ms,防止电机启动 / 停止时失步(尤其是高负载工况)。
注意事项
- 正式使用前必须加装限位开关,防止平移台超行程撞机;
- 刹车线圈为感性负载,必须通过中间继电器隔离,避免烧毁 PLC 输出点;
- 定期检查驱动器电流、温度(最高不超过 70℃),避免过载;
公式汇总:
- 脉冲频率(Hz)=目标转速 RPM / 60 × 细分
- 位移距离(mm)=脉冲数 / 细分 × 丝杠螺距 / 细分


返回顶部
刷新页面
下到页底