stou fazendo um sistema de automação onde preciso acionar um queimador atravez de um painel de controle. para isso eu criei um meta data point multi estados com o seguinte codigo:
if(tempo1 != 0)
{
if (tempo1<=contador)
{
if(temperatura1<=sensor)
return 1;
else
return 2;
}
}
else
{
return 0;
}
contador = um cronometro (em segundos apenas) que é iniciado no inicio do processo.
temperatura1 = temperatura configurada pelo usuario
sensor = leitura de temperatura através de sensores instalados no equipamento
Eu quero fazer o seguinte:
quando iniciar a torra do cafe sera ligado um cronometro (contador) que ira marcar o tempo em segundos (contador)
ae na interface tera 2 valores a ser configurados pelo usuário. Tempo e temperatura
quando no valor tempo (colocado pelo usuário for 0 o data point vai retornar 0 . Agora quando o tempo for diferente de 0 eu quero que ele fique comparando o valor do tempo com o valor do cronometro quando os 2 forem iguais ou seja o cronometro chegou no tempo configurado pelo usuário ele fara o seguinte:
Se a temperatura configurada pelo usuário for menor que a lida no sensor ele ira retornar 1
Se a temperatura configurada pelo usuário for maior que a lida no sensor ele ira retornar 2
O meu problema é o seguinte:
configurei um tempo de 30
inicio a contagem ... ate ae tudo ok mais derrepente quando no cronometro marca 4 ele muda o estado (so deveria fazer isso no 30) e quando da 11 ele volta ao estado que seria o certo.
Com 30 ele faz o que tem q fazer e vai tudo ok ate 100 quando ele retorna 0.
por que sera que esta acontecendo isso. ele deveria mudar apenas quando o tempo do cronometro ultrapassar o tempo configurado.