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

编程技巧展示之四:为网友求助帖用S7-200编写三段程序及解析 点击:3720 | 回复:32



wyb2866255---王者之师

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-02-15 18:03:59
楼主

     编程技巧展示之四:为网友求助帖用S7-200编写三段程序及解析

   本文介绍的三段程序是用S7-200编写的,其命题都是由网上看到的求助帖而编写的,其编程要求有一定难度,可以通过对程序的解析,来理解与充实编程思路与技巧。

 一、求助帖:顺序随机控制,有兴趣来看看

  目的:用PLC和触摸屏(威纶通)控制8个指示灯。

要求:8个指示灯无序动作,也可以是4个指示灯无序动作,动作的顺序可以在触摸屏上设置,动作的时间间隔也可以设置。

示例:如果是8个灯动作,比如最常见的是1-2-3-4-5-6-7-8-1.这种是简单明显的,但是可以通过PLC和触摸屏我可以把顺序控制成1-3-4-2-5-6-7-8,也可以5-6-7-1-2-3-4-8.。。。。。。。依次规律进行。如果是4个灯动作,顺序也是可以设置,动作如上规律。

  回复:编程思路是这样:

在触摸屏内设置8个字节存储器:VB100~VB107和1个字存储器CW20,且与PLC通讯。

  1、其VB100~VB107这8个字节存储器分别作为8个灯泡的选中标志区:VB100为第1灯泡的选中标志区,VB101为第2个点亮灯泡的选中标志区,……VB107为第8个点亮灯泡的选中标志区。这8个灯的标志存储器的置数内容分别置数为0~7这8个数字(互不重复):旗置数=0的存储器对应的灯为第1个点亮,置数=1的存储器对应的灯为第2个点亮 ……置数=7的存储器对应的灯为第8个点亮。触摸屏可对VB100~VB107随意设定0~7这8个数,就可实现对这8个灯动作顺序的随意改变。

  2、用定时器T101作自振荡器,其定时时间不设为具体数值,而用VW20代替,其VW20可由触摸屏设定,这样就可实现动作的时间间隔也可以随时设置的作用。

  3、顺序随意控制的构思:为实现8个灯能按各自标示区(即VB100~VB107)置数的大小依次点亮,实现的办法是采用一个计数器(MB10),计数器由0开始,按给定的间隔进行加1计数,加到数=8立即请0,重新由0作加1计数。这样:MB10的值将在0~7这8个数字变化,在计数过程中,又时时用计数器的计数值(MB10)与VB100~VB107的值进行比较,与MB10值相等的标示区对应的灯亮,如:当MB10=0时,如VB103=0,则使VB103对应灯(Q0.3)为第一个点亮,接着MB10=1,如 VB00=1,则使VB100对应灯(Q0.0)为第二个点亮……从而实现按8个标示区的数由0、1、2…7,依次点亮。按上述2、3二点思路进行编程就是本程序的编程技巧之处。下面用S7-200编程如下,供你参考:






  二、求助一帖:西门子PLC比较大小VD100,VD104,VD108,VD112,VD116就大概五个的样子,不过以后还可能增加一点

比较后对应大小顺序放到VB00  ,VB01,VB02,VB03,VB04里面,例如VD104最大就在VB01里面放1,VD108最小就在里面放5,怎么才能实现啊?请教各位了

  回复:编程思路:编写一个某一双字存储器与其他4个双字存储器的值的大小进行比较判断的功能模块(子程序),且把判断结果送入对应的标志区,如用VD100与VD104、VD108、VD112、VD116的值进行比较判断,先将其标志区VB00=1(即数值最大),在进行比较:用VD100与VD104比较,如VD100<VD104, 则使VB100加1(VB100=2),否则VB100保持不变,再用VD100与VD108比较,如VD100<VD108, 则使VB100加1,否则VB100保持不变……,VD100分别与VD104 、VD108、VD112、VD116进行比较判断完后,如VB100=3,则VB100进行2次加一计数,即说明VD100与其它4个存储器比较,其值小于2个存储器的值,位于第三,如VB100=5,则VB100进行4次加一计数,即说明VD100与其它4个存储器比较,其值最小,位于第五。

   程序处理:在主程序里,每按一次启动按钮将进行5个双字存储器与其它4个存储器进行比较(即调用5次功能模块),其比较结果分别放入对应存储区即可实现。详见下面程序:

