首页 上一页 1 2 3 下一页 尾页

用S7-200编程的三个实例的解析 点击:0 | 回复:58



wyb2866255

    
  • 精华:74帖
  • 求助:0帖
  • 帖子:246帖 | 2872回
  • 年度积分:2
  • 历史总积分:31441
  • 注册:2010年7月01日
发表于:2010-08-03 07:09:01
楼主
用S7-200编程的三个实例的解析
本文的三个编程实例是根据网上网友的求助而用S7-200编写出的:
1、网友求助:“那位高人会用一个按常开钮控制电路的起停《PLC》。。。。。。。”
2、网友求助::“用一个按钮X0控制Y0的电路,第一次按下按钮Y0变为ON,第二此按下按钮Y0变为OFF 请问怎么实现啊,谢谢!”
回复:“我提供你们一个的梯形图,就是你们需要的用一个按钮可控制关停的线路,它是用一个RS触发器实现的,用图中的M2.1做输出(Q3.0)即可 。

这里,我把它的工作原理讲一下:它是由一个SR 触发器构成的,图中的I1.0即为按钮的输入点,用它的后沿同时触发SR触发器的S、R 端,S支路再串接由SR触发器输出的位信号(M2.1)的常闭点去触发S,R支路也串接由SR触发器输出的位信号(M2.1)的常开点去触发R,这样处理后,该电路动作十分可靠,这是我常用的线路。如果不用M2.1的触点,改用SR触发器输出的触点(M2.0),该线路就不会正常工作,其原因,就是时间争态问题,这对没搞过电路设计的人是常常想不到的,从表面上看,M2.0与M2.1都表示SR触发器输出状态,但从时间上M2.1的状态改变却滞后M2.0一个扫描周期,从而确保该线路动作稳定可靠:当按一下按纽,抬起瞬间它同时触发S、R 端,如此时M2.1=0,S端触发有效,使 SR 触发器反转,其输出由“0”上跳为“1”,下一周期,M2.1=1,从而确保无时间争态使电路动作可靠。”
3、网友求助:“怎样利用外部输入按钮,修改某个定时器的里面的数值,要用什么指令啊?我是新手,忘老师指点 ”
回复:“你可以这样做:定时器的定时值,不设具体数字,而用一个字存储器(如MW100)来作为定时器的预设时间值,再用二个按钮接PLC的二个输入端,一个做置数键(如 I 1.0),编程时用I 1.0的后沿使MW100加1,即每按一次置数键,使MW100内容加1。再用另一个作移位键(如 I1.1),用I1.1的后沿使MW100左移四位,即每按一次移位键,使MW100内容左移4位。即可实现你要求的功能。比如:预置“2325”,你可这样操作:先点击二次 置数键(I1.0),此时MW100的内容为“0002”再点击一下移位键(I1.1),此时MW100的内容为“0020”,再点击三次置数键,MW100的内容为“0023”,再点击一下移位键(I1.1),此时MW100的内容为“0230”.....重复四次置数键,MW100的内容为“2325”,注意:移位键只能点击三次,不可点四次。再有为防止按键时打连发,造成置数不准,置数键与移位键应分别输出给二个断电延时定时器(如TOF100与TOF101)定时为500ms,用他们的后沿去使MW100加1,和使其左移4位4。
如若使置数准确明了,可增加PLC的4个输出点做置数显示用,如选用Q2.0、Q2.1、Q2.2、Q2.3四个输出点,每个输出点都接一个发光二极管与2K电阻串联,再接0V。它们分别代表数字1、2、4、8,用MW10的最低位,即M11.0输送给Q2.0,代表数字1,用M11,1输送给Q2.1,代表2,用M11,2输送给Q2.2,代表4,用M11,3输送给Q2.3,代表8。这样当MW10=0时,由于M11.0—M11.3皆为0,故使Q2.0—Q2.3 输出也皆为0,4个发光二极管都不亮。当你点击一下置数键,MW10加1,故M11.0=1,使Q2.0=1,对应的二极管亮,表示此时置数为1,再点击二下,MW10计数为3,使Q2.0与Q2.1对应二极管都亮,表示此时置数为3,即用这4个发光管的发光代表一位16进制数或10进制数。这样你置数时就不会置错,置好数后,按一下移位键,此数被移到上位数位置,而此位数=0,故4个发光管灭。下图是用S7-200编写的梯形图。

