北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8641278

PLC产生脉冲信号的两种方法

脉冲信号在PLC编程中会经常用到,比如:通信过程中的心跳脉冲、蜂鸣器/指示灯的报警脉冲等等。这些脉冲信号可以来自硬件(组态),也可以来自软件(编程)。今天这篇文章,给大家介绍下两种产生脉冲信号的方法,包括:

  1. CPU的时钟脉冲;

  2. 扩展函数LGF_Frequency;

cover.jpeg

1、CPU的时钟脉冲

CPU的时钟脉冲可以产生8个不同频率的脉冲信号(占空比1:1)。在CPU的硬件组态中找到【系统和时钟存储器】,勾选【启用时钟存储器字节】,在时钟存储器字节的地址中输入位存储器的地址(默认为MB0),那么CPU的硬件(严格来说是操作系统)会将相应频率的脉冲写入到该位存储器字节的相应位。比如下面这张图:M0.1是5Hz的时钟脉冲,M0.5是1Hz的时钟脉冲。

hardwareClock.PNG

这种配置脉冲信号的方法很简单,不过其缺点在于会降低程序的通用性。比如:有的人使用MB0作为时钟存储器字节,有的人使用MB10或者其它的位存储区作为时钟存储器字节,这在不同的项目程序移植时会造成一些困难。为了提高程序的通用性,可以使用通用扩展函数库中的LGF_Frequency函数。

2、LGF_Frequency

扩展函数LGF_Frequency可以产生指定频率及占空比的脉冲信号,在全局库【信号发生器】中可以找到该函数,其初始添加状态如下图所示:

函数LGF_Frequency有两个输入参数和两个输出参数:

输入参数包括:

  • frequency:实数,发生器的输出频率,单位Hz;脉冲的周期为频率的倒数,假设频率设置为0.5,则该脉冲的周期为2s;

  • PulsePauseRatio:实数,输出脉冲的占空比,即高电平持续时间与低电平持续时间的比值;假设占空比为3.0,则高电平持续时间/低电平持续时间=3/1;

输出参数包括:

  • clock:布尔型,脉冲输出地址;

  • countdown:TIME型,当前状态的剩余时间;

使用LGF_Frequency函数可以产生与硬件无关的脉冲信号。比如,

下面的代码(FB2_ClockTest)分别产生一个1Hz、10Hz、0.5Hz且占空比为1:1的脉冲信号。

这些信号存放在全局数据块DB10_GlobalPulse的变量中:

LGF_FrequencyExample.png

执行该函数块的Trace数据如下图所示:

trace.png

这种通过函数块和数据块实现的脉冲信号提高了程序的可读性,并且能产生任意需要的周期及占空比的脉冲信号,缺点是需要手动编程,相比CPU的脉冲信号复杂一点;

说明:其实之前介绍过LGF_Frequency及通用函数库,可以看看文章博途扩展函数库LGF系列教程(1)-LGF_Frequency

好了,关于PLC产生脉冲信号的两种方法就先介绍到这里。

欢迎扫描下方的二维码关注我的微信视频号:

founderchip.png

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论