Guide d’intégration

FR-LM20 — raccordement IO-Link

Capteur de niveau radar longue portée, modèle standard. Même famille IODD que le FR-S01 : structure de données identique, jusqu’à 20 m de portée.

KEYENCE FR-LM20 IO-Link Siemens Radar 60 GHz Maître PROFINET générique (ex. ifm AL1102)
FR-LM20

Caractéristiques de l’appareil

Grandeur mesuréeNiveau de liquide ou de poudre — sans contact
TechnologieRadar, bande 58 … 63 GHz
Plage de mesureJusqu’à 20 m — version « L » : 15 m
Plage d’affichageJusqu’à 25 m
Permittivité relative cible2 minimum
Résolution1 mm
Précision< 0,1 m : ±10 mm · 0,1 à 10 m : ±1 mm · 10 à 20 m : ±2 mm
Temps de réponse0,4 s · 1,5 s · 4 s (défaut) · 10 s
Pression réservoir−0,1 à +1 MPa
MatériauxLentille PTFE · revêtement FKM · extrémité SUS304 · corps PPS PET PAR
Raccord processG1-1/2 (40 A)
Alimentation24 V DC +25 % / −20 % — 106 mA max
Sorties de commande5 max — NPN/PNP, 30 V DC, 50 mA par sortie
Sortie analogique0-20 ou 4-20 mA — charge max 260 Ω
IO-Linkv1.1 / COM2 — sur la sortie IO2
Connectique1 × M12 mâle, 8 broches
Température ambiante−20 à +50 °C (affichage intégré) · tête séparée jusqu’à +60 °C
ProtectionIP67 (CEI 60529) · boîtier Type 4X (NEMA 250)
PoidsEnviron 600 g

Câblage

M12 mâle, 8 broches — 4 conducteurs utilisés — Câble compatible IO-Link — 20 m maximum en IO-Link

12345678
BrocheFilFonction
2 BN Marron Alimentation 24 V DC
6 PK Rose Sortie de commande 2 → C/Q, communication IO-Link
7 BU Bleu 0 V
Une liaison IO-Link n’utilise que 4 conducteurs L’alimentation, le 0 V, la ligne de communication C/Q, et un quatrième non utilisé en classe A. Peu importe que le connecteur en compte 8 : les autres fils restent inutilisés et doivent être isolés individuellement.
Autres broches du connecteur 1 Blanc — Sortie analogique — inutilisée en IO-Link · 3 Vert — Sortie de commande 3 · 4 Jaune — Sortie de commande 4 · 5 Gris — Sortie de commande 1 · 8 Rouge — Sortie de commande 5
Isoler individuellement tous les fils non utilisés.

Réglages sur l’appareil

Même assistant de premier démarrage que le FR-S01, avec en plus la mise à l’échelle par forme de réservoir — une fonction réservée à la longue portée.

Étape de l’assistantOptions
LangueAnglais · Japonais · Chinois · Allemand
PNP / NPN⚠️ Ne se modifie plus ensuite sans réinitialisation complète
Sorties de commande0 à 5
Cible de détectionÀ base d’eau · à base d’huile · poudre
Unité de distancemm · m · inch · feet
Mise à l’échelleOFF / ON — convertit le niveau en volume ou en poids
Forme du réservoirDroit · sphérique · cylindre horizontal · base conique · base pyramidale · base inclinée · multipoint manuel (2 à 32 points)
Unité et décimalesmL, L, hL, m³, g, kg, t, %, gal, ft³, bbl, lb… et position du point décimal
Capacité du réservoir0 à 99999 dans l’unité choisie
Distances fond et sommetDéfinissent le 0 % et le 100 %
Seuils et logique de sortiePoints de basculement, N.O. / N.F.
Après l’assistantLa mise à l’échelle par forme de réservoir n’existe pas sur la courte portée. C’est elle qui permet d’afficher directement des litres plutôt que des millimètres — le calcul de volume est fait par le capteur, pas par l’automate.

Intégration dans TIA Portal

