Einführung in Profibus und die Rolle von Datentypen

Profibus (Process Field Bus) ist eines der etabliertesten Kommunikationsprotokolle in der industriellen Automatisierung, das Feldgeräte wie Sensoren, Aktoren, Antriebe und speicherprogrammierbare Steuerungen (SPS) über Fertigungs- und Prozessanlagen hinweg verbindet. Seine weit verbreitete Verbreitung ist auf sein deterministisches Verhalten, seine robuste Fehlerbehandlung und seine Unterstützung sowohl für die diskrete als auch für die kontinuierliche Hochgeschwindigkeits-Prozesssteuerung zurückzuführen. Die Wirksamkeit eines Profibus-Netzwerks hängt jedoch entscheidend davon ab, wie Daten von den beteiligten Geräten dargestellt, übertragen und interpretiert werden.

Datentypen definieren Format, Größe und Kodierung der über den Bus ausgetauschten Informationen. Eine Temperaturmessung, ein Motorstartbefehl oder ein Alarmcode erfordern jeweils einen bestimmten Datentyp, um sicherzustellen, dass Sender und Empfänger den Wert genau auf die gleiche Weise verstehen. Fehlausrichtungen bei der Interpretation von Datentypen können zu fehlerhaften Messwerten, Steuerlogikfehlern oder sogar zu Geräteschäden führen. Dieser Artikel bietet einen umfassenden, technisch fundierten Überblick über Profibus-Datentypen und ihre praktische Anwendung bei Automatisierungsaufgaben. Ingenieure, Systemintegratoren und Wartungsexperten werden umsetzbare Erkenntnisse für das Entwerfen, Konfigurieren und Beheben von Profibus-Netzwerken finden.

Übersicht über Profibus Datentypen

Profibus, wie in den Normen IEC 61158 und IEC 61784 definiert, unterstützt einen strukturierten Datentypsatz, der das gesamte Spektrum der Automatisierungssignale abdeckt – von einfachen binären Zuständen bis hin zu komplexen Gleitkommamessungen und strukturierten Diagnoseinformationen. Die Datentypen sind in der Profibus-Spezifikation formal spezifiziert und über ihre beiden Hauptvarianten hinweg konsistent: Profibus-DP (Decentralized Periphery) für die Hochgeschwindigkeits-Fabrikautomation und Profibus-PA (Process Automation) für intrinsisch sichere Prozessumgebungen.

Grunddatentypen

Boolean (Binär)

Der Datentyp Boolean repräsentiert ein einzelnes Informationsbit: TRUE (1) oder FALSE (0)] In Profibus werden Booleaner typischerweise auf das niederstwertigste Bit eines Bytes abgebildet, aber sie können auch in Multi-Bit-Felder innerhalb eines Wortes oder Doppelwortes gepackt werden.

Integer (8, 16, 32-Bit)

Integers tragen ganzzahlige Werte und kommen in drei gemeinsamen Breiten:

  • 8-Bit-Integer (1 Byte) – Bereich 0 bis 255 (unsigniert) oder -128 bis +127 (signiert).
  • 16-Bit-Integer (2 Bytes) – Bereich 0 bis 65.535 (unsigniert) oder -32.768 bis +32.767 (signiert). Dies ist der häufigste Ganzzahltyp in Profibus-DP für analoge Eingänge, die auf Engineering-Einheiten, Geschwindigkeitssollwerte und Positionsrückmeldung skaliert sind.
  • 32-Bit-Integer (4 Bytes) – Bereich ±2,14 × 109. Wird für akkumulierte Werte (z. B. totalisierter Fluss), hochauflösende Kodierer oder Zeitstempel verwendet.

Die Integer-Codierung folgt der Byte-Ordnung von little-endian (zuerst das am wenigsten signifikante Byte) standardmäßig in Profibus, obwohl einige Geräteprofile Big-Endian angeben können. Ingenieure müssen die Byte-Ordnung in der GSD-Datei des Geräts überprüfen, um Vorzeichen- und Skalierungsfehler zu vermeiden.

Floating Point (IEEE 754)

