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"
}
I campioni di dati provengono dal sensore con un'elevata frequenza di campionamento .
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.
D'altra parte la bufferSIze va scelta in modo che nel canale smartCORE possano essere mantenuti circa di dati. Dati con lacune nei file OSF indicano una bufferSize troppo piccola.
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.
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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| devPath | Sì | Integer | Device path della porta USB del sensore nel sistema operativo Linux.2 | ||
| frameSize | No | Integer | >= 8 | 26 | Dimensione (in byte) del pacchetto di dati con i valori di misura inviato dal sensore. |
| baudrate | No | Integer | 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000 | 1000000 | Baudrate della connessione USB seriale verso il sensore. |
Informazioni sul modulo
| Informazioni | Valore |
|---|---|
| Autore | optiMEAS GmbH |
| da smartCORE | 2.10 |
| Tipo di modulo | Producer |
| Dipendenze | - |