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.
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.
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 . Cada canal criado é apresentado como um item abaixo de Mapeamento de Dados e pode ser editado () ou removido (). 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.
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_ITEMe o retornado pelas saídasRD_ID,WR_IDe 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.
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 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 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
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.
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. |