Für kontinuierliche Prozessvariablen, die fraktionierte Präzision erfordern – wie Temperatur, Druck, pH-Wert oder Durchflussrate – verwendet Profibus das 32-Bit-Format für einzelne Präzisions- (32-Bit-) Gleitkommawerte. Dieser Typ bietet eine Genauigkeit von etwa 7 Dezimalstellen mit einem Bereich von etwa ±3,4 × 1038. In vielen Profibus-PA-Geräten werden Gleitkommawerte direkt in technischen Einheiten (z. B. Grad Celsius, bar) ohne zusätzliche Skalierung übertragen. In Profibus-DP übertragen einige Geräte jedoch rohe Ganzzahlwerte und verlassen sich auf den Controller, um sie mit einer linearen Umwandlungsformel zu skalieren. Die bewusste Wahl zwischen Ganzzahl-Skalierung und echtem Gleitkomma beeinflusst sowohl die Konfigurationskomplexität als auch die Messgenauigkeit.

Zeichenketten (Octet Strings)

Zeichenfolgen, genauer gesagt Oktettfolgen, transportieren Textdaten wie Gerätenamen, Firmwareversionen, Diagnosenachrichten oder Passwörter. In Profibus werden Zeichenfolgen typischerweise mit einer festen Länge (z. B. 16, 32 oder 64 Bytes) definiert und in ASCII oder ISO 8859-1 codiert. Zeichenfolgen variabler Länge sind ebenfalls möglich, aber weniger verbreitet, da Profibus-Slots statisch konfiguriert sind. Beim Entwerfen von Statusmeldungen oder Identifikationsdaten sollten Ingenieure die Zeichenfolgenlänge in der GSD-Datei an die tatsächliche maximale Länge anpassen, die erforderlich ist, um verkürzte oder gepolsterte Daten zu vermeiden.

Zusätzliche Datentypen in Profibus-DP und Profibus-PA

Neben den vier Grundtypen definiert Profibus mehrere spezielle Datentypen, um den fortschrittlichen Automatisierungsanforderungen gerecht zu werden:

  • Datum und Uhrzeit (7 Bytes) – Kombiniert Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde. Wird für Ereignisprotokollierung, Batch-Startzeiten oder Zeitstempelalarme verwendet. Das Format folgt dem Profibus-Profil, das in IEC 61158-5 definiert ist.
  • Bit String (1, 2 oder 4 Bytes) – Ein gepacktes Array unabhängiger Flags, bei denen jedes Bit eine bestimmte Bedeutung hat.
  • Strukturierte Datentypen (Records) – Komplexe Automatisierungsaufgaben erfordern oft die Gruppierung mehrerer Datenelemente, z. B. eines Laufwerksobjekts, das Geschwindigkeitssollwert (float), Beschleunigung (Integer) und Steuerwort (Bitstring) enthält. Profibus ermöglicht schlitzbasierte Datensätze, die mehrere Datentypen in einem einzigen zyklischen oder azyklischen Zugriff bündeln.
  • Byte Array – Eine rohe Folge von Bytes ohne Interpretation, die für Firmware-Updates, benutzerdefinierte Protokollerweiterungen oder Daten verwendet wird, die später von der Anwendungsschicht analysiert werden.

Datentyp-Mapping zu Geräteprofilen

Um die Interoperabilität zu gewährleisten, schreiben Profibus-Geräteprofile (z. B. PROFIdrive für Antriebe, PA-Profile für Prozessinstrumente) genau vor, welche Datentypen für bestimmte Parameter verwendet werden müssen. Beispielsweise ist ein PROFIdrive-Geschwindigkeitssollwert als 32-Bit-IEEE 754-Fließkomma standardisiert, während ein PA-Temperatursender eine 8-Byte-Struktur verwendet (Float + Statusbyte). Bei der Auswahl eines Geräts sollten Ingenieure die Profilspezifikation konsultieren, um zu bestätigen, dass Datentypen den Fähigkeiten des Controllers entsprechen. Fehlpassende Typen - wie das Lesen eines Floats als Ganzzahl - können Skalierungsfehler verursachen oder den Controller veranlassen, die Daten abzulehnen.

Anwendung von Profibus Datentypen in Automatisierungsaufgaben

Die Auswahl des richtigen Datentyps ist nicht nur eine technische Formalität, sondern beeinflusst direkt die Systemgenauigkeit, Reaktionszeit und Wartbarkeit. In diesem Abschnitt wird untersucht, wie sich Datentypen auf gängige Automatisierungsszenarien auswirken.

Analog vs. Digital Data Handling

Digitale Signale (ein/aus, offen/geschlossen) bilden natürlich Datentypen von Boolean ab. Die Verwendung einer einzelnen Boolean-Anstatt einer 16-Bit-Integer reduziert den Busverkehr und vereinfacht die Logik. Einige ältere Geräte können jedoch immer noch mehrere Boolean in ein einzelnes Byte packen, was eine bitweise Extraktion in der SPS erfordert. Moderne Profibus-Geräte unterstützen zunehmend diskrete boolesche Abbildung pro Slot.

