发布于 2011-08-04 22:29:10
3楼
1、你的问题都有问题,“就是当设备开停成功后,开始统计开停时间,同时统计开停次数。设备停止后,停止统计。”你都停止统计了还怎么统计停的时间?
2、难道你的设备成功开了一次后,不停就要再开一次吗?肯定要停了才能再开了,所以开停次数只要统计一次
3、如果开停时间都要统计的话,你的程序是不能停的必须要时时在运行。
基于以上条件我认为你应该建立一个内部bool(tag1)变量保存设备的运行状态bool(tag2)。day_sum(设备日运行时间),day_sum1(设备日停止时间),month_sum1,month_sum2,runtime1(日运行时间),runtime2(月运行时间),count(开启次数),做一个周期执行的脚本,执行周期比如是1s。脚本内容:
day_sum=day_sum+1
month_sum=month_sum+1
if tag1!=tag2 then
count=count+1
tag1=tag2
end
if tag2 then
day_sum=day_sum+1
month_sum=month_sum+1
else day_sum1=day_sum1+1
month_sum1=month_sum1+1
end
if runtime>24*3600 then
day_sum=0
day_sum1=0
runtime=0
end
if runtime1>24*3600*30(当月天数) then
month_sum=0
month_sum1=0
runtime1=0
end
在wincc中用内部变量把count,day_sum,day_sum1,month_sum,month_sum1连接出来并做记录,这样数据就不会丢失了。
活到老,学到老!为了生活学习吧!