Recurso de mapeamento de dados

O mapeamento de dados é um recurso disponível no OnStudio para permitir ao usuário especificar uma base de dados em um equipamento ou servidor externo a ser obtida e atualizada de forma automática pelos blocos de Gateways de comunicação e Bridges de comunicação disponíveis.

Ver também

Para o passo a passo com Modbus, veja Trocar dados com outros equipamentos por Modbus.

Utilizando este recurso, é possível criar Canais de mapeamento para os protocolos Modbus, MQTT e LoRa e mapear os dados a serem lidos e enviados para cada dispositivo.

Atenção

Lembre-se de configurar a configuração base do equipamento. Quando usar o canal de comunicação Ethernet deve-se configurar o Modo de Roteamento do socket como CLIENT.

Gateways de comunicação

Na Figura F1 está o esquema de funcionamento de um bloco gateway geral, cuja função é realizar a comunicação entre equipamentos em um determinado protocolo X (Modbus, MQTT ou LoRa). Para realizar essa comunicação são usados os Canais de mapeamento.

../_images/gateway1.png

Fig. 32 F1 - Esquema de funcionamento do bloco gateway.

Neste esquema temos um controlador HI com um programa de aplicação utilizando o Bloco Gateway e o recurso de canal de mapeamento que permite mapear as variáveis globais exportadas que serão enviadas através do Gateway para um servidor ou equipamento remoto e também mapear as variáveis globais exportadas que serão recebidas de um servidor ou equipamento remoto através do Gateway.

Nota

Estão disponíveis na biblioteca HI_STD os seguintes gateways de comunicação para acesso a leitura e escrita de dados:

Bridges de comunicação

Na Figura F2 está o esquema de funcionamento de um bloco bridge geral, cuja função é realizar a comunicação entre equipamentos com protocolos de comunicação diferentes, protocolo X e protocolo Y (Modbus, MQTT ou LoRa). Para realizar essa comunicação são usados os Canais de mapeamento.

../_images/bridge1.png

Fig. 33 F2 - Esquema de funcionamento do bloco bridge.

Neste esquema temos um controlador HI com um programa de aplicação utilizando o Bloco Bridge e o recurso de canal de mapeamento. Diferente do Bloco Gateway, neste caso são necessários 2 canais de mapeamento (A e B), um para cada protocolo utilizado (protocolo X e protocolo Y), o que permite mapear as variáveis globais exportadas que serão enviadas e/ou recebidas por cada servidor ou equipamento remoto.

Nota

Estão disponíveis na biblioteca HI_STD as seguintes bridges de comunicação para troca de dados entre dispositivos remotos:


Canais de mapeamento

Através dos Canais de mapeamento é possível mapear as variáveis globais exportadas com as variáveis ou tópicos do servidor ou equipamento remoto.

No OnStudio os canais de mapeamento são criados no item Mapeamento de Dados do recurso, na árvore do projeto (atividade Explorer), através do menu de contexto Adicionar Canal. Cada canal criado é apresentado como um item abaixo de Mapeamento de Dados e pode ser editado (Editar Canal) ou removido (Remover Canal). Pode ser criado mais de um canal de mapeamento.

Cada canal de mapeamento possui sua própria identificação (ID do Canal), uma Descrição e pode ser configurado com um dos 3 protocolos disponíveis no campo Tipo de Canal:

Para utilizar os Canais de mapeamento deve-se primeiro criar as variáveis globais exportadas, ou seja, variáveis globais com um endereço definido. Cada linha de mapeamento associa uma Variável Exportada a um dado do equipamento ou servidor remoto.

Aba do canal

Um clique sobre o canal na árvore do projeto abre a sua aba, com as abas internas Dados recebidos e Dados enviados (e Acesso Ethernet nos canais MODBUS, ver Acesso ethernet), cada uma com a quantidade de itens entre parênteses.

../_images/mapeamento_recebidos.png

Fig. 34 Aba de um canal MODBUS, com os dados recebidos e a coluna ID.

  • ID: a primeira coluna das tabelas de dados recebidos e enviados apresenta o ID de cada linha, que é a sua posição na lista (começa em 1 e é contado separadamente para dados recebidos e enviados). É o valor usado para referenciar a linha em HILS.COMM_NOTIFY_ITEM e o retornado pelas saídas RD_ID, WR_ID e equivalentes dos blocos de comunicação. O ID não muda quando a tabela é filtrada pela busca.

  • Excluir uma linha que não é a última da lista desloca o ID das linhas seguintes. Nesse caso o OnStudio pede confirmação (Excluir variável desloca os IDs seguintes), indicando a faixa de IDs que será alterada. Revise o código ST que utiliza esses IDs antes de confirmar: um ID fixo no código passaria a apontar para outra variável sem gerar erro de compilação.

  • Validação: ao salvar uma linha ou os dados do canal, o OnStudio valida o canal no serviço OnStudio (endereço inválido, ID duplicado, endereço IP e porta malformados etc.). Se houver erros, a alteração não é gravada e a mensagem Canal de mapeamento inválido é apresentada, com os detalhes no painel SAÍDA (Console).

