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_PSW e, quando aplicável, MODEM_PIN).

  • MODEM_IP e MODEM_PORT do 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

MODEM_QC1

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);