3、网友求助:“ 设备:
S7-200 CPU224
旋转编码器Autonics(E50S8-3-T-24) ,编码器每转脉冲数为250,三相A、B、Z
测速辊直径100mm
要求:编码器连接测速辊,目的要计算测速辊的周长每分钟走过多少米”
回复:编码器每转一圈,发出250的脉冲,测速辊直径为100mm,其周长为314mm,则每两相邻脉冲距离=314 / 250 =1.256mm。如果测速辊旋转速度低于200Hz,可用普通输入口计数,否则就得用高速计数器计数,其编程是这一样的:用计数脉冲的后沿,触发一内部位开关(如M3.0)使其置1,M3.0的常开点接定时为1分的定时器T0,,同时使MB9与MW10清0,用M3.0与计数脉冲串联的后沿,使MB9加1,用一比较器用MB9值与250 比较,当MB9=250时,MW10加314值,同时MB9清0….,当定时器延时1分到时,T0触点闭合,使M3.0=0,计数停,用MB9的值乘以1.256,再将其积加入MW10中,此时MW10的值即为测速辊每分走过的距离。下图即为测速梯形图:



wyb2866255

  • 精华:74帖
  • 求助:0帖
  • 帖子:246帖 | 2872回
  • 年度积分:2
  • 历史总积分:31441
  • 注册:2010年7月01日
发表于:2010-08-03 08:34:34
1楼
用S7-200编程的三个实例的解析
本文的三个编程实例是根据网上网友的求助而用S7-200编写出的:
1、网友求助:“那位高人会用一个按常开钮控制电路的起停《PLC》。。。。。。。”
2、网友求助::“用一个按钮X0控制Y0的电路,第一次按下按钮Y0变为ON,第二此按下按钮Y0变为OFF 请问怎么实现啊,谢谢!”
回复:“我提供你们一个的梯形图,就是你们需要的用一个按钮可控制关停的线路,它是用一个RS触发器实现的,用图中的M2.1做输出(Q3.0)即可 。

这里,我把它的工作原理讲一下:它是由一个SR 触发器构成的,图中的I1.0即为按钮的输入点,用它的后沿同时触发SR触发器的S、R 端,S支路再串接由SR触发器输出的位信号(M2.1)的常闭点去触发S,R支路也串接由SR触发器输出的位信号(M2.1)的常开点去触发R,这样处理后,该电路动作十分可靠,这是我常用的线路。如果不用M2.1的触点,改用SR触发器输出的触点(M2.0),该线路就不会正常工作,其原因,就是时间争态问题,这对没搞过电路设计的人是常常想不到的,从表面上看,M2.0与M2.1都表示SR触发器输出状态,但从时间上M2.1的状态改变却滞后M2.0一个扫描周期,从而确保该线路动作稳定可靠:当按一下按纽,抬起瞬间它同时触发S、R 端,如此时M2.1=0,S端触发有效,使 SR 触发器反转,其输出由“0”上跳为“1”,下一周期,M2.1=1,从而确保无时间争态使电路动作可靠。”
3、网友求助:“怎样利用外部输入按钮,修改某个定时器的里面的数值,要用什么指令啊?我是新手,忘老师指点 ”
回复:“你可以这样做:定时器的定时值,不设具体数字,而用一个字存储器(如MW10)来作为定时器的预设时间值,再用二个按钮接PLC的二个输入端,一个做置数键(如 I 1.0),编程时用I 1.0的后沿使MW10加1,即每按一次置数键,使MW10内容加1。再用另一个作移位键(如 I1.1),用I1.1的后沿使MW10左移四位,即每按一次移位键,使MW10内容左移4位。即可实现你要求的功能。比如:预置“2325”,你可这样操作:先点击二次 置数键(I1.0),此时MW10的内容为“0002”再点击一下移位键(I1.1),此时MW10的内容为“0020”,再点击三次置数键,MW10的内容为“0023”,再点击一下移位键(I1.1),此时MW10的内容为“0230”.....重复四次置数键,MW10的内容为“2325”,注意:移位键只能点击三次,不可点四次。再有为防止按键时打连发,造成置数不准,置数键与移位键应分别输出给二个断电延时定时器(如TOF100与TOF101)定时为500ms,用他们的后沿去使MW100加1,和使其左移4位4。
如若使置数准确明了,可增加PLC的4个输出点做置数显示用,如选用Q2.0、Q2.1、Q2.2、Q2.3四个输出点,每个输出点都接一个发光二极管与2K电阻串联,再接0V。它们分别代表数字1、2、4、8,用MW10的最低位,即M11.0输送给Q2.0,代表数字1,用M11,1输送给Q2.1,代表2,用M11,2输送给Q2.2,代表4,用M11,3输送给Q2.3,代表8。这样当MW10=0时,由于M11.0—M11.3皆为0,故使Q2.0—Q2.3 输出也皆为0,4个发光二极管都不亮。当你点击一下置数键,MW10加1,故M11.0=1,使Q2.0=1,对应的二极管亮,表示此时置数为1,再点击二下,MW10计数为3,使Q2.0与Q2.1对应二极管都亮,表示此时置数为3,即用这4个发光管的发光代表一位16进制数或10进制数。这样你置数时就不会置错,置好数后,按一下移位键,此数被移到上位数位置,而此位数=0,故4个发光管灭。下图是用S7-200编写的梯形图。

3、网友求助:“ 设备:
S7-200 CPU224
旋转编码器Autonics(E50S8-3-T-24) ,编码器每转脉冲数为250,三相A、B、Z
测速辊直径100mm
要求:编码器连接测速辊,目的要计算测速辊的周长每分钟走过多少米”
回复:编码器每转一圈,发出250的脉冲,测速辊直径为100mm,其周长为314mm,则每两相邻脉冲距离=314 / 250 =1.256mm。如果测速辊旋转速度低于200Hz,可用普通输入口计数,否则就得用高速计数器计数,其编程是这一样的:用计数脉冲的后沿,触发一内部位开关(如M3.0)使其置1,M3.0的常开点接定时为1分的定时器T0,,同时使MB9与MW10清0,用M3.0与计数脉冲串联的后沿,使MB9加1,用一比较器用MB9值与250 比较,当MB9=250时,MW10加314值,同时MB9清0….,当定时器延时1分到时,T0触点闭合,使M3.0=0,计数停,用MB9的值乘以1.256,再将其积加入MW10中,此时MW10的值即为测速辊每分走过的距离。下图即为测速梯形图:

zouge888

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 40回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2010年3月07日
发表于:2010-08-03 08:49:37
2楼
好东西!谢谢楼主@收藏了!

饶歌

  • 精华:21帖
  • 求助:0帖
  • 帖子:1303帖 | 6027回
  • 年度积分:0
  • 历史总积分:23611
  • 注册:2010年2月20日
发表于:2010-08-03 17:52:10
3楼

感谢楼主老师。。。。。

鬼话连篇

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2010年8月07日
发表于:2010-08-07 17:22:07
4楼

Thank  you very mouch !

要虚心学习

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 263回
  • 年度积分:0
  • 历史总积分:834
  • 注册:2005年2月14日
发表于:2010-08-07 17:40:29
5楼
好东西,值得收藏,谢谢

huoshu

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2007年6月11日
发表于:2010-08-12 00:55:33
6楼
第3个例题做的复杂了  楼主的原理是每走动一周就加上314的周长最后不足的一圈就把剩余的脉冲数乘上1。256再加到总长里, 这样做人为的复杂了  其实知道脉冲当量是1。256时就可以计1分钟总的脉冲数然后乘上1。256,这样不就等于每分钟的长度了

wyb2866255

  • 精华:74帖
  • 求助:0帖
  • 帖子:246帖 | 2872回
  • 年度积分:2
  • 历史总积分:31441
  • 注册:2010年7月01日
发表于:2010-08-12 07:57:06
7楼

对huoshu的回帖;谢谢你的提问,所以这样运算,就是为了用字运算确保运算精度,你提的方法可以,但得用双字运算。

kaihongyao

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2008年3月10日
发表于:2010-08-12 08:42:17
8楼

ld x0  altp y0

kaihongyao

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2008年3月10日
发表于:2010-08-12 08:44:32
9楼