O formulário de edição de uma linha é fechado pelo botão X do seu canto.

../_images/mapeamento_form.png

Fig. 35 Formulário Adicionar Variável de um canal MODBUS, com o botão de procurar dispositivos na rede ao lado do Acesso TCP/IP.

Modbus

Para utilizar o canal de mapeamento com o protocolo Modbus basta configurar o campo Tipo de Canal em MODBUS e o campo ID do Canal.

Na configuração do canal de mapeamento existem 2 listas para serem configuradas:

Dados recebidos

Cada variável especificada irá possuir um ID, que pode ser utilizado em blocos e funções para referenciar um dado recebido específico do canal de mapeamento.

Campo

Descrição

Variável Exportada

Variável global exportada do projeto que receberá o dado lido do equipamento remoto.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será recebida, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Quant.

Quando é usada variável do tipo VETOR esse campo representa a quantidade de variáveis a partir do campo Índice que serão recebidas, quando é usada variável do tipo ESCALAR esse campo não é utilizado.

ID de Comun.

ID Modbus de comunicação do equipamento remoto.

Endereço remoto

Endereço Modbus da variável do equipamento remoto que está sendo mapeada.

Acesso TCP/IP

Quando usando canal de comunicação Ethernet esse campo representa o IP e Porta do equipamento remoto, quando usado canal de comunicação Serial esse campo não é utilizado.

Descrição

Texto obtido da descrição das variáveis globais.

Dados enviados

Cada variável especificada irá possuir um ID, que pode ser utilizado em blocos e funções para referenciar um dado enviado específico do canal de mapeamento.

Campo

Descrição

Variável Exportada

Variável global exportada do projeto cujo valor será enviado ao equipamento remoto.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será enviada, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Publ. ao Iniciar

Opção de enviar a variável mapeada ao inicializar o bloco Gateways de comunicação ou Bridges de comunicação através do parâmetro START dos blocos.

Publ. ao Alterar

Opção de enviar a variável mapeada quando a variável é alterada. Usado somente no bloco Bridges de comunicação.

Publ. em Intervalos

Opção de enviar a variável mapeada a cada intervalo de tempo configurado pelo campo Tempo.

Tempo

Valor de tempo configurado para enviar a variável mapeada.

Quant.

Quando é usada variável do tipo VETOR esse campo representa a quantidade de variáveis a partir do campo Índice que serão enviadas, quando é usada variável do tipo ESCALAR esse campo não é utilizado.

ID de Comun.

ID Modbus de comunicação do equipamento remoto.

Endereço remoto

Endereço Modbus da variável do equipamento remoto que está sendo mapeada.

Acesso TCP/IP

Quando usando canal de comunicação Ethernet esse campo representa o IP e Porta do equipamento remoto, quando usado canal de comunicação Serial esse campo não é utilizado.

Descrição

Texto obtido da descrição das variáveis globais.


Endereço remoto

As variáveis exportadas são especificadas utilizando endereços MODBUS nos seguintes formatos:

%Mnx - Este formato permite a leitura e escrita da memória associada ao endereço.

%

caractere que denota um endereço

M

caractere que indica que este endereço referencia uma memória interna do equipamento

n

identificador do tamanho do tipo de dado da variável associada ao endereço

x

número que identifica a variável associada

Por exemplo: %MW25 (Endereçamento de memória interna de tamanho igual a 16 bits e endereço 25).

%Inx - Este formato permite a leitura da entrada associada ao endereço.

%

caractere que denota um endereço

I

caractere que indica que este endereço referencia uma entrada do equipamento

n

identificador do tamanho do tipo de dado da variável associada ao endereço

x

número que identifica a variável associada

Por exemplo: %IX25 (Endereçamento de entrada digital de tamanho igual a 1 bit e endereço 25).

Nota

A partir da versão 2.2.12 do OnStudio é possível especificar um Endereço no formato Hexadecimal.

O valor 50 em decimal é equivalente ao valor 32 em hexadecimal. Dessa forma, para representar o endereço %MW50 em hexadecimal devemos especificar da seguinte forma: %MW16#32

../_images/end_hexadecimal.png

Acesso ethernet

O campo Acesso TCP/IP de cada linha de mapeamento é composto por:

Campo

Descrição

IP remoto

Quando usando canal de comunicação Ethernet esse campo representa o IP do equipamento remoto, quando usado canal de comunicação Serial esse campo não é utilizado.

Porta Ethernet

Quando usando canal de comunicação Ethernet esse campo representa a porta do equipamento remoto, quando usado canal de comunicação Serial esse campo não é utilizado.

Os canais MODBUS possuem a aba Acesso Ethernet, com a lista dos endereços (IP remoto e Porta Ethernet) utilizados pelo canal. O ID de cada endereço é a sua posição na lista. Use Adicionar acesso para incluir um endereço; o OnStudio recusa endereços IPv4 inválidos, portas fora da faixa de 1 a 65535 e pares IP e porta já cadastrados. Um canal MODBUS novo é criado com o acesso 192.168.0.200:502.

