PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 78286|回复: 0

[西门子] S7-200高速脉冲输出应用

[复制链接]
发表于 2024-7-24 12:04:20 | 显示全部楼层 |阅读模式
点击上方“ 技成培训 ”,选择“置顶公众号”

13万+工控人关注的微信平台:技术分享、学习交流、工控视频

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

在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、变频伺服、数控机器人等知识

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-8 10:58 , Processed in 0.045308 second(s), 26 queries .

快速回复 返回顶部 返回列表