Ir para o conteúdo

API – Enums

Esta seção documenta os enums públicos utilizados pela biblioteca pyModbusTCPtools.

Os enums fornecem uma forma explícita e segura de configurar tipos de dados Modbus e comportamento de endianness, evitando o uso de valores mágicos na aplicação.


Enum Endian

O enum Endian define a ordenação de palavras e bytes utilizada na conversão de valores Modbus que ocupam múltiplos registradores.

Ele controla separadamente:

  • Ordem das palavras (word order)
  • Ordem dos bytes dentro da palavra (byte order)

A escolha correta depende do fabricante e da configuração do dispositivo Modbus.


Endian.BE

Big Endian (padrão Modbus).

Características:

  • Word order: Big Endian
  • Byte order: Big Endian

Uso típico:

  • CLPs Siemens
  • Implementações Modbus clássicas

Endian.LE

Little Endian com troca de palavras (word swap).

Características:

  • Word order: Little Endian
  • Byte order: Big Endian

Uso típico:

  • Alguns CLPs Rockwell
  • Gateways configuráveis

Endian.BE_SWAP

Big Endian com troca de bytes.

Características:

  • Word order: Big Endian
  • Byte order: Little Endian

Uso típico:

  • Dispositivos que realizam byte swap
  • Equipamentos legados específicos

Endian.LE_SWAP

Little Endian com troca de palavras e bytes.

Características:

  • Word order: Little Endian
  • Byte order: Little Endian

Uso típico:

  • Casos específicos de interoperabilidade

Enum ModbusDataType

O enum ModbusDataType define os tipos de dados suportados pela biblioteca para leitura e escrita tipada.

Cada tipo corresponde a um tamanho fixo em bits e a uma quantidade conhecida de registradores Modbus.


INT16

  • Tipo inteiro com sinal
  • Tamanho: 16 bits
  • Registradores: 1
  • Range: -32.768 a 32.767

UINT16

  • Tipo inteiro sem sinal
  • Tamanho: 16 bits
  • Registradores: 1
  • Range: 0 a 65.535

INT32

  • Tipo inteiro com sinal
  • Tamanho: 32 bits
  • Registradores: 2
  • Range: -2.147.483.648 a 2.147.483.647

UINT32

  • Tipo inteiro sem sinal
  • Tamanho: 32 bits
  • Registradores: 2
  • Range: 0 a 4.294.967.295

INT64

  • Tipo inteiro com sinal
  • Tamanho: 64 bits
  • Registradores: 4
  • Range: -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

UINT64

  • Tipo inteiro sem sinal
  • Tamanho: 64 bits
  • Registradores: 4
  • Range: 0 a 18.446.744.073.709.551.615

FLOAT32

  • Tipo ponto flutuante (IEEE 754)
  • Tamanho: 32 bits
  • Registradores: 2
  • Range aproximado: ±1,18 × 10⁻³⁸ a ±3,40 × 10³⁸

FLOAT64

  • Tipo ponto flutuante de dupla precisão (IEEE 754)
  • Tamanho: 64 bits
  • Registradores: 4
  • Range aproximado: ±2,23 × 10⁻³⁰⁸ a ±1,79 × 10³⁰⁸

Considerações de uso

Boas práticas ao utilizar enums:

  • Sempre utilize os enums ao invés de valores literais
  • Documente o endianness utilizado por cada dispositivo
  • Centralize a definição de tipos e endianness na aplicação
  • Evite misturar diferentes endianness sem necessidade

Próximo passo

Após compreender os enums disponíveis, avance para a documentação de Exceções, onde são detalhados os erros levantados pela biblioteca e como tratá-los corretamente.