程序解析:该程序为每隔5秒产生0.5秒闪动脉冲,其闪动脉冲不占据5秒的延时时间。为达此目的,编程时利用SM0.5秒脉冲的正负脉宽都=0.5秒的特点,用其前后沿触发MB10使其做加1运算,MB0 从0开始计数,当MB10=6的瞬间,即SM0.5的11个前后沿的间隔=5秒,使MB10=0,同时使Q0.5=1,即灯亮。下一个扫描时, SM0.5的后沿使MB10加1的同时使Q0.5=0(灯灭)。见上图的波形图可以看出,第二个5秒延时,M10.0的波形与SM0.5的波形相位相反,Q0.5=1不占用5秒的延时时间。
如闪动时间包括在5秒延时时间里,该程序稍加改动:将比较器的比值6 改为 5,前沿触发改为后沿触即可。见下图:
2、网友求助:“求一个程序,要求:(1) , 从Q0.0至Q0.7低位到高位《依次逐个》《全部亮起》,并且每个亮起时都闪烁 3次!闪烁隔0.25秒。然后全部熄灭。。。接着。。。(2),从Q0.7至Q0.0 高位到低位《依次逐个》《全部亮起》,并且每个亮起时都闪烁 3次!闪烁隔0.25秒。再全部熄灭。。。继续从Q0.0-Q0.7 如此循环进行的程序!!。。。。哦,忘了注明:是S7-200程序”
回复: 按着上述要求,编出如下梯形图(上机运行正常),供大家分析参考。
程序解析:本程序采用定时中断来形成正负脉宽都=250ms的振荡脉冲,即M10.0输出2HZ脉冲。你分析该程序时,可以看到该程序巧妙的运用了加1计数器最低位0、1交变的特点及移位、比较、逻辑或等指令的灵活运用。
按启动按钮时,其前沿使MB2=1,MW0=0(即MB0=0、MB1=0),M4.0=0, 此时M2.0=1,M4.0=0,当MB0计数由0变1时,M0.0=1,使M7.0=1,即Q1.0=1灯亮,当MB0=2时,M0.0=0,使M7.0=0,即Q1.0=1灯灭,当MB0=3时,M0.0=1,使M7.0=1,即Q1.0=1灯又亮,当MB0=4时,M0.0=0,使M7.0=0,即Q1.0=0灯灭……,当MB0=5瞬间,使MB0清0,使MB2左移一位,使MB1左移一位再加1,由于此时M1.0=1,使M7.0常亮。 此时M2.0=0而M2.1=1,MB0再计数将使M7.1的动作同上(闪动三下后,常亮)……
当MB1=255时,即8个灯全亮时,比较器输出,使MB1=0、MB2=1、MB4加1,此时M4.0=1,当MB0再计数将使M8.7先闪动3下,常亮,接着M8.6闪动3下……。即QB1反相闪动显示。以此类推,循环显示。
当按下I1.1时,使M5.0=0,动作停止。
下图为 M10.0即MB0的低三位的各级波形图: