Skip to main content

Comunicação RS232

Visão Geral

Em uma interface serial, os bits de dados são enviados sequencialmente através de um canal de comunicação ou barramento. Diversas tecnologias utilizam comunicação serial para transferência de dados, incluindo as interfaces RS232.

Alguns parâmetros precisam ser configurados para realizar a comunicação RS232, para isso, verifique o tópico RS232.

Existem 3 modos de operação da comunicação RS232.

  • Modo 0: Escravo Modbus;
  • Modo 2: Protocolo ASCII;
  • Modo 4: Telegramas genéricos.

NOTA! Os modos 1 e 3 são reservados.

Modo 0: Escravo Modbus

Verificar manual PLC300 - Comunicação Modbus RTU, disponível em http://www.weg.net/br.

O protocolo ASCII, via RS232, foi desenvolvido para leitura de códigos de barras.

Variáveis envolvidas:

  • RS232_MODE: marcador de sistema tipo BYTE que define o modo de funcionamento da RS232: o 2: protocolo ASCII;
  • RS232_RX_CLEAR: marcador tipo BIT; limpa o buffer de dados (RS232_ASCII_BYTEBUFFER) e o flag RS232_RX_FINISHED;
  • RS232_RX_FINISHED: marcador tipo BIT; indica que um pacote de dados está disponível no buffer RS232_ASCII_BYTEBUFFER;
  • RS232_ASCII_BYTEBUFFER: buffer de 256 bytes que armazena os caracteres recebidos;
  • RS232_ASCII_STRING: buffer tipo STRING que pode ser mostrado na tela do PLC300 pelo componente ‘Text Output’.

Como utilizar a RS232 no modo ASCII:

  1. Selecionar o protocolo ASCII fazendo: RS232_MODE = 2, no Ladder;
  2. Dar um pulso no marcador RS232_RX_CLEAR, para limpar o buffer RS232_ASCII_BYTEBUFFER, e o flag RS232_RX_FINISHED;
  3. Ao receber um pacote, o flag: RS232_RX_FINISHED vai para TRUE;
  4. Os dados estão disponíveis para o Ladder através do array: RS232_ASCII_BYTEBUFFER, de 256 bytes;
  5. Para utilizar com a função ‘Text Output’, da IHM, utilizar o marcador tipo STRING, RS232_ASCII_STRING.

NOTA! Mesmo sem ligar RS232_RX_CLEAR, o sistema pode receber outra leitura, colocando os dados por cima da leitura anterior.

NOTA! A finalização do pacote é feita quando recebe os caracteres CR/LF (0x0d/0x0a).

NOTA! Os caracteres CR/LF não são armazenados no buffer.

NOTA! O buffer é terminado com caractere NULL (0x00).

A configuração da RS232 deve ser feita pela configuração normal do PLC300; Nas telas, foi acrescentado o componente 'Text Output' que aceita somente o tipo STRING, para mostrar RS232_ASCII_STRING, que é a string que mostra o valor lido pelo protocolo, limitado a 20 caracteres (limitação da função output = 1 linha).

Modo 4: Telegramas genéricos

Funcionalidade desenvolvida para envio e recepção de telegramas através da comunicação serial RS232.

Variáveis de comando envolvidas:

  • RS232_MODE: Marcador do tipo BYTE; define o modo de funcionamento da RS232:
  • 4: telegramas via RS232.
  • RS232_TIMEOUT: marcador tipo WORD; indica o tempo máximo (em ms) de espera de uma resposta, impedindo que novo telegrama seja enviado antes que esse tempo transcorra.
  • RS232_END_CHARACTER: define um caractere que pode terminar um telegrama, por exemplo, ETX (03H). Ao receber esse caractere, o PLC300 considera que os bytes recebidos até ele são os necessários, os demais serão ignorados.
  • RS232_ENABLE_END_CHARACTER: marcador tipo BIT; marcador de sistema que habilita a utilização do caractere de finalização de telegrama especificado em RS232_END_CHARACTER;
  • 0: desabilitado;
  • 1: habilitado.
  • RS232_START_TX: marcador tipo BIT; o telegrama é enviado na borda de subida desse marcador;
  • RS232_TX_ADDRESS: marcador tipo WORD; indica o endereço inicial dos dados a serem transferidos;
  • RS232_TX_LENGTH: marcador do tipo BYTE; indica o número de bytes da informação a ser enviada;
  • RS232_RX_ADDRESS: marcador tipo WORD; indica o endereço inicial dos dados recebidos;
  • RS232_MAX_RX_BUFFER_LENGTH: marcador do tipo BYTE; indica o número máximo de bytes que pode ser recebido;

Variáveis de status envolvidas:

  • RS232_TX_TELEGRAM_COUNTER: marcador tipo WORD; conta o número de telegramas enviados;
  • RS232_RX_TELEGRAM_FINISHED: marcador tipo BIT; indica que um pacote de dados esta disponível na memória a partir do endereço indicado em RS232_RX_ADDRESS.
  • RS232_TX_FINISHED: marcador tipo BIT; indica que um pacote de dados foi enviado completamente.
  • RS232_TIMEOUT_INDICATOR: marcador tipo BIT; indica se transcorreu o tempo especificado em RS232_TIMEOUT.
  • 0: não ocorreu estouro;
  • 1: ocorreu estouro de tempo.
  • RS232_RX_TELEGRAM_COUNTER (status): marcador tipo WORD; conta o número de telegramas recebidos;
  • RS232_RX_BYTE_COUNTER (status): marcador tipo WORD; conta o número de bytes que foram recebidos.

Como utilizar a RS232 para envio e recepção de telegramas:

  1. Selecionar "envio e recepção de telegramas via RS232" fazendo RS232_MODE = 4 no Ladder;
  2. Configurar o endereço inicial dos telegramas a serem enviados e recebidos em, respectivamente, RS232_TX_ADDRESS e RS232_RX_ADDRESS;
  3. Especificar o tamanho (em bytes) do telegrama a ser enviado através do marcador RS232_TX_LENGTH;
  4. Especificar o tamanho máximo (em bytes) do telegrama que pode ser recebido, através do marcador RS232_RX_LENGTH;
  5. Especificar o timeout em RS232_TIMEOUT;
  6. Se for o caso, configurar os caracteres de finalização de telegramas através, respectivamente, dos marcadores: RS232_ENABLE END_CHARACTER e RS232_END_CHARACTER;
  7. Resetar o flag RS232_RX_TELEGRAM_FINISHED para ficar pronto para receber um telegrama;
  8. Dar um pulso em RS232_START_TX para enviar um telegrama.

NOTA! Será considerado fim de recepção de telegrama, o recebimento do caractere especial, se configurado em RS232_END_CHARACTER, com o flag RS232_ENABLE_END_CHARACTER habilitado, ou um timeout igual a duas vezes o tempo de transmissão de um byte.

Compatibilidade

EquipamentoVersão
PLC300Modo 0: 1.00 ou superior
PLC300Modo 2: 1.11 ou superior
PLC300Modo 4: 1.50 ou superior