课程中心
HOME
课程中心
正文内容
周期方波plc编程 一文带你了解S7-200高速脉冲输出应用
发布时间 : 2026-03-24
作者 : 小编
访问数量 : 23
扫码分享至微信

一文带你了解S7-200高速脉冲输出应用

关注“PLC发烧友 ”,一起涨知识!

前面学习了高速计数器的内容,紧接着我们就来学习一下高速脉冲输出的内容,高速脉冲输出一般是用在运动控制里面,用来控制步进或伺服,高速脉冲输出也是比较重要的一部分,我们必须得掌握好它。

在S7-200中有两个PTO/PWM高速脉冲发生器,可以产生高速脉冲串(PTO)或脉宽调制信号波形(PWM)。在S7-200中有脉冲输出指令PLS,它用来控制在高速脉冲输出(Q0.0和Q0.1)中提供的高速脉冲串输出(PTO)和脉宽调制(PWM)功能。

PTO/PWM与数字量输出过程映像区共用输出点Q0.0和Q0.1,当在Q0.0或Q0.1上激活了PTO/PWM功能时,是会禁止普通输出点功能的,这时Q0.0或Q0.1的输出波形是不受过程映像区状态、输出点强制值或者立即输出指令的影响的,我们使用状态表或趋势图是监控不了的。

要做高速脉冲输出,我们应该选用24VDC晶体管输出的CPU,而不能选用继电器输出的CPU,这是我们要注意的。高速脉冲输出一般是用在运动控制里面,用来控制步进或伺服。利用高速脉冲输出实现运动控制,除了有PTO、PWM,还有EM253定位模块,这三种方式都可以实现运动控制,不过要注意的是PTO和PWM可以使用脉冲输出指令PLS和向导来实现,而且PTO方式的甚至还可以使用运动控制库指令来实现,而使用EM253定位模块的话就只能通过向导来实现,而不能使用PLS指令或运动控制库指令。

我们先看一下脉冲串操作PTO,PTO是按照给定的脉冲个数和周期输出一串方波(占空比50%)。在使用时,我们要设定其脉冲个数和周期,我们要注意的是设定是周期数应该是偶数,如果设定的周期数为奇数的话,是会引起占空比失真的。而脉宽调制PWM,它是产生一个占空比变化周期固定的脉冲输出的,我们可以设定其周期和脉宽,我们要注意的是当设定的脉宽等于周期时,输出是一直为ON的,当设定的脉宽等于0时,输出是断开的。

一般来说,使用脉冲串PTO会比较多,所以后面学习时也是重点学习脉冲串PTO的。除此之外,我们还要学习脉冲输出指令PLS以及指令的应用,并且主要针对脉冲串PTO的学习,这是脉冲输出学习的重点,我们必须要掌握好它。

前面有说到脉冲输出指令PLS用于控制在高速脉冲输出(Q0.0和Q0.1)中提供的脉冲串输出PTO和脉宽调制PWM功能。在S7-200中有两个PTO/PWM发生器,而每台PTO/PWM发生器都有一个控制字节的,SMB67控制的是Q0.0的PTO/PWM发生器,而SMB77控制的是Q0.1的PTO/PWM发生器,这个我们要知道的。

脉冲输出指令是会从系统存储器SM(包括控制字节)中读取数据,从而控制PTO/PWM发生器,这样我们就可以通过修改控制字节,然后执行PLS指令,来更改PTO或PWM信号波形。以下就附上PTO/PWM控制寄存器的SM标志表和PTO/PWM控制字节参考表。

我们要注意的是,我们在使用PLS指令时一般是有步骤的。第一步,我们在使能PTO/PWM之前,要对Q0.0、Q0.1的过程映像区清零;第二步,定义控制字节,Q0.0对应SMB67,Q0.1对应SMB77。第三步,写入PTO/PWM相关寄存器的数据,比如SMW68对应的是PTO/PWM周期值(2-65525ms),SMD72对应的是PTO脉冲计数值。第四步,就是连接中断事件和中断程序,并允许中断这步是根据实际情况决定要还是不要的;第五步,执行PLS指令,激活某个脉冲输出,更新控制字节。

当然我们也可以禁止PTO/PWM波形,我们将控制字节的使能位(SMB67.7/

SMB77.7)清零,然后执行PLS指令就可以了。我们也可以对周期值、脉宽值和脉冲数进行修改,我们把相应的系统存储器位置1,然后再把修改数据写入到相应的系统存储器里,然后执行PLS指令就可以。

下面就举个PLS指令应用的例子,来更好的掌握PLS指令的使用。

主程序:

高速脉冲输出子程序:

高速计数器子程序:

以上的程序,在主程序的网络一中,首先用SM0.1首次扫描驱动高速计数器子程序进行高速计数初始化,同时对Q0.0的过程映像区清零。在高速计数器子程序中,首先传送16#F8到SMB47定义控制字节定义为更新当前值加计数,然后执行HEDF指令定义高速计数模式12和选择高速计数器0,最后是激活高速计数器,执行HSC指令。

在主程序的网络二中,用I0.2的上升沿才驱动高速脉冲输出子程序,用I0.2的下降沿来驱动一个传送指令,传送0到SMB67,并同时驱动一个PLS指令。在高速脉冲输出子程序中,首先传送16#85到SMB67中定义控制字节,这里选择的是PTO模式、单段、1us/周期、装入周期和脉冲数的情况(控制字节的定义可以参考PTO/PWM控制字节表),并传送100到SMW68中写入周期值,传送100到SMD72中写入脉冲数,最后执行PLS指令。

