用S7-200编程的三个实例的解析之三 点击:10148 | 回复:78



wyb2866255

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-10-31 19:45:32
楼主

                             用S7-200编程的三个实例的解析之三

         本文三例都是本人在网上回答网友的求助贴时编写的,其中第三贴把和其他网友辩论编出的梯形图是否正确的内容也写进来,供大家分析参考,有不对之处,望批评指正。

         一、网友求助:“如何使用200统计流量 :我使用的一个流量计它能输出脉冲信号,1000个脉冲为一个立方的,也可以输出4-20毫安的电流信号,20毫安对应每小时500立方,我现在的想用226的CPU来计算一个月该流量计的总流量,最好直接使用CPU模块实现,不建议再使用特殊模块。谢谢了。”
        回复:
                        《 一》、使用4-20ma的电流信号求统计流量: 
       (一)、你可选用4-20ma电流输入模块,将电流信号接在模块的电流输入端,如没有,可选用0-10V电压输入模块,不过要多用一个500欧的精密电阻并接在电压输入端与地之间,再将电流输入信号接在电压输入端,这样4-20ma 电流流过500欧电阻时,就转变为2-10V的电压信号。”
      (二)、求出瞬时流量的公式:

             (1)、从模块的参数可知:20ma(或10V)模块对应的转换数字量设它为W20,你就可以求出4ma 对应的数字量W4:

                          W4 =W 20 ×4 ÷20 = W 20÷5。 

            (2)、20毫安对应每小时500立方,那么20毫安对应每秒钟为500 ÷3600=0.139立方,而“0.139立方”即为流量计输出20ma时的瞬时流量,此时对应的模块的数字量为W 20。而流量计输出4ma时对应的瞬时流量=0,但模块此时的数字量为W 20÷5,即瞬时流量N与对应的数字量W的关系是一条不过0点的直线,可推导出瞬时流量N的公式:N = 0.139×(W - W 20÷5)÷(W 20- W 20÷5) 简化为:
                            N = 1.39×(W -0.2× W 20)÷(8×W 20) ……(1) 
       (三)、PLC程序处理:采用时间中断的方式进行瞬时流量的采集与累加:中断为秒中断:即每隔1秒从模块读取一次数据,按上式(1)求出瞬时流量N,再把N值加在累积区(如VD100)中,即可。 
                                   《 二 》用脉冲计数方式求统计流量
        我们知道:用 1秒时间对输出脉冲进行计数采样,其计数值即为瞬时流量,N秒内的瞬时流量的累加值即为N秒内的总流量。若求某段时间的总流量,很多人都是采用先求出瞬时流量,再对某段时间的瞬时流量进行累加的方法来求总流量,这种方法如用单片机或计算机可以,但用PLC进行定时计数,由于扫描周期的影响,瞬时流量是测不准的。我认为:如果求瞬时流量不是为了闭环控制提供反馈信号而是为了进行累加求总流量的话,可不用求瞬时流量,直接对流量计的输出脉冲进行连续计数就可以了。具体编程思路是这样的:1、如输出脉冲的最高频率低于200HZ,可用普通输入点做计数信号的输入端,用它的前沿触发内部一双字存储器进行加一运算。如高于200HZ,就得选用带启动、复位控制的单相增计数方式的高速计数器进行计数。假设1000个脉冲为一个立方”,可知其一个脉冲为0.001立方的流量.。即累计的流量值的精度为0.001立方。如统计较长时间的总流量其精度不需要这么高,比如要求为0.1立方,此时的计数值应除以100,其商才为累计流量。3、一般流量计输出脉冲信号幅度为5V或12V,而PLC输入端要求输入信号的幅度为24V,故流量计的输出脉冲信号必需先做电平转换变成24V脉冲信号后,方可接入PLC的计数输入端,这样就得做一块电路板。如果流量精度为0.1立方,可在电路板上的电平转换线路前再增加一块4518(双十进制计数器)集成块,来构成二位十进制计数器,先对流量计输出脉冲进行计数,其输出的脉冲相当对流量计输出脉冲进行除以100的运算处理,再对它进行24V电平转换,去PLC计数口,这样进入PLC计数端的脉冲频率一定低于200HZ,就不需要用高速计数器计数,可大大的简化编程程序。见下图: 

 

              程序说明:按下启动开关I2.1,读取此时的日期时间存入VB10(年)、VB11(月)、VB12(日)、VB13(时)中,I2.1的后沿使V2.0=1,V2.0的前沿使计数器VD100清0,V2.0=1时泵启动,流量计计量开始。如运行中断电,VD100、V2.0 及VB10、VB11等均具有断电保持原数据、状态的功能,所以复电后,不用按启动开关,由于V2.0=1,PLC自动进行累计流量。如累计流量结束,按一下停止按钮I2.2J就可:I2.2=1,立即将此时日期、时间出入VB20、VB21、VB22、VB23中,同时使V2.0=0,累计流量结束。

              二、网友求助:“如何用程序实现泵每五分钟起一次,工作五分钟后,再停五分钟,循环工作。”
        回复:下图是按着楼主要求用S7-200编写的梯形图,图中用一个按钮做电机运行与停车开关(I 0.0)


 




