用S7-200编程的几个实例的编程技巧解析之二 点击:1790 | 回复:0



wyb2866255

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-01-26 09:28:32
楼主
                                                          用S7-200编程的几个实例的编程技巧解析之二
      1、网友求助:“师傅们好:我有一个问题,怎么通过循环来控制,当i0.0闭合时,q0.5每隔5S闪一下,如次循环800次,我想通过定时器来实现,但是定时器要一直加到定值32767才停止,应该怎么来编写呢,谢谢了”
       回复:我给你用S7-200编写了你要的梯形图,没用定时器,而是用秒脉冲SM0.5的前后沿对MB10进行加一计数,每5秒一清零,使输出Q0.5闪亮0.5秒,闪动800次,结束。(该 程序是经过经上机运行的)


       程序解析:该程序为每隔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的低三位的各级波形图:



       3、有一网友提出这样的求助帖:“S7-200中如何让其中以小段程序在一定的时间内循环执行? 我就是让一台电机在4小时内不停的正转10分,反转10分,4 小时后一直正转. 各位大侠,帮帮忙,万分感谢。 初学编程,见笑了 ”

       上图就是根据网友提出的要求用S7-200编写的梯形图,下面将此程序讲解一下:
      1、用I1.0作为此程序启动按钮,用I1.1作为此程序停止按钮,当按一下I1.0,使M2.0=1,M2.1=0,同时将数“12”送入MB8里,这里选用T100--T103四个通电延时定时器,T100与T102定时为10分,T101与T103定时为1秒 作为正反转转换间隔。这样当M2.0=1 起,T00得电,延时10分钟,T100触点闭合,使T101得电,延时1秒T101触点闭合,T102得电,延时10分钟,T102触点闭合,使T103得电,延时1秒,T103动作,其常开触点吸合的前沿,使MB8内容-1,而T103的常闭触点断开,使T100--T103皆失电断开,这样T103的常闭点又闭合,使T100得电进行第二次延时....,重复12次,MB8=0,比较器输出为1,使M2.0=0、M2.1=1,M2.0=0使T100-T103循环通电延时结束,而M2.1=1,使电机正向运行。直至按一下I1.1停止按钮,使M2.0与M2.1同时置0,电机停止运行。
      2、4小时=240分,除以20分得12,即上述T100--T103 顺序得电断电12次,正好为4小时。
      3、Q1.0=1 为电机正转,当按一下I1.0按钮,M2.0=1,其常开点闭合,此时的T103与T100的常闭点都闭合,故Q1.0=1,电机正相运行。延时10分,T100动作,其常闭点断开,使Q1.0=0,电机停转,延时1秒,T101 动作,其常开点闭合,使Q1.1=1,电机反转,延时10分,T102 动作,其常闭点断开,使Q1.1=0,电机停,再延时1秒T103动作,其常闭点断开,使T100--T103断电,由于T103、T101的常闭点皆又闭合,于是电机又正向启动....重复12此后,由于MB8=0,比较器输出为1,使M2.0=0,使循环停止,但由于M2.1=1,使电机正转,直到按下I1.1停止按钮,使M2.0、M2.1=0为止。
        该程序如果选用一个字节做加


热门招聘