Aller au contenu principal

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

Les échantillons de données proviennent du capteur avec une fréquence d'échantillonnage élevée fsens=1…2kHzf_{sens} = 1 \dots 2 kHz.

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.

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

D'autre part, la bufferSIze doit être choisie de sorte qu'environ 5…10s5 \dots 10 s 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.

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

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.

astuce

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ètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
devPathOuiIntegerChemin de périphérique (device path) du port USB du capteur dans le système Linux.2
frameSizeNonInteger>= 826Taille (en octets) du paquet de données contenant les valeurs de mesure envoyé par le capteur.
baudrateNonInteger115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 35000001000000Débit en bauds de la liaison USB série avec le capteur.

Informations sur le module​

InformationsValeur
AuteuroptiMEAS GmbH
depuis smartCORE2.10
Type de moduleProducer
Dépendances-

Footnotes​

  1. Nous avons eu de bonnes expériences avec ce module RS485 à 4 canaux de la société WaveShare. Il est important qu'un circuit FTDI soit utilisé et que le matériel prenne en charge des débits allant jusqu'à 1 MBaud. ↩

  2. Le chemin peut être déterminé avec ls /dev/serial/by-id/ ou dmesg dans le terminal de l'appareil. ↩