Tipos de datos y formatos de las tablas Modbus
Formatos de las tablas
Las tablas de registros constan de las siguientes columnas:
Dirección |
Registro |
N.º |
RW |
X |
Unidad |
Tipo |
Rango |
Valor predeterminado |
CdS |
Código de función |
Dispositivos aplicables |
Descripción |
Designación |
Descripción |
---|---|
Dirección |
Una dirección de registro de 16 bits en formato hexadecimal. La dirección son los datos utilizados en la trama Modbus. |
Registro |
Número de registros de 16 bits en formato decimal. Registro = Dirección + 1 |
No |
Número de registros de 16 bits que se deben leer/escribir para acceder a la información completa |
R/RW |
Indica si el registro es de solo lectura (R/RW) o de lectura-escritura (RW). |
X |
Factor de escala:
|
Unidad |
Unidad de medida de la información:
|
Tipo |
Tipo de datos de codificación (consulte la tabla Tipos de datos que se muestra a continuación). |
Rango |
Rango de valores permitidos para la variable, generalmente un subconjunto de lo que permite el formato. Para los datos de tipo BITMAP, el contenido de este dominio es "–”. |
Valor predeterminado |
Valor predeterminado de la variable |
CdS |
Valor que se guarda cuando se apaga la fuente de alimentación de la pasarela PowerTag Link:
NOTA: Durante la puesta en marcha o el restablecimiento,
se recuperan los valores disponibles.
|
Código de función |
Código de funciones que se pueden utilizar en el registro. |
Dispositivos aplicables |
Código que indica los tipos de dispositivos para los que está disponible el registro. |
Descripción |
Información sobre el registro y las restricciones que se aplican. |
Tipos de datos
Nombre |
Descripción |
Rango |
---|---|---|
INT16 |
Entero de 16 bits con signo (1 palabra) |
-32768...+32767 |
UINT16 |
Entero de 16 bits sin signo (1 palabra) |
0...65535 |
INT32 |
Entero de 32 bits con signo (2 palabras) |
-2 147 483 648...+2 147 483 647 |
UINT32 |
Entero de 32 bits sin signo (2 palabras) |
0...4 294 967 295 |
INT64 |
Entero de 64 bits con signo (4 palabras) |
-9 223 372 036 854 775 808...9 223 372 036 854 775 807 |
UINT64 |
Entero de 64 bits sin signo (4 palabras) |
Entre 0 y 18 446 744 073 709 600 000 |
Float32 |
Valor de 32 bits (2 palabras) |
-3,4028E+38... +3,4028E+38 |
ASCII |
Carácter alfanumérico de 8 bits |
Tabla de caracteres ASCII |
BITMAP |
Campo de 16 bits (1 palabra) |
– |
DATETIME |
Consulte DATETIME |
– |
Datos de tipo Float32: flotante de precisión simple con bit de signo, exponente de 8 bits, mantisa de 23 bits (real normalizado positivo y negativo)
Para los datos de tipo ASCII, el orden de transmisión de los caracteres de las palabras (registros de 16 bits) es el siguiente:
-
Carácter n de peso no significativo
-
Carácter n + 1 de peso significativo
Todos los registros (de 16 bits o 2 bytes) se transmiten con la codificación Big Endian:
-
El byte más significativo se transmite en primer lugar.
-
El byte menos significativo se transmite en segundo lugar.
Las variables de 32 bits guardadas en dos palabras de 16 bits (por ejemplo, contadores de consumo) utilizan el formato Big Endian:
-
La palabra más significativa se transmite primero y, a continuación, la menos significativa.
Las variables de 64 bits guardadas en cuatro palabras de 16 bits (por ejemplo, fechas) se encuentran en formato Big Endian:
-
La palabra de peso significativo se transmite primero y así sucesivamente.
DATETIME
DATETIME es un tipo de datos usado para codificar la fecha y hora definidas según el estándar IEC 60870-5.
Registro |
Tipo |
Bit |
Rango |
Descripción |
---|---|---|---|---|
1 |
INT16U |
0-6 |
0x00–0x7F |
Año: Entre 0x00 (00) y 0x7F (127) corresponde a los años entre 2000 y 2127 Por ejemplo, 0x0D (13) corresponde al año 2013. |
7-15 |
– |
Reservado |
||
2 |
INT16U |
0-4 |
0x01–0x1F |
Día |
5-7 |
– |
Reservado |
||
8-11 |
0x00–0x0C |
Mes |
||
12-15 |
– |
Reservado |
||
3 |
INT16U |
0-5 |
0x00–0x3B |
Minutos |
6-7 |
– |
Reservado |
||
8-12 |
0x00–0x17 |
Horas |
||
13-15 |
– |
Reservado |
||
4 |
INT16U |
0-15 |
0x0000–0xEA5F |
Milisegundos |
Direccionamiento de bit directo
El direccionamiento se permite para las zonas de tipo BITMAP con las funciones 1, 2, 5 y 15.
La dirección del primer bit se construye del modo siguiente: (dirección de registro x 16) + número de bit.
Este modo de direccionamiento es específico de Schneider Electric.
Ejemplo: Para las funciones 1, 2, 5 y 15, se debe direccionar el bit 3 del registro 0x0078; por lo tanto, la dirección de bit es 0x0783.
Ejemplo de tramas Modbus
Solicitud
Definición |
Número de bytes |
Valor |
Comentario |
---|---|---|---|
Número de servidor |
1 byte |
0x05 |
Dirección PowerTag Link Modbus |
Código de función |
1 byte |
0x03 |
Lectura de n palabras de salida o internas |
Dirección |
2 bytes |
0x36E2 |
Dirección de un contador de consumo cuya dirección es 14050 en formato decimal |
Número de palabras |
2 bytes |
0x002C |
Lectura de 44 registros de 16 bits |
CRC |
2 bytes |
xxxx |
Valor de CRC16 |
Respuesta
Definición |
Número de bytes |
Valor |
Comentario |
---|---|---|---|
Número de servidor |
1 byte |
0x05 |
Dirección PowerTag Link Modbus |
Código de función |
1 byte |
0x03 |
Lectura de n palabras de salida o internas |
Número de bytes |
2 bytes |
0x0058 |
Número de bytes leídos |
Valores de las palabras leídas |
88 bytes |
– |
Lectura de 44 registros de 16 bits |
CRC |
2 bytes |
xxxx |
Valor de CRC16 |
Registro de Modbus
La dirección del número de registro n es n-1. En las tablas que se detallan en las siguientes secciones de este documento se proporcionan los números de registro (en formato decimal) y sus correspondientes direcciones (en formato hexadecimal). Por ejemplo, la dirección del número de registro 3000 es 0x0BB7 (2999).