sin resumen de edición
Sin resumen de edición |
Sin resumen de edición |
||
| Línea 1: | Línea 1: | ||
[[RU:MODBUS_ТД-500| Русская версия]] | [[RU:MODBUS_ТД-500| Русская версия]] | ||
[[en:MODBUS_TD-500| English version]] | [[en:MODBUS_TD-500| English version]] | ||
Descripción de los registros Modbus ТD-500 | |||
= ''' | = '''Características del puerto''' = | ||
Baud rate: 19200 kbps | Baud rate: 19200 kbps | ||
| Línea 12: | Línea 12: | ||
Parity: None | Parity: None | ||
= ''' | = '''Estructura de solicitud y respuesta''' = | ||
''' | '''SOLICITUD''': | ||
* (u8) | * (u8) Dirección de red | ||
* (u8) 0х03 --> | * (u8) 0х03 -->Comando de lectura | ||
* (u8) | * (u8) Byte final de registro lectura (valor ignorado) | ||
* (u8) | * (u8) Byte inicial de registro lectura (valor ignorado) | ||
* (u8) | * (u8) Byte final de cantidad -|-|-|-| | ||
* (u8) | * (u8) Byte inicial de cantidad -|-|-|-| | ||
* (u8) CRC16 - | * (u8) CRC16 - byte final | ||
* (u8) CRC16 - | * (u8) CRC16 - byte inicial | ||
''' | '''RESPUESTA''': | ||
* (u8) | * (u8) Dirección de red | ||
* (u8) | * (u8) Aprobación de comando (siempre 0х03) | ||
* (u8) | * (u8) Cantidad de bytes descargados (siempre 8) | ||
* s8 (s8) | * s8 (s8) Temperatura | ||
* (u8) | * (u8) Byte inicial de nivel | ||
* (u8) | * (u8) Byte final de nivel | ||
* (u8) | * (u8) Siempre 0 | ||
* (u8) | * (u8) Siempre 0 | ||
* (u8) | * (u8) Siempre 0 | ||
* (u8) | * (u8) Siempre 0 | ||
* (u8) | * (u8) Siempre 0 | ||
* (u8) | * (u8) Byte final CRC16 | ||
* (u8) | * (u8) Byte inicial CRC16 | ||
s8 | s8 significa que el valor es entero con signo, u8 es un valor entero sin signo | ||
Direcciones numeradas de los bytes de respuesta: | |||
{| class="wikitable" | {| class="wikitable" | ||
| | |Número de byte | ||
| | |Número de byte a partir de 0 | ||
| | |Valor | ||
|- | |- | ||
|1 | |1 | ||
|0 | |0 | ||
| | |Temperatura | ||
|- | |- | ||
|2 | |2 | ||
|1 | |1 | ||
| | |Byte inicial de nivel | ||
|- | |- | ||
|3 | |3 | ||
|2 | |2 | ||
| | |Byte final de nivel | ||
|- | |- | ||
|4 | |4 | ||
|3 | |3 | ||
| | |Siempre 0 | ||
|- | |- | ||
|5 | |5 | ||
|4 | |4 | ||
| | |Siempre 0 | ||
|- | |- | ||
|6 | |6 | ||
|5 | |5 | ||
| | |Siempre 0 | ||
|- | |- | ||
|7 | |7 | ||
|6 | |6 | ||
| | |Siempre 0 | ||
|- | |- | ||
|8 | |8 | ||
|7 | |7 | ||
| | |Siempre 0 | ||
|} | |} | ||
Baudrate | Baudrate no cambia | ||
'''19200, 8, n, 1''' | '''19200, 8, n, 1''' | ||
Cantidad de los bits en un paquete es 12x8, es decir aprox 96 | |||
En la solicitud no son importantes la dirección de red ni cantidad de los registros solicitados. Es importante que la suma de comprobación sea calculada correctamente. | |||
= ''' | = '''Ejemplo de sondear TD-500 en programa Terminal''' = | ||
'''$01$03$00$00$00$04$44$09''' Comando para sondear el sensor mediante el protocolo Modbus RTU | |||
* 01 es la dirección de red del sensor | |||
* 03 es el comando para leer registros | |||
* 00 00 es el registro con el que empieza la solicitud de datos | |||
* 00 04 es la cantidad de los registros solicitados | |||
* 44 09 es la suma de comprobación CRC-16 MODBUS | |||
Si se introduce una dirección de red diferente, es necesario recalcular la suma de comprobación. No obstante, esto no tiene sentido ya que el sensor responde a cualquiera dirección de red. | |||
'''$ | == '''Calcular la suma de comprobación''' == | ||
Para calcular la suma de compobación puede ir al sitio web '''<nowiki>https://crccalc.com</nowiki>''', introducir su solicitud '''sin el símbolo $''', elegir '''HEX''', '''CRC-16 Modbus''' y hacer click en '''Calc CRC-16'''. | |||
Calculación de la suma de comprobación en '''[https://crccalc.com crccalc]''' | |||
El valor calculado debe ser añadido al comando final. Tenga en cuenta que el valor 0C 44 obtenido después de calculación se añade al comando como 44 0C. | |||
= '''Respuesta del sensor:''' = | |||
'''01 03 08 14 04 67 00 00 00 00 00 D8 FF''' | '''01 03 08 14 04 67 00 00 00 00 00 D8 FF''' | ||
* 01 | * 01 es la dirección de red | ||
* 03 | * 03 es el comando al que sensor responde | ||
* 08 | * 08 es la cantidad de los bytes en respuesta | ||
* 14 | * 14 es la temperatura en HEX (20°C en decimal) | ||
* 04 67 | * 04 67 son los bytes de nivel; Big Endian HEX (orden normal) (1127 unidades convencionales en decimal) | ||
* 00 00 00 00 00 | * 00 00 00 00 00 es la reserva de 5 bytes que no se utiliza | ||
* D8 FF | * D8 FF es la suma de comprobación CRC-16 Modbus; Little Endian HEX (orden inverso, es decir FF D8) | ||