3.Protocolo RTU de Modbus
El modelo 8960-01C de geokon, utiliza el protocolo de Unidad Terminal Remota (RTU, por sus siglas en inglés) de Modbus, para comunicarse con los registradores de datos. Como su nombre lo sugiere, Modbus se diseñó para trabajar en lo que se conoce como una red bus, lo que significa que todos los dispositivos reciben todos los mensajes que pasan por la red. Los conjuntos del modelo 8960-01C usan la interfaz eléctrica RS-485 por su prevalencia, simplicidad y éxito como capa física robusta e industrial.
Puede encontrar más información acerca de Modbus en la siguiente página de Internet: http://www.modbus.org/specs.php
3.2Descripción General del Protocolo RTU de Modbus
El Protocolo RTU de Modbus utiliza paquetes (mensajes conformados por múltiples secciones) para comunicar y transferir datos entre dispositivos dentro de la red. El formato general de estos paquetes es el siguiente:
1.Dirección Modbus (1 byte) – la dirección del dispositivo específico en el bus.
2.Código de función (1 byte) – la acción a ser realizada por el dispositivo esclavo.
3.Datos (múltiples bytes) – la carga útil del código de función que se envía.
4.Verificación de Redundancia Cíclica o CRC (2 bytes) – una verificación de integridad de los datos de 16 bits calculada respecto a los otros bytes en el paquete.
Las tablas de Modbus (mapas) definen la ubicación en la memoria de cada interfaz 8960-01C y la información que contienen. Por ejemplo, las lecturas más recientes del sensor se almacenan en una tabla. Esta lectura se presenta en diferentes formatos en secciones distintas de la tabla. La ubicación y el tamaño del registro de estas variables se detalla en la tabla a continuación.
Variable |
Tipo |
Registro Modbus |
Decimal |
Descripción |
Frecuencia |
float32 |
0x0100 |
256 |
Frecuencia medida en Hz |
Resistencia |
float32 |
0x0102 |
258 |
Termistor medido-resistencia |
Disparador |
uint16 |
0x0118 |
280 |
Escribir en este registro inicia una muestra |
Tabla 2: Almacenamiento RAM
3.4Lectura de Sensores con las Interfaces 8960-01C
Si bien el protocolo RTU de Modbus soporta alrededor de 20 diferentes códigos de función, la funcionalidad simple de un sensor de cuerda vibrante con bus elimina la necesidad de todos excepto dos de ellos. Específicamente, el de Predeterminar registro sencillo (0x06) y el de Leer registros de detención (0x03). El código de función Predeterminar registro sencillo se utiliza para emitir un comando de “disparador” hacia la interfaz. Esto inicia una secuencia de arranque y lectura. El código de función Leer registros de detención se usa para leer los valores almacenados en los registros de 16 bits del 8960-01C. En este caso, la medición resultante ocupa dos registros de 16 bits. Las lecturas pueden obtenerse como frecuencia (Hz). Un ejemplo de este disparador y la subsecuente consulta se muestra en las Tablas 3 y 4 a continuación.
Dirección del disparador #1 |
|
RX<- 01 06 0118 00 01 C9 F1 |
Sensor reconoce la escritura simple |
...espere 370 ms... |
|
TX-> 01 03 0100 00 02 C5 F7 |
Obtener el contenido de 2 registros @ 0x0100 (frecuencia de medición) |
RX<- 01 03 71 58 45 4B 12 7B |
Registros = 0x454B7158, 3255.08 Hz |
TX-> 01 03 01 02 00 02 64 37 |
Obtener el contenido de 2 registros @ 0x0102 (resistencia del termistor) |
RX<- 01 03 5D 3A 45 51 3A FE |
Registros = 0x45515D3A, 3349.83 Ω |
|
Dirección del Dispositivo |
Código de Función |
Dirección de Datos |
Datos a Escribir |
*CRC |
HEX16 |
01 |
06 |
0118 |
0001 |
C9F1 |
DEC10 |
1 |
6 |
280 |
1 |
51697 |
Tabla 3: Comando de Disparador de Ejemplo - Sensor #1
La siguiente tabla muestra la respuesta de punto flotante IEEE-754 como dos partes, cada una compuesta por dos bytes. Por cómo se almacena esta información en la memoria, las dos partes se reciben las dos partes en orden inverso. El número completo de punto flotante en HEX es 0x454B7158 (3255.08).
|
Dirección del Dispositivo |
Código de Función |
Conteo de Bytes |
16 Bits |
16 Bits |
*CRC |
HEX16 |
01 |
03 |
04 |
7158 |
454B |
127B |
DEC10 |
1 |
3 |
4 |
3255.08 |
4731 |
Tabla 4: Respuesta de Ejemplo - Sensor #1, Punto Flotante de la Lectura de Frecuencia
Figura 10: Captura de Pantalla del Programa del Terminal PC
Nota: El byte menos significativo (LSB) se envía primero al CRC de Modbus. Al calcular el CRC para la escritura de la dirección 0118 en la Tabla 3 arriba, el algoritmo CRC de Modbus mostrará 0xF1C9 (61897D). Nuestros ejemplos muestran el valor decimal después de que el LSB y el byte más significativo (MSB) son intercambiados.
La interfaz modelo 8960-01C está diseñada para excitar y medir todos los transductores de cuerda vibrante geokon Detectará automáticamente cualquier frecuencia resonante de entre 400 y 5,000 Hz. No hay configuraciones para el tipo de sensor.
El tiempo para la recepción de datos a partir del envío del disparador es de 370 milisegundos.