Analoge Signale, wie eine 4-20 mA Schleife, die in digital umgewandelt wird, können als 16-Bit-Ganzzahlen (Roh-A/D-Zählung) oder als 32-Bit-Floats in technischen Einheiten übertragen werden. Die Wahl hängt von der Verarbeitungskapazität des Controllers und der erforderlichen Präzision ab. Die Float-Übertragung macht Skalierungsgleichungen überflüssig, verwendet jedoch mehr Bandbreite. In Profibus-DP, wo die Zykluszeiten 1 ms oder weniger betragen können, sind die zusätzlichen 2 Bytes pro Messung normalerweise vernachlässigbar. In Profibus-PA, wo die Bandbreite auf 31,25 kbit/s begrenzt ist, werden viele Geräte standardmäßig ganzzahlig übertragen, um die Buszeit zu sparen.

Präzisions- und Range-Betrachtungen

Bei der Messung einer physikalischen Größe müssen die Ingenieure sicherstellen, dass der gewählte Datentyp die volle Reichweite und Präzision des Sensors repräsentieren kann. Zum Beispiel erfordert ein Temperaturbereich von -200 °C bis +850 °C mit einer Auflösung von 0,1 °C mindestens 10.500 Schritte. Eine 16-Bit-Ganzzahl (65536 Schritte) ist ausreichend, aber die Skalierung muss im Controller konfiguriert werden. Ein 32-Bit-Float kann den Wert dagegen direkt ohne Skalierung darstellen, was die Wartung vereinfacht. Wird dagegen ein 32-Bit-Float für eine einfache Zählung bis zu 10.000 verwendet, verschwendet er Bandbreite. Die beste Vorgehensweise besteht darin, den Datentyp mit der natürlichen Auflösung der Messung abzugleichen - niemals die Präzision unnötig überspezifizieren, aber niemals bis zum Verlust signifikanter Daten.

Cyclic vs. azyklische Kommunikation und Datentypen

Profibus verwendet zwei Kommunikationskanäle: den zyklischen (synchronen) Kanal für zeitkritische Prozessdaten und den azyklischen (asynchronen) Kanal für Parametrisierung, Konfiguration und Diagnose. Die Wahl des Datentyps beeinflusst, welcher Kanal verwendet wird. Einfache Boolean, ganze Zahlen und Floats werden typischerweise zyklisch ausgetauscht. Komplexe Datentypen wie Zeichenfolgen, Datum/Uhrzeit oder strukturierte Datensätze werden oft azyklisch über MS1 (Master-Slave 1) oder MS2 (Master-Slave 2) Dienste gelesen oder geschrieben. Beispielsweise kann die tatsächliche Geschwindigkeit eines Laufwerks zyklisch als 32-Bit-Float gesendet werden, während seine Firmwareversion (String) während des Starts azyklisch gelesen wird.

Ingenieure müssen auf den azyklischen Overhead achten: Das Lesen eines 64-Byte-Datensatzes kann mehrere Millisekunden dauern, was sich bei zu häufigem Durchführen auf die Buszykluszeiten auswirken kann.

Praktische Beispiele erweitert

Sensordaten (Temperatur, Druck, Durchfluss)

Ein Temperatursender von Profibus-PA (z. B. von Endress + Hausser oder Siemens) gibt einen zyklischen Datensatz aus, der einen 32-Bit-Gleitkommawert enthält, der die Temperatur in °C darstellt, gefolgt von einem Statusbyte (Qualitätsindikator). Das Statusbyte selbst ist eine Bitfolge mit Flags für "gut", "unsicher" oder "schlecht". Der Controller muss sowohl den Float als auch den Status interpretieren, um zu entscheiden, ob er die Messung verwendet. Im Gegensatz dazu kann ein einfacher DP-Drucksensor eine 16-Bit-Ganzzahl ausgeben, die auf 0 bis 100 bar skaliert ist. Die Hardwarekonfiguration des Controllers (z. B. im TIA-Portal oder Schritt 7) bildet den Ganzzahlbereich mit einer linearen Umwandlung ab (z. B. 0 Zähler = 0 bar, 27,648 Zähler = 100 bar). Die Wahl des richtigen Datentyps vermeidet hier sowohl Überlauf als auch Auflösungsverlust.

Motorsteuerung (Start/Stop, Geschwindigkeit, Drehmoment)

