0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PWM脉冲的产生与使用

laidenongfhs 来源:中泰PLC自动化教学 2023-12-29 14:19 次阅读

PWM脉冲是一种占空比和周期都可调的脉冲。

PWM脉冲的周期范围为10~65535μs或2~65535ms,在设置脉冲周期时,如果周期小于两个时间单位,系统会默认周期值为两个时间单位;PWM脉宽时间为0~65535μs或0~65535ms,若设定的脉宽等于周期(即占空比为100%),输出一直接通,设定脉宽等于0(即占空比为0%),输出断开。

1.波形改变方式

PWM脉冲的波形改变方式有两种:同步更新和异步更新。同步更新。如果不需改变时间基准,则可以使用同步更新方式。利用同步更新,信号波形特性的变化发生在周期边沿,使波形能平滑转换。异步更新。如果需要改变PWM发生器的时间基准,就要使用异步更新。异步更新会使PWM功能被瞬时禁止, PWM信号波形过渡不平滑,这会引起被控设备的振动。

由于异步更新生成的PWM脉冲有较大的缺陷,一般情况下尽量使用脉宽变化、周期不变的PWM脉冲,这样可使用同步更新。

2.产生PWM脉冲的编程方法

要让高速脉冲发生器产生PWM脉冲,可按以下步骤编程。根据需要设置控制字节SMB67(Q0.0)、SMB77(Q0.1)或SMB567(Q0.3)。根据需要设置脉冲的周期值和脉宽值。周期值在SMW68、SMW78或SMB568中设置,脉宽值在SMW70、SMW80或SMW570中设置。执行高速脉冲输出PLS指令,系统则会让高速脉冲发生器按设置从Q0.0、Q0.1或Q0.3端子输出PWM脉冲。

3.产生PWM脉冲的编程实例

图1所示是一个产生PWM脉冲的程序,其实现的功能是:让PLC从Q0.0端子输出PWM脉冲,要求PWM脉冲的周期固定为5s,初始脉宽为0.5s,每周期脉宽递增0.5s,当脉宽达到4.5s后开始递减,每周期递减0.5s,直到脉宽为0。以后重复上述过程。

5007de3c-a610-11ee-8b88-92fbcf53809c.png

501a009e-a610-11ee-8b88-92fbcf53809c.png

图1 产生PWM脉冲的程序

该程序由主程序、SBR_0子程序和INT_0、INT_1两个中断程序组成,SBR_0子程序为PWM初始化程序,用来设置脉冲控制字节和初始脉冲参数,INT_0中断程序用于实现脉宽递增,INT_1中断程序用于实现脉宽递减。由于程序采用中断事件0(I0.0上升沿中断)产生中断,因此要将脉冲输出端子Q0.0与I0.0端子连接,这样在Q0.0端子输出脉冲上升沿时,I0.0端子会输入脉冲上升沿,从而触发中断程序,实现脉冲递增或递减。

程序工作过程说明如下。

在主程序中,PLC上电首次扫描时SM0.1触点接通一个扫描周期,子程序调用指令执行,转入执行SBR_0子程序。在子程序中,先将M0.0线圈置1,然后设置脉冲的控制字节和初始参数,再允许所有的中断,最后执行高速脉冲输出PLS指令,让高速脉冲发生器按设定的控制字节和参数产生并从Q0.0端子输出PWM脉冲,同时从子程序返回到主程序网络2。由于网络2、3指令条件不满足,程序执行网络4,M0.0常开触点闭合(在子程序中M0.0线圈被置1),中断连接ATCH指令执行,将INT_0中断程序与中断事件0(I0.0上升沿中断)连接起来。当Q0.0端子输出脉冲上升沿时,I0.0端子输入脉冲上升沿,中断事件0马上发出中断请求,系统响应该中断而执行INT_0中断程序。

在INT_0中断程序中,ADD_I指令将脉冲宽度值增加0.5s,再执行PLS指令,让Q0.0端子输出完前一个PWM脉冲后按新设置的宽度输出下一个脉冲,接着执行中断分离DTCH指令,将中断事件0与INT_0中断程序分离,然后从中断程序返回主程序。在主程序中,又执行中断连接ATCH指令,又将INT_0中断程序与中断事件0连接起来,在Q0.0端子输出第二个PWM脉冲上升沿时,又会产生中断而再次执行INT_0中断程序,将脉冲宽度值再增加0.5s,然后执行PLS指令让Q0.0端子输出的第三个脉冲宽度增加0.5s。以后INT_0中断程序会重复执行,直到SMW70单元中的数值增加到4500。

当SMW70单元中的数值增加到4500时,主程序中的“SMW70|>=I|4500”触点闭合,将M0.0线圈复位;网络4中的M0.0常开触点断开,中断连接ATCH指令无法执行,INT_0中断程序也无法执行;网络5中的M0.0常闭触点闭合,中断连接ATCH指令执行,将INT_1中断程序与中断事件0连接起来。当Q0.0端子输出脉冲上升沿(I0.0端子输入脉冲上升沿)时,中断事件0马上发出中断请求,系统响应该中断而执行INT_1中断程序。

