MDB_MDB_CEL_BRIDGE

Executa uma bridge MODBUS-MODBUS entre um ou mais canais de comunicação e o módulo celular 3G/NB-IoT dos equipamentos da HI Tecnologia, configurando o modem, abrindo a conexão TCP com o IP remoto e habilitando um gateway MODBUS para leitura e escrita dos dados mapeados; é válido apenas quando há um Modem 3G/NB-IoT na ITF B do equipamento. É 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_MDB_CEL_BRIDGE
           +---------------------------+
  BOOL ----|START                BRT_EV|---- INT
           |                           |
  BOOL ----|EN_SCAN             END_CYC|---- INT
           |                           |
  BOOL ----|SKIP_RD               RD_EV|---- BOOL
           |                           |
 USINT ----|COMM_SRC             RD_CHG|---- BOOL
           |                           |
 USINT ----|DMAP_ID               RD_ID|---- INT
           |                           |
  TIME ----|POLL_TME             RD_CID|---- INT
           |                           |
  TIME ----|PACK_TME            RD_CODE|---- INT
           |                           |
   INT ----|MODEM_TMO             WR_EV|---- BOOL
           |                           |
  UINT ----|MODEM_AUTH            WR_ID|---- INT
           |                           |
  BOOL ----|MODEM_SIMSTK         WR_CID|---- INT
           |                           |
           |                    WR_CODE|---- INT
           |                           |
           |               MODEM_RESULT|---- INT
           |                           |
  BOOL ----|CACHE -------------------- |----
           |                           |
STRING ----|MODEM_PIN ---------------- |----
           |                           |
STRING ----|MODEM_APN ---------------- |----
           |                           |
STRING ----|MODEM_USER --------------- |----
           |                           |
STRING ----|MODEM_PASSW -------------- |----
           |                           |
STRING ----|MODEM_IP ----------------- |----
           |                           |
STRING ----|MODEM_PORT --------------- |----
           +---------------------------+

Após habilitado por START, o bloco aguarda uma transição de subida; nela configura o modem e abre a conexão com o IP especificado (via bloco MODEM_RNB_U3G). Estabelecida a conexão, o equipamento se mantém conectado ao IP operando com protocolo MODBUS-TCP ou MODBUS-RTU, e habilita o bloco MDB_GATEWAY para leitura e escrita dos dados referenciados no mapeamento de dados MODBUS. A entrada START deve permanecer em nível alto durante toda a execução do bloco.

Após a configuração do modem, a qualidade do sinal de rede é gravada na variável de sistema 930, acessível pelo programa ou por dispositivos MODBUS externos. O bloco também controla o LED vermelho do equipamento, sinalizando:

  • LED vermelho ACESO: configurando a rede celular ou bloco desabilitado.

  • LED vermelho PISCANDO: em processo de abertura da conexão TCP.

  • LED vermelho APAGADO: operando, trocando dados com sucesso.

Para utilizar o bloco, crie um canal de mapeamento com o recurso Mapeamento de dados associado ao protocolo MODBUS e defina, nesse canal, os itens a serem lidos e escritos remotamente (todos associados a variáveis globais exportadas). Na lista de leitura, agrupe as variáveis por endereço de comunicação: assim, ao ocorrer um erro na leitura de uma variável, as subsequentes de mesmo endereço são descartadas no ciclo corrente, evitando a demora gerada pelo timeout de falha em cada leitura.

Importante

Este bloco é válido somente quando conectado a um Modem 3G/NB-IoT na ITF B do equipamento. Os canais de comunicação utilizados para acesso aos equipamentos devem possuir as seguintes configurações:

  • O protocolo de aplicação deve estar configurado como MODBUS-TCP ou MODBUS-RTU, em função do equipamento remoto a ser acessado.

  • Se o canal for ethernet, o socket associado deve estar configurado como cliente TCP/IP e com auto conexão desativada.

  • Se o canal for serial, os parâmetros de baudrate, data bits, stop bits e paridade devem ser compatíveis com as configurações dos equipamentos acessados.

Caso possua dúvidas sobre como configurar o socket, assista ao tutorial Configurando recursos de conectividade do equipamento.

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Habilita a operação do bloco; ativado por transição de subida e mantido em nível alto durante a execução.

EN_SCAN

IN

BOOL

—

TRUE

—

Habilita o polling de dados do equipamento remoto MODBUS.

SKIP_RD

IN

BOOL

—

FALSE

—

