Demora para Viewer apresentar dados do PLC no Supervisório

Bom dia, estou com o seguinte problema: ao abrir o Viewer, está demorando certa de 40 segundos para que os dados dos PLCs comecem aparecer, o que poderia ser a causa?

Bom dia!
Vou escrever abaixo algumas hipóteses:
1 - Comunicação lenta com o CLP
2 - Muitos scripts no Viewer ou Tela
3 - Scripts na tela que fazem muita escrita e leitura nas tags.

Pergunta: Essa demora é apenas em um Viewer em outro computador ou a lentidão é no mesmo computador que tem o E3 Server?

Olá Lecenio, boa noite.
Percorri as suas dicas e acho muito válido. Sobre os scripts, tenho poucos no Viewer, mas teria algum outro lugar melhor que no Viewer?
Outra dúvida, como medir a comunicação lenta do CLP?
Aconteceu algo mais estranho ainda (pra mim), no supervisório está sendo mostrado dados completamente diferente do real, por exemplo, equipamentos ligados porém no supervisório mostrando que estão com emergência.

Sobre a pergunta: o Viewer e o Sever ficam no mesmo computador.

Bom dia @jessefilipe16,

Verifique se as suas associações estão apontando para a Propriedade .value do Tag de comunicação.

Veja dentro das telas, especialmente os scripts personalizados que podem ser executados ao modificar um valor de uma Tag ou executadas de tempos em tempos.

Eu acesso o programa do CLP e vejo os valores, ao mesmo tempo que estou olhando o supervisório.

Descarte o tempo de varredura, ou seja, os blocos de tags e os tags são atualizados a cada X milissegundos e isso é configurável.
Quando a comunicação está lenta, eu começo a aumentar o tempo de scan de informações não muito importantes ou de variáveis que não mudam muito. Por exemplo, em muitos processos a temperatura se altera lentamente, nestes casos eu chego a configurar varredura para 30000 justamente para ler de forma mais rápida outras tags como alarmes.

Qual é o driver de comunicação?

Boa tarde Lecenio.

Descobrimos que existe um PLC com problema na rede, que foi resetado por algum motivo e voltou com configuração de fábrica e então estava com mesmo IP, logo estava derrubando outro PLC que o que estava dando problemas.

Agora o que eu gostaria de fazer é otimizar o tempo de leitura do PLC, digo o seguinte, quando abro o supervisório, demora certa de 1m40seg para começar à aparecer alguns dados.

Qual é o driver de comunicação?

Olá Lecenio, desculpe a demora. Uso DriverOPC. Preciso melhorar o tempo de leitura das tags, pois tem momentos que um PLC especificamente não lê.

Boa tarde.

“tem momentos que um PLC especificamente não lê” - Isso significa que você está chegando em algum limite (processamento do computador, limite de rede ou de protocolo).

Quando chegamos em algum limite, precisamos priorizar, no seu caso de driver OPC, recomendo duas alterações:

1 - Divida os tags em “Grupos de tags OPC” diferentes e com tempo de SCAN diferentes. Por exemplo: Parâmetros não precisa ficar lento a cada 1 segundo, por ser em minutos. Dependendo do processo, temperaturas podem ser lidas a cada 1 minuto e não a cada 30 segundos.

2 - As Tags que não podem falhar leitura, defina a propriedade AdviseType para “0 - AlwaysInAdvise”

Desejo uma ótima semana!

Boa tarde Lecenio, ótimas dicas. Vou verificar.

Esse parâmetro “AdviseType”, não encontrei.

Aproveitando mais uma dúvida sobre o assunto, como faço para verificar se o PLC está comunicando ou se está online dentro do supervisório?

Boa noite

Veja a imagem abaixo, AdviseType é uma propriedade de cada tag.
image

Para verificar se o PLC está comunicando, use o Watch Window, encontre esse ícone na barra de ferramentas: image

Espero que tenha ajudado novamente!

Boa noite, o que significa este parâmetro " AdviseType"?

Boa tarde

Todos os tags são lidos sob demanda. Exemplo mais comum: a tag está vinculada a uma janela, algum Viewer está com esta janela aberta? Se sim, realiza a leitura constante, senão não realiza a leitura.

Tags associadas com alarmes estão constantemente sendo lidos, independente se estão sendo exibidos ou não.

Todo tag com AdviseType = AllwaysInAdvise é lido constantemente, independente se está sendo exibido na tela ou não. É essencial quando você roda scripts que precisam do valor sempre atualizado.