您现在的位置是:首页 > PLC技术 > PLC技术
S7-200系列PLC高速脉冲输出的PWM输出形式
来源:艾特贸易2017-06-04
简介PWM 输出形式是指从 Q0.0 或 Q0.1 输出周期固定,脉冲宽度变化的脉冲信号。周期为 16 位无符号数,周期的增量单位为 s (微秒)或 ms (毫秒),周期范围为 50 ~ 65 535 s 或 2 ~ 65 535ms 。
PWM输出形式是指从Q0.0或Q0.1输出周期固定,脉冲宽度变化的脉冲信号。周期为16位无符号数,周期的增量单位为μs(微秒)或ms(毫秒),周期范围为50~65 535μs或2~65 535ms。如果周期范围小于2个时间单位,则CPU默认为2个时间单位。在设置周期值时,一般应设定为偶数,否则会引起输出波形占空比的失真。脉冲宽度为16位无符号数,脉冲宽度的增量单位为μs(微秒)或ms(毫秒),范围为0~65 535μs或0~65 535ms,占空比为0%~100%。当脉冲宽度大于或等于周期时,输出将连续接通,当脉冲宽度为0时,输出一直被关断。 在PWM的输出形式下的典型操作是当周期为常数时改变脉冲宽度,根据在改变脉冲宽度时是否需要改变时间基准,可以分为同步更新和异步更新两种情况。 · 同步更新适用于不需要改变时间基准的情况,利用同步更新,使波形特性的 变化发生在周期边沿,形成波形的平滑转换。一般的做法是将PWM输出反馈 到一个中断输入点,如I0.0,当需要改变脉宽时产生中断,在下一个I0.0的上 升沿,脉宽的改变将与PWM的新周期同步发生。 ·异步更新操作一般是在需要改变时间基准时使用,但是异步更新可能会导致 PWM功能暂时失效,造成被控制装置的振动。 使用PWM输出时的编程要点。 ①确定高速PWM的输出端(Q0.0或Q0.1)。 ②进行PWM的初始化,利用特殊继电器SMO.I调用初始化子程序。 ③编写初始化子程序。 ·设置控制字节,将控制字写入SMB67(或SMB77)。如16#C1,其意义是, 选择并允许PWM方式的工作,以μs(微秒)作为时间基准,允许更新PWM 的周期时间。 ·将字型数据的PWM周期值写入SMW68(或SMW78)。 ·将字型数据的PWM的脉冲宽度值写入SMW70(或SMW80)。 ·如果希望随时改变脉冲宽度,可以重新向SMB67装入控制字(16#C2或 16#C3)。 ·执行PLS指令,PLC自动对PTO/PWM的硬件初始化编程。 ·退出子程序。 ④如果希望在子程序中改变PWM的脉冲宽度,则: ·将希望的脉冲宽度值写入SMW70。 ·执行PLS指令,PLC自动对PTO/PWM的硬件初始化编程。 ·退出子程序。 ⑤如果希望采用同步更新的方式,则: ·执行开中断指令。 ·将PWM输出反馈到一个具有中断输入能力的输入点,建立与上升沿中断事件 相关联的中断连接(此事件仅在一个扫描周期内有效)。 ·编写中断服务子程序,在中断程序中改变脉冲宽度,然后禁止上升沿中断。 ·执行PLS指令。 ·退出子程序。 例:编写实现脉冲宽度调制的程序。主程序见表5-42,子程序见表5-43。根据要求设定控制字节(SMB77) =16#DB,设定周期为10000ms,脉冲宽度为1000ms,通过Q0.1输出。 一般地,使用子程序为脉冲输出初始化PWM,从主程序调用初始化子程序。在主程序中,PLC从STOP转为RUN状态时,SM0.1接通一个周期,此时将输出Q0.1清零,然后调用初始化子程序SBR_0。在子程序中,当PLC处于RUN模式时,将控制字16#DB存储到SMB77,周期值存储到SMW78,脉冲宽度存储到SMW80,然后执行PLS指令。 表5-42 PWM主程序 表5-43 PWM子程序
点击排行
