Modbus ASCII

Estou desenvolvendo uma aplicação com supervisão de um processo controlado por CLP, e encontrei alguns problemas no protocolo Modbus ASCII.
Seguem os problemas:

  • Não é possível ler mais de 10 data sources tipo holding registers. Quando deixo ativos mais de 10 data sources tipo holding registers, alguns pacotes de informação, sobretudo a leitura dos data sources tipo binário, deixam de ser enviados.

  • O sistema agrupa os data sources tipo binário, para resumir os pacotes de dados enviados. Isso é muito bom para a eficiência e velocidade de comunicação. Porém, na aplicação que estou desenvolvendo, o endereço das saídas (campo Offset (0-based)) é de 500h, e o endereço dos binários auxiliares é de 800h, de modo que quando solicitei que efetuasse a leitura de um data source com endereço 500h, e outro datasource com endereço 800h, o scadabr emitiu apenas 1 pocote de dados de leitura na extensão de 300h, e o CLP não responde uma solicitação de leitura tão “comprida” de endereços. Sugiro que determinem 32 como o número máximo de leituras de datasources tipo binário por pacote.

  • Da mesma forma como o sistema agrupa os datasources tipo binário, ele assim o faz também para os datasources tipo holding register. Sugiro que determinem 8 como o número máximo de leituras de datasources tipo holding register por pacote.

Estou a disposição para demais esclarecimentos. posso ser encontrado também no e-mail/msn fabricio_pasinato@hotmail.com e no telefone (54) 91725633.
Espero ter colaborado com o ScadaBR e fico no aguardo das soluções dos problemas deste driver.
Obrigado!

Olá Fabrício,

Você se refere à DataPoints ou DataSource? Está adquirindo de vários CLP´s? Tentou utilizar a opção “Contiguous batches only”? Modbus ASCII refere-se ao ASCII Serial ou Modbus IP?

Fico no aguardo.

Att.

Me refiro a DataPoints, estou usando somente um CLP, e consequentemente somente um DataSource. O protocolo é Modbus ASCII Serial.
Marcarei a opção “Contiguous batches only” e logo que testar entro em contato.

Grato.

Ok, tudo funcionando!
Obrigado!

Estou usando o DataSource Modbus ASCII serial, e tenho em meu projeto 13 DataSources tipo holding register e 21 Datasources tipo coil status.
Está ocorrendo que os Datasources tipo coil status estão sendo lidos em um intervalo muito grande, e em alguns casos deixam de serem lidos por minutos, enquanto para os DataSources tipo holding register, a leitura é feita com maior frequência (+ou- 0,3 segundos), e estes nunca deixam de ser lidos.
Além disso o tomcat6.exe passa a ocupar 15% do tempo de processamento da CPU.

Os mesmos problemas não acontecem quando tenho menor número de DataSources ativos.
Já testei vários valores de timeout e período de atualização, também marquei e desmarquei as opções Continuous batches only e echo on e off.

Obrigado.

De nada. =]

Que bom que foi solucionado.

Att.