Comunicação ASCII SERIAL - dúvidas

Boa tarde pessoal, tudo bem com vocês?!

Percebi que nos posts anteriores ainda não obtivemos sucesso claro postado nas respostas, por isso resolvi abrir esse tópico novamente…
Meu problema é o seguinte: Preciso efetuar a leitura de algumas variáveis através da porta serial através do ASCII serial, mas não consigo obter nenhuma leitura desses valores…
Uma das solicitações que envio (preenchendo o campo Comando) é a seguinte: :03R08E2;
Onde -
: - Caractere de início da mensagem
03R é padrão em todas as solicitações que preciso enviar
08E2 é relativo a informação que quero receber (nesse caso uma temperatura
; - Final da mensagem

A resposta que obtenho através de um aplicativo auxiliar de leitura da serial é a que segue:
:0AR01800000083;

Sendo -
: Inicio da resposta
0AR0 - Padrão para todas as respostas
1800 o dado que realmente me interessa
e o restante também não tem influencia na minha resposta…

Como configurar o data source para receber isso?

As propriedades de comunicação são baud rate 1200, bits de dados 8, paridade none, stop bits 1…

Já tentei de diversas formas, mas não sai do lugar…

Agradeço a ajuda!!!

Murilo

@Murilo,

vou fazer uma pergunta, para começar. Você ao configurar o datasource colocou que é para usar o ASCII?
Pergunta óbvia, mas temos que começar a entender, correto.

Olá @farmsid !! Boa tarde…

Sim, coloquei que é para ASCII!!!Fique a vontade para fazer a pergunta que julgar necessária…assim mesmo que seja óbvia para alguns, pode ajudar outros!!!

Observei isso nas configurações:

Na aba conexão, não aparece nada…embora esteja configurado para a porta COM3…já viram isso?!

@farmsid…Obrigado antecipadamente pela iniciativa em ajudar!!!

Começam a pipocar as ideias na minha cabeça. Veja, temos que saber qual o seu protocolo.
Vc pode usar o ASCII direto, ou via modbus.
Percebeu isso? Sabe, com certeza, o que seu equipamento usa?

@farmsid…não tenho certeza…essa é a resposta…tomei por base outro programa que utilizo para monitorar a porta serial do computador e ver os dados trafegados…sei quais são exatamente as mensagens que preciso enviar ao meu equipamento para obter o dado que me interessa…as mensagens de requisição do dado tem sempre esse mesmo padrão - começam com “:”, depois 03R, seguido do dado solicitado 082E (nesse caso a temperatura da placa eletrônica do equipamento) e finalizada por “;” .
Segue exemplo:
Ao enviar :03R08E2;
Obtenho a resposta :0AR01800000083…onde o 1800 (está em hexa) corresponde a 24,00°C. (que vem sempre com esse mesmo padrão também, independente do dado solicitado). Os dados de interesse também retornam sempre exatamente nessa posição do frame de dados.

No programa que leio essas informações, ele traz isso como ASCII. Esses dados estão sendo disponibilizados via serial por um CI MAX232…

Obrigado mais uma vez pelo apoio…estou apanhando um pouco com esse problema na elaboração de meu TCC…embora trabalhe na área, estou esbarrando em muitas dúvidas…

Mais uma vez obrigado e fico no aguardo…

Já que vc falou que pode fazer todo o tipo de pergunta, mesmo as mais bobas,
então lá vai:

Qual versão do ScadaBR vc está utilizando? normalmente a versão 0.9x funciona bem no seguinte padrão de instalação
java6 update45 e tomcat6, ai vc somente teria que instalar o drive serial TXRX para rodar tranquilo sua conexão.

Se não me engano em versões de SO 64 bits vc pode esquecer de usar serial até onde sei ainda não foi feito upgrade para porta serial em SO 64 bits

se vc ja esta utilizando uma porta serial vc pode esquecer de usar outra pois no ScadaBR por enquanto só é habilitado uma porta serial, o que vc pode fazer é substituir o RS232, por 485 que vc pode usar vários hosts numa mesma porta, mas vc tem que trabalhar a questão do polling que deve ser bem regularizado.

Existem algumas equipes que já estão trabalhando no código do projeto ScadaBR, para atualiza-las, inclusive eu, mas eu ainda estou no B-A-BA do código.

@Dino_CH tudo bom? também tenho interesse em trabalhar no código, eu preciso aprender o início também. pode me passar algum material?

Jonathan
O que posso te passar e o que sei, no geral o projeto scadabr e baseado em java EE, e eu to estudando um pouco dos dois lados java SE ( que e o basicao) e o java EE ( que se baseia principalente em JSF e servelet), vc pode baixar o codigo pelo sourceforge, vc tem que ter um eclipse e baixar o subeclipse que e Um SVN do eclipse, feito isso e soi baixar pelo site :slight_smile:

svn://svn.code.sf.net/p/scadabr/code/trunk scadabr-code

dai vc baixa todo o codigo e maos a obra

ps: e importantissimo enteder de java para trabalhar com scadabr e complementos como CSs, html, javascript e bancp de dados com (MySQL e MariaDB)
do resto e ralar no codigoqalquer coisa estamos ai para ajudar no forum

@Dino_CH, obrigado pelas dicas…minhas configurações são as seguintes: estou efetuando testes e usando SO 64bits…vou testar com outro SO…estou com o SCADABR 1.0, Java 6 Update 45 e Tomcat 6… não instalei nenhum driver adicional…esse driver TXRX precisa ser instalado?! É fácil de encontrar?! Agradeço a ajuda de todos!!!

Att.
Murilo

Te aconselho a nao utilizar SO 64 bits(pelo menos, por enquanto), utilize um 32bits, as outras configuraçoes estao de acordo, o drive TXRX, vc so deve utilizar se vc vai usar um SCADABR 0.9X. Se vc utiliza o 1.0 vc nao vai precisar deste drive.

Obrigado meu amigo!
Estou estudando muitas coisas inclusive java, html, javascript. pra dar uma boa melhora no meu conhecimento de programação. Estudarei os dois lados sim! obrigado pela dica.

Sem duvida você esta se comunicando através de frames Modbus ASCII através da serial.
Desabilita este teu DataSource e cria um novo to tipo “Modbus Serial” configura ele com os parâmetros da tua porta serial e troca o padrão de RTU para ASCII, ai adiciona um DataPoint para o valor.
Acho que vai remover o cabeçalho do frame.