Aba Operations

Driver Modicon Modbus

Aba Operations

Topo  Anterior  Próximo

Este tópico descreve a configuração da aba Operations da janela de configuração do Driver, onde são definidas as operações utilizadas nos Tags de Comunicação, mostrada na figura a seguir.

A configuração de operações não é mais usada na configuração de Tags por Strings, sendo usada apenas na antiga configuração numérica (parâmetros N/B) do Elipse SCADA.

Aba Operations na janela de configurações do Driver

Aba Operations na janela de configurações do Driver

Operações

Para o correto funcionamento deste Driver, é necessário definir quais as funções Modbus de leitura ou escrita são utilizadas para cada Tag de Comunicação. Para isto, caso a configuração dos Tags seja realizada através dos antigos parâmetros numéricos N/B do Elipse SCADA, deve-se selecionar a aba Operations na janela de configurações.

Para este Driver, são chamadas Operações as configurações que definem como cada Tag de Comunicação executa a leitura e a escrita de dados no equipamento.

Uma operação nada mais é do que a definição de um par de funções do protocolo, uma para escrita e outra para a leitura, e a especificação de conversões adicionais no formato dos dados que podem ser associados aos Tags da aplicação. Em outras palavras, no Driver Modbus os parâmetros numéricos N ou B dos Tags de Comunicação não referenciam diretamente as funções do protocolo, mas sim operações pré-configuradas, que por sua vez não só informam as funções (nativas do protocolo ou mesmo especiais) a serem usadas na comunicação, como também a forma como os dados nativos do protocolo devem ser interpretados.

A configuração dos parâmetros dos Tags de Comunicação é descrita mais adiante no tópico Configurando um Tag de Comunicação. A seguir é descrita a configuração das operações, que mais tarde devem ser associadas a cada Tag de Comunicação.

 

NOTA

As operações funcionam apenas como modelos, ou templates, para a configuração de Tags de Comunicação, sendo possível, e em geral necessário, atribuir uma mesma operação a diversos Tags, que têm em comum o mesmo valor em seus parâmetros N2/B2.

 

Funções

O protocolo Modbus define funções de leitura e escrita, as quais podem acessar espaços de endereçamento distintos no equipamento, e com tipos de dados específicos. As funções 03 e 16 por exemplo, as mais usadas do protocolo, são responsáveis respectivamente pela leitura e escrita de Holding Registers, que nada mais são do que valores inteiros sem sinal de 16 bits (Words).

As funções do protocolo Modbus padrão fornecem dados apenas em formatos básicos de Bit e Word de 16 bits. Não existem formatos de dados adicionais na especificação do protocolo.

A lista das funções Modbus suportadas pelo Driver, e que podem ser atribuídas às operações configuradas, pode ser conferida no tópico Funções Suportadas.

Além das funções do protocolo, o Driver também contém algumas Funções Especiais que não fazem parte do protocolo padrão, de formato proprietário e utilizadas em geral para a leitura de eventos (SOE).

 

Formatação de Dados

Além de permitir a associação das funções (do protocolo ou especiais) a Tags específicos, as operações também permitem a definição de formatação adicional a ser aplicada aos dados, possibilitando o suporte a tipos de dados adicionais, não especificados pelo protocolo, como por exemplo valores de ponto flutuante de 32 bits (Float) e 64 bits (Double). Os tipos de dados suportados são descritos no tópico Tipos de Dados Suportados.

É importante observar que, quando tipos de dados de 32 e 64 bits são definidos nas operações, é necessário definir funções do protocolo que trabalhem com registros de 16 bits. Desta forma, a leitura de dados com mais de 16 bits resulta na leitura de vários registros Modbus de 16 bits do equipamento, ou seja, para a leitura de um Tag associado a uma operação que defina o tipo de dado Float de 32 bits, o Driver precisa ler dois registros consecutivos de 16 bits do equipamento, concatená-los e realizar a conversão para o formato Float.

