对S7-200较长时间定时如何实现的解答 点击:6912 | 回复:18



wyb2866255

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

                           对S7-200较长时间定时如何实现的解答
        有一网友求助:“本人在做项目过程中,用S7-200实现对水泵的控制。其中有一个问题:当变频器出现故障,需重新启动水泵,而此时要求启动运行时间最短的那个,则需要对每台水泵的运行时间进行监控。而PLC定时器即使和计数器结合起来实现时间定时,仍难以满足几周或几个月的定时时间。我该如何将此功能在plc中实现??盼回复,不胜感激!!”
       答复:S7-200 有时钟指令,如读指令“READ_RTC”用它将此时刻的日期、时间存入数据区(如VB10、VB11、VB12、VB13…..)中,其VB10为年的末二位数,VB11为月份数,VB12为日数,VB13为时数,VB14为分数….,再用比较指令将取得日期、时间值与你规定的日期时间值比较,当二者相同时,即延时时间到,去触发一个内部位开关使其置1(如M2.0=1)即可。
        现举例说明:现在时间是:2010年10月23日8时,你可将10、10、23、08等数以16进制数的形式,分别置入VB20、VB21、VB22、VB23等数据区里,按下定时启动按钮“I 1.0”,使M2.1=1,PLC读取时钟开始,即每隔1秒读取一次,存入VB10---VB13中,在编程上再用4个比较指令,分别进行比较,比较值是:VB10对VB21比较,VB11对VB21比较,VB12对VB22比较,VB13对VB23比较,当4个比较器比较值都相等时,即时间到,可使M2.0=1,见下图:

         该程序的定时精度为1小时,如觉得不够,可再增加分比较,这样定时精度可为1分钟。还有稍微复杂一点的编程,即只预置延时时间(几周、几个月、甚至几年),预置好后,按启动按钮,PLC立刻取出此时刻的日期、时间,PLC根据预置的时间进行计算,求的到期的日期与时间,再分别进行年、月、日、时、分的比较,这样编程的定时精度可小于等于1秒。
         比较时间值的设置,可用上位机或触摸屏设置。如只有PLC,还要想外置数也可实现,怎样编程这里就不讲了,可参考我在网上写的“用外设按钮可实现对多个参数设定的PLC编程的实例”一文,那里有梯形图及详细说明。




#天涯

  • 精华:0帖
  • 求助:3帖
  • 帖子:100帖 | 2953回
  • 年度积分:0
  • 历史总积分:8816
  • 注册:2005年3月02日
发表于:2010-10-27 14:04:15
1楼
不错,怎么没人顶啊,我顶一个!

老愚者

  • 精华:1帖
  • 求助:0帖
  • 帖子:9帖 | 2253回
  • 年度积分:0
  • 历史总积分:10007
  • 注册:2006年8月20日
发表于:2010-10-27 15:00:11
2楼
由于S7-200的时钟是软件时钟,默然配置是没有电池,是靠电容保持数据。这就造成停电几天后系统时间回归至出厂状态。为可靠,应尽量不要使用系统时间作为控制用变量。使用其它合适方式更恰当。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-10-29 00:49:48
3楼
感谢2楼的提醒,编程时未考虑多日断电的情况,此程序可以这样修改:见下图:
        在未按启动延时前,把当前的日期时间置入VB20--VB27中,按I1.2写入按钮,将VB20-VB27置入PLC,再将到期的日期时间置入VB20--VB27中,注意i不要再按写入按钮I1.2。应按启动按钮I1.0,使M2.1=1,读取当前时间与设定的到期日期时间比较。。。这样就可解决长期断电使时钟归原位的问题。
       除此方案外,还有第二方案:用SM0.5秒脉冲对双字存储器VD100进行家1运算,VD100的值时时与设定的到期时间值比较,当二者相等时,使M2.0=1,见下图:图右侧的I0.3、I0,4、I0.0按钮是用来置数用的,如要延时2日,可则和172800秒转为16进制数为2A300,将这2A300置入VD104中,置好数后,按 I0.1 按钮,延时计数开始。

fankturkey

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 40回
  • 年度积分:0
  • 历史总积分:428
  • 注册:2007年6月29日
