Protocolo para PIC

Bom dia!
Preciso de ajuda para fazer meu TCC não conheço quase nada de microcontroladores e não estou conseguindo criar um protocolo para enviar um bit para o ScadaBr.
O que preciso é um protocolo em RS-485 onde eu aciono uma tecla de um circuito e ele envia para o scada o valor da tecla.Se apertar a tecla 1 envia o ‘1’ para o scada,será em RS-485 porque terei varias placas.
Desde já agradeço a atenção.

Boa tarde Alexsandro,

Cara, você terá que partir pelos seguintes pontos:

  1. Você sabe implementar o codigo em RS-485 para os PIC Slave ? se sim, ja tem 50% do caminho pronto, pois você pode usar não modbus, mas o protocolo serial ASCII do ScadaBR para fazer essa comunicação, (no caso de Leitura), se tiver que escrever dados no PIC, ai realmente te indico o protocolo Modbus, pois para escrever em protocolo ASCII também estou apanhando feio do ScadaBR.

  2. Tera de implementar a logica Modbus dentro do PIC de forma que você consiga trabalhar com Holding registers pelo ScadaBR, dessa maneira você consegue ler e escrever dados no PIC, tem algum material na internet para protocolo Modbus como segue os links abaixo:

http://shahrulnizam.com/pic-lesson-modbus/

Tem também livro para comprar que explicam passo a passo de como fazer, claro que, não estou fazendo propaganda dos livros, mas geralmente os livros indicados pela Cerne são bons.

http://www.clubedosautores.com.br/book/33947--MODBUS_para_PIC

Estou também desenvolvendo aplicações com protocolo Modbus para PIC 18F, assim que conseguir mais informações eu posto aqui, espero ter ajudado.

Abraços,

Marcel Martine

Em ASCII seria mais fácil, bastando enviar um ou mais carácter em intervalo de tempo de um 1 em 1 segundo por exemplo.

Ex de programa:
Delay_MS 1000
IF PORTA.0 = 1
SEROUT “1”
ELSE
SEROUT “0”
ENDIF

Para o Modbus não tem exemplo simples, tem que implementar toda a função, mas a lógica não é tão complicada, veja neste site com exemplos:

http://www.simplymodbus.ca/FAQ.htm

Você teria algum exemplo completo do ASCII?Me parece mais simple pois a unica coisa que vou enviar será o numero de peças produzidas e o codigo de parada quando este existir, o pic não receberá dados do mestre ele só envia,minha duvida é se não vai dar comflito se dois escravos enviarem os dados juntos.

Tera que usar a opção de “comando” em ASCII no ScadaBR, assim só vai responder quando o DataSource pedir atualização, de outra forma teria conflito como observou.

Ficaria assim o codico:

//PIC 1//

comando = SerialIN // Recebe dados
IF comando = 1
IF PORTA.0 = 1
SEROUT “1”
ELSE
SEROUT “0”
ENDIF
ENDIF

//PIC 2//

comando = SerialIN
IF comando = 2
IF PORTA.0 = 1
SEROUT “1”
ELSE
SEROUT “0”
ENDIF
ENDIF

Basta adaptar para seu compilador

Olá graça e paz a todos,
Pessoal pretendo criar ou tornar uma imagem com ‘‘vida’’ animado, para representar por exemplo um termômetro onde possa ser possível visualizar na tela do supervisório o valor da temperatura lida em tempo real, conto com a vossa ajuda.

Grato,
Magno Bindá

Olá Magno,

O ScadaBR já possui um termômetro em sua biblioteca de componentes. Mas se quiser inserir novos componentes, no forum temos diversas informações de como criá-los.

Att.

boa tarde pessoal, sou novo aqui no forum por isso pesso desculpas por algum incoveniente ok ,

é o seguinte, eu tenho 2 entradas analogicas no pic uma para temperatura e outra para tensao , gostaria de visualizar no scadabr , uma leitura somente eu ja consigo, mas  nao consigo ter os dados das 2 ao mesmo tempo 

podem me dar uma ajuda com isso ?

estou  comunicando  via serial em ascii

obrigado !

Oi Daniel,

só um link responde sua pergunta

http://www.regular-expressions.info/tutorial.html

Regex é a solução.

Abs

senhores me desculpa mas  esse link acima nao me respondeu em nada .....
preciso de ler  2 leituras analogicas no scadabr 

fico no aguardo .