Também é possível definir tipos de dados de oito bits (Byte, Int8 ou Char) nas operações. Note que, uma vez que as funções do protocolo não permitem a leitura e escrita de bytes isolados, para cada dois Elementos de Bloco de tipos de dados de oito bits, o Driver é obrigado a acessar um registro distinto de 16 bits no equipamento. Por este motivo, o Driver não permite a escrita de tipos de dados de oito bits em Tags, em Elementos isolados de Bloco ou em Blocos de tamanho ímpar ou unitário. A escrita de tipos de dados de oito bits deve ser realizada sempre em Blocos de tamanho par.

 

Tipos de Dados Definidos pelo Usuário

Além dos tipos de dados pré-definidos (tipos de dados nativos ou built-in) descritos no tópico Tipos de Dados Suportados, este Driver permite também tipos de dados definidos pelo usuário. Estes tipos de dados devem ser declarados em janela específica, clicando-se em User Defined Types na parte inferior da aba Operations. Tais tipos de dados consistem em estruturas criadas a partir dos tipos de dados pré-definidos. Para mais informações sobre os tipos de dados definidos pelo usuário, consulte o tópico Tipos de Dados Definidos pelo Usuário.

 

Byte Order

Além das funções de leitura e escrita do protocolo e do tipo de dado utilizado, cada operação permite também atribuir manipulações adicionais aos bytes, relacionadas ao chamado byte order, ou seja, a ordem dos bytes dentro de cada valor. São as chamadas opções de swap (Swap Bytes, Swap Words e Swap DWords). Tais opções somente necessitam ser habilitadas no caso de equipamentos que não respeitem a ordem de bytes padrão do protocolo.

O protocolo Modbus define que seus valores de 16 bits utilizam sempre o byte order chamado de big endian, também conhecido como Motorola, por ser utilizado por este fabricante. O padrão big endian define sempre a ordem dos bytes de tal forma que o byte mais significativo de cada valor venha sempre antes. Desta forma, por exemplo, na leitura do valor hexadecimal 1234h, o equipamento envia primeiro o byte mais significativo 12h e logo a seguir o menos significativo, 34h.

No caso de equipamentos que não implementem o byte order padrão do protocolo e que utilizem o chamado little endian ou Intel, os dados são enviados com os bytes menos significativos antes. É preciso então habilitar as opções de swap para inverter a ordem dos bytes.

Há ainda equipamentos que usam byte orders diferentes para tipos de dados de 32 e 16 bits. No caso, por exemplo, de equipamentos que usem o byte order padrão do Modbus (big endian) para tipos de dados de 16 bits, porém forneçam dados de 32 bits com o Word menos significativo vindo primeiro (little endian), é necessário habilitar apenas a opção Swap Words, deixando desmarcada a opção Swap Bytes. Em suma, pode-se ter basicamente três situações:

·Caso o equipamento forneça dados usando o byte order padrão do protocolo Modbus (Motorola ou big endian), com os bytes mais significativos vindo antes, deve-se deixar as opções de swap todas desabilitadas. Esta é a situação mais comum

·Caso o equipamento use outro padrão de byte order, com os bytes menos significativos vindo antes (little endian), é necessário habilitar-se todas as opções de swap referentes ao tipo de dados usado, ou seja, para tipos de dados de 16 bits, habilite a opção Swap Bytes. Para tipos de dados de 32 bits, habilite as opções Swap Bytes e Swap Words. Para tipos de dados de 64 bits, as três opções de swap devem ser habilitadas

·No caso menos comum de equipamentos que usem byte orders diferentes para tamanhos de dados diferentes, fornecendo por exemplo o byte mais significativo de cada Word primeiro, porém o Word menos significativo de cada DWord primeiro, é preciso avaliar em qual caso cada opção de swap precisa ser habilitada, de forma a converter o valor retornado pelo equipamento para o formato big endian padrão do protocolo

 

NOTA

