Guide d’intégration

LDH292 — raccordement IO-Link

Capteur d’humidité et de température de l’air. Deux valeurs process sur un seul port IO-Link. Conçu pour l’armoire électrique.

ifm electronic LDH292 ifm AL1102 IO-Link Siemens Capacitif Maître PROFINET générique (ex. ifm AL1102)
LDH292

Caractéristiques de l’appareil

Grandeurs mesuréesHumidité relative + température
Plage humidité0 … 100 % RH — précision 3 % (20 à 80 %), résolution 0,1
Plage température−40 … +80 °C — précision ±0,3 K, résolution 0,1
PrincipeCapacitif
Alimentation18 … 30 V DC — 13 mA
InterfaceIO-Link 1.1 — COM2 (38,4 kBaud)
Port maître requisClasse A
Temps de cycle mini4,5 ms
DeviceID1337
ProtectionIP 20 — sonde seule IP 57
MontageRail DIN TH35, vertical, raccordement en haut
Raccordement1 × M12 codage A, 4 broches
CompatibilitéLe AL1102 dispose de 8 ports classe A et gère IO-Link 1.0 à 1.1.2 — compatible.

Câblage

M12 codage A — 4 broches — Non blindé, 3 à 5 conducteurs, 20 m maximum

1 2 4 3
BrocheFilFonction
1 BN Brun L+ — alimentation 18…30 V DC
2 WH Blanc Non utilisé
4 BK Noir C/Q — communication IO-Link
3 BU Bleu L− — 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.

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

64 bits — 8 octets — les zones hachurées ne sont pas utilisées
Humidité
MSB
Humidité
LSB
—
—
Température
MSB
Température
LSB
—
Device status
0
1
2
3
4
5
6
7
Humidité — octets 0-1Température — octets 4-5Device status — octet 7 Inutilisé
DonnéeOffset bitLongueurTypePlage bruteConversion
Humidité48 16 bitsINT 0 … 1000 ÷ 10 → % RH
Température16 16 bitsINT -400 … 850 ÷ 10 → °C
Device status4 4 bitsUINT 0 … 4 bits d’état
Exemple de lectureValeur brute 435 sur les octets 0-1 → 43,5 % RH. Valeur brute -85 sur les octets 4-5 → −8,5 °C.

Valeurs spéciales à filtrer

Valeur bruteSignificationConcerne
−32760UL — sous la plage de mesureTempérature
32760OL — au-dessus de la plageTempérature
−32762cr.UL — dépassement critique basTempérature
32762cr.OL — dépassement critique hautTempérature
32764NoData — pas de donnée valideHumidité et température

Device status

0Appareil OK
1Maintenance requise
2Hors spécification
3Contrôle fonctionnel
4Défaillance
Maintenance conditionnelleCopie du paramètre index 36 dans le canal cyclique : exploitable sans lecture acyclique.

Programmation

// Adresses à adapter à la plage attribuée à votre port.

Réseau 1 — Humidité : donnée valide ?
      ┌─────────────┐
      │     <>      │
──────┤     Int     ├──────────( humValide )
      │ IN1   humRaw│
      │ IN2    32764│  ← NoData
      └─────────────┘

Réseau 2 — Conversion humidité (÷ 10 → % RH)
                ┌──────────┐    ┌──────────┐
   humValide    │   CONV   │    │   DIV    │
──────┤ ├───────┤ Int→Real ├────┤   Real   ├──( humidite )
                │IN  humRaw│    │IN2   10.0│
                └──────────┘    └──────────┘

Réseau 3 — Température : donnée valide ?
   Les 5 valeurs spéciales sont testées en série : toutes doivent être fausses.
      ┌─────────────┐
      │     <>      │
