PLC产生脉冲信号的两种方法
脉冲信号在PLC编程中会经常用到,比如:通信过程中的心跳脉冲、蜂鸣器/指示灯的报警脉冲等等。这些脉冲信号可以来自硬件(组态),也可以来自软件(编程)。今天这篇文章,给大家介绍下两种产生脉冲信号的方法,包括:
CPU的时钟脉冲;扩展函数LGF_Frequency;1、CPU的时钟脉冲
CPU的时钟脉冲可以产生8个不同频率的脉冲信号(占空比1:1)。在CPU的硬件组态中找到【系统和时钟存储器】,勾选【启用时钟存储器字节】,在时钟存储器字节的地址中输入位存储器的地址(默认为MB0),那么CPU的硬件(严格来说是操作系统)会将相应频率的脉冲写入到该位存储器字节的相应位。比如下面这张图:M0.1是5Hz的时钟脉冲,M0.5是1Hz的时钟脉冲。
这种配置脉冲信号的方法很简单,不过其缺点在于会降低程序的通用性。比如:有的人使用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的变量中:
执行该函数块的Trace数据如下图所示:
这种通过函数块和数据块实现的脉冲信号提高了程序的可读性,并且能产生任意需要的周期及占空比的脉冲信号,缺点是需要手动编程,相比CPU的脉冲信号复杂一点;
说明:其实之前介绍过LGF_Frequency及通用函数库,可以看看文章:博途扩展函数库LGF系列教程(1)-LGF_Frequency
好了,关于PLC产生脉冲信号的两种方法就先介绍到这里。
我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,欢迎点击下面的链接查看:
#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART PLC应用技术 ¥88 购买131、用PLC编写一个高数脉冲输出程序
启动按钮接于I0.0,停止按钮接于I0.1,当按下启动按钮时,Q0.0输出PTO高速脉冲,脉冲的周期为30ms,个数为10000个,若输出脉冲过程中按下停止按钮,则脉冲输出立即停止。
控制程序如图所示:
相关问答
plc的脉冲使用方法?
PLC是通过控制发送的脉冲来控制伺服电机的,用物理方式发送脉冲,也就是使用PLC的晶体管输出是最常用的方式,一般是低端PLC采用这种方式。而中高端PLC是通过通讯...
plc程序如何产生脉冲-懂得
下面是产生1秒的脉冲信号的方法:方法1:采用硬件组态中CPU属性下的MemoryClock,这样你会得到一个系统提供的定时脉冲.如果你设置的为MB100那么在程...
西门子PLC怎么编写脉冲程序?
编写西门子PLC的脉冲程序需要以下步骤:首先,确定所需的脉冲输入或输出模块,配置PLC的硬件连接。然后,使用编程软件(如Step7)创建新的程序。在程序中,...
PLC脉冲如何输入?
回答如下:编程步骤如下:1.在程序中声明需要使用的输入点,例如I0.0表示使用I0口的0号输入点。2.在程序中设置需要使用的输入点的工作模式为脉冲输入模式,...
plc脉冲怎么启停控制?
PLC脉冲启停控制是通过设置PLC的输入和输出信号来实现的。首先,将输入信号连接到PLC的数字输入端口,例如按钮或传感器。然后,在PLC程序中设置一个计数器,该...
plc怎么发送脉冲信号?
plc发送脉冲信号一般都是由特殊存储器来实现的。plc之所以发送脉冲信号,一般的原理是当ms定时器规定的时间到,PLC在中断里面写输出为1,而平时为0,这样就实...
plc程序如何产生脉冲-185****3044的回答-懂得
{y1}------plsyk500k600y0y0脉冲发生口接步进电机驱动器K500是频率也就是速度根据你的需要修改数值K600是脉冲数也就是脉冲个数你可以设成99...
问一下大家,在PLC里面,脉冲什么什么意思?什么时候才可以用到脉冲?它有什么用?求解?
脉冲就是指相同时间内发出波形,比如方波与三角形,都是脉冲。比如,工频电流可以理解1秒发50个脉冲,50就是脉冲频率,不可以PLC脉冲可以发出频率更高的脉冲,而...
如何让PLC一直输出脉冲?
我来回答这个问题,让PLC输出脉冲的方法还是比较多的,我们可以根据控制不同的负载,通过不同的指令输出脉冲的频率是不一样的。下面我们以日系PLC(可编程控制器...
请问三菱plc读脉冲数的程序怎么写?
可以利用高速计数器直接读取。例如:将两相旋转编码器的A、B分别接X0、X1;LDM8000OUTC251K10000DMOVC251K8Y0这样就可将脉冲数直接从Y0~Y37中显示出来。可以利...