Bei der Antriebsautomatisierung definiert PROFIdrive eine Standard-Telegrammstruktur. Beispielsweise enthält Telegram 1 ein 16-Bit-Steuerwort (Bitstring) und einen 32-Bit-Geschwindigkeitssollwert (Float) vom Controller zum Antrieb, der ein 16-Bit-Statuswort (Bitstring) und eine 32-Bit-Ist-Geschwindigkeit (Float) zurückgibt. Die korrekte Interpretation von Befehlen durch das Laufwerk ist zwingend erforderlich. Wird ein Float fälschlicherweise als Ganzzahl konfiguriert, kann das Laufwerk den Sollwert mit einem Fehlerfaktor von 65.536 interpretieren, was zu Übergeschwindigkeit führen kann. Sicherheitsfunktionen verwenden auch boolesche Typen (z. B. sicheres Drehmoment aus), die bestimmten Bits im Steuerwort zugeordnet sind.

Geräteidentifikation und Diagnose

Bei der Inbetriebnahme eines Netzwerks müssen die Ingenieure jedes Gerät identifizieren. Profibus-Geräte speichern eine eindeutige Hersteller-ID, Geräte-ID und Modellname – alle werden als Oktett-Strings (Zeichen) über azyklische Lesevorgänge übertragen. Diese Strings sind oft 20-40 Bytes lang. Während der Fehlersuche werden Diagnosedaten (z. B. Alarmverlauf) oft als strukturierter Datensatz gelesen, der eine Mischung aus Datum/Uhrzeit, Bit-Strings für Alarme und Gleitkommawerten für Spitzenwerte enthält. Das Verständnis der Datentypen im Diagnosedatensatz ermöglicht ein effizientes Parsing ohne manuelles Byte-Shuffling.

Batch Control und Rezeptmanagement

Bei Batch-Prozessen können Profibus-PA-Geräte Rezeptparameter als Zeichenableitung oder als Strukturen mit mehreren Ganzzahlen (z. B. Sollwert, Rampenzeit, Haltezeit) akzeptieren. Beispielsweise kann ein Ventilpositionierer einen 32-Byte-Datensatz erhalten, der einen Schwimmer für die Zielposition, eine Ganzzahl für die Betätigungsgeschwindigkeit und einen Booleschen für den ausfallsicheren Modus enthält. Die Steuerung muss diesen Datensatz unter Verwendung der richtigen Byte-Reihenfolge und Ausrichtung zusammenstellen (oft 4-Byte-Ausrichtung für Schwimmer).

Konfiguration und Fehlerbehebung von Profibus-Datentypen

Datentypen in GSD-Dateien festlegen

Die GSD-Datei (Geräte Stammdaten) ist das elektronische Datenblatt, das die Fähigkeiten eines Geräts beschreibt, einschließlich der unterstützten Datentypen, der Slotstruktur und der verfügbaren Module. Bei der Konfiguration eines Profibus-Masters (z. B. eines Siemens CP 342-5 oder eines Schneider TSX PBY 100) wählt der Ingenieur die GSD-Datei des Geräts im Konfigurationstool aus und weist dann Module Slots zu. Jedes Modul gibt an, welche Datentypen im zyklischen I/O-Bereich erscheinen. Beispielsweise kann ein "4AI"-Modul vier 16-Bit-Integer-Werte für analoge Eingänge bereitstellen, während ein "2AO"-Modul zwei 16-Bit-Integer-Ausgänge bereitstellt. Wenn der erforderliche Datentyp ein 32-Bit-Float ist, muss der Ingenieur ein Modul auswählen, das explizit Floats definiert - oder ein "user-defined"-Modul mit der genauen Bytelänge und Typabbildung verwenden.

Viele Konfigurationstools (z. B. TIA Portal, Simatic Manager, ProfiMap) ermöglichen die manuelle Bearbeitung der I/O-Konfiguration, um die Interpretation des Datentyps zu ändern. Dies ist eine häufige Fehlerquelle: Die Änderung der Bytelänge des Moduls ohne Anpassung des Datentyps im SPS-Programm führt zu Fehlinterpretationen.

