Olá, vamos criar um Datapoint meta que vai informar a quanto tempo um datapoint mudou de valor.
Para saber a hora que um datapoint mudou usamos p.time (que retorna um valor em TimeStamp do ScadaBR, vou explicar no final isso, mas vamos usar o timestampBR para calculos…
Primeiro, crie um dataSource Meta e coloque dois datapoints…
um Datapoint que seja atualizado a cada segundo por exemplo, mesmo que não seja útil em outro lugar, é só para o script ser executado a cada segundo.
Coloque o datapoint da variável que deseje monitorar o tempo descorrido, no caso, vou pegar a ultima vez que a umidade ambiente mudou…
atribua a este segundo datapoint o nome p
coloque o código abaixo:
var timeAtual = (Date.now());
var atual=p.value;
var ms= (timeAtual-p.time);
var horas = ms / (1000*60*60); // Pega Horas dos milisegundos
var HorasAbsolutas = Math.floor(horas);
var h = HorasAbsolutas > 9 ?HorasAbsolutas : '0' + HorasAbsolutas;
//pega a sobra de horas e transforma em minutos
var minutos = (horas - HorasAbsolutas) * 60;
var MinutosAbsolutos = Math.floor(minutos);
var m = MinutosAbsolutos > 9 ? MinutosAbsolutos : '0' + MinutosAbsolutos;
var segundos = (minutos - MinutosAbsolutos) * 60;
var SegundosAbsolutos = Math.floor(segundos);
var s = SegundosAbsolutos > 9 ? SegundosAbsolutos : '0' + SegundosAbsolutos;
return "Valor mudou para "+atual+" ás: "+
Date(p.time).substring(16,25)+", ou a ("+h + ':' + m + ':' + s+")";
ou pode se usar essa linha abaixo só para mostrar a diferenca de tempo…
return "Mudanca ocorrida a "+h + ':' + m + ':' + s;
Teste e veja toda vez que p mudar de valor, ele vai calcular o novo tempo sempre.
vamos ver o que ocorreu?
veja no watchList:
Lembre-se que é sempre bom consultar a fonte:
https://docs-v3.mango-os.com/about-mango-java-script