As opções de swap citadas não têm efeito para tipos de dados Bit ou para tipos de dados com tamanho de oito bits (Byte, Char e Int8). A permuta ocorre dentro de cada tipo de dados, ou seja, a opção Swap Words não tem efeito para tipos de dados de 16 bits, assim como a opção Swap DWords não tem efeito para tipos de dados de 32 bits. Os tipos de dados BCD também não permitem swaps.

 

Para saber se o equipamento utiliza algum formato diferenciado de byte order, consulte a documentação do fabricante. Caso a informação não seja encontrada na documentação, o suporte técnico do fabricante deve ser contactado.

O tópico Dúvidas Mais Frequentes contém dicas de configurações de byte order para alguns equipamentos para os quais já se sabe ser necessário utilizar as opções de swap.

 

Máscara de Bits

A opção Use Bit Mask é um recurso avançado, utilizada em casos mais específicos e raros em que o usuário deseja ler somente um bit do valor retornado pelo equipamento, mas não é possível usar o mapeamento de bits da aplicação.

Para a maioria dos usuários, os campos de mapeamento de bits da aplicação são a melhor alternativa para o acesso à máscaras de bits, não sendo preciso recorrer a este recurso do Driver.

Este recurso foi criado originalmente para permitir a leitura de bits de Holding Registers por bibliotecas especializadas do E3, em situações que impediam o uso do mapeamento de bits da aplicação.

Neste caso, o Driver lê normalmente o valor do equipamento e então o mascara, de forma a retornar ao campo Valor do Tag apenas o bit especificado (0 ou 1). A definição do número do bit a ser retornado é feita no parâmetro N3/B3 do Tag de Comunicação.

A opção Use Bit Mask somente pode ser utilizada com tipos de dados inteiros de 16 bits ou mais (Int16, Int32, Word ou DWord). Além disto, operações que habilitam esta opção podem ser utilizadas apenas para a leitura. A função Modbus de escrita (Write) de operações que utilizam esta opção de máscara podem ser definidas como None (nenhuma).

 

Operações Padrão do Driver

Por padrão, quando um novo Driver é adicionado à aplicação, este Driver já é criado com sete operações padrão, descritas na tabela a seguir.

Operações padrão

Operação

Função de Leitura

Função de Escrita

Tipo de Dados

Finalidade

1

3 - Read Holding Registers

16 - Write Multiple Registers

Word

Leitura e escrita de inteiros de 16 bits sem sinal

2

3 - Read Holding Registers

16 - Write Multiple Registers

DWord

Leitura e escrita de inteiros de 32 bits sem sinal

3

3 - Read Holding Registers

16 - Write Multiple Registers

Int16

Leitura e escrita de inteiros de 16 bits com sinal

4

3 - Read Holding Registers

16 - Write Multiple Registers

Int32

Leitura e escrita de inteiros de 32 bits com sinal

5

3 - Read Holding Registers

16 - Write Multiple Registers

Float

Leitura e escrita de valores de ponto flutuante de 32 bits

6

3 - Read Holding Registers

15 - Write Multiple Coils

Bit

Leitura e escrita de bits

7

2 - Read Discrete Inputs

None

Bit

Leitura de bits do bloco de dados de Entradas Discretas (Discrete Inputs)

 

Estas operações são as mais comumente usadas, sendo a operação 1 (um) a mais comum. Para a maior parte dos equipamentos, selecione as operações necessárias entre as já fornecidas por padrão, não sendo necessário criar novas operações ou alterar a configuração das operações padrão.

 

Definição de Novas Operações

Para adicionar uma nova operação no Driver, clique em Add.

Adicionando uma nova operação

Adicionando uma nova operação

Para configurar a nova operação, selecione um número para esta operação (este número é utilizado no parâmetro N2/B2 dos Tags de Comunicação), qual função deseja utilizar para leitura e qual função deseja utilizar para escrita, além de informar o tipo de dados que é lido ou escrito pelo Driver. Note que, ao clicar em Add, o Driver já sugere um valor que ainda não esteja em uso para a nova operação.

Para mais informações sobre os tipos de dados suportados, veja o tópico Tipos de Dados Suportados. Os demais campos devem ser configurados conforme a necessidade. A tabela a seguir contém a descrição destes campos.