Quando habilitada imediatamente após um evento BRT_EV, cancela a transação de leitura corrente.

COMM_SRC

IN

USINT

—

0

ID de canal

Canal de comunicação para acesso ao equipamento MODBUS (ex.: COM1_PORT_ID).

DMAP_ID

IN

USINT

—

0

—

Id do mapeamento de dados (Mapeamento de dados) associado aos canais de acesso remoto.

POLL_TME

IN

TIME

—

T#40ms

—

Tempo entre ciclos de comunicação.

PACK_TME

IN

TIME

—

T#20ms

—

Tempo entre pacotes de comunicação.

CACHE

IN_OUT

INT

[*]

—

—

Cache de itens a serem enviados ao equipamento remoto (fornecer um vetor de INT).

MODEM_TMO

IN

UINT

—

180

s

Timeout de desconexão com o endereço de destino por falta de troca de dados.

MODEM_AUTH

IN

BOOL

—

FALSE

—

Autentica (V1) no portal de telemetria da HI Tecnologia ao conectar.

MODEM_SIMSTK

IN

BOOL

—

FALSE

—

Chip multioperadora: habilita o SIM ToolKit.

MODEM_PIN

IN_OUT

STRING

:*

—

—

PIN do SIM Card.

MODEM_APN

IN_OUT

STRING

:*

—

—

APN da operadora do chip de rede celular.

MODEM_USER

IN_OUT

STRING

:*

—

—

Usuário da operadora de rede celular.

MODEM_PASSW

IN_OUT

STRING

:*

—

—

Senha da operadora de rede celular.

MODEM_IP

IN_OUT

STRING

:*

—

—

Endereço IP remoto a ser acessado.

MODEM_PORT

IN_OUT

STRING

:*

—

—

Porta de escuta remota.

BRT_EV

OUT

INT

—

0

—

Indica que uma nova transação de leitura do gateway MODBUS será iniciada.

END_CYC

OUT

INT

—

0

—

Indica o término de um ciclo de aquisição de itens nos equipamentos remotos.

RD_EV

OUT

BOOL

—

FALSE

—

Indica o fim da aquisição de um item no equipamento remoto (MODBUS).

RD_CHG

OUT

BOOL

—

FALSE

—

Indica que a variável adquirida difere do valor anterior presente na base global (MODBUS).

RD_ID

OUT

INT

—

-1

—

Id do item da última aquisição no equipamento remoto (MODBUS).

RD_CID

OUT

INT

—

-1

—

Id de comunicação da última leitura no equipamento remoto.

RD_CODE

OUT

INT

—

0

código de retorno

Código de retorno da última recepção remota (MODBUS).

WR_EV

OUT

BOOL

—

FALSE

—

Indica o fim da escrita de um item no equipamento remoto (MODBUS).

WR_ID

OUT

INT

—

-1

—

Id do item da última escrita no equipamento remoto (MODBUS).

WR_CID

OUT

INT

—

-1

—

Id de comunicação da última escrita no equipamento remoto.

WR_CODE

OUT

INT

—

0

código de retorno

Código de retorno da última escrita no equipamento remoto (MODBUS).

MODEM_RESULT

OUT

INT

—

0

código de retorno

Resultado da operação de configuração/conexão via rede celular (? 0 indica o código de erro).

Códigos de retorno

As saídas RD_CODE e WR_CODE retornam o código da última leitura/escrita MODBUS, e MODEM_RESULT retorna o código da configuração/conexão celular (0 = sucesso; ? 0 = falha). Códigos mais comuns:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

100

MB_SUCCESS

Comando MODBUS executado com sucesso.

101

MB_ILLEGAL_FUNCTION

Função MODBUS ilegal (código 1 do protocolo MODBUS).

102

MB_ILLEGAL_DATA_ADDRESS

Endereço do dado inválido (código 2 do protocolo MODBUS).

103

MB_ILLEGAL_DATA_VALUE

Valor do dado inválido (código 3 do protocolo MODBUS).

104

MB_SLAVE_DEVICE_FAILURE

Falha na execução do comando pelo equipamento remoto (código 4 do protocolo MODBUS).

63

CO_CONEX_FAIL

Falha no processo de conexão.

180

CN_PIN_ERR

