INÍCIO > Fórum > Discussões sobre problemas gerais > Análise de string da porta serial
- Este tópico tem 2 respostas, 2 participantes e foi atualizado pela última vez 1 ano, 10 meses atrás da Stephen.
-
autorPublique
-
Pode 20, 2022 em 3: 54 pm #65318Stephenparticipante
Eu tenho que conectar uma impressora antiga a um SCADA para monitorar sua operação.
A prensa me dá 4 contatos limpos com os sinais:- Ciclo em andamento
- Operação automática
- Operação manual
- Parar devido ao alarmetambém possui uma porta serial, à qual deve ser conectada uma impressora somente de texto, que ao final de cada ciclo emite uma string contendo cerca de dez valores operacionais e um novo caractere de linha. Então algo como:
"1.33 84.9 7893 22.5 6.74 etc. etc."
"1.93 87.4 7894 23.5 6.94 etc. etc."As strings têm sempre 80 caracteres, os valores parecem ser campos de largura fixa alinhados à direita.
Devo adquirir os valores digitais e disponibilizá-los em uma palavra via modbus TCP, o que é bastante trivial. Ao mesmo tempo, leia a string da linha serial até o caractere de fim de linha, descarte as linhas inválidas (quando a máquina calcula que está em uma nova planilha, emite os cabeçalhos e traços das colunas), divida os campos, converta-os de texto para número e disponibilize-os via modbus. Talvez salve as strings recebidas em um arquivo de texto para depuração.
Eu estava pensando em usar um MPS056A320.
A ideia era fazer um loop que lesse um caractere por vez do serial e o anexasse a um buffer. Quando você atingir os 80 caracteres, ou o caractere de nova linha, divida a string em X strings de dimensão Yx e converta-as com SysVarsscanf. Se o SysVarsscanf não apresentar erros, copie os dados para os locais acessíveis pelo modbus.
A abordagem é um pouco de baixo nível, mas parece bastante robusta para mim.
Existem bibliotecas mais avançadas que me escapam?Pode 23, 2022 em 10: 29 am #65321Sergio BertanaAdministrador do fórumEu diria que é a melhor solução, se você der uma olhada no capítulo Semplice protocollo seriale na documentação do FB SysSerialPort, você já encontra um ponto de partida para sua aplicação.
Junho 8, 2022 em 11: 28 am #65484StephenparticipantePara depurar a aplicação seria útil ter uma página web que mostrasse o log das strings recebidas via serial. Exatamente o que a página da Web do sistema que mostra os logs faz. Existe uma maneira padrão de replicá-lo apoiando-se em um arquivo de texto diferente?
-
autorPublique
- Você deve estar logado para responder a este tópico.