Opções de campos para operações

Opção

Descrição

Size

Deve ser informado o tamanho em bytes de cada elemento do tipo de dados selecionado. Este campo é preenchido automaticamente para tipos de dados com tamanho fixo, como Byte, Word e Int16, devendo ser preenchido para tipos de dados String e BCD. No caso de Strings, este tamanho define exatamente o número de bytes enviados ou recebidos para cada valor String, isto é, para cada Tag ou Elemento de Bloco. Se a String lida ou escrita tem um tamanho menor, o restante dos bytes é preenchido com zeros, de forma a completar o tamanho configurado. O tipo de dados String neste Driver não possui um limite máximo de tamanho definido, este limite é o máximo permitido pelo protocolo para a área de dados do frame de uma determinada função

Swap Bytes

Indica que o Driver deve inverter a ordem dos bytes, um a um, para obter o valor

Swap Words

Indica que o Driver deve inverter a ordem dos bytes, dois a dois (em Words), para obter o valor

Swap DWords

Indica que o Driver deve inverter a ordem dos bytes, quatro a quatro (em DWords), para obter o valor

Use Bit Mask

Habilita o mascaramento de bits de registradores, através do parâmetro N3/B3. Esta opção afeta apenas a leitura e pode ser usada apenas com tipos de dados inteiros, com ou sem sinal, com pelo menos 16 bits de tamanho (Int16, Int32, Word ou DWord). Operações com esta opção habilitada não podem ser usadas para escrita. Para a maioria dos usuários, recomenda-se usar o mapeamento de bits da aplicação, deixando esta opção desmarcada (veja a seção específica)

 

As funções do protocolo que podem ser configuradas nos campos Read e Write das operações estão descritas no tópico Funções Suportadas. A tabela a seguir descreve cada uma das opções disponíveis.

Opções disponíveis na aba Operations

Opção

Descrição

Import Configuration

Esta opção permite importar configurações de operações de versões anteriores à 2.0 do Driver Modbus Master/Slave, que armazenavam estas configurações em um arquivo modbus.ini. Este Driver não utiliza mais arquivos INI para armazenar tais configurações, que agora são armazenadas no próprio arquivo da aplicação. Para maiores detalhes, consulte o tópico Importação e Exportação de Operações

Export Configuration

Esta opção executa a operação inversa da anterior, gerando um arquivo INI contendo as configurações de operações, no formato atual ou no mesmo formato das versões anteriores deste Driver. Desta forma, é possível guardar em um arquivo as configurações de operações de um determinado equipamento, que podem ser utilizadas em outras aplicações. Para maiores detalhes, consulte o tópico Importação e Exportação de Operações

Show Operations in Tag Browser

Se esta opção não estiver selecionada (padrão), são mostrados modelos de Tags configurados por Strings (campos Dispositivo e Item) no Tag Browser. Se estiver selecionada, modelos de Tags configurados numericamente (parâmetros N/B), representando as operações configuradas, são mostrados no Tag Browser. Quando novas instâncias do Driver são criadas, esta opção vem desmarcada por padrão. Em aplicações legadas, quando a versão do Driver é atualizada a partir de uma versão anterior à 3.1, a opção já vem selecionada, mantendo o comportamento das versões anteriores

Add

Adiciona uma nova operação à lista

Edit

Atualiza a operação selecionada na lista (equivale a clicar duas vezes no item)

Remove

Remove a operação selecionada na lista

 

NOTA

As opções Swap Bytes, Swap Words e Swap DWords, conforme já explicado, foram acrescentadas para permitir compatibilidade com equipamentos que não seguem o padrão do protocolo Modbus na codificação dos dados (byte order). Se estas opções permanecerem desabilitadas, o comportamento do Driver corresponde ao padrão do protocolo, sendo esta a opção recomendada para a maioria dos equipamentos.

 
Esta seção da documentação ajudou você a configurar este Driver?
Sim Não
Comentários (opcional):