Procédure « IO-Link via un maître PROFINET » — commune à tous les appareils raccordés de cette façon.

01 Télécharger le GSDML du maître Le constructeur du maître fournit le fichier GSD qui décrit l’appareil, ses paramètres et ses données process.
02 Installer le GSDML dans TIA Portal Gérer les fichiers de description des appareils, puis pointer le dossier. Le projet doit être fermé, sinon TIA refuse.
03 Insérer le maître dans le projet Le maître apparaît dans le catalogue après installation. Le glisser dans la vue réseau et l’affecter au système PROFINET de la CPU.
04 Déclarer les ports Glisser le module correspondant au nombre de ports sur le slot 1 du maître. La configuration devient accessible via le slot 1.1.
05 Récupérer et installer l’IODD du capteur L’IODD décrit le capteur : paramètres, données process, plages. Source officielle : IODDfinder. Prendre la version correspondant au firmware.
06 Configurer le port Mode IO-Link, révision attendue, temps de cycle, validation du device par DeviceID. Un port mal configuré ne remonte rien.
07 Relever la plage d’adresses TIA attribue automatiquement une plage d’entrées au port. C’est la base de tout l’adressage dans le programme.

Structure des données process

Fichier IODDKEYENCE-FR-L-20240108-IODD1_1.xml
Version · dateV1.1 — 08.01.2024
VendorID · DeviceID509 (Keyence) · 2041
Variantes couvertesGamme FR-L (FR-LM / FR-LP)
Famille IODDKEYENCE série FR — structure de données process commune à toute la gamme
Data Storage✅ Pris en charge — le maître sauvegarde le paramétrage. Un capteur remplacé est reconfiguré automatiquement.
Le brochage déclaré dans l’IODD est génériqueLes trois IODD de la gamme annoncent un M12 4 broches avec C/Q en broche 4, fil noir. Ce sont les couleurs standard DIN EN 60947-5-2, pas celles du câble réel — le faisceau ne contient aucun fil noir. Règle générale : l’IODD sert aux données process et aux paramètres, jamais au câblage. Pour le câblage, c’est la notice constructeur.
96 bits — 12 octets
Valeur actuelle
MSB
Valeur actuelle
·
Valeur actuelle
·
Valeur actuelle
LSB
Valeur de conversion de débit
MSB
Valeur de conversion de débit
·
Valeur de conversion de débit
·
Valeur de conversion de débit
LSB
Diagnostics
Erreurs
Stabilité + couleur
État des sorties
0
1
2
3
4
5
6
7
8
9
10
11
Valeur actuelle — octets 0-3Valeur de conversion de débit — octets 4-7Diagnostics — octet 8Erreurs — octet 9Stabilité + couleur — octet 10État des sorties — octet 11
DonnéeOffset bitLongueurTypePlage bruteConversion
Valeur actuelle64 32 bitsINT 32 -199999 … 99999 selon réglage
Valeur de conversion de débit32 32 bitsINT 32 -199999999 … 99999999 selon réglage
Diagnostics24 8 bits8 × BOOL — bits d’état
Erreurs16 8 bits8 × BOOL — bits d’état
Stabilité + couleur8 8 bits2 × UINT 4 — bits d’état
État des sorties0 5 bits5 × BOOL — bits d’état
La valeur actuelle n’a pas de facteur d’échelleContrairement au LDH292 où le gradient est figé à 0,1, l’IODD ne définit ici aucune conversion. La plage brute va de −199999 à 99999, et sa signification dépend des réglages « unité de distance » et « position du point décimal » saisis sur l’afficheur du capteur. La même valeur brute peut valoir 1234 mm ou 1,234 m. Le programme automate doit connaître le paramétrage physique de l’appareil.

Bits de diagnostic

Tout ce que le capteur affiche à l’écran remonte en cyclique. Aucune lecture acyclique n’est nécessaire pour construire une supervision complète.

