4. 脉冲输出参数配置:频率、占空比、个数与模式
脉冲输出模块能不能用,说白了就看参数配得对不对。我见过不少现场,硬件接线没问题,程序逻辑也没错,就是脉冲出不来——最后查下来,全是参数配置的锅。这一节咱们就把四个核心参数掰开揉碎讲清楚。
4.1 脉冲频率设置
频率决定了脉冲的快慢,单位是 Hz(赫兹),也就是每秒输出多少个脉冲。比如 1000 Hz,就是一秒发 1000 个脉冲。
频率怎么选? 主要看负载的响应能力。步进电机一般能到 10-50 kHz,伺服电机可以到 200 kHz 甚至更高。但别一上来就拉满,我遇到过一台设备,步进电机标称 20 kHz,实际跑到 15 kHz 就开始丢步了。后来一查,是驱动器加速时间没设够。
频率设置通常通过特殊寄存器或系统变量完成。以三菱 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 输出的占空比只有 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, ...);
4.4 单脉冲与连续脉冲模式选择
这是两个完全不同的工作模式,选错了设备动作会完全乱套。
| 模式 | 特点 | 适用场景 | 典型指令 |
|---|---|---|---|
| 单脉冲模式 | 发完指定个数后自动停止 | 定位控制、定长送料 | DPLSY、PTO |
| 连续脉冲模式 | 持续输出,直到手动停止 | 速度控制、连续输送 | PLSY(连续)、PWM |
单脉冲模式:你告诉 PLC 发 5000 个脉冲,它就发 5000 个,一个不多一个不少。发完后输出自动变低电平。适合需要精确定位的场合,比如数控机床的进给轴。
连续脉冲模式:PLC 会一直发脉冲,直到你用停止指令或条件让它停下来。适合需要持续运转的场景,比如传送带的速度控制。
我遇到过最典型的问题:有人用连续脉冲模式做定位,结果电机到了位置还在转,因为没写停止条件。设备直接撞了限位。所以我的建议是——做定位控制,老老实实用单脉冲模式。连续脉冲只用在速度控制上。
4.5 参数配置流程图
下面这张图总结了脉冲输出参数配置的完整流程,你可以把它贴在调试笔记的第一页。
4.6 参数配置检查清单
每次配置完脉冲参数,我建议你按下面这个清单过一遍,能省掉不少调试时间:
- 频率单位确认: 是 Hz 还是 kHz?用示波器实测验证。
- 占空比是否匹配: 驱动器对占空比有没有最低要求?
- 脉冲个数数据类型: 16 位还是 32 位?会不会溢出?
- 模式选择正确: 定位用单脉冲,速度用连续脉冲,别搞反。
- 停止条件: 连续脉冲模式下,有没有写停止逻辑?
- 硬件接线: 脉冲输出点有没有接对?是漏型还是源型?
参数配置看起来是小事,但每一个参数背后都可能藏着一个坑。频率设高了丢步,占空比不对不触发,个数溢出发一半,模式选错设备乱跑——这些我都经历过。所以别嫌麻烦,每配一个参数,都问自己一句:这个值合理吗?这个模式对吗?