Page 1 of 1

Transferência de dados binários pelo serial

Posted: Tue Feb 26, 2019 1:35 pm
by FRLara
Olá.
Eu preciso enviar e receber pacotes de dados para um modem, que possui um protocolo próprio. Porém, lendo a documentação do programa, as únicas funções de comunicação serial que encontrei são com os protocolos modbus, scp-hi, ou por texto ascii. Existe alguma função que permita essa comunicação diretamente com os dados binários (usando um buffer de dados na memória M, por exemplo)?

Fazendo uns testes, consegui usar o bloco SCB para manipular um texto com os códigos 245 e 21 (função substituir caractere), e escrever um por um os bytes que preciso (a função não confere se o byte é um código ascii válido, felizmente). Mas o programa iria ficar absurdamente confuso se eu implementar todo o protocolo de comunicação dessa forma. Além disso, esse método não vai funcionar se a mensagem for maior do que 48 bytes.

Qual a melhor forma de programar essa comunicação?
Estou usando o controlador RION+.

Obrigado.
Fabrício.

Re: Transferência de dados binários pelo serial

Posted: Tue Feb 26, 2019 6:42 pm
by Juliana
Prezado Fabrício,

Os dados vão ser tratados no RION ou enviados para outro canal de comunicação?

Você pode usar o bloco SCB de comunicação ASCII 240 e 241 (transmissão e recepção respectivamente)
Há um programa de exemplo disponível nesse link e lembre-se de utilizar " \ " antes de seus caracteres para enviar o valor hexadecimal. ATENÇÃO: Como os controladores da HI implementam o protocolo ASCII o caractere "\00" é interpretado como fim de string, sendo assim, se você necessitar enviar o dado 00 essa implementação não irá funcionar.

Para receber os valores em hexadecimal você pode utilizar as variáveis M associadas diretamente, pois as variáveis do tipo X são mapeadas em 25 M's. Você pode obter mais informações no tópico [SPDSW] Acesso a variáveis string (X) de CLP HI Tecnologia via MODBUS.

Qualquer dúvida estamos a disposição