PWM 提供了占空比可变周期固定的输出。PWM 输出以指定频率(循环时间)启动之后将连续运行。 脉宽根据所需要的控制要求进行变化。 占空比可表示为周期的百分比或对应于脉冲宽度的时间值。 脉宽的变化范围为 0%(无脉冲,始终为低电平))到 100%(无脉冲,始终为高电平)。 请参见下图。

图1
由于 PWM 输出可从 0% 变化到 100% ,因此在很多情况下,它可以提供一个类似于模拟量输出的数字量输出。 例如,PWM 输出可用于电机从静止到全速的速度,或用于阀从关闭到全开的位置控制。
PWM功能产生一个占空比变化周期固定的脉冲输出。你可以为其设定周期和脉宽(以微秒或毫秒为单位):
PWM 发生器的详细参数和例程请参见《S7-200 SMART 系统手册》。
西门子热线工程师内部学习讲座-PWM部分:
S7-200 SMART CPU提供三个数字量输出(Q0.0、Q0.1和Q0.3),这三个数字量输出可以通过PWM向导组态为PWM输出。
为 PWM 操作组态输出时,输出的周期是固定的,脉宽或脉冲占空比可通过程序进行控制。
为了简化应用中运动控制的使用,STEP 7-Micro/WIN SMART 提供了“PWM 向导”来组态 PWM。
只能使用同步更新更改 PWM 波形的特性。 执行同步更新时,信号波形特性的更改发生在周期交界处,这样可实现平滑转换。
PLS 指令读取存储在指定 SM 存储单元的数据,并相应地对 PWM 发生器进行编程。SMB67 控制 PWM 0 ,SMB77 控制 PWM 1 ,而 SMB567 控制 PWM 2 。
可以更改 PWM 波形的特性,方法是修改 SM 存储区中的位置(包括控制字节),然后执行 PLS 指令。 可以随时禁止生成 PWM 波形,方法是将 0 写入控制字节的 PWM 使能位(SM67.7、SM77.7 或 SM567.7 ),然后执行 PLS 指令。
加载新的脉冲计数(SMD72 或 SMD82 )、脉冲宽度(SMW70 或 SMW80 )或周期时间(SMW68 或 SMW78 )时,也会在执行 PLS 指令之前置位控制寄存器中的相应更新位。
中止 PWM 操作后,应经过一个周期时间,然后再重新启用 PWM 通道进行操作。 如果未经过此时间就重新启用 PWM 通道,则可能因完成原始 PWM 命令而导致初始脉冲出现 脉冲失真。
如果在 PWM 正在执行时尝试更改 PWM 的时基,则该请求将被忽略,并会出现非致命错误 (0x001B - ILLEGAL PWM TIMEBASE CHG) 。
PWM控制寄存器的设置详见《S7-200 SMART系统手册》。