每周一个编程小例子:可调时间的脉冲生成器
引言
在自动化控制系统中,PLC(可编程逻辑控制器)作为一种广泛应用的工业控制设备,其编程语言和功能块的设计在实现高效控制中起着至关重要的作用。本文将带您了解一款名为 PM_Pulse_v2 的脉冲生成器功能块,通过此功能块可以指定高低电平时间,生成高低电平交替的脉冲信号,广泛应用于工业自动化中的信号传输、控制设备的启停等场景。
1 程序代码
下面是完整的 PLC 程序代码(代码基于 CodeSys 平台的 ST 语言):
- FUNCTION_BLOCK PM_Pulse_v2
- VAR_INPUT
- Enable : BOOL; //使能
- PulseHighTime : TIME := T#1500MS; // 脉冲高电平时间
- PulseLowTime : TIME := T#1000MS; // 脉冲低电平时间
- END_VAR
- VAR_OUTPUT
- PulseSignal : BOOL := FALSE; // 脉冲信号
- END_VAR
- VAR
- Timer_1 : TON; // 定时器
- CurrentState : BOOL := FALSE; // 当前状态(高电平或低电平)
- PtState : TIME;
- END_VAR
- IF Enable THEN
- // 初始化定时器
- Timer_1(IN := NOT Timer_1.Q, PT := PtState );
- // 定时器到期后切换状态
- IF Timer_1.Q THEN
- CurrentState := NOT CurrentState;
- PulseSignal := CurrentState;
- END_IF
- ELSE
- CurrentState := 0;
- PulseSignal := 0;
- Timer_1(IN := TRUE);
- Timer_1(IN := FALSE);
- END_IF
- //切换时间
- IF CurrentState THEN
- PtState := PulseHighTime;
- ELSE
- PtState := PulseLowTime;
- END_IF
2 程序分析
输入变量:
-
Enable:控制脉冲信号是否启用。
-
PulseHighTime:脉冲高电平持续时间,默认为 1500 毫秒。
-
PulseLowTime:脉冲低电平持续时间,默认为 1000 毫秒。
输出变量:
-
PulseSignal:输出的脉冲信号,高电平和低电平交替。
内部变量:
-
Timer_1:TON 定时器,用于控制脉冲信号的时间间隔。
-
CurrentState:当前的信号状态,表示是高电平(TRUE)还是低电平(FALSE)。
-
PtState:当前脉冲的时间长度,依据CurrentState的值动态调整。
程序工作原理:
-
当Enable为 TRUE 时,程序启动。首先,通过定时器控制脉冲的持续时间(根据高低电平分别设定PulseHighTime和PulseLowTime)。
-
定时器到期后,脉冲信号会反转(高电平变低电平,低电平变高电平),并输出当前状态的信号。
-
当Enable为 FALSE 时,脉冲信号停止,定时器停止计时。
3 应用场景
信号传输:在自动化控制中,经常需要定时产生一定周期的脉冲信号来触发其他设备的工作,例如控制步进电机、伺服电机的转动。
设备启停控制:用于设备的周期性启停控制,自动化生产线的定时设备操作等。
信号同步:通过调整脉冲信号的时间,可以实现多个设备之间的同步操作,例如 PLC 控制多个工艺流程或设备之间的协调。
4 拓展思考
时间精度与系统响应:此功能块基于 TON 定时器,但实际使用中可能遇到系统的响应延迟。对于高精度要求的应用,可能需要采用更高精度的计时器或硬件定时器。
多通道脉冲输出:如果需要多个独立的脉冲输出,可以将此功能块复制并根据不同的时间参数调整,实现多路输出。
信号频率调整:目前该功能块的脉冲频率是固定的,如果需要动态调整脉冲频率,可以通过增设输入参数或添加自动调整机制来实现。
总结
本文介绍了 PM_Pulse_v2 脉冲生成器功能块的实现原理及应用场景。通过使用定时器,能够精确控制脉冲信号的高低电平交替输出,广泛应用于工业自动化控制中。在未来的应用中,可以根据实际需求对该功能块进行扩展和优化,从而满足更高的控制精度和灵活性要求。
希望这篇文章能为正在学习 PLC 编程的工程师提供一些有益的思路和实践参考。
你来出题 我来答


欢迎大家在评论区提一些标准功能块的需求,如果合适,我们会在以后的文章中与大家分享。
往期回顾
每周一个编程小例子 :Bit 到 Word 转换的两种实现方案对比
每周一个编程小例子:PID 控制算法在 PLC 系统中的实现与应用
2025年10月


