3、PLC脉冲输出原理:PLC高速脉冲输出口(Q0.0/Q0.1)、脉冲输出指令(PLS)、脉冲输出频率与周期
好,咱们今天聊点硬核的——PLC的脉冲输出。说实话,很多刚入行的朋友一听到“高速脉冲”就觉得头大,觉得那是伺服驱动才该操心的事。其实不然,PLC的脉冲输出口,是连接控制器和驱动器最直接的桥梁。你搞懂了它,后面调伺服、做定位控制,那都是水到渠成的事。
我个人习惯把脉冲输出比作“PLC的嗓子”。你想想看,PLC要告诉伺服电机跑多快、跑多远,靠的就是这个脉冲信号。嗓子好不好,直接决定了伺服听得清不清楚、跑得稳不稳。
3.1 高速脉冲输出口:Q0.0与Q0.1
先看硬件。在西门子S7-200 SMART或者S7-1200这类PLC上,高速脉冲输出口通常就是Q0.0和Q0.1。为什么是这两个点?因为它们内部集成了专用的硬件电路,能直接产生高频脉冲信号。
普通数字量输出口,比如Q0.2、Q0.3,你也能让它输出脉冲,但频率一高就掉链子。为什么?因为普通输出口是靠CPU扫描周期来切换的,最快也就几百赫兹。而高速脉冲输出口是硬件直接驱动的,频率可以到几十千赫甚至上百千赫。
我在项目中遇到过这样一个坑:有次调试一台贴标机,客户要求每分钟贴200个标签,我一开始图省事,用普通输出口发脉冲。结果标签位置忽前忽后,根本对不准。后来换成Q0.0,问题立马解决。嗯,这里要注意——高速脉冲输出口不是摆设,该用就得用。
关键点:
- Q0.0和Q0.1是硬件高速脉冲输出口,频率可达20kHz~100kHz(视PLC型号而定)
- 普通输出口(如Q0.2)只能用于低频信号,一般不超过500Hz
- 每个高速脉冲输出口通常对应一个专用的控制寄存器
3.2 脉冲输出指令:PLS
硬件有了,怎么让它干活?这就得靠PLS指令了。PLS是“Pulse”的缩写,说白了就是“发脉冲”的意思。
在梯形图里,PLS指令长这样:
// 梯形图示例:启动Q0.0输出脉冲
LD I0.0 // 启动按钮
PLS Q0.0 // 启动脉冲输出
你可能会问:就这一条指令?频率和数量怎么设?别急,PLS指令本身只是个“触发器”,真正的参数藏在特殊寄存器里。
以S7-200为例,Q0.0对应的控制字是SMB67,Q0.1对应SMB77。你需要先往这些寄存器里写参数,再执行PLS指令。
我一般这样写:
// 设置Q0.0脉冲输出参数
MOVB 16#8D, SMB67 // 控制字:允许脉冲输出,PTO模式,多段
MOVW +1000, SMW68 // 脉冲周期:1000微秒(即1ms,频率1kHz)
MOVD +5000, SMD72 // 脉冲数量:5000个
// 启动脉冲输出
PLS Q0.0
这里有个细节:SMB67的每一位都有特定含义。比如第0位是“更新周期”,第1位是“更新脉冲数”,第2位是“更新方向”。你设成16#8D,二进制就是10001101,表示同时更新周期、脉冲数和方向。
我的小技巧:刚开始记不住这些控制字的值?没关系,我一般直接查手册。但常用的几个值要记住:16#8D(PTO多段)、16#85(PTO单段)、16#89(PWM模式)。用多了自然就熟了。
3.3 脉冲输出频率与周期
频率和周期,这两个概念是脉冲输出的核心。说白了,频率决定伺服跑多快,周期决定脉冲的宽度。
频率(Hz):每秒输出的脉冲个数。比如1kHz,就是一秒发1000个脉冲。
周期(μs):每个脉冲的时间长度。周期 = 1 / 频率。比如1kHz对应的周期是1000微秒(1ms)。
这里有个容易搞混的地方:周期是微秒,不是毫秒。我见过不少新手把周期设成1000毫秒,结果伺服电机半天不动一下。你想想看,1秒才发1个脉冲,电机能跑才怪。
| 频率(Hz) | 周期(μs) | 应用场景 |
|---|---|---|
| 100 | 10000 | 低速输送带 |
| 1000 | 1000 | 普通定位控制 |
| 10000 | 100 | 高速贴标、分拣 |
| 50000 | 20 | 高精度伺服控制 |
我曾经调试一台高速分拣机,要求每分钟分拣300个产品。算下来脉冲频率要到15kHz。一开始我用10kHz试,结果分拣速度跟不上,产品堆了一地。后来把频率提到20kHz,配合加减速曲线,才稳定下来。
避坑指南:我曾经犯过一个低级错误——把脉冲频率设得过高,超过了PLC的硬件上限。结果脉冲输出口直接罢工,伺服电机乱跑。后来查手册才发现,S7-200 SMART的Q0.0最高只能到20kHz。所以,一定要先确认PLC的硬件规格,别盲目追求高频。
3.4 脉冲输出模式:PTO vs PWM
PLS指令支持两种模式:PTO(脉冲串输出)和PWM(脉宽调制)。
PTO模式:输出固定频率、固定数量的脉冲串。适合定位控制,比如伺服电机走多少距离。
PWM模式:输出占空比可调的连续脉冲。适合调速、调光等场景,比如控制直流电机转速。
我个人的习惯是:做定位控制用PTO,做调速控制用PWM。别混用,否则容易出问题。
举个例子,你要控制伺服电机走100mm,丝杠导程10mm,编码器分辨率1000脉冲/圈。那需要的脉冲数就是:
脉冲数 = (100mm / 10mm) × 1000 = 10000个脉冲
这时候用PTO模式,设好脉冲数10000,频率设成10kHz,电机就会以10kHz的频率走完10000个脉冲,刚好100mm。
总结一下:
- Q0.0/Q0.1是硬件高速脉冲口,别用普通口替代
- PLS指令是触发器,参数靠特殊寄存器设置
- 频率和周期是倒数关系,注意单位换算
- PTO用于定位,PWM用于调速
好了,这一章的内容就这些。脉冲输出原理看着简单,但实际项目中坑不少。下一章咱们聊聊脉冲输出与伺服驱动的接线和参数匹配,那才是真正考验动手能力的地方。