一、主程序:



  二、子程序:



 

    三、求助帖:开机顺序的取样

  有5台电机,随机开机/停止,要知道同时工作的2~5台电机中哪台电机先开启的,要怎么做?最好是梯形图的,本人语言上承认有障碍,简单的还可以难的看不明白。

  回复:编个程序供参考:







程序说明:编程思路

   1、VB0~VB4分别为第1~第5台电机启动的顺序号存储器,其存储器内容=0,表示对应电机为停车,存储器内容=1 表示是第1个启动,=2表示是第2个启动。。。这5个字节存储器可在上位机或触摸屏内设置且时时显示其内容:如:VB0=0、VB1=3、VB2=0、VB3=1、VB4=2,则可以判断此时是第2、第4、第5 三台电机运行,其第4台(VB3)最先启动,第5台(VB4)为第2启动,第2台(VB1)为第3启动.

  2、VB0~VB4的启动序号是这样进行的,网络11是当5台电机皆停车时,将计数器MB0=0。如此时第1个启动电机3,(见网络5)I0.2=1的前沿使Q0.2=1(即第3台电机启动),同时使MB0计数器加1(使MB0=1),再将MB0送入VB2,使VB2=1.再按I0.0(见网络1),其I0.0=1的前沿使Q0.0=1(第1台启动),同时使MB0计数器加1(使MB0=2),再将MB0送入VB0,使VB0=2。。。

回楼主:我的思路是这样:当一台电机停车时,将它启动时的顺序号清除,表示停车,再启动它或其它电机时,计数器照样加1计数,不用计数器减1,相反简单的进行MB0减1,会出现重号的,如:VB0=1、VB2=3、VB3=2,此时计数器MB0=3, 如将电机1停车,即使VB0=0,再将MB0减1,其MB0=2, 如此时按第5台电机,使Q0.4=1,MB0加1,其MB0=2+1=3,即MB0将3送入VB4,使VB4=3,你看:VB2=3与VB4=3就重复了。如不进行MB0减1运算,其VB4=4,这样运行的3台电机的顺序号为:VB2=3、VB3=2、VB4=4,显然这3台电机最先启动的是VB2,即序号最小的为最先启动的电机。

计数器的计数值可以大于5,各电机的的启动顺序号按数值大小比较,数值最小的为最先启动电机,数值最大的为最后启动电机。下举一例:

 电机启动顺序为,2号启-4号启-1号启-2号停-3号启-2号启。其各电机启动顺序为:

VB0=3、VB1=5、VB2=4、VB3=2 此时最小数=2,即4号(VB3=2)电机最先启动,1号(VB0=3)电机为第2启动,3号(VB2=4)电机为第3启动,而2号(VB1=5)电机为第4启动。

  有人问:这里吧,有个问题,就是取最大值看哪个是最后一个启动的没问题,但是取最小值的时候,是取的没启动的泵的0

  再回复:顺序号存储器(VB0~VB4)=0表示对应电机为停车没运行,故比较时,应去掉=0的存储器,选≠0存储器值最小者为最先启动电机。





LCL———王者之师

  • 精华:0帖
  • 求助:9帖
  • 帖子:62帖 | 478回
  • 年度积分:197
  • 历史总积分:34719
  • 注册:2011年9月24日
发表于:2014-02-15 21:35:07
1楼

学习学习。。写的蛮好的。。

huangxingwang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 48回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2013年2月16日
发表于:2014-02-16 20:12:18
2楼

回复内容:

对: LCL———王者之师  学习学习。。写的蛮好的。。 内容的回复!


 

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2014-02-17 08:27:11
3楼

引用 LCL———王者之师 的回复内容: 学习学习。。写的蛮好的。。



  • 精华:0帖
  • 求助:3帖
  • 帖子:8帖 | 387回
  • 年度积分:1400
  • 历史总积分:1888
  • 注册:2006年2月06日
