26 June 2009

Nota técnica: Tempo de ciclo como Temporizador no Siemens

Encontrei isto nos meus mails enviados, e como já não me lembrava fica aqui. Pode ser mais fácil de encontrar no futuro.
Podemos usar o tempo de ciclo do autómato para fazer temporizadores. Uma forma simples é usar o OB1_prev_cicle (tempo do último ciclo do OB1) em milisegundos e adicionar à nossa variável de temporizador. Esta variável temporária do OB1 entrando dentro da nossa FC é usada assim:
db_dados.tempo1 := db_dados.tempo1 + DINT_TO_TIME ( INT_TO_DINT ( OB1_prev_cycle ) );
Mas ter em atenção que se tivermos esta condição verdadeira durante 30 minutos e a ser chamada a cada ciclo o resultado não dá 30 minutos, mas sim 30minutos+ 32 ou 33 segundos. Não sei explicar porquê, mas é assim. Por isso usar apenas quando essa tolerancia for aceitável.

No comments: