Passa al contenuto principale

Modulo sensore Baumer

Descrizione​

Il modulo "baumer" consente il collegamento digitale dei sensori BPIK o BPIV2 della società Baumer GmbH.

BPIK e BPIV2 sono sensori smart sviluppati appositamente per applicazioni ferroviarie, che riuniscono già nel sensore diverse funzioni. Oltre all'angolo di rotazione assoluto, alla velocità e all'accelerazione angolari, alla temperatura del sensore e ai valori di accelerazione triassiali, i sensori eseguono direttamente analisi delle vibrazioni e forniscono informazioni di stato su ruote con spianamenti, danni ai cuscinetti o condizioni del binario.

Il collegamento del sensore avviene tramite una connessione seriale RS485 unidirezionale, collegata tramite un convertitore1 via USB al sistema smartRAIL o smartMini. A seconda della versione, i sensori possono fornire pacchetti di dati con lunghezza e informazioni differenti. È quindi necessaria una descrizione dei data frame del sensore collegato.

Il modulo Baumer riceve i data frame del sensore, estrae l'informazione temporale e verifica il checksum. Quindi i dati vengono inoltrati al modulo FmProducer. Il modulo FmProducer estrae i singoli dati del sensore dai data frame.

Esempio di configurazione JSON (demo)​

La sezione seguente mostra una configurazione demo del modulo.

In questo esempio ci si attende una lunghezza dei data frame del sensore di 26 byte. Questo valore può variare a seconda del tipo di sensore o del firmware del sensore.

{
"config": {
"devPath": "/dev/serial/by-id/usb-FTDI_USB__-__Serial_Converter_FT8LB8Z8-if02-port0",
"frameSize": 26,
"baudrate":1000000
},
"module": "baumer",
"factory": "baumer"
}

La relativa configurazione del modulo FmProducer per leggere i valori dei segnali dai data frame del sensore:

{
"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

I campioni di dati provengono dal sensore con un'elevata frequenza di campionamento fsens=1…2kHzf_{sens} = 1 \dots 2 kHz.

Per ottimizzare le prestazioni dell'acquisizione dati è importante impostare la cacheSize per i canali rapidi dei dati grezzi in modo che la pubblicazione di nuovi campioni nello smartCORE avvenga approssimativamente con cadenza di 10 Hz.

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

D'altra parte la bufferSIze va scelta in modo che nel canale smartCORE possano essere mantenuti circa 5…10s5 \dots 10 s di dati. Dati con lacune nei file OSF indicano una bufferSize troppo piccola.

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

Poiché, ad eccezione della temperatura, in tutti i canali ogni campione differisce dal precedente e svolge un ruolo nell'analisi successiva, il filtro OnChange può essere disattivato con l'opzione noFilter = true.

Per la temperatura, impostando absoluteTolerance = 0.5 è possibile ottenere una notevole riduzione dei dati, tanto più che la temperatura misurata varia solo lentamente.

suggerimento

Se devono essere collegati più sensori, per ciascuno va creata e configurata una coppia di moduli corrispondente composta da baumer e fmproducer. I sensori possono essere identificati tramite la denominazione dei moduli.

Parametri del modulo​

Nome parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
devPathSìIntegerDevice path della porta USB del sensore nel sistema operativo Linux.2
frameSizeNoInteger>= 826Dimensione (in byte) del pacchetto di dati con i valori di misura inviato dal sensore.
baudrateNoInteger115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 35000001000000Baudrate della connessione USB seriale verso il sensore.

Informazioni sul modulo​

InformazioniValore
AutoreoptiMEAS GmbH
da smartCORE2.10
Tipo di moduloProducer
Dipendenze-

Footnotes​

  1. Abbiamo avuto buone esperienze con questo modulo RS485 a 4 canali della società WaveShare. È importante che venga utilizzato un chipset FTDI e che l'hardware supporti bitrate fino a 1 MBaud. ↩

  2. Il percorso può essere determinato con ls /dev/serial/by-id/ o dmesg nel terminale sul dispositivo. ↩