发表于:2014-02-17 10:05:44
4楼

谢谢楼主,学习了,楼主辛苦了!

浪迹天涯110

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:206
  • 注册:2014年2月19日
发表于:2014-02-19 23:13:47
5楼

谢谢楼主,支持,我刚开始学。

今生缘

  • [版主]
  • 精华:43帖
  • 求助:20帖
  • 帖子:4757帖 | 10148回
  • 年度积分:75
  • 历史总积分:111144
  • 注册:2011年3月02日
发表于:2014-02-19 23:18:55
6楼

引用 浪迹天涯110 的回复内容: 谢谢楼主,支持,我刚开始学。



liuxiujun2009

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 31回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2014-02-20 13:44:21
7楼

谢谢楼主,写的清晰明了,很容易看懂,学习了。

cquxyc

  • 精华:0帖
  • 求助:4帖
  • 帖子:5帖 | 10回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2009年4月18日
发表于:2014-02-21 08:49:05
8楼

goodgooodd

jinxing223529

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 66回
  • 年度积分:0
  • 历史总积分:211
  • 注册:2013年1月05日
发表于:2014-02-21 21:17:49
9楼

xiexie,厉害。。。。。

最爱小冰冰

  • 精华:0帖
  • 求助:4帖
  • 帖子:12帖 | 593回
  • 年度积分:60
  • 历史总积分:287
  • 注册:2012年1月12日
发表于:2014-02-22 10:42:12
10楼
楼主辛苦!
我们应该感谢楼主这样的好心人,致敬!

拍苍蝇

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 27回
  • 年度积分:3
  • 历史总积分:710
  • 注册:2013年3月02日
发表于:2014-02-25 16:50:43
11楼

好贴,编的很严谨,不拖泥带水,希望以后多发这样的贴,谢谢您的分享!

ascent522

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4234回
  • 年度积分:0
  • 历史总积分:10293
  • 注册:2011年2月28日
发表于:2014-02-25 17:19:05
12楼

感谢分享,楼主真是好人一个!

零点168

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 36回
  • 年度积分:0
  • 历史总积分:86
  • 注册:2014年2月23日
发表于:2014-02-26 10:48:49
13楼

学习了挺好的,谢谢!

Smile-lyc

  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2793帖 | 22283回
  • 年度积分:284
  • 历史总积分:144015
  • 注册:2006年8月04日
发表于:2014-02-26 21:07:03
14楼

绝对盖加精的帖子                        

laoshiqiche

  • 精华:0帖
  • 求助:2帖
  • 帖子:6帖 | 109回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2012年12月10日
发表于:2014-02-27 14:50:36
15楼

引用 最爱小冰冰 的回复内容: 楼主辛苦!我们应该感谢楼主这样的好心人,致敬!



zf1983

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2011年3月30日
发表于:2014-02-28 12:36:33
16楼

感谢辛苦了,学习了,致敬!

egnuk

  • 精华:0帖
  • 求助:10帖
  • 帖子:11帖 | 59回
  • 年度积分:5
  • 历史总积分:331
  • 注册:2014年1月13日
发表于:2014-02-28 16:05:32
17楼

引用 零点168 的回复内容: 学习了挺好的,谢谢!



楚太子爷

  • 精华:0帖
  • 求助:6帖
  • 帖子:10帖 | 104回
  • 年度积分:0
  • 历史总积分:8092
  • 注册:2011年5月15日
发表于:2014-02-28 22:13:31
18楼

每一次看到好帖子,我都忍不俊禁的想在这里留下一个脚印。第一,是激励我不断的前进;第二,再一次的深化自己!     哥就是个传说

伺服马达维修

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 19回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2009年11月04日
发表于:2014-03-03 15:23:34
19楼


学习了,谢谢楼主

我有部分拆机PLC需要联系我

liu1475391470

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 35回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2014年3月03日
发表于:2014-03-03 23:59:13
20楼

逻辑清晰,简单明了。很有帮组,谢谢楼主


热门招聘
相关主题

官方公众号

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