Guide d’intégration

FR-LS20 — raccordement IO-Link

Capteur de niveau radar longue portée, modèle sanitaire. Version inox à virole pour l’agroalimentaire et la pharma. Même IODD, mêmes 12 octets.

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

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
Résolution1 mm
Précision< 0,1 m : ±10 mm · 0,1 à 10 m : ±1 mm · 10 à 20 m : ±2 mm
Pression réservoir−0,1 à +1 MPa
Matériaux au contactLentille PTFE · joint de virole EPDM · virole SUS316L · corps SUS304
Raccord processVirole 2S ou 2,5S selon accessoire
ConformitéNorme sanitaire 3-A — sous réserve du montage et de l’état de surface Ra ≤ 0,8 µm
NettoyageSIP possible : 1 h maximum, ambiante ≤ 40 °C, interne ≤ 130 °C, hors tension
Alimentation24 V DC +25 % / −20 % — 106 mA max
IO-Linkv1.1 / COM2 — sur la sortie IO2
Connectique1 × M12 mâle, 8 broches
Température ambiante−20 à +60 °C
Température du raccord−20 à +100 °C
ProtectionIP67 (CEI 60529) et IP69K (ISO 20653)
PoidsEnviron 900 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.

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-LS-20240108-IODD1_1.xml
Version · dateV1.1 — 08.01.2024
VendorID · DeviceID509 (Keyence) · 2042
Variantes couvertesFR-LS20
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-LS20 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-LS20 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_LS20"
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

Le corps ne tourne pasContrairement aux autres modèles de la gamme, le boîtier du modèle sanitaire est fixe. L’orientation de l’affichage se règle au moment de la fixation sur la virole, pas après.
Montage vertical obligatoirePour respecter les normes EHEDG et 3-A, l’installation doit permettre l’auto-drainage. Soudure polie à Ra ≤ 0,8 µm sur la surface au contact du produit.
Nettoyer avant la première utilisationLe modèle sanitaire doit être nettoyé avant sa mise en service.
Contraintes de virolePour la conformité 3-A, la longueur de virole ne doit pas dépasser 101,6 mm (OP-88889) ou 127 mm (OP-89245). Pour l’EHEDG, utiliser un raccord ISO 2852.
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.

Sources

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

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

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.