OctetBitSignification
831LOW — niveau sous la plage de mesure
830HIGH — niveau au-dessus de la plage
829Tracking — suivi en cours, valeur maintenue
828Valeur de conversion de débit invalide
827Stabilité dégradée — alerte de maintenance
826Mesure impossible
825Erreur d’apprentissage
824Interférence — autre source 60 GHz à proximité
923Erreur de tête de capteur
922 → 18Surintensité sur les sorties 5 à 1
917Erreur EEPROM
916Erreur système
1015 → 12Stabilité — 0 (détection impossible) à 4 (signal franc)
1011 → 8Couleur de l’indicateur — 0 éteint · 1 vert · 2 jaune · 3 rouge · 4 rouge clignotant
114 → 0État des sorties de commande 5 à 1

Programmation

// FR-LM20 en IO-Link — adresses à adapter à la plage attribuée au port.

Réseau 1 — Diagnostics (octet 8, lecture directe des bits)
   diag.%X7
────┤ ├──────────────────────────────( niveauBas )      LOW

   diag.%X6
────┤ ├──────────────────────────────( niveauHaut )     HIGH

   diag.%X3
────┤ ├──────────────────────────────( maintenance )    stabilité dégradée

   diag.%X0
────┤ ├──────────────────────────────( interference )   autre source 60 GHz

Réseau 2 — Défaut bloquant (octet 9, trois bits en parallèle)
   erreurs.%X7
────┤ ├──┬───────────────────────────( defaut )
   erreurs.%X1
─────┤ ├──┤
   erreurs.%X0
─────┤ ├──┘

Réseau 3 — Mesure exploitable ?
   diag.%X2    defaut
────┤/├────────┤/├─────────────────( mesureOK )
  Not Measurable

Réseau 4 — Stabilité : 4 bits de poids fort de l'octet 10
      ┌──────────────┐    ┌──────────────┐
      │     SHR      │    │     AND      │
──────┤     Byte     ├────┤     Byte     ├───( stabilite )
      │IN       etat │    │IN2    16#0F  │
      │N           4 │    └──────────────┘
      └──────────────┘

Réseau 5 — Mise à l'échelle selon le réglage du capteur
   ⚠ Le diviseur dépend de la « position du point décimal » réglée
   sur l'afficheur. Ici : 1 décimale → division par 10.
              ┌──────────────┐    ┌──────────┐
   mesureOK   │     CONV     │    │   DIV    │
──────┤ ├─────┤ DInt →  Real ├────┤   Real   ├───( niveau )
              │IN valeurBrute│    │IN2   10.0│
              └──────────────┘    └──────────┘
// FR-LM20 en IO-Link — 12 octets de données process
// 0-3 : valeur actuelle (INT 32)      4-7  : valeur de conversion de débit (INT 32)
// 8   : diagnostics                   9    : erreurs
// 10  : stabilité + couleur           11   : état des sorties

FUNCTION_BLOCK "FB_FR_LM20"
VAR_INPUT
    valeurBrute : DINT;   // octets 0-3
    valeur2Brute: DINT;   // octets 4-7 — Valeur de conversion de débit
    diag        : BYTE;   // octet 8
    erreurs     : BYTE;   // octet 9
    etat        : BYTE;   // octet 10
    sorties     : BYTE;   // octet 11
    decimales   : USINT := 0;  // ⚠ doit refléter le réglage FAIT SUR LE CAPTEUR
END_VAR
VAR_OUTPUT
    niveau      : REAL;   // dans l'unité réglée sur l'appareil
    mesureOK    : BOOL;
    niveauHaut  : BOOL;   // HIGH
    niveauBas   : BOOL;   // LOW
    stabilite   : USINT;  // 0 = perdu … 4 = signal franc
    maintenance : BOOL;   // stabilité dégradée
    interference: BOOL;   // autre source 60 GHz
    defaut      : BOOL;   // erreur système / EEPROM / tête
END_VAR

