Módulo de sensor Baumer
Descripción
El módulo "baumer" permite la conexión digital de sensores BPIK o BPIV2 de la empresa Baumer GmbH.
BPIK y BPIV2 son sensores inteligentes desarrollados específicamente para aplicaciones ferroviarias, que integran ya en el propio sensor varias funciones. Además del ángulo de giro absoluto, la velocidad y la aceleración angulares, la temperatura del sensor y los valores de aceleración triaxiales, los sensores realizan directamente análisis de vibraciones y proporcionan información de estado sobre planos en las ruedas, daños en los rodamientos o el estado de la vía.
El sensor se conecta mediante un enlace RS485 serie unidireccional, que se conecta por USB al sistema smartRAIL o smartMini a través de un convertidor1. Según el modelo, los sensores pueden proporcionar paquetes de datos de distinta longitud e información diferente. Por ello se necesita una descripción de las tramas de datos del sensor conectado.
El módulo Baumer recibe las tramas de datos del sensor, extrae la información de tiempo y verifica la suma de comprobación. A continuación, los datos se reenvían al módulo FmProducer. El módulo FmProducer extrae los distintos datos del sensor de las tramas de datos.
Ejemplo de configuración JSON (demo)
La siguiente sección muestra una configuración de demostración del módulo.
En este ejemplo se espera una longitud de las tramas de datos del sensor de 26 bytes. Esto puede variar según el tipo de sensor o el firmware del sensor.
{
"config": {
"devPath": "/dev/serial/by-id/usb-FTDI_USB__-__Serial_Converter_FT8LB8Z8-if02-port0",
"frameSize": 26,
"baudrate":1000000
},
"module": "baumer",
"factory": "baumer"
}
La configuración correspondiente del módulo FmProducer para leer los valores de señal de las tramas de datos del sensor:
{
"config": {
"addressSpec": "AscendingFirstBit",
"channelPrefix": "Baumer.",
"channels": [
{
"bitLength": 16,
"bitOffset": 128,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AccX",
"offset": 0,
"physicalUnit": "g",
"noFilter": true,
"scale": 0.0001220703125,
"bufferSize": 10240,
"cacheSize": 200
},
{
"bitLength": 16,
"bitOffset": 144,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AccY",
"offset": 0,
"physicalUnit": "g",
"cacheSize": 200,
"noFilter": true,
"bufferSize": 10240,
"scale": 0.0001220703125
},
{
"bitLength": 16,
"bitOffset": 160,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AccZ",
"offset": 0,
"physicalUnit": "g",
"scale": 0.0001220703125,
"noFilter": true,
"bufferSize": 10240,
"cacheSize": 200
},
{
"bitLength": 16,
"bitOffset": 96,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AngAcc",
"offset": 0,
"physicalUnit": "rpm/s",
"scale": 0.3051757813,
"noFilter": true,
"bufferSize": 10240,
"cacheSize": 200
},
{
"bitLength": 16,
"bitOffset": 112,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AngOscAmp",
"offset": 0,
"physicalUnit": "rpm",
"scale": 0.002861022949,
"noFilter": true,
"bufferSize": 10240,
"cacheSize": 200
},
{
"bitLength": 24,
"bitOffset": 72,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "AngSpeed",
"offset": 0,
"physicalUnit": "rpm",
"scale": 0.0007152557373,
"noFilter": true,
"bufferSize": 10240,
"cacheSize": 200
},
{
"bitLength": 24,
"bitOffset": 48,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "unsigned",
"messageKey": 0,
"name": "Pos",
"offset": 0,
"physicalUnit": "°",
"scale": 0.00002145767212,
"cacheSize": 200,
"noFilter": true,
"bufferSize": 10240
},
{
"bitLength": 16,
"bitOffset": 176,
"byteOrder": "littleendian",
"dataType": "double",
"imageType": "signed",
"messageKey": 0,
"name": "Temperatur",
"offset": 0,
"physicalUnit": "°C",
"scale": 0.01,
"bufferSize": 10240,
"absoluteTolerance": 0.5
}
],
"fmd": "baumer"
},
"factory": "fmproducer",
"module": "Baumer_Producer"
}
Las muestras de datos llegan del sensor con una frecuencia de muestreo alta .
Para optimizar el rendimiento de la adquisición de datos es importante ajustar el cacheSize de los canales rápidos de datos brutos de modo que la publicación de nuevas muestras en el smartCORE se produzca aproximadamente a un ritmo de 10 Hz.
Por otro lado, el bufferSize debe elegirse de modo que puedan mantenerse en el canal del smartCORE unos de datos. Los datos con lagunas en los archivos OSF indican un bufferSize demasiado pequeño.
Como en todos los canales, salvo la temperatura, cada muestra se diferencia de la anterior y es relevante en la evaluación posterior, el filtro OnChange puede desactivarse con la opción noFilter = true.
En el caso de la temperatura, ajustando absoluteTolerance = 0.5 se puede conseguir una reducción considerable de los datos, sobre todo porque la temperatura medida cambia solo lentamente.
Si deben conectarse varios sensores, para cada uno de ellos debe crearse y configurarse el correspondiente par de módulos baumer y fmproducer. Los sensores pueden identificarse mediante los nombres asignados a los módulos.
Parámetros del módulo
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| devPath | Sí | Integer | Device-Path del puerto USB del sensor en el sistema operativo Linux.2 | ||
| frameSize | No | Integer | >= 8 | 26 | Tamaño (en bytes) del paquete de datos con los valores de medición que envía el sensor. |
| baudrate | No | Integer | 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000 | 1000000 | Velocidad en baudios de la conexión USB serie con el sensor. |
Información del módulo
| Información | Valor |
|---|---|
| Autor | optiMEAS GmbH |
| desde smartCORE | 2.10 |
| Tipo de módulo | Producer |
| Dependencias | - |