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.
Caractéristiques de l’appareil
| Grandeur mesurée | Niveau de liquide ou de poudre — sans contact |
|---|---|
| Technologie | Radar, bande 58 … 63 GHz |
| Plage de mesure | Jusqu’à 20 m — version « L » : 15 m |
| Résolution | 1 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 contact | Lentille PTFE · joint de virole EPDM · virole SUS316L · corps SUS304 |
| Raccord process | Virole 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 |
| Nettoyage | SIP possible : 1 h maximum, ambiante ≤ 40 °C, interne ≤ 130 °C, hors tension |
| Alimentation | 24 V DC +25 % / −20 % — 106 mA max |
| IO-Link | v1.1 / COM2 — sur la sortie IO2 |
| Connectique | 1 × M12 mâle, 8 broches |
| Température ambiante | −20 à +60 °C |
| Température du raccord | −20 à +100 °C |
| Protection | IP67 (CEI 60529) et IP69K (ISO 20653) |
| Poids | Environ 900 g |
Câblage
M12 mâle, 8 broches — 4 conducteurs utilisés — Câble compatible IO-Link — 20 m maximum en IO-Link
| Broche | Fil | Fonction |
|---|---|---|
| 2 | BN Marron | Alimentation 24 V DC |
| 6 | PK Rose | Sortie de commande 2 → C/Q, communication IO-Link |
| 7 | BU Bleu | 0 V |
Isoler individuellement tous les fils non utilisés.
Intégration dans TIA Portal
Procédure « Capteur IO-Link, via un maître Siemens configuré par S7 Port Configuration Tool » — commune à tous les appareils raccordés de cette façon.
| 01 Insérer le maître Siemens dans le projet | Module de communication CM 4xIO-Link ou CM 8xIO-Link, dans le rack d’une station ET 200SP (ou intégré à une CPU compacte selon le modèle). Depuis le catalogue matériel : modules de communication → maître IO-Link. |
|---|---|
| 02 Installer S7-PCT | Le S7 Port Configuration Tool est un logiciel séparé, téléchargeable chez Siemens. Redémarrer TIA Portal après l’installation, sinon l’outil n’apparaît pas. |
| 03 Récupérer et installer l’IODD du capteur | L’IODD décrit le capteur : paramètres, données process, plages. Source officielle : IODDfinder, ou le site du fabricant. Prendre la version correspondant au firmware. |
| 04 Ouvrir S7-PCT depuis TIA | Clic droit sur le module maître dans la vue appareil, puis « Démarrer l’outil d’appareil ». S7-PCT s’ouvre avec son propre catalogue. |
| 05 Affecter le capteur à un port | Dans le catalogue S7-PCT : rechercher le fabricant puis la référence exacte du capteur (l’IODD doit être installée pour qu’il apparaisse). Glisser sur le port voulu. |
| 06 Charger dans les appareils | Clic droit sur le maître → « Charger avec les appareils ». La configuration part vers le maître ET vers le capteur. Étape distincte du chargement du programme CPU. |
| 07 Relever la plage d’adresses d’entrée | S7-PCT indique les entrées numériques attribuées au port. C’est l’adresse de base des données process du capteur dans le programme. |
Structure des données process
| Fichier IODD | KEYENCE-FR-LS-20240108-IODD1_1.xml |
|---|---|
| Version · date | V1.1 — 08.01.2024 |
| VendorID · DeviceID | 509 (Keyence) · 2042 |
| Variantes couvertes | FR-LS20 |
| Famille IODD | KEYENCE 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. |
MSB
·
·
LSB
MSB
·
·
LSB
| Donnée | Offset bit | Longueur | Type | Plage brute | Conversion |
|---|---|---|---|---|---|
| Valeur actuelle | 64 | 32 bits | INT 32 | -199999 … 99999 | selon réglage |
| Valeur de conversion de débit | 32 | 32 bits | INT 32 | -199999999 … 99999999 | selon réglage |
| Diagnostics | 24 | 8 bits | 8 × BOOL | — | bits d’état |
| Erreurs | 16 | 8 bits | 8 × BOOL | — | bits d’état |
| Stabilité + couleur | 8 | 8 bits | 2 × UINT 4 | — | bits d’état |
| État des sorties | 0 | 5 bits | 5 × BOOL | — | bits d’état |
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.
| Octet | Bit | Signification |
|---|---|---|
| 8 | 31 | LOW — niveau sous la plage de mesure |
| 8 | 30 | HIGH — niveau au-dessus de la plage |
| 8 | 29 | Tracking — suivi en cours, valeur maintenue |
| 8 | 28 | Valeur de conversion de débit invalide |
| 8 | 27 | Stabilité dégradée — alerte de maintenance |
| 8 | 26 | Mesure impossible |
| 8 | 25 | Erreur d’apprentissage |
| 8 | 24 | Interférence — autre source 60 GHz à proximité |
| 9 | 23 | Erreur de tête de capteur |
| 9 | 22 → 18 | Surintensité sur les sorties 5 à 1 |
| 9 | 17 | Erreur EEPROM |
| 9 | 16 | Erreur système |
| 10 | 15 → 12 | Stabilité — 0 (détection impossible) à 4 (signal franc) |
| 10 | 11 → 8 | Couleur de l’indicateur — 0 éteint · 1 vert · 2 jaune · 3 rouge · 4 rouge clignotant |
| 11 | 4 → 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
Les pièges
| Le corps ne tourne pas | Contrairement 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 obligatoire | Pour 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 utilisation | Le modèle sanitaire doit être nettoyé avant sa mise en service. |
| Contraintes de virole | Pour 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ère | Deux 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
