MDB_MDB_QC1_BRIDGE

Executa uma bridge MODBUS-MODBUS entre um ou mais canais de comunicação locais e um servidor remoto acessado pelo módulo celular 4G do equipamento HI Tecnologia, abrindo a conexão via MDB_QC1 e disponibilizando a troca de dados por MDB_GATEWAY. É 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_QC1_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
           |                                |
  BOOL ----|MODEM_AUTH                 WR_EV|---- BOOL
           |                                |
  BOOL ----|MODEM_SYNC_RTC             WR_ID|---- INT
           |                                |
  UINT ----|MODEM_TMO                 WR_CID|---- INT
           |                                |
STRING ----|MODEM_ID_ON_CONN         WR_CODE|---- INT
           |                                |
           |                    MODEM_RESULT|---- INT
           |                                |
           |                   MODEM_DATA_EV|---- BOOL
           |                                |
STRING ----|MODEM_PIN --------------------- |----
           |                                |
STRING ----|MODEM_APN --------------------- |----
           |                                |
STRING ----|MODEM_USER -------------------- |----
           |                                |
STRING ----|MODEM_PASSW ------------------- |----
           |                                |
STRING ----|MODEM_IP ---------------------- |----
           |                                |
STRING ----|MODEM_PORT -------------------- |----
           |                                |
   INT ----|CACHE ------------------------- |----
           +--------------------------------+

Após o bloco ser habilitado pela entrada START, ele aguarda uma transição de subida; quando esta ocorre, o bloco configura o modem e abre a conexão com o endereço IP especificado (utilizando o bloco MDB_QC1). Estabelecida a conexão, o equipamento se mantém conectado ao IP operando com protocolo MODBUS-TCP ou MODBUS-RTU. Adicionalmente, habilita o bloco MDB_GATEWAY para leitura e escrita dos dados referenciados no Mapeamento de dados MODBUS.

Após a configuração do modem celular, o valor da qualidade do sinal de rede é salvo na variável de sistema 930, podendo ser acessado pelo programa ou por dispositivos externos MODBUS. O bloco também controla o led vermelho do equipamento, sinalizando:

  • 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.

Na inicialização o bloco verifica o canal de comunicação do modem (modelo Ethernet: modem na COM1; modelo serial: modem na COM3) e configura a base de setup deste canal para operar com protocolo MODBUS-TCP. A entrada START deve permanecer em nível alto durante a execução do bloco.

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; ele apenas abre uma conexão MODBUS-TCP com um servidor pela interface 4G.

Para utilização deste bloco, o usuário deve inicialmente, com o recurso de Mapeamento de dados, criar um canal de mapeamento e associá-lo ao protocolo MODBUS. Em seguida, no canal criado, definir os itens a serem obtidos remotamente e os itens a serem enviados. Todos os itens criados devem estar associados a variáveis globais exportadas. Na lista de variáveis a serem lidas, agrupe-as por endereço de comunicação: assim, ao ocorrer um erro de comunicação na leitura de uma variável, as variáveis subsequentes de mesmo endereço são descartadas no ciclo de aquisição corrente, evitando a demora gerada pelo timeout de falha em cada leitura.

Importante

Para a utilização desse bloco, 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 a serem acessados.

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

Dica

Assista ao vídeo tutorial utilizando o bloco de função para aplicações envolvendo o protocolo MODBUS e modem celular: Tutorial MDB_MDB_CEL_BRIDGE

Parâmetros

Nome

Direção

Tipo

Dimensão

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

—

FALSE

—

Habilita a operação do bloco.

EN_SCAN

IN

BOOL

—

TRUE

—

Habilita o polling de dados do equipamento remoto.

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

Canal COMM

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

DMAP_ID

IN

USINT

—

0

—

Id do mapeamento de dados (DataMap) associado aos canais de acesso aos equipamentos remotos.

POLL_TME

IN

TIME

—

T#40ms

—

Tempo entre um ciclo de comunicação.

PACK_TME

IN

TIME

—

T#20ms

—

Tempo entre pacotes de comunicação.

MODEM_AUTH

IN

BOOL

—

FALSE

—

Se autentica (V1) no portal de telemetria da HI Tecnologia ao se conectar.

MODEM_SYNC_RTC

IN

BOOL

—

FALSE

—

Sincroniza o relógio calendário do controlador pela rede celular.

MODEM_TMO

IN

UINT

—

180

s

Tempo para remover a conexão da rede celular caso não ocorra troca de dados.

MODEM_ID_ON_CONN

IN

STRING

:20

‘’

—

String de “Envia ID na conexão”; vazia se a opção não estiver habilitada.

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.

CACHE

IN_OUT

INT

[*]

0

—

Cache de itens a serem enviados ao equipamento remoto (deve ser fornecido um vetor de INT).

BRT_EV

OUT

INT

—

0

—

Quando ativo, indica que uma nova transação de leitura do gateway MODBUS será iniciada.

END_CYC

OUT

INT

—

0

—

Quando ativo, indica o fim de um ciclo de aquisição de itens nos equipamentos remotos.

RD_EV

OUT

BOOL

—

FALSE

—

Indica o fim do processo de 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 do equipamento remoto (MODBUS).

RD_CID

OUT

INT

—

-1