──────┤     Int     ├──────
      │ IN1  tempRaw│
      │ IN2  -32760 │
      └─────────────┘
      ┌─────────────┐
      │     <>      │
      ┤     Int     ├──────
      │ IN1  tempRaw│
      │ IN2   32760 │
      └─────────────┘
      ┌─────────────┐
      │     <>      │
      ┤     Int     ├──────
      │ IN1  tempRaw│
      │ IN2  -32762 │
      └─────────────┘
      ┌─────────────┐
      │     <>      │
      ┤     Int     ├──────
      │ IN1  tempRaw│
      │ IN2   32762 │
      └─────────────┘
      ┌─────────────┐
      │     <>      │
      ┤     Int     ├──────────( tempValide )
      │ IN1  tempRaw│
      │ IN2   32764 │
      └─────────────┘

Réseau 4 — Conversion température (÷ 10 → °C)
                ┌──────────┐    ┌──────────┐
   tempValide   │   CONV   │    │   DIV    │
──────┤ ├───────┤ Int→Real ├────┤   Real   ├──( temperature )
                │IN tempRaw│    │IN2   10.0│
                └──────────┘    └──────────┘

Réseau 5 — Device status : 4 bits de poids fort
      ┌──────────────┐    ┌──────────────┐
      │     SHR      │    │     AND      │
──────┤     Byte     ├────┤     Byte     ├──( deviceStatus )
      │IN  statusRaw │    │IN2    16#0F  │
      │N          4  │    └──────────────┘
      └──────────────┘
// Données process LDH292 — 8 octets
// Octets 0-1 : humidité (INT, ×0,1 %RH) · 4-5 : température (INT, ×0,1 °C) · 7 : status

FUNCTION_BLOCK "FB_LDH292"
VAR_INPUT
    humRaw : INT; tempRaw : INT; statusRaw : BYTE;
END_VAR
VAR_OUTPUT
    humidite : REAL; temperature : REAL;
    humValide : BOOL; tempValide : BOOL;
    deviceStatus : USINT; maintenance : BOOL; defaillance : BOOL;
END_VAR

BEGIN
    IF #humRaw = 32764 THEN   // NoData
        #humValide := FALSE; #humidite := 0.0;
    ELSE
        #humValide := TRUE;  #humidite := INT_TO_REAL(#humRaw) / 10.0;
    END_IF;

    CASE #tempRaw OF
        -32760, 32760, -32762, 32762, 32764:
            #tempValide := FALSE; #temperature := 0.0;
        ELSE
            #tempValide := TRUE;  #temperature := INT_TO_REAL(#tempRaw) / 10.0;
    END_CASE;

    #deviceStatus := BYTE_TO_USINT(SHR(IN := #statusRaw, N := 4)) AND 16#0F;
    #maintenance  := (#deviceStatus >= 1);
    #defaillance  := (#deviceStatus = 4);
END_FUNCTION_BLOCK

// Valeurs aberrantes ? Inversion d'octets Siemens :
// humRaw := WORD_TO_INT(SWAP(INT_TO_WORD(humRaw)));
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

Mode SIO : nonLe capteur ne fonctionne qu’en IO-Link, sans repli en mode standard. Port en DI ou désactivé : il ne remonte rien, et le diagnostic ne le dit pas clairement.
Inversion d’octets SiemensLa description d’interface ifm signale que les automates Siemens permutent poids fort et poids faible en adressage par octet. Humidité à 44 800 au lieu de 435 : c’est ça.
IP 20 contre IP 67Le maître va au bord de la machine, pas le capteur. Le LDH292 est un appareil d’armoire.
Mesure jusqu’à 100 %, utilisation jusqu’à 90 %Plage de mesure et plage d’utilisation ne sont pas les mêmes. Au-delà de 90 % RH ambiants, on sort des conditions d’emploi.
Air turbulent interditGaines d’aspiration et point de rosée : mesures erronées. Ne pas recouvrir le capteur.

Sources

Fiche technique ifm 13.04.2023 · Notice 09/2020 · IODD rév. 1.1 du 27.11.2020

Autre maître IO-Link possible pour LDH292

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

À 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.