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 |
|
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_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 |
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 |
|
Canais seriais 1 a 8. |
8 .. 15 |
|
Sockets 0 a 7 da Ethernet 1. |
16 .. 23 |
|
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_EUIeAPP_KEYdevem estar preenchidos conforme o cadastro no LoRa Network Server.STARTdeve permanecer ativo durante toda a operação do bloco.
Observações
LORA_IMSGdeve ser lido durante o eventoR_EV, pois pode ser sobrescrito nos ciclos seguintes.A reconexão em caso de queda de conexão é automática enquanto
STARTestiver 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