还可以用记数器控制

方法很多C0K2

分频电路

 

gzb001

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 25回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-08-12 10:40:36
10楼
第3个例子,用M内存的地方也可以用V内存吧

宝二爷

  • 精华:6帖
  • 求助:0帖
  • 帖子:273帖 | 282回
  • 年度积分:0
  • 历史总积分:3746
  • 注册:2007年1月05日
发表于:2010-08-12 13:13:19
11楼
不错的东西,楼主西裤了!

王秀

  • 精华:3帖
  • 求助:0帖
  • 帖子:22帖 | 418回
  • 年度积分:4
  • 历史总积分:835
  • 注册:2007年6月30日
发表于:2010-08-13 10:27:45
12楼

我是初学,闲着没事,

对楼主的第2个例题做了 试验。

结果:置数时:MW10=2,不能置别的数,

           移位时:MW10=2--32--512--8192---0

不能出现:预置“2325”,你可这样操作:先点击二次 置数键(I1.0),此时MW10的内容为“0002”再点击一下移位键(I1.1),此时MW10的内容为“0020”,的现象。

查了一下:

递增字和递减字指令在输入字(IN)上加1或减1,并将结果置入OUT。

啊,IN=1,OUT=1+1=2,

改:IN=MW10,就好了,可以置任意数了,

 

 

 

顾龙慰

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 52回
  • 年度积分:0
  • 历史总积分:340
  • 注册:2010年6月08日
发表于:2010-08-13 15:15:54
13楼

一定要用西门子的编吗???

第一例我可以用其他简洁些的

LDP X0 

ALT  Y0

顾龙慰

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 52回
  • 年度积分:0
  • 历史总积分:340
  • 注册:2010年6月08日
发表于:2010-08-13 15:20:58
14楼
回复内容:
对:kaihongyao 关于

ld x0  altp y0

内容的回复:呵呵,朋友,我们好象学的是一样的 ,我们用的要么是三菱的,要么就是仿三菱的软件

小潘工

  • 精华:0帖
  • 求助:1帖
  • 帖子:13帖 | 87回
  • 年度积分:0
  • 历史总积分:229
  • 注册:2006年3月16日
发表于:2010-08-18 09:58:50
15楼

就第三个问题   用OMRON怎么做  我用移位指令达不到要求,请高手指教

纸船

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 55回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2009年3月15日
发表于:2010-08-18 11:31:29
16楼

用rs触发器。

···················

wyb2866255

  • 精华:74帖
  • 求助:0帖
  • 帖子:246帖 | 2872回
  • 年度积分:2
  • 历史总积分:31441
  • 注册:2010年7月01日
发表于:2010-08-19 08:59:54
17楼
15楼:根据你的要求,我用OMRON编写第三例,十多年未用OMRON编程,指令都有些忘了,你看看。

小潘工

  • 精华:0帖
  • 求助:1帖
  • 帖子:13帖 | 87回
  • 年度积分:0
  • 历史总积分:229
  • 注册:2006年3月16日
发表于:2010-08-19 10:20:37
18楼

我试了一下还是完成不了 

T0是不会动作的

wyb2866255

  • 精华:74帖
  • 求助:0帖
  • 帖子:246帖 | 2872回
  • 年度积分:2
  • 历史总积分:31441
  • 注册:2010年7月01日
发表于:2010-08-19 11:34:19
19楼

小潘工网友:我看了一下梯形图,觉得没有错误,0100的后沿使20000置1,它连接T0使其得电,你运行监视一下:1、你先不用脉冲信号触发0100输入端,如果你使用24V的正极接公共端,就用一根连接24V的负极的线,点击0100输入端,先看20000是否置1,如置1,说明T0已得电,观察T0,应计数。。2、再观看HR00,每点击一下0100,HR00内容+1,如果好使,就要检查你的脉冲信号了,如果你用的脉冲信号与PLC输入的逻辑相反,或脉冲信号幅度小等等原因,都会使程序不动作

六翼天使

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2006年5月11日
发表于:2010-08-30 12:03:39
20楼

好东西,收藏了,感谢楼主!


相关主题

官方公众号

智造工程师
首页 上一页 1 2 3 下一页 尾页