在INT_1中断程序中,将脉冲宽度值减0.5s,再执行PLS指令,让Q0.0端子输出PWM脉冲宽度减小0.5s,接着执行中断分离DTCH指令,分离中断,然后从中断程序返回主程序。在主程序中,又执行网络5中的中断连接ATCH指令,又将INT_1中断程序与中断事件0连接起来,在Q0.0端子输出PWM脉冲上升沿时,又会产生中断而再次执行INT_1中断程序,将脉冲宽度值再减0.5s。以后INT_1中断程序会重复执行,直到SMW70单元中的数值减小到0。

当SMW70单元中的数值减小到0时,主程序中的“SMW70|==I|0”触点闭合,子程序调用指令执行,转入执行SBR_0子程序,又进行PWM初始化操作。

以后程序重复上述工作过程,从而使Q0.0端子输出先递增0.5s、后递减0.5s、周期为5s连续的PWM脉冲。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209957
  • 编程
    +关注

    关注

    88

    文章

    3441

    浏览量

    92415
  • 波形
    +关注

    关注

    3

    文章

    344

    浏览量

    31246
  • PWM脉冲
    +关注

    关注

    0

    文章

    8

    浏览量

    7805
收藏 人收藏

    评论

    相关推荐

    pwm如何产生指定个数脉冲,而不占用cpu?

    pwm如何产生指定个数脉冲,而不占用cpu?目前我能想到的办法是:1.定时器产生一次中断,在中断函数里计数。这种方法频繁中断,影响cpu效率。并且当所
    发表于 03-14 06:34

    请问PWM怎样产生固定的脉冲

    PWM输出,怎么能够达到设置的脉冲数后就停止输出
    发表于 10-17 17:13

    DSP问题

    哪位大神可以分享下基于DSP2812的 PWM脉冲产生的可运行的代码
    发表于 06-17 09:28

    pwm是什么 如何产生pwm

    pwm是什么,如何产生pwm?1、脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,由于计算机不能输出模拟电压,只能输出0 或5
    发表于 09-06 06:31

    如何用STC12单片机内部PWM产生脉冲方波?

    如何用STC12单片机内部PWM产生脉冲方波?
    发表于 10-18 07:48

    如何用内部pwm直接产生脉冲

    之前写过用内部pwm直接产生脉冲:这次写的是用定时器,不推薦用延时来模拟。此程序结合了我之前发的矩阵按键程序,按键进行亮度调整。#include"lcd12864.h"#includeuchar code num1[]={" 1
    发表于 01-19 07:34

    PWM产生方式

    文章目录一、PWM简介1.定义2.主要参数二、PWM产生方式1.普通IO口与PWM口2.普通IO口产生P
    发表于 01-25 07:21

    使用FPGA产生一个连续的脉冲调制PWM信号

    1、使用FPGA产生脉冲调制(PWM)信号编写程序,使用FPGA产生脉冲调制(PWM)信号,且信
    发表于 07-13 15:37

    MCP定时器产生边沿PWM输出

    MCP定时器产生边沿PWM输出:PWM波是一种脉宽可调的脉冲波,用于交、直流电机的电压控制。PWM一共有两种调整方法,一是定频调宽、另一种是
    发表于 09-19 11:17 26次下载

    用TPM2产生PWM和作脉冲宽度、周期测量

    用TPM2产生PWM和作脉冲宽度、周期测量:SPMC75F2413A的TPM2除具有一般的定时/计数的功能外,还有两路的PWM输出/两路的捕获功能,因此增强和扩展了TPM2在一般领域中
    发表于 09-19 11:42 38次下载

    PWM脉冲驱动电路

    PWM脉冲驱动电路
    发表于 01-01 01:21 5341次阅读
    <b class='flag-5'>PWM</b><b class='flag-5'>脉冲</b>驱动电路

    脉冲信号怎么产生

    本文首先介绍了脉冲信号怎么产生的以及产生脉冲信号的方法,其次介绍了脉冲信号的基本参数,最后介绍了脉冲
    的头像 发表于 08-21 18:01 4.3w次阅读

    基于DSP器件TMS320F2812芯片的新型PWM算法的研究

    在用数字化控制技术产生PWM脉冲时,三角载波实际上是不存在的,完全由软件及硬件定时器代替,图1为三角载波的产生原理(Ttimer为定时器的值)。 P
    发表于 09-02 10:20 1702次阅读
    基于DSP器件TMS320F2812芯片的新型<b class='flag-5'>PWM</b>算法的研究

    PWM脉冲宽度调制产生方波时,调制波可否采用三角波?为什么?

    PWM脉冲宽度调制产生方波时,调制波可采用三角波。
    的头像 发表于 03-10 15:12 4515次阅读
    <b class='flag-5'>PWM</b><b class='flag-5'>脉冲</b>宽度调制<b class='flag-5'>产生</b>方波时,调制波可否采用三角波?为什么?

    什么是PWM 为什么要使用PWM 怎么产生PWM控制信号

    PWM拆开来就是:【P=Pulse、W=Width、M=Modulation】=>脉冲宽度调制。
    的头像 发表于 07-22 16:49 5465次阅读
    什么是<b class='flag-5'>PWM</b> 为什么要使用<b class='flag-5'>PWM</b> 怎么<b class='flag-5'>产生</b><b class='flag-5'>PWM</b>控制信号