—

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

RD_CODE

OUT

INT

—

0

RET_CODE

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

WR_EV

OUT

BOOL

—

FALSE

—

Indica o fim do processo de 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

RET_CODE

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

MODEM_RESULT

OUT

INT

—

0

RET_CODE

Resultado da operação do bloco de conexão via rede celular.

MODEM_DATA_EV

OUT

BOOL

—

FALSE

—

Evento de troca de dados pela rede celular.

Códigos de retorno

As saídas RD_CODE e WR_CODE carregam o código MODBUS da última leitura/escrita; a saída MODEM_RESULT carrega o código de configuração/conexão do modem celular. Use os identificadores com o namespace HILS (ex.: HILS.MB_SUCCESS). Subconjunto relevante:

Código

Identificador

Significado

0

SUCCESS

Processo executado com sucesso.

63

CO_CONEX_FAIL

Falha no processo de conexão.

100

MB_SUCCESS

Comando MODBUS executado com sucesso.

101

MB_ILLEGAL_FUNCTION

Função do protocolo MODBUS ilegal.

102

MB_ILLEGAL_DATA_ADDRESS

Endereço do dado no comando MODBUS inválido.

103

MB_ILLEGAL_DATA_VALUE

Valor do dado no comando MODBUS inválido.

104

MB_SLAVE_DEVICE_FAILURE

Falha na execução do comando pelo equipamento remoto.

106

MB_SLAVE_DEVICE_BUSY

Equipamento remoto ocupado.

110

MB_GATEWAY_PATH_UNAV

Falha de identificação do equipamento remoto.

111

MB_GATEWAY_TARGET_FAIL

Equipamento remoto inacessível.

180

CN_PIN_ERR

PIN inválido ou bloqueado.

181

CN_SIM_CARD_ERR

SIM Card inválido ou não encontrado.

182

CN_NO_NET

Rede celular não detectada.

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.

  • Canal de comunicação configurado como MODBUS-TCP ou MODBUS-RTU; se ethernet, socket como cliente TCP/IP com auto conexão desativada; se serial, parâmetros de baudrate, data bits, stop bits e paridade compatíveis com o equipamento remoto.

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

  • START deve permanecer em nível alto durante toda a execução do bloco.

Observações

  • As entradas EN_SCAN, SKIP_RD, COMM_SRC, DMAP_ID, POLL_TME, PACK_TME e CACHE, bem como as saídas BRT_EV, END_CYC, RD_* e WR_*, espelham os parâmetros correspondentes do bloco MDB_GATEWAY.

  • As entradas MODEM_* e a saída MODEM_RESULT espelham os parâmetros do bloco MODEM_QC1; os códigos de falha da configuração/conexão do modem seguem os identificadores desse bloco.

  • A qualidade do sinal da rede celular é publicada na variável de sistema 930 após a configuração do modem.

  • Valores de COMM_SRC (canais COMM):

    Constante

    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 (HILS)

Ver também

MDB_QC1, MODEM_QC1, MDB_GATEWAY, Mapeamento de dados

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    START          : BOOL := FALSE;                 (* Start do bloco BRIDGE_CEL_MDB *)
    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';          (* Usuário 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'; (* Endereço 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 itens a serem enviados ao equipamento remoto *)
    STR_ID_OPEN    : STRING[20] := '';              (* String de "Envia ID na conexão" *)
    BRIDGE_CEL_MDB : HILS.MDB_MDB_QC1_BRIDGE;       (* Instancia do bloco MDB_MDB_QC1_BRIDGE *)
END_VAR

BRIDGE_CEL_MDB(
  START            := START,             (* Habilita operação do bloco *)
  EN_SCAN          := EN_SCAN,           (* Habilita o polling de dados do equipamento remoto *)
  SKIP_RD          := FALSE,             (* Cancela a transação de leitura corrente após um BRT_EV *)
  COMM_SRC         := HILS.COM1_PORT_ID, (* Canal de comunicação para acesso ao equipamento Modbus *)
  DMAP_ID          := 1,                 (* Id do mapeamento de dados (DataMap) *)
  POLL_TME         := T#500ms,           (* Tempo entre um ciclo de comunicação *)
  PACK_TME         := T#2s,              (* Tempo entre pacotes de comunicação *)
  MODEM_AUTH       := TRUE,              (* Autentica no portal de telemetria da HI Tecnologia *)
  MODEM_TMO        := 60,                (* Tempo (s) para desconexão da rede celular por inatividade *)
  MODEM_ID_ON_CONN := STR_ID_OPEN,       (* String de "Envia ID na conexão" *)
  MODEM_PIN        := MODEM_PIN,         (* PIN do SIM Card *)
  MODEM_APN        := MODEM_APN,         (* APN da operadora do chip de rede celular *)
  MODEM_USER       := MODEM_USER,        (* Usuário da operadora de rede celular *)
  MODEM_PASSW      := MODEM_PASSW,       (* Senha da operadora de rede celular *)
  MODEM_IP         := MODEM_IP,          (* Endereço IP remoto a ser acessado *)
  MODEM_PORT       := MODEM_PORT,        (* Porta de escuta remota *)
  CACHE            := DEVS_CACHE         (* Cache de itens a serem enviados ao equipamento remoto *)
  );