LR_CTRL_RAK3172

Implementa a interface com o módulo de comunicação LoRa RAK3172 da BreakBoard, estabelecendo e mantendo automaticamente a conexão com o servidor LoRaWAN por um socket Ethernet e gerenciando a troca de mensagens de entrada e saída. É 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

               LR_CTRL_RAK3172
           +---------------------+
  BOOL ----|START       CONNECTED|---- BOOL
           |                     |
 USINT ----|COMM_SRC         R_EV|---- BOOL
           |                     |
 USINT ----|SEND           R_PORT|---- USINT
           |                     |
 USINT ----|LORA_MODE      R_CODE|---- INT
           |                     |
 USINT ----|S_PORT           S_EV|---- BOOL
           |                     |
           |                 S_ID|---- USINT
           |                     |
           |               S_CODE|---- INT
           |                     |
STRING ----|DEV_EUI ------------ |----
           |                     |
STRING ----|APP_EUI ------------ |----
           |                     |
STRING ----|APP_KEY ------------ |----
           |                     |
STRING ----|LORA_IMSG ---------- |----
           |                     |
STRING ----|LORA_OMSG ---------- |----
           +---------------------+

Funções principais do bloco:

  • Estabelece conexão com o servidor LoRaWAN pelo socket Ethernet especificado;

  • Gerencia eventuais quedas de conexão, reconectando com o servidor automaticamente;

  • Notifica a conexão bem-sucedida, permitindo ao usuário iniciar a troca de dados;

  • Sinaliza a recepção de mensagens do servidor LoRa, disponibilizando a porta e a mensagem associada.

O processo é iniciado através da ativação da entrada START, que deve permanecer ativa durante todo o tempo de execução. Ao ser ativado, o bloco inicia o processo de conexão com o LoRaWAN pelo socket Ethernet indicado em COMM_SRC. Concluído o processo com sucesso, a saída CONNECTED torna-se ativa, indicando que o servidor LoRa está conectado ao broker e funcional.

Quando o servidor enviar uma mensagem para o cliente, a saída R_EV gera um pulso; nesse instante, as saídas R_PORT e LORA_IMSG contêm o número da porta e a mensagem associada, respectivamente. R_CODE indica o resultado do processo de recepção.

Nota

LORA_IMSG deve ser processado durante o evento de R_EV, pois pode ser alterado nos ciclos seguintes.

Para transmitir uma mensagem, monte LORA_OMSG, defina a porta em S_PORT e ative SEND (valor diferente de 0). Ao término do envio, S_EV gera um pulso e S_CODE indica o resultado, enquanto S_ID identifica o item transmitido.

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Inicia o processo de gerência da conexão LoRaWAN (ativa na transição de subida) e deve permanecer ativo durante a execução.

COMM_SRC

IN

USINT

—

0

HILS.*_PORT_ID

Canal de comunicação (socket Ethernet) a ser utilizado para acesso ao broker.

SEND

IN

USINT

—

0

—

Quando diferente de 0, envia a variável do ID definido e o conteúdo de LORA_OMSG ao servidor LoRa.

LORA_MODE

IN

USINT

—

0

1 (OTAA) · 2 (ABP)

Modo de operação do LoRa: OTAA [1] ou ABP [2].

S_PORT

IN

USINT

—

1

—

Porta de comunicação associada à mensagem a ser enviada ao servidor LoRa.

DEV_EUI

IN_OUT

STRING

:16

—

—

Device EUI gerado pela application no LoRa Network Server.

APP_EUI

IN_OUT

STRING

:32

—

—

Application EUI gerado pela application no LoRa Network Server.

APP_KEY

IN_OUT

STRING

:32

—

—

App Key gerado pela application no LoRa Network Server.

LORA_IMSG

IN_OUT

STRING

—

—

—

Mensagem recebida do servidor LoRa (válida durante o evento R_EV).

LORA_OMSG

IN_OUT

STRING

—

—

—

Mensagem a ser enviada para o servidor LoRa.

CONNECTED

OUT

BOOL

—

FALSE

—

Conexão com o broker estabelecida com sucesso.

R_EV

OUT

BOOL

—

FALSE

—

Gera um pulso ao receber uma mensagem do servidor LoRa.

R_PORT

OUT

USINT

—

0

—

Porta associada ao pacote recebido.

R_CODE

OUT

INT

—

0

RET_CODE

Último código de erro detectado no processo de conexão ou recepção de mensagem.

S_EV

OUT

BOOL

—

FALSE

—

Gera um pulso ao completar um processo de envio (com ou sem erro).

S_ID

OUT

USINT

—

0

—

ID do item que foi transmitido.

S_CODE

OUT

INT

—

0

RET_CODE

Último código de erro detectado no processo de envio de uma mensagem ao servidor LoRa.

Canais de comunicação (COMM_SRC)

O socket Ethernet é identificado por um valor numérico. Os identificadores estão definidos na biblioteca HI_STD (namespace HILS):

ID

Identificador

Tipo de canal

0 .. 7

HILS.COM1_PORT_ID .. HILS.COM8_PORT_ID

Canais seriais 1 a 8.

8 .. 15

HILS.SOCK0_PORT_ID .. HILS.SOCK7_PORT_ID

Sockets 0 a 7 da Ethernet 1.

16 .. 23

HILS.ETH2_SOCK0_PORT_ID .. HILS.ETH2_SOCK7_PORT_ID

Sockets 0 a 7 da Ethernet 2.

Nota

Cada equipamento possui um subconjunto dos recursos de comunicação acima. Para identificar quais recursos estão disponíveis em um dado equipamento, consulte o manual do mesmo.

Códigos de retorno

R_CODE e S_CODE carregam códigos de retorno. Use os identificadores com o namespace HILS (ex.: HILS.CO_CONEX_FAIL). Códigos mais comuns deste bloco:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

10

GL_CMD_TMO

Timeout na execução do comando.

62

CO_PENDING

Comando de comunicação com tratamento pendente.

63

CO_CONEX_FAIL

Falha no processo de conexão.

67

CO_SOCK_ERR

Erro de socket.

70

CO_COM_ERR

Erro genérico de comunicação.

87

CO_COM_BRO

Comunicação interrompida.

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

Pré-condições

  • O equipamento deve ter um socket Ethernet configurado e indicado em COMM_SRC.

  • DEV_EUI, APP_EUI e APP_KEY devem estar preenchidos conforme o cadastro no LoRa Network Server.

  • START deve permanecer ativo durante toda a operação do bloco.

Observações

  • LORA_IMSG deve ser lido durante o evento R_EV, pois pode ser sobrescrito nos ciclos seguintes.

  • A reconexão em caso de queda de conexão é automática enquanto START estiver ativo.

Ver também

LR_CONN_RAK3172, LR_CFG_RAK3172, LR_GATEWAY_RAK3172, IS_SOCKET_CONNECTED

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST