Alguém conhece o scadabr e sabe como usa-lo, caso conheça por favor entre em contato pois preciso de algumas informações.

Uma delas é o protocolo modbus pois queria saber como comunicar um sensor,atuador,etc como o supervisor por meio de um microcontrolador ou coisa paracida, me parece que para poder acionar ou receber informações o supervisorio precisa de um clp (que é caro) ou por um microcontrolador?

se alguém tiver informações sobre como usar e implementar ou pelo menos mostrar o caminho das pedras já agradeço.

adriano

Exibições: 97571

Responder esta

Respostas a este tópico

Perfeito post Wiechert, apenas acrescento que se a lib do jpmzometa estivesse colocando algum delay (em mili ou microsegundos) no loop de leitura, resposta (menos comum) ou em qualquer ponto, isso influenciaria na colisão quando no uso de mais escravos. Concorda?

Entretanto, observando a referida lib neste momento, não há delay algum, o que, por esse lado, é bom, mas isso não significa que está correto pois o loop de leitura feito lá é bastante "cru" e sujeito a erros de leitura.

A nova lib acrescenta um pequeno delay em microsegundos e é feito um loop com available() antes da leitura propriamente dita. Isso tudo vai requerer que prestemos mais atenção ainda nos parâmetros de configuração do ScadaBR quando usarmos vários escravos.

Essa foi a parte da lib que eu menos dei atenção, me concentrei mais em tornar seu uso facilitado e com total suporte as funções modbus mais importantes.

É bem provável que seja necessário um fine tuning nessa área, o bom é que isso não vai mudar nada na interface da lib e nos programas feitos com ela. 

O frame RTU do modbus é todo formatado em tempo... 

A lib JPM funciona perfeitamente, o maior problema não é em ficar se preocupando com a lib JPM mas sim com o resto do seu código, evitando que outras libs do código usem interrupções que possam atrapalhar a comunicação entre o escravo e o mestre, e isso pode acontecer com qualquer das libraries modbus rtu, seja ela a antiga JPM ou a sua nova library, pois isso é uma restrição do protocolo. 

Para aplicações onde o uso de outras interrupções ou o tempo do ciclo do programa começe a entrar em conflito com o frame RTU, pode-se partir para dividir o processamento entre dois ou mais mcus ou então abandonar o RTU e passar para o modbus ASCII. Existe uma lib ASCII funcional feita pelo pessoal do projeto SCADABR, muito embora isso acaba por limitar o uso do escravo, pois o RTU é de fato o padrão mais usado na indústria.

Em relação as funções modbus na minha opiião a lib JPM já continha as mais importantes, pois o grupo de funções de leitura e escrita dos holding registers são na prática o que se usa na maioria das aplicações industriais, as de leitura de entradas digitais e as de escrita de saídas digitais eram na verdade pra uso em remotas da modicom, podendo ser (e na prática são) substituídas pelo manejo dos holding registers pois podemos colocar qualquer coisa nelas.

De qualquer forma parabéns pelo seu esforço em fazer esta nova library.

Wichert, 

lendo a sua resposta, a logica que me vem a cabeça é que se o RTU é motivo para ser afetado por libraries de terceiros, entao por que o padrao RTU é o mais usado na industria,qual a diferença do nosso padrao RTU para o padrao RTU da industria?

Adriano,

Não existe " diferença do nosso padrão RTU para o padrão da indústria" o padrão é um só, mas o processador só faz uma coisa de cada vez, e quando se usa o RTU tem que se dar a devida importância para que as outras funções do sketch não tomem o tempo do processador ao ponto de atrapalhar a comunicação.

Existem sketchs mau feitos, que tomam o tempo do processador. Nas aplicações industriais o firmware é testado como um todo, sem que ocorra essa "disputa entre librarys".

Hum perfeito, entao a questao é o tipo de sketch que se trabalha, bem interessante saber disso 

Sim, concordo.

Ao prover outras funções modbus para acesso às entradas/saídas digitais a intenção era poder utilizar a interface gráfica do ScadaBR com gifs binários e 'botões escrita', como na fig abaixo:

Provavelmente isso poderia ser feito de outra forma, usando somente holding registers, mas eu ficava com aquele sentimento de que não era a forma correta de fazer.

De qualquer forma, obrigado.

Boa tarde, Ainda estou com problema para enviar o código para o Arduino alguém pode mim ajudar

Arduino: 1.6.0 (Windows 8), Placa:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Usando biblioteca SPI na pasta: C:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI

Usando biblioteca Ethernet na pasta: C:\Program Files\Arduino\libraries\Ethernet



C:\Program Files\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega -IC:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI -IC:\Program Files\Arduino\libraries\Ethernet\src C:\Users\WILTON\AppData\Local\Temp\build2855987712900980153.tmp\Switch.cpp -o C:\Users\WILTON\AppData\Local\Temp\build2855987712900980153.tmp\Switch.cpp.o

Switch.ino:9:20: fatal error: Modbus.h: No such file or directory
compilation terminated.
Erro compilando.

Ainda está faltando a instalar a library.

Eu não sou um profissional de automação industrial e sim um profissional de redes e curioso de automação, e no meu entendimento seu eu posso acender ou apagar uma luz com apenas um bit porque eu usaria 16bits para ligar a lampada, eu um processo geral de uma planta quantos menos trafego na rede melhor, pelo menos é a nossa visao dentro da area de redes decomunicação

Wilton, 

no inicio do projeto scadabr, usavamos a IDE 0.23 parao codigo do jpmzomenta, já a nova lib do professor Andre,já deve está utilizando uma nova IDE, mais te aconselharia a usar a IDE 1.0 para a lib do Prof.Andre, ou no minimo a recomendada pelo documentação dele. em  caso de nao funcionar de jeito nenhum vc sempre pode utilizar a do jpzometa com a IDE 0.23 quesempre funcionou muito bem. Uma outra questao é de repente vc testar com outro arduino só para ver se ocorre o mesmo problema. Mas a parada é assim mesmo a gente tem que ralar pra fazer a primeira comunicação (as vezes), mas no geral com pesistencia sempre dar certo.

BLZ vou ver aqui...

O exemplo do manual usando a library JPM roda na versão 1.0 da IDE.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço