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
IO-Link
Siemens
Capacitif
Maître Siemens, via S7-PCT
Caractéristiques de l’appareil
| Grandeurs mesurées | Humidité 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 |
| Principe | Capacitif |
| Alimentation | 18 … 30 V DC — 13 mA |
| Interface | IO-Link 1.1 — COM2 (38,4 kBaud) |
| Port maître requis | Classe A |
| Temps de cycle mini | 4,5 ms |
| DeviceID | 1337 |
| Protection | IP 20 — sonde seule IP 57 |
| Montage | Rail DIN TH35, vertical, raccordement en haut |
| Raccordement | 1 × M12 codage A, 4 broches |
Câblage
M12 codage A — 4 broches — Non blindé, 3 à 5 conducteurs, 20 m maximum
| Broche | Fil | Fonction |
|---|---|---|
| 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 « 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. |
S7-PCT ne configure que les maîtres IO-Link SiemensCette procédure suppose un maître Siemens (CM 4xIO-Link, CM 8xIO-Link…). Avec un maître d’un autre fabricant — ifm, Balluff, Turck… — S7-PCT ne le reconnaît pas, même déclaré via son propre GSDML : voir la voie « maître générique, sans S7-PCT » pour ce cas.
Structure des données process
64 bits — 8 octets — les zones hachurées ne sont pas utilisées
Humidité
MSB
MSB
Humidité
LSB
LSB
—
—
Température
MSB
MSB
Température
LSB
LSB
—
Device status
0
1
2
3
4
5
6
7
Humidité — octets 0-1Température — octets 4-5Device status — octet 7
Inutilisé
| Donnée | Offset bit | Longueur | Type | Plage brute | Conversion |
|---|---|---|---|---|---|
| Humidité | 48 | 16 bits | INT | 0 … 1000 | ÷ 10 → % RH |
| Température | 16 | 16 bits | INT | -400 … 850 | ÷ 10 → °C |
| Device status | 4 | 4 bits | UINT | 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 brute | Signification | Concerne |
|---|---|---|
| −32760 | UL — sous la plage de mesure | Température |
| 32760 | OL — au-dessus de la plage | Température |
| −32762 | cr.UL — dépassement critique bas | Température |
| 32762 | cr.OL — dépassement critique haut | Température |
| 32764 | NoData — pas de donnée valide | Humidité et température |
Device status
| 0 | Appareil OK |
|---|---|
| 1 | Maintenance requise |
| 2 | Hors spécification |
| 3 | Contrôle fonctionnel |
| 4 | Dé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 : non | Le 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 Siemens | La 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 67 | Le 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 interdit | Gaines 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