BEGIN
    // ---- Octet 8 : diagnostics ----
    #niveauBas    := #diag.%X7;   // bit 31 — LOW
    #niveauHaut   := #diag.%X6;   // bit 30 — HIGH
    #maintenance  := #diag.%X3;   // bit 27 — stabilité dégradée
    #interference := #diag.%X0;   // bit 24 — interférence 60 GHz

    // ---- Octet 9 : erreurs bloquantes ----
    #defaut := #erreurs.%X7 OR #erreurs.%X1 OR #erreurs.%X0;
                  // tête        EEPROM         système

    // ---- Octet 10 : stabilité sur les 4 bits de poids fort ----
    #stabilite := BYTE_TO_USINT(SHR(IN := #etat, N := 4)) AND 16#0F;

    // ---- Mesure exploitable ? ----
    #mesureOK := NOT #diag.%X2 AND NOT #defaut;  // bit 26 = Not Measurable

    // ---- Mise à l'échelle ----
    // ⚠ Aucun gradient dans l'IODD : l'échelle dépend des réglages
    //   « unité de distance » et « position du point décimal » saisis
    //   sur l'afficheur du capteur. 0 décimale → la brute est déjà l'unité.
    IF #mesureOK THEN
        CASE #decimales OF
            0: #niveau := DINT_TO_REAL(#valeurBrute);
            1: #niveau := DINT_TO_REAL(#valeurBrute) / 10.0;
            2: #niveau := DINT_TO_REAL(#valeurBrute) / 100.0;
            3: #niveau := DINT_TO_REAL(#valeurBrute) / 1000.0;
            ELSE
               #niveau := DINT_TO_REAL(#valeurBrute) / 10000.0;
        END_CASE;
    ELSE
        #niveau := 0.0;
    END_IF;
END_FUNCTION_BLOCK
CONT ou SCL ?La mise à l’échelle est plus lisible en SCL. L’usage courant est d’écrire ce bloc en SCL et de l’appeler depuis le programme CONT. La version CONT existe pour les sites où le SCL n’est pas autorisé.
Code non validé sur installationGénéré depuis la documentation. À confirmer sur matériel avant mise en production.

Les pièges

Zone morte côté procheDistances minimales entre la surface de référence et le niveau haut : 50 mm pour un liquide aqueux en longue portée, 120 mm pour un liquide huileux, 170 mm pour une poudre.
Le faisceau s’élargit avec la distanceÀ 20 m, la zone de détection atteint environ ø 1100 mm pour un liquide aqueux et ø 4250 mm pour un liquide huileux ou une poudre. Prévoir l’absence d’obstacle métallique dans ce cône.
Installation sur buseLongueur 150 mm maximum, diamètre intérieur 47,8 mm minimum, bords ébavurés. Une buse trop longue ou trop étroite génère des échos parasites.
Orientation de l’onde polariséeRepérée par une marque sur la bague hexagonale. Installer la paroi parallèle à cette direction stabilise la détection. Tourner le corps ne change pas l’orientation de l’onde.
La bande 60 GHz interfèreDeux capteurs FR côte à côte génèrent une erreur « Interférence », remontée en cyclique sur le bit 24. Idem près du WiFi ou d’un chauffage industriel HF.
Mousse et turbulenceUne mousse épaisse atténue le signal. Selon la taille des bulles, c’est la surface de la mousse ou celle du liquide qui est détectée.
Pas d’usage antidéflagrantPour une zone à risque, il faut la version FR-LEX20 avec barrière de sécurité intrinsèque — qui n’a pas d’IO-Link, mais du HART.

Sources

Manuel d’utilisation série FR M04FR (10/2025) · IODD KEYENCE-FR-L V1.1 du 08.01.2024

Autre maître IO-Link possible pour FR-LM20

Le brochage du capteur ne change pas — seule la procédure TIA Portal diffère selon le maître utilisé.

Même famille

Même structure de données ou même bloc de commande — utile pour comparer les références de la gamme.

À propos de cette page Cette page est générée depuis des fiches de données structurées, pas écrite à la main — voir la maquette interactive pour naviguer parmi tous les guides.