1、实现单日计算时长
var status1="ns=100;s=AI_001.PV"//状态点
//WriteDataToFile ("D:\\retVal1.txt",status1+"\r\n");
var DateTime1="ns=100;s=FieldPoint_001";//存储时间点
var TimeLength1="ns=100;s=AI_002.PV";//存储时长点
var TotalTimeLength1="ns=100;s=AI_003.PV";//存储累计时长点
var tag1=GetOneItemValue(status1,1);//获取状态值
WriteDataToFile ("D:\\retVal1.txt",tag1+"\r\n");
if(tag1[1]==1){
SetOneItemValue(DateTime1,tag1[3]);
JSSleep (50);
//WriteDataToFile ("D:\\retVal1.txt","tag1[3]="+tag1[3]+"\r\n");
var tag2=GetOneItemValue(DateTime1,1);//获取时间
var new_date = new Date();//获取当前时间
var old_date = new Date(tag2[1]);//获取存储的值变化时间
var egg_date = new Date(new Date().setHours(0,0,0,0));//获取当天零点时间戳
WriteDataToFile ("D:\\retVal1.txt","old_date="+old_date+"\r\n");
//WriteDataToFile ("D:\\retVal1.txt","egg_date="+egg_date+"\r\n");
if(old_date<egg_date){
//零点之前的数据处理
var difftime = (egg_date.getTime() - old_date.getTime())/1000;//计算本次运行累计时长
SetOneItemValue(TimeLength1,difftime);//存储本次运行累计时长
var tag3=GetOneItemValue(TotalTimeLength1,1);//获取当前累计时长
var tag4=GetOneItemValue(TimeLength1,1);//获取本次运行累计时长
if(tag3[3]<tag4[3]){
var difftime2=tag4[1]+tag3[1];
SetOneItemValue(TotalTimeLength1,difftime2);//更新当前累计时长
}
SetOneItemValue(TotalTimeLength1,1);//将累计时长置1
//零点之后的数据处理
var difftime = (new_date.getTime() - egg_date.getTime())/1000;//计算本次运行累计时长
SetOneItemValue(TimeLength1,difftime);//存储本次运行累计时长
}
else{
WriteDataToFile ("D:\\retVal1.txt","new_date="+new_date.getTime()+"\r\n");
WriteDataToFile ("D:\\retVal1.txt","old_date="+old_date.getTime()+"\r\n");
var difftime = (new_date.getTime() - old_date.getTime())/1000;//计算本次运行累计时长
WriteDataToFile ("D:\\retVal1.txt",difftime+"\r\n");
SetOneItemValue(TimeLength1,difftime);//存储本次运行累计时长}
}
}
else{
var tag3=GetOneItemValue(TotalTimeLength1,1);//获取当前累计时长
var tag4=GetOneItemValue(TimeLength1,1);//获取本次运行累计时长
if(tag3[3]<tag4[3]){
var difftime2=tag4[1]+tag3[1];
SetOneItemValue(TotalTimeLength1,difftime2);//更新当前累计时长
SetOneItemValue(TimeLength1,0);//当前累计时长清0
}
}