可以利用西门子软件的PWM向导生成PWM波,非常简单。
如果要自己编程序的话,比较复杂。正好今天没事,试着编一下,使用西门子SMART PLC。
注:此程序是PWM周期和占空比均可调的,考虑各种极端情况,如果只是简单的满足题目,就太简单了。
参数定义:time_set:MD0,32位浮点数,PWM波周期,单位:s
pwm_set:MD4,32位浮点数,PWM占空比,范围0-1。
Q0.0:PWM输出。其他均为临时变量,可以忽略。
pmw_1_10ms为输出为1的时间,pmw_0_10ms为输出为0的时间
先对输入的数据进行判断,周期为0-327s(使用的定时器为10ms定时器,最大定时周期为327.67s),占空比为0-1之间的数字,输出非法数据恢复默认。
输入时间周期*100ms,然后ROUND指令取整,DI_I指令转化。第二行转化占空比,计算PWM为1的时间和PWM为0的时间。
T33计时PWM为0的时间,计时满之后,T33闭合,T34计时,Q0.0闭合,T34计时满之后,复位T33,重复该周期。
注意:因为占空比可能为1或0,因此要对占空比的时间进行一下对比,如果占空比为0,则让Q0.0一直输入,如果占空比为1,则此段程序不工作,Q0.0无输出。
亲测可用,程序无问题。
如图所示,VW0是为ON的时间,VW2是为OFF的时间,VW0+VW2就是周期,因此调节VW0和VW2就可以调节周期和占空比了。这里初始让VW0=12,VW2=8,周期就是20,由于定时器T37和T38都是0.1s基时的,因此20就是2s,占空比就是12/20=0.6。
望采纳。。。。。