Erro de 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

  • Modem 3G/NB-IoT conectado à ITF B do equipamento.

  • Canal de mapeamento Mapeamento de dados criado e associado ao protocolo MODBUS, com os itens de leitura e escrita associados a variáveis globais exportadas.

  • Canais de comunicação configurados como MODBUS-TCP ou MODBUS-RTU; sockets ethernet como cliente TCP/IP com auto conexão desativada; canais seriais com baudrate, data bits, stop bits e paridade compatíveis com o equipamento remoto.

  • START mantido em nível alto durante toda a operação do bloco.

Observações

  • Muitas entradas e saídas espelham parâmetros do bloco MDB_GATEWAY (EN_SCAN, SKIP_RD, COMM_SRC, DMAP_ID, POLL_TME, PACK_TME, CACHE, BRT_EV, END_CYC, RD_*, WR_*) e do bloco MODEM_RNB_U3G (MODEM_SIMSTK, MODEM_PIN, MODEM_APN, MODEM_USER, MODEM_PASSW, MODEM_IP, MODEM_PORT).

  • Identificadores de canal usados em COMM_SRC (prefixo HILS.):

    Identificador

    Valor

    COM1_PORT_ID .. COM8_PORT_ID

    0 .. 7

    SOCK0_PORT_ID .. SOCK7_PORT_ID

    8 .. 15

    ETH2_SOCK0_PORT_ID .. ETH2_SOCK7_PORT_ID

    16 .. 23

Ver também

MDB_GATEWAY, MODEM_RNB_U3G, Mapeamento de dados

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    START          : BOOL := FALSE;                 (* Start do bloco MDB_MDB_CEL_BRIDGE *)
    EN_SCAN        : BOOL := TRUE;                  (* Habilita o polling de dados do equipamento remoto modbus *)
    MODEM_PIN      : STRING[4] := '';               (* PIN do SIM Card da rede celular *)
    MODEM_APN      : STRING[31] := 'apn.com';       (* APN do SIM Card da rede celular *)
    MODEM_USER     : STRING[15] := 'user';          (* Usuario do SIM Card da rede celular *)
    MODEM_PASSW    : STRING[10] := 'passw';         (* Senha do SIM Card da rede celular *)
    MODEM_IP       : STRING[40] := '54.227.237.88'; (* Endereco IP do Portal de telemetria HI Tecnologia *)
    MODEM_PORT     : STRING[6] := '16795';          (* Porta do portal de telemetria da HI Tecnologia *)
    DEVS_CACHE     : ARRAY [0..49] OF INT := 0;     (* Cache de items a serem enviados ao equipamento remoto *)
    BRIDGE_CEL_MDB : HILS.MDB_MDB_CEL_BRIDGE;       (* Instancia do bloco MDB_MDB_CEL_BRIDGE *)
END_VAR

BRIDGE_CEL_MDB(
  START        := START,             (* [BOOL] Habilita operacao do bloco *)
  EN_SCAN      := EN_SCAN,           (* [BOOL] Habilita o polling de dados do equipamento remoto *)
  SKIP_RD      := FALSE,             (* [BOOL] Cancela a transacao de leitura corrente apos um BRT_EV *)
  COMM_SRC     := HILS.COM1_PORT_ID, (* [USINT] Canal de comunicacao para acesso ao equipamento Modbus *)
  DMAP_ID      := 1,                 (* [USINT] Id do mapeamento de dados de acesso aos equipamentos remotos *)
  POLL_TME     := T#500ms,           (* [TIME] Tempo entre ciclos de comunicacao *)
  PACK_TME     := T#2s,              (* [TIME] Tempo entre pacotes de comunicacao *)
  CACHE        := DEVS_CACHE,        (* [INT] Cache de items a serem enviados ao equipamento remoto *)
  MODEM_TMO    := 60,                (* [UINT] Timeout de desconexao com o endereco de destino, em segundos *)
  MODEM_SIMSTK := FALSE,             (* [BOOL] Chip Multioperadora: habilita SIM ToolKit *)
  MODEM_PIN    := MODEM_PIN,         (* [STRING] PIN do SIM Card *)
  MODEM_APN    := MODEM_APN,         (* [STRING] APN da operadora do chip de rede celular *)
  MODEM_USER   := MODEM_USER,        (* [STRING] Usuario da operadora de rede celular *)
  MODEM_PASSW  := MODEM_PASSW,       (* [STRING] Senha da operadora de rede celular *)
  MODEM_IP     := MODEM_IP,          (* [STRING] Endereco IP remoto a ser acessado *)
  MODEM_PORT   := MODEM_PORT         (* [STRING] Porta de escuta remota *)
  );