../_images/mapeamento_acesso_ethernet.png

Fig. 36 Aba Acesso Ethernet de um canal MODBUS.

Ao preencher o Acesso TCP/IP de uma linha, o campo sugere primeiro os endereços da aba Acesso Ethernet e depois os já utilizados em outras linhas do canal. O botão Procurar dispositivos na rede, ao lado do campo, abre o diálogo Selecionar Dispositivo da Rede: ele apresenta os equipamentos encontrados pela pesquisa de dispositivos (modelo, número de série, endereço e protocolo), com filtro, e preenche o IP e a porta padrão do protocolo escolhido (Usar TCP … ou Usar UDP …).


MQTT

Para utilizar o canal de mapeamento com o protocolo MQTT basta configurar o campo Tipo de Canal em MQTT e o campo ID do Canal. Além disso é possível configurar o Prefixo do Tópico de Assinatura e o Prefixo do Tópico de Publicação (Ex.: Casa/Quarto/Aquario/).

Na configuração do canal de mapeamento existem 2 listas para serem configuradas: Dados recebidos (tópicos assinados) e Dados enviados (tópicos publicados).

Dados recebidos (tópicos assinados):

Campo

Descrição

Variável Exportada

Variável global exportada do projeto que receberá o valor publicado no tópico.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será subscrita, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Tópico

Nome do Definição de Tópicos MQTT que será subscrito (Assinatura de tópicos). Limite 80 caracteres.

QoS

Nível de Qualidade de serviço - QoS que define a garantia de entrega de uma mensagem específica.

Assinar

Opção de subscrição, quando habilitado subscreve no tópico mapeado.

Descrição

Obtida da descrição das variáveis globais.

Quando o tópico utiliza Curingas (Wildcards) deve-se subscrever apenas o tópico com o Wildcard, os demais tópicos derivados de interesse devem ser incluídos para serem mapeados com as variáveis globais exportadas, mas não devem ser subscritos novamente.

Dados enviados (tópicos publicados):

Campo

Descrição

Variável Exportada

Variável global exportada do projeto cujo valor será publicado no tópico.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será publicada, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Publ. ao Iniciar

Opção de publicar a variável mapeada ao inicializar o bloco Gateways de comunicação ou Bridges de comunicação através do parâmetro START dos blocos.

Publ. ao Alterar

Opção de publicar a variável mapeada quando a variável é alterada. Usado somente no bloco Bridges de comunicação.

Publ. em Intervalos

Opção de publicar a variável mapeada a cada intervalo de tempo configurado pelo campo Tempo.

Tempo

Valor de tempo configurado para publicar a variável mapeada.

Tópico

Nome do Definição de Tópicos MQTT que será publicado (Publicação de Tópicos). Limite 80 caracteres.

QoS

Nível de Qualidade de serviço - QoS que define a garantia de entrega de uma mensagem específica.

Reter

Opção de Mensagens Retidas(Retained Messages) que serve para sinalizar ao Broker MQTT salvar a última mensagem publicada por esse tópico.

Decimais

Quando usada variável do tipo REAL esse campo representa o número de casas decimais. Limite 6 casas decimais.

Descrição

Obtida da descrição das variáveis globais.


LoRa

Para utilizar o canal de mapeamento com o protocolo LoRa basta configurar o campo Tipo de Canal em LORA e o campo ID do Canal.

Na configuração do canal de mapeamento existem 2 listas para serem configuradas: Dados recebidos e Dados enviados.

Dados recebidos:

Campo

Descrição

Variável Exportada

Variável global exportada do projeto que receberá o dado.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será recebida, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Tópico

Nome do tópico que será recebido. Limite 80 caracteres.

Porta

Número da porta do protocolo LoRa.

Descrição

Obtida da descrição das variáveis globais.

Dados enviados:

Campo

Descrição

Variável Exportada

Variável global exportada do projeto cujo valor será publicado.

Índice

Quando é usada variável do tipo VETOR esse campo representa o índice da variável que será publicada, quando é usada variável do tipo ESCALAR esse campo deve ser 0 (zero).

Publ. ao Iniciar

Opção de publicar a variável mapeada ao inicializar o bloco Gateways de comunicação ou Bridges de comunicação através do parâmetro START dos blocos.

Publ. ao Alterar

Opção de publicar a variável mapeada quando a variável é alterada. Usado somente no bloco Bridges de comunicação.

Publ. em Intervalos

Opção de publicar a variável mapeada a cada intervalo de tempo configurado pelo campo Tempo.

Tempo

Valor de tempo configurado para publicar a variável mapeada.

Tópico

Nome do tópico que será publicado. Limite 80 caracteres.

Porta

Número da porta do protocolo LoRa.

Decimais

Quando usada variável do tipo REAL esse campo representa o número de casas decimais. Limite 6 casas decimais.

Descrição

Obtida da descrição das variáveis globais.