Module capteur Baumer
Description
Le module « baumer » permet le raccordement numérique des capteurs BPIK ou BPIV2 de la société Baumer GmbH.
Les BPIK et BPIV2 sont des capteurs intelligents, développés spécialement pour les applications ferroviaires et qui réunissent déjà plusieurs fonctions dans le capteur. Outre l'angle de rotation absolu, la vitesse et l'accélération angulaires, la température du capteur et les valeurs d'accélération sur 3 axes, les capteurs réalisent directement des analyses vibratoires et fournissent des informations d'état sur les méplats, les dommages aux roulements ou l'état de la voie.
Le capteur est raccordé par une liaison série RS485 unidirectionnelle, connectée en USB au système smartRAIL ou smartMini via un convertisseur1. Selon leur version, les capteurs peuvent fournir des paquets de données de longueurs et de contenus différents. Une description des trames de données du capteur raccordé est donc nécessaire.
Le module Baumer reçoit les trames de données du capteur, en extrait l'information de temps et vérifie la somme de contrôle. Les données sont ensuite transmises au module FmProducer. Le module FmProducer extrait les différentes données de capteur des trames de données.
Exemple de configuration JSON (démo)
La section suivante présente une configuration de démonstration du module.
Dans cet exemple, la longueur attendue des trames de données du capteur est de 26 octets. Elle peut varier selon le type de capteur ou le firmware du capteur.
{
"config": {
"devPath": "/dev/serial/by-id/usb-FTDI_USB__-__Serial_Converter_FT8LB8Z8-if02-port0",
"frameSize": 26,
"baudrate":1000000
},
"module": "baumer",
"factory": "baumer"
}
La configuration associée du module FmProducer, pour lire les valeurs de signal dans les trames de données du capteur :
{
"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"
}
Les échantillons de données proviennent du capteur avec une fréquence d'échantillonnage élevée .
Pour optimiser les performances de l'acquisition de données, il est important de régler la cacheSize des canaux rapides de données brutes de sorte que la publication de nouveaux échantillons dans le smartCORE ait lieu approximativement à une cadence de 10 Hz.
D'autre part, la bufferSIze doit être choisie de sorte qu'environ de données puissent être conservées dans le canal smartCORE. Des lacunes dans les données des fichiers OSF indiquent une bufferSize trop petite.
Comme, à l'exception de la température, chaque échantillon de tous les canaux diffère du précédent et joue un rôle dans l'analyse ultérieure, le filtre OnChange peut être désactivé avec l'option noFilter = true.
Pour la température, le réglage absoluteTolerance = 0.5 permet d'obtenir une réduction considérable des données, d'autant que la température mesurée ne varie que lentement.
Si plusieurs capteurs doivent être raccordés, il faut créer et configurer pour chacun d'eux une paire de modules baumer et fmproducer. Les capteurs peuvent être identifiés par le nom donné aux modules.
Paramètres du module
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| devPath | Oui | Integer | Chemin de périphérique (device path) du port USB du capteur dans le système Linux.2 | ||
| frameSize | Non | Integer | >= 8 | 26 | Taille (en octets) du paquet de données contenant les valeurs de mesure envoyé par le capteur. |
| baudrate | Non | Integer | 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000 | 1000000 | Débit en bauds de la liaison USB série avec le capteur. |
Informations sur le module
| Informations | Valeur |
|---|---|
| Auteur | optiMEAS GmbH |
| depuis smartCORE | 2.10 |
| Type de module | Producer |
| Dépendances | - |