CONFIG_SERIAL

Configura o canal serial especificado (baud rate, data bits, paridade, stop bits e protocolo) apenas em RAM — se o equipamento for resetado, a configuração salva em flash é restaurada — exigindo uma transição de subida em START para executar. É um bloco de função (mantém estado entre scans; requer instância).

Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função

Bloco de função

             CONFIG_SERIAL
          +-----------------+
 BOOL ----|START    COMPLETE|---- BOOL
          |                 |
USINT ----|CHANN      RESULT|---- INT
          |                 |
USINT ----|BAUD             |
          |                 |
USINT ----|DATA             |
          |                 |
USINT ----|PARITY           |
          |                 |
USINT ----|STOPB            |
          |                 |
USINT ----|PROT             |
          +-----------------+

O bloco necessita de uma transição de subida em START para executar a configuração. A configuração é aplicada somente em RAM; após um reset do equipamento a configuração salva na flash é restaurada. A restauração dos valores salvos em flash também pode ser realizada com o bloco de função RESTORE_COMM. O uso do código 255 em qualquer entrada mantém o valor atualmente configurado para aquele parâmetro.

Nota

Verifique na especificação do equipamento utilizado se o firmware do mesmo possui recurso para o protocolo desejado.

CHANN — o canal de comunicação é especificado por um identificador (valor numérico). Para a configuração serial utilize os identificadores dos canais seriais (COM1 a COM8). Esses identificadores estão definidos no tipo COMM_CHAN_ID da biblioteca HI_STD:

Identificador

Ident.

Descrição

HILS.COM1_PORT_ID .. COM8_PORT_ID

0 .. 7

Canais seriais COM1 a COM8.

HILS.SOCK0_PORT_ID .. SOCK7_PORT_ID

8 .. 15

Controlador Ethernet 1: sockets 0 a 7.

HILS.ETH2_SOCK0_PORT_ID .. ETH2_SOCK7_PORT_ID

16 .. 23

Controlador Ethernet 2: sockets 0 a 7.

BAUD — código do baud rate:

BAUD

Baud rate

0

1200

1

2400

2

4800

3

9600

4

19200

5

38400

6

57600

7

115200

255

Mantém o valor configurado

DATA — código do número de bits de dados:

DATA

Data bits

0

7

1

8

255

Mantém o valor configurado

PARITY — código da paridade:

PARITY

Paridade

0

Nenhuma

1

Par

2

Ímpar

255

Mantém o valor configurado

STOPB — código do número de stop bits:

STOPB

Stop bits

0

1

1

2

255

Mantém o valor configurado

PROT — código do protocolo:

PROT

Protocolo

0

ASCII

1

ASCII com SOF

2

ASCII com EOF

3

ASCII com SOF + EOF

6

MQTT_CLIENT

8

MODBUS-RTU

9

MODBUS-TCP

10

HTTPServer

255

Mantém o valor configurado

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

FALSE

—

Transição de subida inicia o processo de configuração dos parâmetros.

CHANN

IN

USINT

—

COMM_CHAN_ID (canais seriais)

Identificador do canal serial a ser configurado (COM1 a COM8).

BAUD

IN

USINT

255

0 .. 7 · 255

Código do baud rate a ser configurado (255 mantém o atual).

DATA

IN

USINT

255

0 .. 1 · 255

Código do número de bits de dados (255 mantém o atual).

PARITY

IN

USINT

255

0 .. 2 · 255

Código da paridade (255 mantém o atual).

STOPB

IN

USINT

255

0 .. 1 · 255

Código do número de stop bits (255 mantém o atual).

PROT

IN

USINT

255

vide tabela de protocolos · 255

Código do protocolo a ser configurado (255 mantém o atual).

COMPLETE

OUT

BOOL

FALSE

—

Indica o fim da execução do comando.

RESULT

OUT

INT

0

RET_CODE

Código de retorno da operação (ver Códigos de retorno).

Códigos de retorno

RESULT é do tipo RET_CODE: 0 ( HILS.SUCCESS ) indica que a função foi executada com sucesso; qualquer valor diferente de 0 indica falha e identifica o respectivo código de erro. Use os identificadores com o namespace HILS (ex.: HILS.CO_INV_CHA). Códigos comumente observados nesta função:

Código

Identificador

Significado

0

SUCCESS

Configuração aplicada com sucesso.

4

GL_HDW_SUP

Equipamento sem suporte de hardware/firmware para o recurso solicitado.

5

GL_INV_PAR

Parâmetro inválido (código de baud/data/parity/stop/protocolo não suportado).

74

CO_INV_CHA

Canal de comunicação inválido.

Lista completa dos códigos de retorno: RET_CODE - Códigos de retorno do firmware G5.

Pré-condições

  • CHANN deve identificar um canal serial existente no equipamento (consulte o manual do equipamento para saber quais recursos de comunicação estão disponíveis).

  • O firmware do equipamento deve suportar o protocolo selecionado em PROT.

Observações

  • A configuração é gravada somente em RAM; um reset do equipamento restaura os valores salvos em flash. Use RESTORE_COMM para restaurar os valores de flash sob comando.

  • O código 255 em qualquer entrada preserva o valor atualmente configurado para o parâmetro correspondente.

  • RESULT é atualizado no encerramento do comando, quando COMPLETE vai a TRUE.

Ver também

RESTORE_COMM

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    CFG_SERIAL   : HILS.CONFIG_SERIAL; (* Instancia de configuração do canal serial *)
    MY_START     : BOOL := FALSE;      (* Flag de start *)
    COUNT        : UINT := 0;          (* Contador de execuções do comando *)
    MY_CHANN     : USINT := 0;         (* Canal a ser configurado (COM1) *)
    MY_BAUD_RATE : USINT := 0;         (* Baud rate a ser configurado (1200) *)
    MY_DATA_BITS : USINT := 1;         (* Data bits a ser configurado (8 bits) *)
    MY_PARITY    : USINT := 0;         (* Paridade a ser configurada (nenhuma) *)
    MY_STOP_BITS : USINT := 0;         (* Stop bits a ser configurado (1 stop) *)
    MY_PROTOCOL  : USINT := 8;         (* Protocolo a ser configurado (Modbus-RTU) *)
    RET          : INT := 0;           (* Recebe o RESULT (RET_CODE) *)
END_VAR

(* Exemplo do bloco de configuração de um canal serial *)
CFG_SERIAL(
  START  := MY_START,
  CHANN  := MY_CHANN,
  BAUD   := MY_BAUD_RATE,
  DATA   := MY_DATA_BITS,
  PARITY := MY_PARITY,
  STOPB  := MY_STOP_BITS,
  PROT   := MY_PROTOCOL
  );

(* Aguarda o fim da configuração *)
IF (CFG_SERIAL.COMPLETE) THEN
  RET := CFG_SERIAL.RESULT;
  COUNT := COUNT + 1;
  MY_START := FALSE;
END_IF;