RNB_CFG
Envia uma sequência de comandos AT a um modem para configurá-lo e habilitá-lo na rede celular NB-IoT; é 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
RNB_CFG
+-------------------+
BOOL ----|RESET ACC_STS|---- INT
| |
BOOL ----|START DONE_EVT|---- BOOL
| |
BOOL ----|SIM_STK READY|---- BOOL
| |
USINT ----|COMM_SRC RESULT|---- UINT
| |
| NET_QLT|---- INT
| |
| NET_IP|---- STRING
| |
| NET_OPER|---- STRING
| |
| NSI_MOD|---- USINT
| |
STRING ----|APN -------------- |----
| |
STRING ----|USER ------------- |----
| |
STRING ----|PASSW ------------ |----
| |
STRING ----|PIN -------------- |----
+-------------------+
Após o bloco ser habilitado pela entrada EN, ele aguarda uma transição de
subida em START; quando esta ocorre, o bloco envia a sequência de comandos AT
que configura o modem. A entrada START deve permanecer em nível alto durante
toda a execução do bloco.
A saída READY indica que o modem foi configurado com sucesso. Essa saída vai
a zero se houver transição de descida em START ou se o acesso à rede ficar
indisponível.
A cada evento de erro durante as etapas de configuração, a saída DONE_EVT gera
um pulso e o código do evento é apresentado em RESULT.
Se PIN, APN, USER ou PASSW forem modificados, um novo pulso em
START deve ser gerado. USER e PASSW podem ser vazios em alguns casos.
Nota
Para abrir conexão com IP e porta especificados, utilize o bloco MODEM_CONN.
Parâmetros
Nome |
Direção |
Tipo |
Dimensão |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|---|
RESET |
IN |
BOOL |
— |
FALSE |
— |
Habilita soft reset do modem. |
START |
IN |
BOOL |
— |
FALSE |
— |
Habilita o início da configuração (avaliado por transição de subida). |
SIM_STK |
IN |
BOOL |
— |
FALSE |
— |
Chip multioperadora: SIM ToolKit habilitado. |
COMM_SRC |
IN |
USINT |
— |
0 |
|
Canal de comunicação a ser utilizado (ver Observações). |
APN |
IN_OUT |
STRING |
:31 |
— |
— |
APN da operadora do chip SIM Card. |
USER |
IN_OUT |
STRING |
:15 |
— |
— |
Nome de usuário da operadora (pode ser vazio). |
PASSW |
IN_OUT |
STRING |
:10 |
— |
— |
Senha da operadora (pode ser vazia). |
PIN |
IN_OUT |
STRING |
:4 |
— |
— |
Código PIN do chip SIM Card. |
ACC_STS |
OUT |
INT |
— |
-1 |
— |
Status de registro na rede (ver Observações). |
DONE_EVT |
OUT |
BOOL |
— |
FALSE |
— |
Pulso que indica “bloco finalizado”; verifique |
READY |
OUT |
BOOL |
— |
FALSE |
— |
Sinaliza que a configuração terminou com sucesso. |
RESULT |
OUT |
UINT |
— |
0 |
— |
Código do resultado da operação (ver Códigos de retorno). |
NET_QLT |
OUT |
INT |
— |
0 |
|
Qualidade do sinal. |
NET_IP |
OUT |
STRING |
:30 |
— |
— |
IP recebido pela rede NB-IoT. |
NET_OPER |
OUT |
STRING |
:10 |
— |
— |
Operadora identificada no SIM Card. |
NSI_MOD |
OUT |
USINT |
— |
0 |
— |
Network Status Indicator: status de conexão do modem (ver Observações). |
Códigos de retorno
RESULT apresenta o código do último evento de erro sinalizado por DONE_EVT.
Os valores são específicos deste bloco:
Valor |
Descrição |
|---|---|
0 |
Processo executado com sucesso. |
10 |
PIN bloqueado. |
20 |
Número do PIN errado. |
30 |
PIN Security status não desbloqueado. |
40 |
Erro no comando de reset. |
50 |
Não detectou rede (não se autoconectou em nenhuma rede). |
51 |
Não se registrou ainda; está procurando rede. |
52 |
Registro negado. |
60 |
APN inválida. |
110 |
Não foi possível ativar o perfil. |
120 |
Não obteve IP na rede. |
200 |
Ficou offline (pelo pino de STS_MOD). |
999 |
Erro de hardware (modem não responde). |
Pré-condições
O modem deve estar conectado ao canal de comunicação informado em
COMM_SRC.APN,USER,PASSWePINdevem estar preenchidos conforme a operadora antes de gerar o pulso emSTART.
Observações
COMM_SRC — identificadores de canal. O canal em que o modem está referenciado
é indicado por um valor numérico, todos no namespace HILS:
Identificador |
Valor |
Meio físico |
|---|---|---|
|
0 .. 7 |
Seriais |
|
8 .. 15 |
Ethernet 1 |
|
16 .. 23 |
Ethernet 2 |
ACC_STS — status de registro na rede (durante a inicialização):
Valor |
Descrição |
|---|---|
0 |
Não registrado; o MT não está procurando uma nova operadora para registro. |
1 |
Registrado, rede local (home network). |
2 |
Não registrado; o MT está procurando uma nova operadora para registro. |
3 |
Registro negado. |
4 |
Desconhecido (ex.: fora de cobertura GERAN/UTRAN/E-UTRAN). |
5 |
Registrado, roaming. |
NSI_MOD — Network Status Indicator (status de conexão do modem na rede; os valores coincidem com a variável de sistema F138):
Valor |
Descrição |
|---|---|
0 |
Modem não disponível. |
1 |
Modem em reset. |
2 |
Sem rede disponível / chip desconectado / procurando rede. |
3 |
Rede 2G detectada. |
4 |
Rede 3G detectada. |
5 |
Rede 4G detectada (NB-IoT). |
6 |
Rede roaming 2G detectada. |
7 |
Rede roaming 3G detectada. |
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
START : BOOL := FALSE; (* Flag de START do bloco *)
MY_APN : STRING := 'claro.com.br'; (* APN do chip *)
MY_USER : STRING := 'claro'; (* Usuario da operadora *)
MY_PASSW : STRING := 'claro'; (* Senha da operadora *)
MY_PIN : STRING := '1010'; (* PIN do chip *)
MY_OPERADORA : STRING; (* Operadora detectada *)
MY_MODEM_IP : STRING; (* IP na rede *)
MY_NET_QLT : SINT := 0; (* Qualidade do sinal *)
MY_NSI : UINT := 0; (* Network Status Indicator *)
MODEM_CONFIG : HILS.RNB_CFG; (* Instancia do bloco de configuracao do MODEM *)
READY : BOOL := FALSE; (* Flag de status do bloco *)
RESULT : UINT := 0; (* Resultado do bloco *)
END_VAR
MODEM_CONFIG( (* RNB_CFG *)
START := START, (* [BOOL] Habilita inicio da configuracao *)
COMM_SRC := HILS.COM1_PORT_ID, (* [USINT] Canal de comunicacao a ser utilizado *)
APN := MY_APN, (* [STRING] APN da operadora *)
PASSW := MY_PASSW, (* [STRING] Senha da operadora *)
PIN := MY_PIN, (* [STRING] PIN do SIM Card *)
USER := MY_USER (* [STRING] Usuario da operadora *)
);
IF MODEM_CONFIG.DONE_EVT THEN
MY_OPERADORA := MODEM_CONFIG.NET_OPER;
MY_MODEM_IP := MODEM_CONFIG.NET_IP;
MY_NET_QLT := MODEM_CONFIG.NET_QLT;
RESULT := MODEM_CONFIG.RESULT;
END_IF;
READY := MODEM_CONFIG.READY;
MY_NSI := MODEM_CONFIG.NSI_MOD;