Em uma rede serial de CLPs que comunicam com o Elipse SCADA, um dos CLPs foi desligado para manutenção. Por consequência, o driver apresenta uma mensagem de erro e pergunta se desejo abortar o driver – o que faz com que a comunicação com todos os CLPs seja perdida. O que é possível fazer para contornar esta situação e manter a comunicação com os outros CLPs?
Solução:
Para isso, uma possível solução é desabilitar a opção Abortar em Erro; entretanto, ao perder a comunicação com o driver, os tags entram em timeout.
Com isso, é necessário aplicar um filtro nos drivers através de um script no evento OnCommError utilizando a função AddFilter() do driver, que permite desabilitar a leitura ou escrita nos Tags PLC ou Bloco que possuam os mesmos parâmetros especificados no filtro.
Exemplo de script:
DIM strFilter
strFilter = Str(ModBus.GetErrorInfo(1))
Driver1.RemoveFilter(strFilter) // Evita adicionar o mesmo filtro mais de uma vez removendo o filtro anterior para o mesmo PLC
Driver1.AddFilter(strFilter)