Häufige Fehler und wie man sie vermeidet

  • Byte Order Mismatch: Profibus verwendet standardmäßig Little-Endian, aber einige Geräte (insbesondere ältere in den USA hergestellte Geräte) können Big-Endian verwenden.
  • Falsche Skalierung von Integern: Bei Verwendung skalierter Ganzzahlen gibt die GSD-Datei typischerweise den Bereich an (z. B. 0–27648 entspricht 0–100%). Die SPS muss die lineare Gleichung anwenden: .
  • Datenlängen-Misalignment: Ein 32-Bit-Float muss immer auf einer 32-Bit-Adressgrenze in der E/A-Karte ausgerichtet sein. Einige Konfigurationstools richten automatisch lange Datentypen aus, andere jedoch nicht. Fügen Sie bei Bedarf manuell Padding-Bytes hinzu (z. B. erfordert eine 2-Byte-Integerzahl gefolgt von einem Float 2 Padding-Bytes für die richtige Ausrichtung).
  • Verwirrende Bitfolgen mit Booleanern: Eine Bitfolge mit einer Länge von 2 Bytes ist nicht dasselbe wie zwei separate boolesche Steckplätze. Wenn der Controller zwei einzelne Booleaner erwartet, aber das Gerät ein 16-Bit-Wort überträgt, muss die SPS jedes Bit extrahieren. Verwenden Sie die entsprechende "Bit-Extrakt"-Funktion (z. B. "MOVE BIT" oder "GET BIT" von TIA Portal).
  • Verwendung von Float für Integerwerte: Vermeiden Sie es, Ganzzahlzähler (z. B. Totalisatorimpulse) in einer Gleitkommavariablen zu speichern, wenn die Zahl 2^24 (etwa 16 Millionen) überschreitet.

Instrumente zur Überwachung von Datentypen

Mehrere Tools helfen zu überprüfen, ob Datentypen richtig interpretiert werden:

  • Profibus Tester / Analyzer (z. B. ProfiTrace, NetTEST II): Diese Geräte erfassen Telegramme und zeigen neben den konfigurierten Datentypen Rohbytefolgen an. Ingenieure können die tatsächlichen Daten mit Erwartungswerten vergleichen.
  • PLC Online und Watch Tables: Die meisten SPS-Programmierumgebungen ermöglichen die Online-Überwachung von Variablen in ihren deklarierten Datentypen. Wenn eine rohe Ganzzahl als Float angezeigt wird, ist die Konvertierung sichtbar falsch (z. B. erscheint eine kleine Temperatur als eine riesige Zahl).
  • GSD Viewer Tools: Software wie GSD Editor oder Siemens GSDView kann GSD-Dateien analysieren und die genauen Datentypdefinitionen pro Modul anzeigen, um Fehlanpassungen vor der Inbetriebnahme zu identifizieren.

Schlussfolgerung und Best Practices

Profibus-Datentypen sind das Fundament zuverlässiger Kommunikation in der industriellen Automatisierung. Von einfachen Booleschen Flags bis hin zu strukturierten Datensätzen mit gemischten Typen dient jeder Datentyp einem bestimmten Zweck, der die Systemgenauigkeit, Bandbreitenauslastung und diagnostische Klarheit beeinflusst. Wie wir gesehen haben, erfordert die richtige Auswahl und Konfiguration von Datentypen sorgfältige Aufmerksamkeit auf Geräteprofile, Skalierung, Byte-Reihenfolge und Ausrichtung.

Um erfolgreiche Projekte sicherzustellen, übernehmen Sie diese Best Practices:

  • Konsultieren Sie immer die GSD-Datei und die Profilspezifikation des Geräts, bevor Sie Datentypen im SPS-Programm definieren.
  • Verwenden Sie Gleitkommadatentypen für Messungen, die eine hohe Präzision erfordern, oder wenn die Skalierung von technischen Einheiten transparent sein muss.
  • Nutzen Sie Bitfolgen für Diagnose-Flags, um die Anzahl der zyklischen Slots zu reduzieren.
  • Überprüfen Sie die Byte-Ordnung und -Ausrichtung mit einem Busanalysator oder einem Online-Überwachungstool während der Inbetriebnahme.
  • Dokumentieren Sie alle Datentyp-Mappings in der technischen Dokumentation, um zukünftige Wartung und Fehlersuche zu vereinfachen.

Durch die Beherrschung von Profibus-Datentypen können Automatisierungsexperten Netzwerke entwerfen, die nicht nur funktional, sondern auch robust, skalierbar und einfach zu warten sind. Für weitere Informationen siehe die offizielle Website von Profibus International für technische Spezifikationen und Anwendungshinweise. Umfassende Behandlung von Datentypen finden Sie auch im Profibus Wikipedia-Artikel und in der IEC 61158-Serie von Standards. Darüber hinaus sind die PROFIdrive-Profildokumente auf der PROFIdrive-Profilseite verfügbar (Hinweis: Passen Sie bei Bedarf die tatsächliche URL an; für diese Übung verwende ich einen generischen Platzhalter – in der Produktion verwende ich echte Links).