用S7-200编程的五个实例的解析
| 2010-09-23 23:12:23 楼主
本文用S7-200编写的五个实例是根据网上网友的求助编写的,供大家参考。
1、一网友求助:“本人是PLC新手,刚学习不到一个月, 现有一个项目~~ 要对目标信号进行检测计数~~ 信号为24V直流~~ 每隔一定的时间进行信号端检测,如果为“
急切 PS:采用西门子S7-200系列PLC,STEP7 V4.0 SP6,组态王6.53,进行上述测试~~如果能有梯形图程序就不胜感激了~邮箱w4169349@163.com
回复:按着你的要求,编写如下梯形图,在组态王数据词典里建立I/O整数字变量VW100,设可读方式,再设 I/O字节变量M2,其BIT(M2,1)为系统启动工作位,BIT(M2,2)为报警输出位。在运行时,组态王时时从PLC读取VW100及MB2的数据,出现报警,系统工作停止,此时的VW100值,即为报警前返回信号次数,系统检查完毕始终未出现报警,按下停止按钮,此时的VW100值即为最终检测返回信号值。
2、一网友提出:“谢谢楼主,对我这个新手来说真是好东西。请教楼主用一个按钮控制电机正反转用S7-200怎么做,考虑了很久不太清楚,请您详细讲解一下,谢谢。”
我的回复:按着你的要求,我给你编了S7-200梯形图,用一个按钮起动电机正反转,又增加一个自锁按钮作为电机工作停止开关。 其工作原理:I1.1为自锁按钮,抬起位,其常闭触点闭合,使M2.0、M2.1、M2.2、M2.3皆为0状态,此时即使按I1,0启动按钮,SR触发器也不会反转,故电机停止不动。按下I1.1按钮,其常闭点断开,容许电机工作,这时,如按一下I1,0,就会使SR触发器反转,即M2.0=1、M2.1=1,M2.0=1的前沿,触发位开关,使M2.2=1、M2.3=0,M2.2=1 接通T100定时器,延时0.5秒,T100动作,其常开点闭合使Q1.0=1,电机正传运行。如再按一下I1.0按钮,使SR触发器又翻转,其M2.0=0,M2.0的后沿,触发位开关,使M2.2=0-->T00=0,电机立刻断电,同时又使M2.3=1,使T101得电,延时0.5秒T101动作,其触电闭合,使Q1.1=1,电机反转运行。....这样用一个按钮就可实现控制电机反正转。如要想使电机停止运转,抬起I1.1自锁按钮,I1.1的常闭点闭合强迫M2.0、M2.1、M2.2、M2.3四点都=0,T100、T101也=0,Q1.0、Q1.1也=0,电机停止运行。
3、网友求助:“ 现我有一设备,要求此设备运行到一定时间需要给上位机一个报警信号,提示需要更换润滑油,但设备厂家的要求是,新设备首次运行500小时需要更换一次润滑油,以后每3000小时则需要再次更换润滑油,现我有一VD变量存储设备运行时间,且已存如断电保存寄存器,请教,如何才能用最简单的方法实现以上功能;假设设备运行时间保存变量地址为VD100,报警信号为M10。希望能给出梯形图或STL程序,谢谢!”
回复:按你的要求编写的梯形图如下图,其工作原理如下:
1、MW0-MW10 设置掉电保护状态,软件下载后第一次运行,M4.0--M4.3皆处于置0状态。M4.0=0,使比较器进行的是MW2与500比较,当MW2=500时,比较器使M4.0=1、M4.1=1,向上位机发出换油信号,同时将MW2值加入VD100,再将MW2清0,如此时断电,再接通电源,由于M4.1=1,仍发出换油指示。只有上位机发回应答信号,PLC才将M4.1清0.
2、当第一次MW2=500比较器使M4.0=1后,M4.0始终保持1状态,所以以后的比较都是MW2与3000比较,每次比较完后,MW2值累加到VD100中,再清0,故可多次运行该程序。
4、网友求助:“八个彩灯Y0~Y7,启动后,灯每秒亮一个,即第一秒亮Y1,第二秒亮Y1,Y2,至全亮。并且可以循环进行,并有暂停和停止功能。(西门子200)MOV,ROL我只清楚一部分的程序,不知其所 ”
我的回帖,梯形图如下,供你参考:
动作原理:开机的第一个周期,SM0.1=1,使S0.1置1,进入S0.1程序段:按一下启动按钮I1.0,使M2.0=1,其前沿,使MW9=1即使M10.0=1),M2.1=1使定时器T100得电延时,延时1秒,MB10左移一位,MB10加 1 ,MB9加1,同时使M2.1=0,M2.2=1,T100断电,T96得电延时,延时10毫秒,T96动作,M2.1=1,M2.2=0,T96断电,T100得电延时…..当MB9=8时,将0 MW9, 使8个彩灯全灭,同时使M2.1=0、M2.2=0、M2.4=1,即 T100、T96断电,T101得电延时,延时1秒,T101动作,M2.1=1,M2.4=0,使定时器T100得电延时…..开始第二次循环。I1.1为暂停按钮,按一下它,使M2.7=1,其常闭点断开,程序在原位置停下,再按一下它,使M2.7=0,其常闭点又闭合,程序从停止位置继续进行。I1.2为停止按钮,按一下I1.2, MW9=0,8个彩灯全灭,程序结束。
5、有一网友提出“使用定时器实现自由设定时钟脉冲发生器功能(脉冲占空系数1:1)。
问题
1 对时钟脉冲发生器的原理还是不太理解,能不能解释一下。
2。程序中用定时器是怎么实现时钟发生器功能的????
3. 题目中说可以自由设定 ?在程序中是怎么实现的??
总之 ,对这个程序还是不能理解,如果有高手能给详细解释一下就好了。 期待中。。。。。。
”
我的解答:
1、时钟脉冲发生器的原理:当PLC工作执行第一条指令时,由于起始时M0.0=0,故使T0得电且立刻吸合,产生250ms正脉冲(即在250ms内,T0=1),T0=1使M0.0=1,M0.0=1又使程序转移到N001处,执行将MW100—>QW12的操作。当延时时间=250ms时,T0断电,即T0=0,使M0.0=0。由于M0.0=0,使程序不能执行转移程序指令,却使程序执行MW100加 1 指令。下一个扫描周期,由于M0.0=0,故使T0得电,T0=1且立刻产生250ms正脉冲,T0=1使M0.0=1,M0.0=1又使程序转移到N001处,执行将MW100—>QW12的工作…..就是这样,每隔250ms,MW100加 1一次,( MW100加 1指令的执行只占一个扫描周期,即M0.0=0的周期)此时的MW100相当是16位二进制加法计数器,计数脉冲为间隔250ms、宽度为1个扫描周期的尖脉冲,其频率为4Hz。每出现一次尖脉冲,MW100计数加1 。M101.0是计数器最低位,它对计数脉冲起二分频作用,故由它输出的脉冲频率为2 Hz、周期0.5S、脉宽0.25 S。M101.1是计数器次低位,它对计数脉冲起四分频作用,由它输出的脉冲频率为1Hz、周期1 S、脉宽0. 5 S,以此类推。
QW12,故PLC输出口QB12对应MB100,而QB13对应MB101。如选用Q13.1做脉冲输出,即相当选用M101.1做输出,即对计数脉冲4分频,故输出脉冲频率=1Hz,如选用Q13.3做脉冲输出,即相当选用M101.3做输出,即对计数脉冲16分频,故输出脉冲频率=0.25Hz。。。。选用PLC不同的输出端,就可以得到不同的输出频率脉冲,这就是可以自由设定的实现方法。à2、由于程序执行MW100
3、我认为上面第三个表中标注的不应该是扫描周期,应该为计数脉冲个数,因为PLC的扫描周期是指从指令的第一条开始到最后一条指令为止的所用时间,而不是250ms。如程序不长,在这250ms时间内,将会出现很多次扫描周期。在这个程序里,M0.0=0,只存在1个扫描周期,也就在这个周期里,MW100执行一次加1 操作。
4、该程序如将脉冲输出式定时器(SE)改为通电延时式定时器(SD),可不用转移指令,同样可实现脉冲输出的目的,见下图: