ModBus: tipos de datos

Tipo de dato

Descripción

INT16

Número entero en el rango de -32768 a +32767.
El rango numérico empleado realmente para un punto de datos puede divergir.

UINT16

Número entero sin signo en el rango de 0 a 65535.
El rango numérico empleado realmente para un punto de datos puede divergir.

ENUM

Es una enumeración. Solo se puede establecer uno de los valores indicados en los parámetros.

BOOL

Un valor booleano es un parámetro con exactamente dos estados (0 – falso/false y 1 – verdadero/true). Generalmente todos los valores superiores a 0 se valoran como true.

BITMAP*

Es un compendio de 16 valores booleanos (bits). Los valores se indexan de 0 a 15. El número que debe leerse o escribirse en el registro resulta de la suma de todos los bits con el valor 1 multiplicado por 2 elevado a su índice.

  • Bit 0: 20 = 1
  • Bit 1: 21 = 2
  • Bit 2: 22 = 4
  • Bit 3: 23 = 8
  • Bit 4: 24 = 16
  • Bit 5: 25 = 32
  • Bit 6: 26 = 64
  • Bit 7: 27 = 128
  • Bit 8: 28 = 256
  • Bit 9: 29 = 512
  • Bit 10: 210 = 1024
  • Bit 11: 211 = 2048
  • Bit 12: 212 = 4096
  • Bit 13: 213 = 8192
  • Bit 14: 214 = 16384
  • Bit 15: 215 = 32768

BITMAP32

Es un compendio de 32 valores booleanos (bits). Para conocer los detalles del cálculo consulte Bitmap.

* Ejemplo de aclaración:
Los bits 3, 6, 8 y 15 son 1, todos los demás son 0. Por tanto, la suma es 23+26+28+215 = 8+64+256+32768 = 33096. También es posible realizarlo en orden inverso. En este caso se parte del bit con el índice más alto y se comprueba si el número leído es mayor o igual que la potencia de 2. Si este fuera el caso, se establece el bit 1 y se elimina la potencia de 2 del número. A continuación se realiza la comprobación con el bit que posee el siguiente índice más pequeño y el resto calculado en este momento se repite hasta llegar al bit 0 o hasta que el resto sea 0. Para la explicación, véase el ejemplo: el número leído es 1416. El bit 15 pasa a 0, ya que 1416 < 32768. Los bits 14 a 11 también pasan a 0. El bit 10 pasa a 1, ya que 1416 > 1024. El resto es 1416-1024=392. El bit 9 pasa a 0, ya que 392 < 512. El bit 8 pasa a 1, ya que 392 > 256. El resto es 392-256=136. El bit 7 pasa a 1, ya que 136 > 128. El resto es 136-128=8. Los bits 6 a 4 pasan a 0. El bit 3 pasa a 1, ya que 8=8. El resto es 0. Y así se calculan los demás bits 2 hasta que todos sean 0.