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 |
COMM_SRC |
IN |
USINT |
— |
0 |
Canal COMM |
Canal de comunicação para acesso ao equipamento MODBUS (ex.: |
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.
STARTdeve 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_TMEeCACHE, bem como as saídasBRT_EV,END_CYC,RD_*eWR_*, espelham os parâmetros correspondentes do bloco MDB_GATEWAY.As entradas
MODEM_*e a saídaMODEM_RESULTespelham 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_ID0 .. 7
SOCK0_PORT_ID..SOCK7_PORT_ID8 .. 15
ETH2_SOCK0_PORT_ID..ETH2_SOCK7_PORT_ID16 .. 23 (HILS)
Ver também
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 *)
);