西门子S7-200系列PLC的PMW方波控制程序举例
2024-02-10  来源: www.im100.com

在西门子S7-200系列PLC中,CPU-214的输出端Q0.0Q0.1能够输出方波信号,而且方波信号的周期和脉宽均能独立调节,其中脉宽指的是在一个周期内,输出信号处于高电平的时问长度。

下面这个例子说明了脉宽调制(PWM)是如何工作的。输出端Q0.0输出方波信号,其脉宽每周期递增0.5秒,周期固定为5秒,并且脉宽的初始值为0.5秒。当脉宽达到设定的最大值4.5秒,脉宽改为每周期递减0.5秒,自到脉宽为零为止。以上过程周而复始。

在这个例子中必须把输出端Q0.0与输入端10.0连接,这样程序才能控制PWM

程序和注解

特殊存储字节SMB67用来初始化输出端00.0PWM。这个控制字内含PWM允许位,修改周期和脉宽的允许位,以及时问基数选择位等,山子程序0来调整这个控制字节。通过EN}指令,使所有的中断成为全局允许,然后通过PLSO指令,使系统接受各设定值,并初始化“PO/PWM发生器”,从而在输出端00.0输出脉宽调制(PWM)信号。

另外,周期5秒是通过将数值5000置入特殊存储字SMW68来实现的,初始脉宽0.5秒则通过将500写入特殊存储字SMW70来实现的。

这个初始化过程是在程序的第一个扫描周期通过执行子程序0来实现,第一个扫描周期标志是SM0.1=1。当一个PWM循环结束,即当前脉宽为0秒时,将再一次初始化PWM

辅助内存标记M 0.0用来表明脉宽是增加,还是减少,初始化时将这个标记设为增加。输出端00.0与输入端10.0相连,这样输出信号民可送到输入端10.0。当第一个方波脉冲输出时,利用ATC H指令,把中断程序1(INT1)赋给中断事件0 (10.0的上升沿)

每个周期中断程序1将当前脉宽增加0.5秒,然后利用DC日指令分离中断INT1,使这个中断再次被屏蔽。如果在下次增加时,脉宽大于或等于周期,则将辅助内存标记位M 0.0再次置0。这样就把中断程序2赋子事件0,并且脉宽也将每次递减0.5秒。当脉宽值减为零时,将再次执行,初始化程序(子程序0)

本程序长度为63个字。