发表于:2010-10-29 17:15:50
4楼
程序应该可以有1秒的脉冲吧?那么我们就用它做计数器。计数到3600时,运行小时+1。 如果重新启动的话判断谁运行的小时数就可以啦。小时数可以用几年的呢。365*24 = 8760。 主要问题是我们需要什么样的精确度和数量级,不知道我这么想对不对。水处理工程上好像用这个比较多,水泵应该是动态互相备份的关系,这个用一段时间后另外一个再用,一定时间后运行总时间是不会相差太多的。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-10-29 20:52:46
5楼
fanktukey:你说的对,在第二方案中的SM0.5就是1秒的脉冲,VD100就是加1的计数器,VD104是存放折算为秒的延时时间,按下I0.1启动按钮,使V10.0=1,它的前沿使计数器VD100清零,随之SM0.5(秒脉冲)的前沿使VD100做加1运算,如中途断电,其VD100及V10.0位信号均有断电保持功能,当再开机时,由于V10.0与VD100均保持断电前的状态:V10.0=1,VD100保持断电前的计数值,所以PLC复电后,VD100立即回复计数,接着保持由断电前的计数值进行加计数,当即数值=设定的延时时间(VD104)时,比较指令输出为1,使 V10.0=0,即VD100计数停止,同时使 V10.1=1,发出报警或执行什么动作。VD100是双字存储器,延时几年折合为秒的数值,他都能溶入,不必折算为小时驱计算。

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2010-10-29 21:11:19
6楼

好贴,支持一下!

可以把数据在断电前写到ROM来实现。

fankturkey

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 40回
  • 年度积分:0
  • 历史总积分:428
  • 注册:2007年6月29日
发表于:2010-10-29 21:30:23
7楼
引用老菜鸟 的回复内容:

好贴,支持一下!

可以把数据在断电前写到ROM来实现。





邓双全

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2010年8月05日
发表于:2010-10-31 23:44:26
8楼
哎,在WINCC中编辑一个全局脚本,脚本触发条件为泵的运行状态,并通过时间属性使变量+1,进行进行计数,然后的的事情在您的step7中区实数比较输出控制变频器即可,没有那么难,仅仅是一个细活。

学习siemens

  • 精华:23帖
  • 求助:347帖
  • 帖子:1611帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2010-11-01 07:48:41
9楼

好,来顶一顶,学习啦,

尐お槑孨/叶宏

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2010-11-01 12:24:40
10楼

有这么认真的人,不容易。

大家都这样,这个论坛人气就好了。

 

哈雷

  • 精华:0帖
  • 求助:0帖
  • 帖子:43帖 | 1111回
  • 年度积分:0
  • 历史总积分:1640
  • 注册:2006年1月23日
发表于:2010-11-04 13:07:19
11楼
学习了     !!!!!!!!!

求学111

  • 精华:0帖
  • 求助:0帖
  • 帖子:31帖 | 137回
  • 年度积分:0
  • 历史总积分:436
  • 注册:2006年2月08日
发表于:2010-11-07 11:37:30
12楼

走过路过学习过

 

毕庆民

  • 精华:21帖
  • 求助:5帖
  • 帖子:584帖 | 5227回
  • 年度积分:0
  • 历史总积分:10489
  • 注册:2005年6月13日
发表于:2010-11-07 19:14:37
13楼

运行时间存储,启动比较。不长时间断开电源,T C想加足够完成。

长时间断开电源,可外接一存储设备,通讯方式定时存取。

kill2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 20回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2006年4月04日
发表于:2010-11-09 11:11:39
14楼

好文件,走过路过学习过。

xjh8888

  • 精华:0帖
  • 求助:1帖
  • 帖子:8帖 | 60回
  • 年度积分:0
  • 历史总积分:464
  • 注册:2003年9月26日
发表于:2010-11-10 18:14:20
15楼

确实得顶一下

 

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2010-11-10 23:45:10
16楼
引用老愚者 的回复内容:由于S7-200的时钟是软件时钟,默然配置是没有电池,是靠电容保持数据。这就造成停电几天后系统时间回归至出厂状态。为可靠,应尽量不要使用系统时间作为控制用变量。使用其它合适方式更恰当。


可以做个UPS 电原, 给PLC 供电; 毕竟系统时钟在长时间做定时比较精确;

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-11-11 11:07:26
17楼
16楼:你说的办法可行,但做个UPS 电原,1、需要费用,2、占据一定的空间。用第二种方案,定时精度同样精确,因为SM0.5是PLC提供的时钟脉冲,故一般是不采用外加电源的。

一品黄山

  • 精华:11帖
  • 求助:0帖
  • 帖子:754帖 | 9779回
  • 年度积分:0
  • 历史总积分:48262
  • 注册:2004年3月31日
发表于:2011-04-13 15:23:54
18楼
这个帖子应该置顶。                 

热门招聘
相关主题

官方公众号

智造工程师