Saltar al contenido principal

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"
}
important

Las muestras de datos llegan del sensor con una frecuencia de muestreo alta fsens=1…2kHzf_{sens} = 1 \dots 2 kHz.

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.

cacheSize=fsensor10Hz\text{cacheSize} = \dfrac{f_{sensor}}{10 Hz}

Por otro lado, el bufferSize debe elegirse de modo que puedan mantenerse en el canal del smartCORE unos 5…10s5 \dots 10 s de datos. Los datos con lagunas en los archivos OSF indican un bufferSize demasiado pequeño.

bufferSize=fsens⋅5s\text{bufferSize}=f_{sens}\cdot 5 s

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.

consejo

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ámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
devPathSíIntegerDevice-Path del puerto USB del sensor en el sistema operativo Linux.2
frameSizeNoInteger>= 826Tamaño (en bytes) del paquete de datos con los valores de medición que envía el sensor.
baudrateNoInteger115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 35000001000000Velocidad en baudios de la conexión USB serie con el sensor.

Información del módulo​

InformaciónValor
AutoroptiMEAS GmbH
desde smartCORE2.10
Tipo de móduloProducer
Dependencias-

Footnotes​

  1. Hemos obtenido buenos resultados con este módulo RS485 de 4 canales de la empresa WaveShare. Es importante que se utilice un chipset FTDI y que el hardware admita velocidades de hasta 1 MBaud. ↩

  2. La ruta puede determinarse con ls /dev/serial/by-id/ o dmesg en el terminal del dispositivo. ↩