Boa tarde!
Estou em fase final de testes e homologação do meu sistema! (ufa!) E agora estou lidando com os problemas intermitentes que surgem.
Entre esses problemas eu tenho 2 muito importantes para eu lidar:
1 - Lentidão na execução dos scripts e comandos, lentidão no envio e recebimento da comunicação ModBus TCP;
2 - Pode estar relacionado com o problema acima, mas às vezes simplesmente o sistema não executa um comando ou comunicação ModBus. Ele “pula” esse comando ou ignora, sem falhas ou erros. Pode ser um comando interno que só usa datasources virtuais ou um externo, que comunica com o CLP. Na maioria das vezes criar um atraso de 1s entre comandos resolve e, na minha aplicação, não implica muitos problemas, exceto na execução do primeiro comando para dar responsividade ao usuário.
Sobre o problema 1 já tentei manipular o período de atualização do Modbus, o timeout, número de tentativas, keep alive, etc. Nada parece mudar muito. O tempo para que CLP responder é de quase 2s, sendo que na especificação me parece que ele executa a comunicação ModBus em 100ms, ou seja, tempo de resposta de quase 20 ciclos!
Sobre o 2, eu realmente não sei. Monitorando processamento e ram eu não vejo excesso, muito muito raramente ele chega em 70% de processamento e os 8GB de ram estão sobrando muito.
Eu já consegui simular problemas forçando processamento pesado no servidor. Quando está a 100% simplesmente os comandos não funcionam. Não são executados com atraso, simplesmente nem são executados.
Como eu posso fazer para otimizar isso tudo?
Levando em conta que o meu servidor é um Intel NUC com Celeron J3455 e 8GB de ram ddr3 rodando windows pro (pra utilizar RDP). Pra mim é importante porque aí eu posso manipular o CLP a distância utilizando o software da Siemens que só funciona em windows.
Desde já agradeço a todos!