Para más información acerca de MODBUS, visite: www.modbus.org.
6.1 Orden Endian y paquete de bytes
MODBUS transfiere los datos en unidades de bits y registros. El AquaVent solo usa las funciones MODBUS que operan con registros. Un registro MODBUS contiene 16 bits.
MODBUS siempre transfiere los datos en Big Endian, o en orden de red, sin importar la infraestructura del sistema que acceda al MODBUS. Normalmente, la pila de protocolos MODBUS se compilan para el sistema de destino de tal forma que se haga cualquier conversión necesaria para mover apropiadamente los datos entre la capa de aplicación y el MODBUS. MODBUS siempre mueve múltiples registros a través de la línea de comunicación con las direcciones de registro en orden ascendiente y, dentro de cada registro, los octetos (bytes) se mueven en orden descendiente de acuerdo a su importancia aritmética.
Los octetos (bytes) de los tipos de datos de coma flotante (flaoting point) como IEEE-754, se ordenan por importancia de la misma forma que los números enteros. También sucede en la mayoría de los sistemas de módem (tanto en big-endian como en little-endian).
Ejemplos: (los tres ejemplos usan los mismos datos de registro). Cadena Unicode (codificación UTF-8) "21º" o int32 0x3231C2B0, o IEEE-754 sign*(mantissa/2^23+1)*2^(exp-127) = decimal +1.388753891*2^-27 = +1.034702279e-8 |
|||||
Cadena Unicode (UTF-8) | 0x32 ('2') | 0x31 ('1') | 0xC2B0 ('°') | ||
Valores de byte | 0x32 | 0x31 | 0xC2 | 0xB0 | |
Importancia del byte (orden de transmisión) | Alta (primero) | Bajo | Alto | Baja (último) | |
Dirección del registro (orden de transmisión) | n+0 (primero) | n+1 (último) | |||
Valor del registro MODBUS | 0x3231 | 0xC2B0 | |||
Valor del registro (decimal) | 12849 | 49840 (o -15696 si se firma) | |||
Binario | 0011 0010 | 0011 0001 | 1100 0010 | 1011 0000 | |
Constituyentes IEEE-754 | Firma | Exponente (base 2, sesgado por +127) | Mantissa (partes por 2^23, 1<=norm.<2, menos 1) | ||
Valores binarios IEEE-754 | 0 | 011 0010 0 | 011 0001 1100 0010 1011 0000 | ||
Equivalente decimal IEEE-754 | + | 100 | 3261104 | ||
IEEE-754 no sesgado y/o no normalizada | + | -27 | 1,388753891 |