那么程序会在I0.2接通的上升沿执行周期为100us,100个脉冲数的高速脉冲输出,会在I0.2断开的下降沿禁止PTO波形的输出。

来源:PLC发烧友,作者:技成培训网-蔡慧荥,未经授权,请勿转载!

PLC中方波输出的实现

前些天,我的一个客户向我咨询。咨询的问题是:根据目前生产情况,工艺要求对两台阀门采用定时自动开关。具体思想是:当阀门关闭30秒后,自动打开;打开1分钟后,自动关闭,来回自动执行开关操作,除非有故障状态,否则无需人为参与。其实这个问题解决,对有一定项目经验的人来说非常简单,但是对小白或者是初学者来说,那就未必。鉴于此,我就有了一个想法,那就是撰写一篇如何实现方波输出的PLC程序段介绍,供读者参考。

常说解决问题的方法千千万万,条条大道通罗马。对实现某项功能来说,同样有很多方法,本文介绍用定时器来实现方波输出。

在PLC中,定时器种类很多,有延时导通定时器、延时断开定时器等。而对不同厂家的PLC,定时器代号可能不一样,但是其功能原理都一样的。这里以罗克威尔(AB)PLC为例来做讲解。要实现方波输出,需要延时导通定时器、延时断开定时器,其符号分别是:TON、TOF,定时器为毫秒型(1s=1000ms,如预设值为1000时,计时时间为1s)。下面我们来具体讲讲如何实现该功能。

一、变量定义

1、标签名:test1,数据类型:bool,功能:用于测试启动、关闭定时器;

2、标签名:TIM1,数据类型:TIMER,功能:用于延时导通定时器;

3、标签名:TIM2,数据类型:TIMER,功能:用延时断开定时器;

4、标签名:TIM1_PRE_SP,数据类型:DINT,功能:用于延时导通定时器预设值,便于HMI修改方波宽度;

5、标签名:TIM2_PRE_SP,数据类型:DINT,功能:用于延时断开定时器预设值,便于HMI修改方波宽度;

6、标签名:FangBo,数据类型:bool,功能:输出方波变量,在趋势图中的趋势为该变量的趋势展现图。

在定时器中用到定时器的几个参数:TIM1.DN,为延时导通定时器的完成计时状态,当计时达到预设值后,该参数输出1;如果定时器未恢复计时,该参数一直为1,直到重新计时和计时期间为0;TIM2.DN,为延时断开定时器的完成计时状态,当计时达到预设值后,该参数输出0;如果定时器未恢复计时,该参数一直为0,直到重新计时和计时期间为1;TIM2.TT,为延时断开定时器的计时状态,定时器正在计时时,该状态为1,否则为0.

二、程序的实现

程序编写为logix5000,程序如图:

方波程序

三、仿真效果

1、高电平时间:2s,低电平时间:4s

2、通过改变TIM2_PRE_SP参数的值,来改变高电平的时间,调整该参数为10000(高电平时间为10s),效果如下图所示:

改变了电平时间

总结:

在PLC中,要是实现方波输出,实现起来很简单,但是在使用定时器时,要认真阅读手册关于该定时器的使用说明。

好了,本文就写到这里,欢迎读者指正。

相关问答

在西门子的PLC里,利用定时器指令编程产生连续方波输出,其周期为3秒,占空比为2:1?

开启一个100毫秒的定时器,定时3秒,3秒计时到将定时器复位让其自动重新计时,然后判断计时当前值,小于2秒时为1,大于2秒时为0,大概就这样吧,话说嘛叫占空比...

plc一个定时器能输出方波吗?

PLC的定时器可以通过设置不同的参数,实现不同的功能。其中,输出方波可以通过设置定时器的时间常数,以及在定时器结束时输出电平的方式实现。具体来说,当定时...

gxworks2中怎么输出方波?

使用GXWorks2来输出方波,首先在程序中添加一个PulseI/O模块,然后在相应的端口上输入要控制的回路,接着设置PulseI/O模块的时钟周期,以及占空比,最后将相应...

请教高手解决一下:PLC的振荡电路原理是什么?

PLC振荡电路其实就是两分频电路的俗称。也就形成方波的程序。用定时输出就可以实现了PLC振荡电路其实就是两分频电路的俗称。也就形成方波的程序。用定时输出...

关于PLC振荡电路是怎么回事?

PLC振荡电路其实就是两分频电路的俗称。也就形成方波的程序。用定时输出就可以实现了PLC振荡电路其实就是两分频电路的俗称。也就形成方波的程序。用定时输出...

电脑哪个软件可以看方波?

MATLAB,plc

请问S7-300怎样用SP定时器实现循环计时?

用PLC实现这个,有很大局限性,首先考虑频率是否能满足,其次考虑量化误差(除方波外)。PLC实现主要是利用模块输出功能,用DO模块实现方波,AO模块实现三角波...

爱默生td1000变频器使用方法

[回答]爱默生变频器故障维修实例案例剖析1——TD1000变频器因接线问题炸机l问题描述广东东莞某胶带厂用户反映使用一台TD1000-4T0015G变频器,在使用...

请问旋转编码器的输出信号如何处理输入到s7200的plC中?

1、编码器信号常用的是正交方波信号(其他还有正弦波等),S7-200可以直接接收A、B相编码器信号。使用高速计数器就可以读取编码器的信号值很。2、旋转编码器的...

西门子PLC高计数模块如何读取增量值编码器?

增量式编码器输出的是方波信号,通过高计数模块转换,将该信号送入CPU里面计数,就可以知道电机的转速。至于如何控制,则是有各种控制算法。换成BUS的绝对值增...

 陈映运  甘薇个人资料 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2026  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部