Qu'est-ce que Profibus ?

Profibus (Process Field Bus) est une norme ouverte, indépendante du fournisseur, définie dans IEC 61158 et IEC 61784. Elle a été développée à la fin des années 1980 par un consortium de fabricants allemands et est devenue l'un des protocoles de communication industrielle les plus largement déployés au monde. Profibus supporte l'échange de données déterministe en temps réel entre les contrôleurs logiques programmables (PLC), capteurs, actionneurs, entraînements et autres dispositifs d'automatisation.

Trois variantes principales existent:

  • Profibus-DP (Périphériques décentralisés) – optimisé pour l'échange de données à grande vitesse avec des dispositifs d'entrée/sortie et de champ à distance au sol de l'usine.
  • Profibus-PA (Automatisation des procédés) – conçu pour les environnements dangereux (intérimalement sûrs) et utilise la technologie Manchester Bus Powered (MBP), communément trouvée dans les industries chimique, pétrolière et gazière.
  • Profibus-FMS (Fieldbus Message Specification) – une variante plus complexe, de pair à pair, rarement utilisée aujourd'hui, ayant été largement remplacée par les protocoles basés sur Profinet et Ethernet.

La compréhension des types de données pris en charge par Profibus est essentielle pour configurer les profils des appareils, interpréter les valeurs des processus et assurer une interopérabilité transparente entre les systèmes multivendeurs.

Principes fondamentaux des types de données Profibus

Dans Profibus-DP, l'échange de données suit un modèle maître-esclave. Le maître (généralement un PLC ou un DCS) lit cycliquement les données d'entrée des esclaves et les écrit. Chaque périphérique esclave a une configuration déclarée qui définit la structure de ses données d'entrée et de sortie – c'est-à-dire le nombre d'octets, l'attribution de traiter les objets de données et le type de données de chaque objet. Le fichier GSD (General Station Description) fourni par le fabricant de l'appareil décrit ces structures de données dans un format normalisé.

Les types de données dans Profibus peuvent être classés en :

  • Données d'entrées/sorties en courant alternatif – échangées chaque cycle d'autobus (par exemple, valeurs mesurées, sorties de commande).
  • Données de paramètres acycliques – lecture/écriture sur demande pour la configuration, l'identification ou le diagnostic.
  • Données diagnostiques – informations sur l'état et l'erreur de l'esclave.

Toutes les données sont cartographiées vers des zones mémoire en utilisant des types de données spécifiques. La spécification Profibus définit un ensemble de types de données élémentaires qui peuvent être combinés en structures plus complexes. L'interprétation correcte aux deux extrémités du lien de communication dépend du type maître et de l'esclave en accord avec le type, la longueur et l'ordre octet (endianité) de chaque champ de données.

Types de données Profibus communs en détail

Booléen

