4. 脉冲输出参数配置:频率、占空比、个数与模式

脉冲输出模块能不能用,说白了就看参数配得对不对。我见过不少现场,硬件接线没问题,程序逻辑也没错,就是脉冲出不来——最后查下来,全是参数配置的锅。这一节咱们就把四个核心参数掰开揉碎讲清楚。

4.1 脉冲频率设置

频率决定了脉冲的快慢,单位是 Hz(赫兹),也就是每秒输出多少个脉冲。比如 1000 Hz,就是一秒发 1000 个脉冲。

频率怎么选? 主要看负载的响应能力。步进电机一般能到 10-50 kHz,伺服电机可以到 200 kHz 甚至更高。但别一上来就拉满,我遇到过一台设备,步进电机标称 20 kHz,实际跑到 15 kHz 就开始丢步了。后来一查,是驱动器加速时间没设够。

我的习惯: 频率先按额定值的 60% 起步,跑顺了再往上加。尤其是旧设备改造,电机和驱动器可能都有老化,留点余量更稳妥。

频率设置通常通过特殊寄存器或系统变量完成。以三菱 FX5U 为例,用 DPLSY 指令时,频率值放在 D 寄存器里:

// 三菱 FX5U 示例:设置脉冲频率为 10 kHz
MOV K10000 D10   // 频率 10000 Hz
DPLSY D10 K0 Y0  // 从 Y0 输出脉冲

注意频率的单位。有些 PLC 用 Hz,有些用 kHz,还有些用脉冲周期(μs)。搞混了,电机要么不动,要么疯转。我建议你拿到手册后,先写个测试程序,把频率设成 1000 Hz,用示波器量一下实际波形——确认单位没错再往下走。

4.2 脉冲宽度与占空比设置

脉冲宽度,就是每个脉冲高电平持续的时间。占空比 = 高电平时间 / 脉冲周期 × 100%。

大多数 PLC 的脉冲输出默认是 50% 占空比,也就是高电平和低电平各占一半。但有些场合需要调整,比如驱动某些光耦隔离的输入口,可能需要更宽的脉冲才能可靠触发。

占空比的影响:

  • 50% 占空比: 通用设置,步进/伺服驱动器都能正常识别。
  • 占空比偏小(如 10%): 脉冲宽度窄,适合高速场景,但抗干扰能力下降。
  • 占空比偏大(如 90%): 脉冲宽度宽,触发更可靠,但限制了最高频率。
注意: 占空比不是所有 PLC 都能自由调整。有些经济型 PLC 固定 50%,改不了。如果你需要非 50% 占空比,先确认硬件手册里有没有这个功能。

我曾经在一个项目中,用国产 PLC 驱动一个老式伺服驱动器。伺服怎么都不认脉冲,折腾了两天。最后用示波器一看,PLC 输出的占空比只有 30%,而那个伺服要求最低 40%。把占空比调到 50%,问题立刻解决。嗯,这种坑踩过一次就记住了。

4.3 脉冲个数设置

脉冲个数,就是一次指令发多少个脉冲。这个参数直接决定电机转多少圈(或移动多少距离)。

计算公式很简单:

脉冲个数 = 目标位移量 / 每脉冲对应的位移量

举个例子:步进电机驱动器设为 1000 脉冲/圈,丝杠螺距 5 mm。要让滑台移动 100 mm:

电机需要转的圈数 = 100 / 5 = 20 圈
脉冲个数 = 20 × 1000 = 20000 个

在程序里,脉冲个数通常用 32 位寄存器存储。注意不要超范围——16 位寄存器最大只能存 32767 个脉冲,对于多圈运动根本不够用。

// 西门子 S7-1200 示例:设置 20000 个脉冲
#pulseCount := 20000;  // DINT 类型
CTRL_PTO(PulseCount := #pulseCount, ...);
避坑指南: 我曾经在调试时,把脉冲个数写成了 16 位整数,结果超过 32767 后数值溢出,电机只转了半圈就停了。查了半天才发现是数据类型的问题。从那以后,我所有脉冲个数都用 32 位或 64 位变量。

4.4 单脉冲与连续脉冲模式选择

这是两个完全不同的工作模式,选错了设备动作会完全乱套。

模式 特点 适用场景 典型指令
单脉冲模式 发完指定个数后自动停止 定位控制、定长送料 DPLSY、PTO
连续脉冲模式 持续输出,直到手动停止 速度控制、连续输送 PLSY(连续)、PWM

单脉冲模式:你告诉 PLC 发 5000 个脉冲,它就发 5000 个,一个不多一个不少。发完后输出自动变低电平。适合需要精确定位的场合,比如数控机床的进给轴。

连续脉冲模式:PLC 会一直发脉冲,直到你用停止指令或条件让它停下来。适合需要持续运转的场景,比如传送带的速度控制。

我遇到过最典型的问题:有人用连续脉冲模式做定位,结果电机到了位置还在转,因为没写停止条件。设备直接撞了限位。所以我的建议是——做定位控制,老老实实用单脉冲模式。连续脉冲只用在速度控制上。

4.5 参数配置流程图

下面这张图总结了脉冲输出参数配置的完整流程,你可以把它贴在调试笔记的第一页。

脉冲输出参数配置流程图 开始配置 步骤1:设置脉冲频率 确认单位(Hz/kHz),按负载额定60%起步 步骤2:设置占空比 默认50%,特殊需求按手册调整 步骤3:设置脉冲个数 用32位变量,避免溢出 步骤4:选择输出模式 定位用单脉冲,速度用连续脉冲 验证输出波形 💡 每步配置后,建议用示波器或PLC监控表确认实际输出

4.6 参数配置检查清单

每次配置完脉冲参数,我建议你按下面这个清单过一遍,能省掉不少调试时间:

  1. 频率单位确认: 是 Hz 还是 kHz?用示波器实测验证。
  2. 占空比是否匹配: 驱动器对占空比有没有最低要求?
  3. 脉冲个数数据类型: 16 位还是 32 位?会不会溢出?
  4. 模式选择正确: 定位用单脉冲,速度用连续脉冲,别搞反。
  5. 停止条件: 连续脉冲模式下,有没有写停止逻辑?
  6. 硬件接线: 脉冲输出点有没有接对?是漏型还是源型?
一个小技巧: 我习惯在程序里加一个“脉冲输出状态”的监控变量。调试时打开监控表,一眼就能看到当前频率、已发脉冲数、输出状态。比拿示波器到处戳方便多了。

参数配置看起来是小事,但每一个参数背后都可能藏着一个坑。频率设高了丢步,占空比不对不触发,个数溢出发一半,模式选错设备乱跑——这些我都经历过。所以别嫌麻烦,每配一个参数,都问自己一句:这个值合理吗?这个模式对吗?