Histórico por evento de tag

Boa tarde,
estou criando um histórico que deve ser escrito toda vez que um tag boleano é verdadeiro.
Já coloquei o Scan do histórico para zero e alterei o tag para AlwaysInAdvise, mas o histórico continua sendo gerado por scan. O que posso fazer para resolver esse problema.

Grato!

Adilson, por acaso não tem nenhuma associação ou script forçando a gravação por scan?

Boa tarde Gustavo,
eu não encontrei nenhum script ou associação, então criei um novo banco de dados e nova tabela com nomes diferentes e configurei o scan com 0. O único script script em que ele aparece é no tag que uso para escrever nele com evento OnRead do tag e o comando WriteRecord() do histórico. ele escreve em media 9 registros durante o mesmo segundo.

Por acaso a propriedade EnableDeadBand do Tag está desabilitada?

Ela esta habilitada. True.

E qual é o tempo de varredura do Tag?

O tempo de varredura é de 1000ms.

Adilson,

Se quiser pode mandar a sua aplicação para o meu e-mail que eu dou uma olhada.

Enviei o link do dropbox para dowload.
Grato!

Adilson,

O problema é que tem uma escrita no Tag (Value = False) dentro do próprio evento OnRead. Isso gera uma recursividade no script. Teria que ter uma condição para ele executar somente quando o valor do Tag for igual a True. Por exemplo:

Sub DESCARREGOU_OnRead()
	if Value then
		Application.GetObject("Hist_REL").WriteRecord()
		Value = False
	end if
End Sub

Olá Gustavo,
era isso mesmo, não tinha percebido este detalhe, alterei como sugeriu e funcionou corretamente.
Muito obrigado pela ajuda!

1 Like