control-systems-and-automation
Comprendre les types de données Profibus et leur application dans les tâches d'automatisation
Table of Contents
Introduction au profil et rôle des types de données
Profibus (Process Field Bus) est l'un des protocoles de communication les plus établis en matière d'automatisation industrielle, de connexion de dispositifs de terrain tels que capteurs, actionneurs, lecteurs et contrôleurs logiques programmables (PLC) dans les usines de fabrication et de traitement. Son adoption généralisée est due à son comportement déterministe, à la gestion robuste des erreurs et au support de la commande de processus à haute vitesse discrète et continue.
Les types de données définissent le format, la taille et l'encodage des informations échangées sur le bus. Une mesure de température, une commande de démarrage du moteur ou un code d'alarme nécessitent chacun un type de données spécifique pour s'assurer que l'expéditeur et le récepteur comprennent exactement la valeur de la même façon. Un mauvais alignement dans l'interprétation du type de données peut conduire à des lectures corrompues, à des erreurs logiques de contrôle, voire à des dommages matériels.
Aperçu des types de données Profibus
Profibus, tel que défini par les normes IEC 61158 et IEC 61784, supporte un ensemble structuré de types de données qui permettent de prendre en compte l'ensemble des signaux d'automatisation – des états binaires simples aux mesures complexes de points flottants et aux informations de diagnostic structurées. Les types de données sont formellement spécifiés dans la spécification Profibus et sont cohérents entre ses deux principales variantes : Profibus-DP (Périphérie décentralisée) pour l'automatisation de l'usine à grande vitesse et Profibus-PA (Automation des procédés) pour des environnements de processus intrinsèquement sûrs.
Types de données de base
Booléenne (Binary)
Le type de données booléennes représente un seul morceau d'information : TRUE (1) ou FALSE (0).Dans Profibus, les booléens sont généralement cartographiés à la moindre partie d'un octet, mais ils peuvent aussi être emballés dans des champs multibits à l'intérieur d'un mot ou d'un double mot.
Total (8, 16, 32 bits)
Les entiers portent des valeurs de nombre entier et sont présentés en trois largeurs communes:
- 8 bits entier (1 octet)[ – Gamme 0 à 255 (non signée) ou -128 à +127 (signé). Souvent utilisé pour les petits compteurs, les codes d'état de l'appareil ou les sélecteurs de commandes.
- Entier 16 bits (2 octets) – Gamme 0 à 65,535 (non signé) ou -32,768 à +32,767 (signé).Il s'agit du type entier le plus commun dans Profibus-DP pour les entrées analogiques à échelles en unités d'ingénierie, en points de consigne de vitesse et en retour de position.
- Entier 32 bits (4 octets) – Plage ±2.14×109. Utilisé pour les valeurs accumulées (par exemple, flux totalisé), les encodeurs à haute résolution ou les timbres-temps.
L'encodage entier suit l'ordre petit-endian octet (octet le moins significatif d'abord) par défaut dans Profibus, bien que certains profils de périphérique puissent spécifier big-endian. Les ingénieurs doivent vérifier l'ordre octet dans le fichier GSD (General Station Description) de l'appareil pour éviter les erreurs de signalisation et de calibrage.
Point flottant (IEEE 754)
Pour les variables de processus continus qui nécessitent une précision fractionnelle – comme la température, la pression, le pH ou le débit – Profibus utilise le format de point flottant IEEE 754 (32 bits). Ce type fournit environ 7 chiffres décimaux de précision avec une plage d'environ ±3,4×1038. Dans de nombreux appareils Profibus-PA, les valeurs de point flottant sont transmises directement dans des unités d'ingénierie (p. ex. degrés Celsius, bar) sans échelle supplémentaire. Cependant, dans Profibus-DP, certains appareils transmettent des valeurs entières brutes et comptent sur le contrôleur pour les évaluer à l'aide d'une formule de conversion linéaire.
Cordes de caractères (chaînes d'octet)
Les chaînes de caractères, ou plus précisément les chaînes d'octet, transportent des données textuelles telles que les noms de périphérique, les versions de firmware, les messages de diagnostic ou les mots de passe. Dans Profibus, les chaînes sont généralement définies avec une longueur fixe (par exemple 16, 32 ou 64 octets) et codées en ASCII ou ISO 8859-1. Les chaînes de longueur variable sont également possibles mais moins courantes parce que les fentes Profibus sont configurées statiquement.
Types de données supplémentaires dans Profibus-DP et Profibus-PA
Au-delà des quatre types de base, Profibus définit plusieurs types de données spécifiques pour répondre aux besoins d'automatisation avancés :
- Date et heure (7 octets) – Combine année, mois, jour, heure, minute, seconde et milliseconde. Utilisé pour la logarithme des événements, les heures de début de lot ou les alarmes avec chronométrage. Le format suit le profil Profibus défini dans CEI 61158-5.
- Bit String (1, 2 ou 4 octets) – Un ensemble de drapeaux indépendants, où chaque bit a une signification distincte. Par exemple, un mot 16 bits peut représenter 16 indicateurs d'état différents de l'appareil. Les chaînes de bit sont très efficaces pour les informations diagnostiques.
- Types de données structurés (Enregistrements) – Les tâches d'automatisation complexes nécessitent souvent le regroupement de plusieurs éléments de données, par exemple un objet d'entraînement contenant un point de consigne de vitesse (flott), une accélération (entier) et un mot de commande (chaîne bit).
- Byte Array – Une séquence brute d'octets sans interprétation, utilisée pour les mises à jour du firmware, les extensions de protocole personnalisées ou les données qui sont ensuite analysées par la couche d'application.
Type de données Cartographie vers les profils des périphériques
Pour assurer l'interopérabilité, les profils de périphériques Profibus (p. ex. PROFIdrive pour lecteurs, PA Profile pour instruments de process) prescrivent exactement les types de données à utiliser pour des paramètres spécifiques. Par exemple, un point de consigne de vitesse PROFIdrive est normalisé comme un point flottant IEEE 754 32 bits, tandis qu'un émetteur de température PA utilise une structure de 8 octets (octet de flot + statut).
Application des types de données Profibus dans les tâches d'automatisation
Choisir le type de données correct n'est pas seulement une formalité technique, mais il influence directement la précision du système, le temps de réponse et la maintenance.
Traitement analogique et numérique des données
Les signaux numériques (on/off, open/fermé) sont naturellement des types de données Boolean. L'utilisation d'un seul booléen au lieu d'un entier 16 bits réduit le trafic de bus et simplifie la logique. Cependant, certains appareils existants peuvent encore emballer plusieurs booléens dans un seul octet, nécessitant une extraction bitwise dans le PLC.
Les signaux analogiques, comme une boucle de 4-20 mA convertie en numérique, peuvent être transmis sous forme d'entiers 16 bits (comptes A/D bruts) ou de flotteurs 32 bits dans des unités d'ingénierie. Le choix dépend de la capacité de traitement du contrôleur et de la précision requise. La transmission flottante élimine le besoin d'équations de graduation mais utilise plus de bande passante. Dans Profibus-DP, où les temps de cycle peuvent être de 1 ms ou moins, les 2 octets supplémentaires par mesure sont généralement négligeables.
Précision et considérations relatives à l'étendue
Lors de la mesure d'une quantité physique, les ingénieurs doivent s'assurer que le type de données choisi peut représenter la portée et la précision complètes du capteur. Par exemple, une plage de température de -200°C à +85°C avec une résolution de 0,1°C nécessite au moins 10 500 étapes. Un entier de 16 bits (65 536 étapes) est suffisant, mais l'échelle doit être configurée dans le contrôleur. Un flotteur 32 bits, par contre, peut représenter directement la valeur sans aucune échelle, simplifiant la maintenance. Inversement, si un flotteur 32 bits est utilisé pour un simple comptage jusqu'à 10 000, il gaspille la bande passante. La meilleure pratique est de correspondre au type de données à la résolution naturelle de la mesure – jamais surspécialiser inutilement la précision, mais jamais sous-spécifier au point de perdre des données importantes.
Communication et types de données cycliques ou acycliques
Le choix du type de données affecte le canal utilisé. Les booléens simples, les entiers et les flotteurs sont généralement échangés cycliquement. Les types de données complexes comme les chaînes de caractères, les dates/temps ou les enregistrements structurés sont souvent lus ou écrits acycliquement via les services MS1 (Master-Slave 1) ou MS2 (Master-Slave 2). Par exemple, la vitesse réelle d'un lecteur peut être envoyée cycliquement comme un flotteur 32 bits, tandis que sa version firmware (string) est lue acycliquement pendant le démarrage.
Les ingénieurs doivent prêter attention aux frais généraux acycliques : lire un enregistrement de 64 octets peut prendre plusieurs millisecondes, ce qui peut affecter les temps de cycle des bus si cela est trop fréquent. Par conséquent, les données acycliques ne doivent être demandées que lorsque cela est nécessaire (p. ex., sur l'alimentation électrique, sur l'alarme ou via un outil d'ingénierie).
Exemples pratiques élargis
Données du capteur (température, pression, débit)
Un émetteur de température Profibus-PA (par exemple, d'Endress+Hausser ou Siemens) produit un enregistrement cyclique qui comprend une valeur de point flottant de 32 bits représentant la température en °C, suivi d'un octet d'état (indicateur de qualité). L'octet d'état lui-même est une chaîne de bits avec des drapeaux pour la qualité ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commande de moteur (démarrage/arrêt, vitesse, couple)
Dans l'automatisation du lecteur, PROFIdrive définit une structure standard de télégramme. Par exemple, Telegram 1 contient un mot de commande 16 bits (chaîne de bits) et un point de vitesse 32 bits (flott) du contrôleur vers le lecteur. Le lecteur renvoie un mot d'état 16 bits (chaîne de bits) et une vitesse réelle 32 bits (flott). L'utilisation des types de données corrects est obligatoire pour le lecteur pour interpréter correctement les commandes. Si un flotteur est configuré par erreur comme un entier, le lecteur peut interpréter le point de consigne avec un facteur d'erreur de 65 536, ce qui peut causer une survitesse.
Identification et diagnostic de l'appareil
Lors de la mise en service d'un réseau, les ingénieurs doivent identifier chaque appareil. Les appareils Profibus stockent un identifiant de fabricant, un ID de périphérique et un nom de modèle unique – tous transmis sous forme de chaînes d'octet (caractère) via des lectures acycliques. Ces chaînes sont souvent de 20 à 40 octets. Pendant le dépannage, les données diagnostiques (par exemple, l'historique des alarmes) sont souvent lues comme un enregistrement structuré contenant un mélange de date/heure, de chaînes de bits pour les alarmes et de valeurs flottantes pour les lectures de pointe.
Contrôle des lots et gestion des recettes
Dans les processus par lots, les dispositifs Profibus-PA peuvent accepter les paramètres de recette comme assombries de caractères ou comme structures contenant plusieurs entiers (p. ex., point de consigne, temps de rampe, temps de maintien). Par exemple, un positionneur de vannes peut recevoir un enregistrement de 32 octets qui comprend un flotteur pour la position cible, un entier pour la vitesse d'actionnement et un booléen pour le mode de sécurité en cas d'échec. Le contrôleur doit assembler cet enregistrement en utilisant l'ordre d'octets correct et l'alignement (souvent 4 octets pour les flotteurs).
Configuration et dépannage des types de données Profibus
Définir les types de données dans les fichiers GSD
Le fichier GSD (Geräte Stammdaten) est la feuille de données électronique qui décrit les capacités d'un appareil, y compris ses types de données supportés, sa structure de fente et les modules disponibles. Lors de la configuration d'un maître Profibus (par exemple, un Siemens CP 342-5 ou un Schneider TSX PBY 100), l'ingénieur sélectionne le fichier GSD de l'appareil dans l'outil de configuration et assigne ensuite des modules aux slots. Chaque module spécifie quels types de données apparaissent dans la zone d'entrée/sortie cyclique. Par exemple, un module -4AI=2 peut fournir quatre valeurs entières 16 bits pour les entrées analogiques, tandis qu'un module -2AO=2 fournit deux sorties entières 16 bits. Si le type de données requis est un flotteur 32 bits, l'ingénieur doit sélectionner un module qui définit explicitement les flotteurs – ou utiliser un module -user-defined=2 avec la longueur exacte de l'octet et la cartographie de type.
De nombreux outils de configuration (p. ex., portail TIA, gestionnaire Simatic, ProfiMap) permettent de modifier manuellement la configuration d'E/S pour modifier l'interprétation du type de données. C'est une source d'erreurs courante : changer la longueur de l'octet du module sans ajuster le type de données du programme PLC entraîne une mauvaise interprétation.
Erreurs courantes et comment les éviter
- Byte Order Mismatch: Profibus utilise peu d'endian par défaut, mais certains appareils (surtout les équipements américains plus anciens) peuvent utiliser grand-endian. Utilisez les paramètres de cohérence de l'outil de configuration --Data ou échangez des octets dans le programme PLC.
- Scalage incorrect des entiers: Lorsqu'on utilise des entiers étalonnés, le fichier GSD spécifie généralement la plage (p. ex. 0–27648 correspond à 0–100%). Le CPL doit appliquer l'équation linéaire : . Ne pas correspondre à la plage brute peut causer de graves erreurs de contrôle.
- Données Défaut d'alignement :[ Un flotteur 32 bits doit toujours être aligné sur une limite d'adresse 32 bits dans la carte d'entrée/sortie. Certains outils de configuration alignent automatiquement les longs types de données, mais d'autres ne le font pas.
- Confusant les chaînes de bit avec les booléens: Une chaîne de bit de longueur 2 octets n'est pas la même que deux fentes de booléen séparées. Si le contrôleur attend deux booléens individuels mais que l'appareil transmet un mot 16 bits, le PLC doit extraire chaque bit. Utilisez la fonction appropriée d'extrait de bit (p. ex., -MOVE BIT) ou -GET BIT.
- Utilisation de la flottaison pour les valeurs entières : Évitez de stocker les nombres entiers (p. ex., les impulsions totalisantes) dans une variable de point flottant si le nombre dépasse 2^24 (environ 16 millions).
Outils de surveillance des types de données
Plusieurs outils permettent de vérifier que les types de données sont correctement interprétés :
- Profibus Tester / Analyzer (p. ex., ProfiTrace, NetTEST II): Ces appareils capturent des télégrammes et affichent des séquences d'octets bruts aux côtés des types de données configurés. Les ingénieurs peuvent comparer les données réelles aux valeurs attendues.
- PLC Online and Watch Tables:[ La plupart des environnements de programmation PLC permettent la surveillance en ligne des variables dans leurs types de données déclarés. Si un entier brut apparaît comme un flotteur, la conversion sera visiblement erronée (p. ex., une petite température apparaît comme un nombre énorme).
- GSD Viewer Tools:[ Des logiciels comme GSD Editor ou Siemens GSDView peuvent analyser les fichiers GSD et afficher les définitions exactes du type de données par module, aidant à identifier les erreurs avant de mettre en service.
Conclusion et pratiques exemplaires
Des simples drapeaux booléens aux enregistrements structurés avec des types mixtes, chaque type de données sert un objectif spécifique qui influe sur la précision du système, l'utilisation de la bande passante et la clarté diagnostique. Comme nous l'avons vu, la sélection et la configuration correctes des types de données nécessitent une attention particulière aux profils des appareils, à l'échelle, à l'ordre des octets et à l'alignement.
Pour assurer la réussite des projets, adopter ces pratiques exemplaires :
- Consultez toujours les spécifications du fichier GSD et du profil de l'appareil avant de définir les types de données dans le programme PLC.
- Utiliser des types de données flottantes pour les mesures exigeant une précision élevée ou lorsque l'échelle d'unité technique doit être transparente.
- Tirez parti des chaînes de bits pour les drapeaux de diagnostic pour réduire le nombre de fentes cycliques.
- Vérifier l'ordre et l'alignement des octets à l'aide d'un analyseur de bus ou d'un outil de surveillance en ligne pendant la mise en service.
- Documenter tous les types de données dans la documentation technique pour simplifier la maintenance et le dépannage futurs.
Pour plus de détails, consultez le site officiel Profibus International website pour obtenir des spécifications techniques et des notes d'application. De plus, les documents de profil PROFIdrive sont disponibles sur le site du profil PROFIdrive[ (note : ajuster à l'URL réelle si nécessaire ; pour cet exercice, j'utiliserai un détenteur de place générique – en production, j'utiliserai de vrais liens).