wavingchen

  • 精华:0帖
  • 求助:3帖
  • 帖子:9帖 | 782回
  • 年度积分:0
  • 历史总积分:2918
  • 注册:2009年8月10日
发表于:2010-12-11 08:25:20
21楼
分析到位啊!厉害,受教了!

Smile

  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2786帖 | 22283回
  • 年度积分:284
  • 历史总积分:144015
  • 注册:2006年8月04日
发表于:2010-12-11 12:14:25
22楼
顶一个!好资料,谢谢分享。

天使在飞翔

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2009年7月29日
发表于:2010-12-13 11:44:44
23楼
不错,学习了,是好资料。

nature杜

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 34回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2009年5月22日
发表于:2010-12-13 17:39:16
24楼

希望楼主都发些这样的资料,学习了。

lanfengyun

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2010年12月22日
发表于:2010-12-22 23:52:51
25楼
能否也给我回答一个!3个电机M1~M3, 按下起动按钮,M1~M3每隔5秒依次起动;按下停止按钮,M1~M3同时停止!谢了

Tianjun

  • 精华:3帖
  • 求助:41帖
  • 帖子:510帖 | 5540回
  • 年度积分:76
  • 历史总积分:32331
  • 注册:2006年9月20日
发表于:2010-12-23 06:07:32
26楼
好资料                                                                                                                                                      

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-23 08:09:45
27楼

24楼:你可以这样编程:

       1、用启动按钮后沿使Q0.0置位,即 Q0.0=1(M1启动),用Q0.0的常开点连接延时5秒通电延时的定时器T0,再用T0的常开点连接延时5秒通电延时的定时器T1和Q0.1的输出线圈,T1的常开点连接Q0.2的输出线圈。

      2、用停止按钮使Q0.0 复位(即Q0.0=0).

     这样,按下启动按钮,按钮抬起时,使Q0.0置位,即Q0.0=1,M1启动。延时5秒,T0动作,使Q0.1=1,M2启动。再延时5秒,T1动作,使Q0.2=1,M3启动。

      按下停止按钮,使Q0.0复位,即Q0.0=0,M1停车,Q0.0的常开触点断开,使 T0与T定时器断电,故Q0.1、Q0.2都=0,M1与M2同时停车。

小明1223

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 14回
  • 年度积分:0
  • 历史总积分:37
  • 注册:2006年8月02日
发表于:2010-12-23 09:07:00
28楼

先收藏了再说             

lanfengyun

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2010年12月22日
发表于:2010-12-23 11:50:57
29楼
谢了!!!!!!!!!

LIUXD6909

  • 精华:2帖
  • 求助:11帖
  • 帖子:145帖 | 5530回
  • 年度积分:1300
  • 历史总积分:29990
  • 注册:2008年4月27日
发表于:2010-12-23 19:33:49
30楼

楼主真强!                        

liubingke007

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2010年8月17日
发表于:2011-01-26 13:38:01
31楼

楼主真强!                        

WWPLC

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 57回
  • 年度积分:0
  • 历史总积分:174
  • 注册:2009年2月11日
发表于:2011-02-03 23:54:59
32楼

楼主高手,学习了。谢谢!!!

SLJ1891

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 44回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2009年10月07日
发表于:2011-02-12 09:12:36
33楼

非常感谢楼主分亨,学习了

@东东·

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2003年4月24日
发表于:2011-02-15 06:54:34
34楼

jeffusion8

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:153
  • 注册:2010年9月23日
发表于:2011-02-15 15:28:22
35楼

1)、从模块的参数可知:20ma(或10V)模块对应的转换数字量设它为W20,你就可以求出4ma 对应的数字量W4:

W4 =W 20 ×4 ÷20 = W 20÷5。

没看明白,我总觉得是这么算W4=W20*4/(20-4),不知道对不对

wyb2866255

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

35楼:    

     模块的模拟量输入与数字量输出是成比例的,即两者的关系是一条过0的直线,显然20ma与其对应的数字量W20之比等于4ma与其对应的数字量W4之比,即        20:W20 = 4:W4  

                                         上式可推导为:  W4 :W20 =4 : 20  = 1 / 5

                                          最后可得出:      W4 = W 20÷5

shaoyu451

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2002年12月09日
发表于:2011-03-15 15:03:31
37楼
好文章,收藏了,辛苦了。

miaowenbing

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年3月19日
发表于:2011-03-19 20:49:10
38楼

厉害,
厉害,
厉害,
厉害,
厉害,

li348028603

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年3月24日
发表于:2011-03-24 14:50:41
39楼

我 来顶楼主来了!我们非常感谢!

吴永强

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2010年6月25日
发表于:2011-03-27 14:00:13
40楼
学习了,好文章,非常感谢!

热门招聘
相关主题

官方公众号

智造工程师