Le type de données booléennes représente une valeur binaire : TRUE (1) ou FALSE[ (0). Dans Profibus, un booléen occupe généralement un octet, bien que seul le bits le moins significatif (LSB) porte un sens ; les sept bits restants devraient être ignorés ou mis à zéro. Les valeurs booléennes sont largement utilisées pour les signaux discrets tels que démarrage/arrêt moteur, ouverture/fermeture de la valve, statut limite de commutateur et indicateurs d'alarme.

entier (Signé et non signé)

Les entiers encodent des nombres entiers. Profibus prend en charge les formats signés et non signés à trois longueurs standard:

  • 8-bit (octet):[ Signé (SINT[) plage de −128 à +127; non signé (USINT[) plage de 0 à 255.
  • 16 bits (Word):[ Signé (INT) plage de −32 768 à +32 767; non signé (UINT[) plage de 0 à 65 535.
  • 32 bits (mot double):[ Signé (DINT[) plage de 0 à 4,294,967,295;

Dans de nombreux fichiers GSD, vous verrez la notation INT16 ou UINT32. L'ordre des octets est typiquement grand-endien (octet le plus significatif d'abord) sur Profibus, mais toujours vérifier la configuration principale parce que certains systèmes peuvent être mis en petit-endian.

Réel (point de flot)

Les nombres réels (valeurs de point de flot) sont essentiels pour des mesures analogiques telles que la température, la pression, le débit et le niveau. Profibus utilise le format IEEE 754 à précision unique (32 bits), parfois appelé REAL ou FLOAT[. Un réel 32 bits est constitué d'un bit de signe, d'un exposant 8 bits et d'une mantissa 23 bits. Les réels à double précision (64 bits) sont définis dans la spécification, mais sont moins fréquents en raison de la charge accrue de bus et de la consommation de mémoire.

Lors du transfert de données flottantes, le maître et l'esclave doivent s'entendre sur l'ordre des octets. La valeur par défaut pour Profibus est big-endian (MSB first). Si un appareil utilise peu d'endian (commun avec certains contrôleurs basés sur PC), vous devez configurer un swap d'octets dans le maître pour éviter les valeurs garblées.

Byte, Parole et Double Parole

Ce sont des contenants de données brutes qui ne sont pas interprétés comme des nombres. Ils sont utilisés pour:

  • Transmission de bits d'état binaire (mapping par octet-bit).
  • Transmission de données spécifiques au fabricant que le capitaine n'a pas besoin d'interpréter.
  • Cartographier plusieurs valeurs booléennes ou de petits entiers en une seule unité de transmission.

Un Byte est 8 bits, un Word est 16 bits (2 octets), et un Double Word[ est 32 bits (4 octets). De nombreux appareils Profibus définissent leurs données d'entrée/sortie comme un tableau d'octets, et il est à la charge du programme d'application de les convertir au type logique correct.

Chaîne

Les types de données de chaînes sont utilisés pour transmettre des informations alphanumériques telles que l'identification des appareils, les numéros de modèles, les messages d'erreur ou les annotations de l'opérateur. Profibus définit généralement les chaînes comme une séquence de caractères de longueur fixe (p. ex. 16, 32 ou 64 octets), chaque octet contenant un caractère ASCII. Certains profils supportent également l'encodage ISO 8859-1 (Latin-1).

La transmission de chaînes est généralement acyclique (via les canaux de paramètres), car la transmission cyclique gaspillerait la bande passante. Sur les systèmes HMI et SCADA, les chaînes d'esclaves Profibus sont souvent affichées en texte simple après avoir décodé les valeurs ASCII.

Types composites : Arrays et structures

Profibus permet le regroupement de types de données élémentaires en arrays (répétant le même type) et structures[ (mélange de différents types). Par exemple, un module d'entrée analogique à 4 canaux peut envoyer un tableau de quatre entiers 16 bits. Un profil d'entraînement peut utiliser une structure contenant un mot de contrôle (16 bits entier), un point de réglage (réel 32 bits) et un mot d'état (16 bits entiers). Le fichier GSD définit la disposition exacte, donnant à chaque élément un emplacement ou un index unique.

Les types de données complexes tels que Time (p. ex., la durée ou le timbre-temps) et Date (encodé comme valeur de 16 bits ou 32 bits) sont également définis dans la spécification Profibus, mais apparaissent principalement dans des contextes d'application spécifiques au profil (p. ex., technologie de conduite ou contrôle de processus).

Utilisation pratique dans les applications industrielles

Automatisation des industries manufacturières

Dans la fabrication discrète – comme les lignes d'assemblage automobile ou les machines d'emballage – Profibus-DP est fortement utilisé.

  • Signal booléen pour capteurs à partie présente, actionneurs de rejet et bits de confirmation.
  • 16 bits entiers pour commandes de vitesse sur disques de fréquence variables.
  • Réal 32 bits pour les valeurs de couple ou de force des servomoteurs.

Les ingénieurs configurent la cartographie des données dans le master PLC en utilisant un outil de configuration matérielle (p. ex. Siemens TIA Portal, Rockwell ControlLogix avec un scanner Profibus). Le choix du type de données affecte directement le temps de cycle : les types plus petits réduisent la charge du bus, ce qui permet des taux de mise à jour plus élevés.

Contrôle des processus

Un émetteur de pression, par exemple, enverra cycliquement une valeur réelle de 32 bits représentant la variable de processus (p. ex., 12,34 bar). Le profil de l'appareil (profil de l'appareil 3.0 ou 4.0) définit des blocs normalisés tels que Input analogique ou Contrôleur de PID[, chacun avec des types de données bien définis et des octets de statut. Un octet de statut (généralement à l'échelle de l'octet) précède ou accompagne la valeur analogique, fournissant des informations de qualité (bonnes, incertaines, mauvaises) et des alarmes limites. Cette combinaison de types de données réelles et booléennes permet au système de contrôle d'agir sur la valeur mesurée et son état.

Contrôle de mouvement et entraînements

Les profils de conduite pour Profibus (p. ex. PROFIdrive) utilisent une combinaison de types de données pour obtenir un mouvement rapide et coordonné.

  • Un mot de contrôle (16-bit entier) avec des bits booléens pour l'exécution, l'arrêt, la remise, etc.
  • Un point de réglage de vitesse (réal 32 bits) avec un facteur de calibration défini dans le paramètre.
  • Un mot d'état (16-bit entier[) reflétant la vitesse réelle du lecteur, les drapeaux de défaillance et l'état de puissance.
  • Valeurs réelles (réal[ ou entier de 16 bits[) pour le couple, le courant ou la position.

Une interprétation correcte des champs bit dans les mots de contrôle/status est critique. Un seul bit booléen mal adapté peut causer un comportement de conduite inattendu.

Systèmes de sécurité (PROFIsafe)

PROFIsafe est une couche de communication de sécurité qui fonctionne sur le dessus de Profibus. Elle utilise un format de données spécial appelé blocs de données -host-F et -slave-F. Les données pertinentes pour la sécurité (p. ex. boutons de poussoir d'arrêt d'urgence, rideaux lumineux) sont transmises sous forme de Booléan[ ou 16‐bit entier, mais avec des caractéristiques supplémentaires liées à la sécurité : un numéro de séquence consécutifs, un CRC (contrôle cyclique de redondance) sur la charge utile, et un chronomètre de veille.

Meilleures pratiques pour la sélection des types de données

  • Utilisez le plus petit type de données qui satisfait la résolution et la plage de fréquences Pour les signaux discrets, emballez plusieurs booléens en octet ou mot. Pour les valeurs analogiques, examinez si un entier 16 bits avec résolution à l'échelle est suffisant au lieu d'un réel 32 bits pour réduire la charge du bus.
  • Respecter le profil de l'appareil De nombreux appareils Profibus sont conformes aux profils standard (p. ex. profil PA, profil PROFIdrive, profil encodeur). L'utilisation des types de données mandatés par le profil assure l'interopérabilité des plug-and-play.
  • Documenter l'ordre d'octet et l'échelle. Stocker la configuration principale (fichier GSD, mappage d'E/S) avec le contrôle de la version. Si l'échelle est appliquée (p. ex., un entier 16 bits représentant 0–100% avec une résolution de 0,1%), le facteur d'échelle doit être documenté.
  • Considérez l'endianité tôt. Lors de la conception d'un dispositif Profibus personnalisé (par exemple, un capteur avec un microcontrôleur), définissez explicitement l'ordre d'octets dans le fichier GSD. De nombreux outils de configuration permettent de configurer le maître pour échanger des octets si nécessaire.
  • Vérifier avec des outils de diagnostic. Utiliser un analyseur Profibus ou la fonctionnalité de diagnostic du PLC pour lire les données brutes d'E/S et confirmer que les octets se mapent correctement aux types de données attendus.

Dépannage des problèmes communs de type de données

Les types de données mal interprétés sont une source fréquente de problèmes de bus de terrain. Les symptômes les plus courants et leurs causes profondes sont les suivants:

  • Les valeurs irréalistes ou erronées: Souvent en raison d'un mauvais ajustement de l'endianité. Par exemple, un entier 16 bits lu comme octet-swaped produira des valeurs comme 256 au lieu de 1. Solution : configurer octet-swap dans le maître ou le firmware.
  • Booléen bits dans la mauvaise position:[ Un esclave peut assigner un booléen au bit 3 d'un octet, mais le maître s'attend à ce que le bit 0. Vérifiez le fichier GSD ou le manuel du périphérique pour la cartographie des bits.
  • Le point flottant se lit comme un nombre énorme ou zéro: Presque toujours un problème d'ordre octet. Certains contrôleurs interprètent les réels 32 bits comme peu endian par défaut. Activer -swap bytes - pour ce bloc de données.
  • Les données de la chaîne apparaissent en guillemet :[ Assurez-vous que la longueur de la chaîne corresponde à la longueur réelle transmise. Les chaînes de longueur fixe rembourrées avec des octets nuls peuvent être mal interprétées si le maître attend des espaces.
  • Array index discord:[ Lorsqu'on utilise des structures, une erreur hors-par-un dans la cartographie des données peut déplacer toutes les valeurs suivantes. Utilisez l'outil de configuration , la fonction de cartographie symbolique plutôt que les offsets bruts.

Avenir des types de données et de profibus

Bien que Profinet soit de plus en plus adopté pour de nouvelles installations en raison de sa rapidité et de sa flexibilité plus élevées, Profibus reste profondément intégré dans les installations existantes. De nombreuses installations exploitent des réseaux hybrides où Profibus et Profinet coexistent via des passerelles proxy. Les définitions de type de données de Profibus ont été reportées dans Profinet, assurant ainsi la cohérence des profils d'appareils et des outils de configuration.

Pour les ingénieurs chargés de maintenir les systèmes Profibus existants, maîtriser les nuances de l'emballage booléen, de l'échelle entière et de la représentation des points flottants est indispensable. Il permet un diagnostic précis, empêche les temps d'arrêt coûteux et facilite la migration en douceur vers les architectures modernes.

Pour des spécifications plus détaillées, voir la documentation officielle de Profibus International (www.profibus.com) et les normes pertinentes de la CEI. Des conseils pratiques supplémentaires peuvent être trouvés dans les notes d'application de Siemens (Siemens Industry Online Support[) et dans l'article de Wikipedia sur Profibus.