OnTagRead do Driver para escrever no Banco de Dados

Estou utilizando o Evento OnTagRead do driver de comunicação Drivers\ABCIP\ABCIP.dll
Utilizo a tag de comunicação “SUP_SALVA_PRODUCAO_CAIXAS_TURNO_1” como Trigger para escrita de dados no meu Bando de Dados. A intenção é que quando esta tag está com o valor 1, gravaria alguns dados no Banco de dados e em seguida a tag seria colocada no valor 0.

Sub CLP Mezanino Caixas_OnTagRead
IF Tag.Value = 1 THEN
IF Tag.Name = “SUP_SALVA_PRODUCAO_CAIXAS_TURNO_1” THEN
Set TagGravaCaixas = Application.GetObject(“HistCaixas”)

TagGravaCaixas.Turno            = 1
TagGravaCaixas.PaletesCompletos = Item("PRODUCAO").Item("IHM_HistoricoTurno1_Palete_Completo").Value
TagGravaCaixas.CaixasL1         = Item("PRODUCAO").Item("IHM_HistoricoTurno1_Caixas_Linha1").Value
TagGravaCaixas.CaixasL2         = Item("PRODUCAO").Item("IHM_HistoricoTurno1_Caixas_Linha2").Value
TagGravaCaixas.CaixasL3         = Item("PRODUCAO").Item("IHM_HistoricoTurno1_Caixas_Linha3").Value
TagGravaCaixas.CaixasL4         = Item("PRODUCAO").Item("IHM_HistoricoTurno1_Caixas_Linha4").Value
TagGravaCaixas.CaixasRejeito    = Item("PRODUCAO").Item("IHM_HistoricoTurno1_CaixasRejeito").Value

' Escreve no Banco de dados
Application.GetObject("HistCaixas").WriteRecord()

' RESET TRIGGER
Item("PRODUCAO").Item("SUP_SALVA_PRODUCAO_CAIXAS_TURNO_1").WriteEx 0

End IF
End IF
End Sub

Problemas:

  1. Não estou conseguindo executar a rotina pois o evento não está sendo gerado.
  2. Mesmo “forçando” o evento (SUP_SALVA_PRODUCAO_CAIXAS_TURNO_1=1) os dados não estão sendo gravados.

Alguém poderia me ajudar nesta questão?
Segue as imagens das configurações efetuadas

Ola @edinunes,

Se colocar um display na tela para verificar o valor do tag “SUP_SALVA_PRODUCAO_CAIXAS_TURNO_1”, o script é executado?
Outra opção seria utilizar o método Trace para registrar o passo a passo do seu script e identificar onde esta parando o script.
Em ultimo caso, envie o log E3 junto com o horário que ocorreu a mudança do tag para link@elipse.com.br.

Att.
Link

Caro @edinunes,

Verifique tambem se nao e o caso do artigo abaixo.

Att.
Link

SOLUCIONADO

  1. Criar tag´s internos com sua definição de tipo para as Fontes do Histórico a ser gravado.
  2. No evento ONTagRead do driver atribuir as tag´s do CLP 'as tags internas criadas e utilize Método WriteRecord() do Histórico a ser gravado.

OBS: Se as tags do CLP não estiverem presentes em nenhuma tela, altera a Propriedade AdviseType de cada uma delas para 0 - AlwaysInAdvise

1 Like