MDB_QC1
Conecta um canal MODBUS a um cliente/servidor externo através da rede celular 4G, configurando o modem, abrindo a conexão TCP com o IP/porta informados e mantendo o canal associado como servidor MODBUS-TCP. Funcional apenas com o módulo de modem 4G-EG915U na interface ITF-B. É 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
MDB_QC1
+--------------------+
BOOL ----|START RESULT|---- INT
| |
BOOL ----|AUTH DATA_EV|---- BOOL
| |
BOOL ----|SYNC_RTC STATUS|---- USINT
| |
UINT ----|CONN_TMO |
| |
STRING ----|ID_ON_CONN |
| |
STRING ----|MODEM_APN --------- |----
| |
STRING ----|MODEM_USR --------- |----
| |
STRING ----|MODEM_PSW --------- |----
| |
STRING ----|MODEM_PIN --------- |----
| |
STRING ----|MODEM_IP ---------- |----
| |
STRING ----|MODEM_PORT -------- |----
+--------------------+
Após ser habilitado pela entrada START, o bloco aguarda uma transição de subida
nessa entrada; quando ela ocorre, o bloco configura o modem e abre a conexão com o
IP/porta especificados (utilizando o bloco MODEM_QC1). Estabelecida a conexão,
o equipamento mantém o canal associado como servidor MODBUS-TCP, aceitando pacotes
externos no protocolo. A entrada START deve permanecer em nível alto durante toda
a execução do bloco.
Após a configuração do modem celular, a qualidade do sinal de rede é salva na variável de sistema 930, acessível pelo programa ou por dispositivos externos MODBUS.
Na inicialização, o bloco verifica o canal de comunicação do modem: em equipamentos modelo Ethernet o modem está na COM1; em modelo serial, na COM3. Identificado o canal serial de interface com o modem, o bloco configura a base de setup para operar com protocolo MODBUS-TCP.
O bloco também controla o led vermelho do equipamento, sinalizando os estados:
Led vermelho ACESO: equipamento configurando rede celular ou bloco desabilitado.
Led vermelho PISCANDO: equipamento em processo de abertura de conexão TCP.
Led vermelho APAGADO: equipamento operando, trocando dados com sucesso.
Atenção
Este bloco é funcional apenas quando utilizado com o módulo de modem 4G-EG915U na interface ITF-B do equipamento associado.
Este bloco não implementa o MDB_GATEWAY na interface 4G do equipamento; apenas abre uma conexão MODBUS-TCP com um servidor pela interface 4G.
As entradas AUTH, SYNC_RTC, ID_ON_CONN, MODEM_PIN, MODEM_APN,
MODEM_USR e MODEM_PSW estão associadas aos parâmetros correspondentes do bloco
MODEM_QC1:AUTH, MODEM_QC1:SYNC_RTC,
MODEM_QC1:ID_ON_CONN, MODEM_QC1:PIN,
MODEM_QC1:APN, MODEM_QC1:USER e
MODEM_QC1:PASSW.
Parâmetros
Nome |
Direção |
Tipo |
Dimensão |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|---|
START |
IN |
BOOL |
— |
FALSE |
— |
Habilita a operação do bloco; deve permanecer em nível alto durante a execução. |
AUTH |
IN |
BOOL |
— |
FALSE |
— |
Autentica (V1) no portal de telemetria da HI Tecnologia ao se conectar. |
SYNC_RTC |
IN |
BOOL |
— |
FALSE |
— |
Sincroniza o relógio calendário do controlador pela rede celular. |
CONN_TMO |
IN |
UINT |
— |
300 |
s |
Tempo para fechar a conexão com a rede celular por falta de troca de dados; ao estourar, o bloco reconecta automaticamente. |
ID_ON_CONN |
IN |
STRING |
:20 |
‘’ |
— |
String de “Envia ID na conexão”; vazia se a opção não estiver habilitada. |
MODEM_APN |
IN_OUT |
STRING |
:* |
— |
— |
APN da operadora do chip de rede celular. |
MODEM_USR |
IN_OUT |
STRING |
:* |
— |
— |
Usuário da operadora de rede celular. |
MODEM_PSW |
IN_OUT |
STRING |
:* |
— |
— |
Senha da operadora de rede celular. |
MODEM_PIN |
IN_OUT |
STRING |
:* |
— |
— |
PIN do SIM CARD. |
MODEM_IP |
IN_OUT |
STRING |
:* |
— |
— |
Endereço IP do broker a ser acessado. |
MODEM_PORT |
IN_OUT |
STRING |
:* |
— |
— |
Porta de escuta do broker. |
RESULT |
OUT |
INT |
— |
0 |
— |
Código de resultado da operação do bloco (ver Códigos de retorno). |
DATA_EV |
OUT |
BOOL |
— |
FALSE |
— |
Pulso que sinaliza a ocorrência de troca de dados. |
STATUS |
OUT |
USINT |
— |
0 |
— |
Status do processo do bloco (ver Observações). |
Códigos de retorno
A saída RESULT indica o resultado da configuração e conexão do modem celular. Os
códigos são os mesmos descritos em MODEM_QC1:LAST_FAIL; os
mais relevantes deste bloco são:
Código |
Identificador |
Significado |
|---|---|---|
0 |
SUCCESS |
Processo executado com sucesso. |
63 |
CO_CONEX_FAIL |
Falha no processo de conexão. |
180 |
CN_PIN_ERR |
Erro de PIN (PIN inválido ou bloqueado). |
181 |
CN_SIM_CARD_ERR |
Erro de SIM CARD (inválido ou não encontrado). |
182 |
CN_NO_NET |
Não detectou rede celular. |
183 |
CN_REGISTER_DENIED |
Registro na rede celular negado. |
184 |
CN_INV_AUTH_DATA |
Dados de autenticação da rede celular inválidos (APN, USER ou PASSW). |
185 |
CN_AUTH_DENIED |
Autenticação na rede celular negada. |
Lista completa dos códigos de retorno: RET_CODE - Códigos de retorno do firmware G5.
Pré-condições
Equipamento com o módulo de modem 4G-EG915U instalado na interface ITF-B.
SIM CARD com dados de rede válidos (
MODEM_APN,MODEM_USR,MODEM_PSWe, quando aplicável,MODEM_PIN).MODEM_IPeMODEM_PORTdo servidor de destino informados antes da conexão.
Observações
A saída STATUS retorna o código de processo do bloco:
Valor |
Descrição |
|---|---|
0 |
Inativo. |
1, 2, 3 |
Aguardando configuração e conexão do modem celular. |
5 |
Conexão com o destino estabelecida; equipamento trocando dados. |
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
START : BOOL := TRUE; (* Habilita operação do bloco *)
MODEM_TMO : UINT := 120; (* Tempo em seg para timeout de desconexão por falta de troca de dados *)
STR_ID_OPEN : STRING[20] := ''; (* Não habilita o recurso de "Envia ID na conexão" *)
MODEM_PIN : STRING[4] := ''; (* PIN do SIM CARD *)
MODEM_APN : STRING[31] := ''; (* APN da operadora do chip de rede celular *)
MODEM_USER : STRING[15] := ''; (* Usuário da operadora de rede celular *)
MODEM_PASSW : STRING[10] := ''; (* Senha da operadora de rede celular *)
MODEM_IP_DEST : STRING[40] := '54.227.237.88'; (* Endereço IP remoto a ser acessado *)
MODEM_PORT : STRING[6] := '16795'; (* Porta de escuta remota *)
MODEM_MDB : HILS.MDB_QC1; (* Instancia do bloco *)
MODEM_RESULT : INT; (* Resultado do bloco *)
MODEM_SIG_QLT : INT; (* Qualidade do Sinal do Modem *)
END_VAR
MODEM_MDB( (* MDB_QC1 *)
START := START, (* [BOOL] Habilita operação do bloco *)
AUTH := FALSE, (* [BOOL] Flag se autentica (V1) no portal de telemetria da HI Tecnologia ao se conectar *)
SYNC_RTC := TRUE, (* [BOOL] Flag para sincronizar o relógio calendário do controlador (pela rede celular) *)
CONN_TMO := MODEM_TMO, (* [UINT] Tempo em segundos para timeout de desconexão por falta de troca de dados *)
ID_ON_CONN := STR_ID_OPEN, (* [STRING] String de "Envia ID na conexão", vazia se opção não habilitada *)
MODEM_APN := MODEM_APN, (* [STRING] APN da operadora do chip de rede celular *)
MODEM_USR := MODEM_USER, (* [STRING] Usuário da operadora de rede celular *)
MODEM_PSW := MODEM_PASSW, (* [STRING] Senha da operadora de rede celular *)
MODEM_PIN := MODEM_PIN, (* [STRING] PIN do SIM CARD *)
MODEM_IP := MODEM_IP_DEST, (* [STRING] Endereço IP do broker a ser acessado *)
MODEM_PORT := MODEM_PORT (* [STRING] Porta de escuta do broker *)
);
MODEM_RESULT := MODEM_MDB.RESULT;
MODEM_SIG_QLT := HILS.GET_SYSVAR(930);