Prezados Colegas,
Primeiro gostaria de parabenizar a iniciativa deste projeto, um software de alta qualidade. Porém, nem tudo são rosas, então vamos as dúvidas.
Estou desenvolvendo uma aplicação com arduino+sim900+placa de I/O desenvolvida por mim, com a idéia de criar um dispositivo de I/O remoto através de rede GPRS. Utilizo o protocolo de comunicação Modbus RTU e como DataSource o Modbus Serial. Como o scadabr não aguarda conexão tcp, estou utilizado um software chamado VSPE, onde o meu equipamento conecta através de um tcp server em uma porta específica, e o scadabr conecta através de uma porta serial virtual. O programa se encarrega de linkar a porta tcp com a serial virtual.
Em meus testes iniciais, somente com um equipamento, tudo funcionou perfeitamente, após ajuste do timeout, retries e o período de update. Estou com update de 45s, timeout em 15s e retries em 3. Porém agora estou com 5 equipamentos na mesma rede, e tenho um comportamento estranho. Dois dispositivos não se conectam nunca, quando todos estão na rede. Individualmente, os 5 conseguem se conectar.
Inicialmente testei criando um datasource para cada número de nó, colocando uma serial virtual para cada porta tcp, fazendo com que cada equipamento conecte em uma porta específica. O que pude notar é que o equipamento se conecta ao VSPE, porém o scadabr não envia nenhuma requisição Modbus. Aparentemente, quando o equipamento demora para se conectar, o scadabr tenta 3 vezes fazer a comunicação e depois não tenta nunca mais. Utilizando da mesma maneira, porém no Elipse Scada, obtenho um funcionamento normal.
Na segunda tentaiva, criei somente um DataSource conectado a uma porta serial virtual, onde todos os equipamentos se conectam na mesma porta tcp, e consegui comunicar conforme descrevi anteriormente, 3 equipamentos se conectam e 2 nunca se conectam. O interessante é que não necessariamente são sempre os mesmos 3 equipamentos, parecendo que existe um limitação na rede quando feita desta forma. Implementei no equipamento um registrador para me informar qual o período em que o mesmo recebe as requisições Modbus, e pude notar que quando coloco os 5 na rede, o período das requisições diminui consideravelmente dos 45s pré-estabelecidos.
No software VSPE posso acompanhar os IPs que conectam nele, assim como a transferência de bytes entre a serial virtual e o tcp server, e nele pude constatar que o scadabr parou de enviar requisições.
Tentei utilizar o DataSource Modbus IP encapsulado, porém os equipamentos reportam que a porta que designei para conexão está fechada. Um detalhe é que utilizei como host o endereço 0.0.0.0, para que o mesmo aceite conexão de qualquer lugar desde que seja na porta especificada no DataSource.
Gostaria da ajuda para poder terminar este projeto, e gostaria muito de utilizar o scadabr, porém sem estabelecer a rede conforme deveria, não poderei continuar com esta implementação. Fico no aguardo por ajuda dos senhores mais entendidos neste software.