Table of Contents
Was ist Profibus?
Profibus (Process Field Bus) ist ein offener, herstellerunabhängiger Feldbusstandard, definiert in IEC 61158 und IEC 61784, der Ende der 1980er Jahre von einem Konsortium deutscher Hersteller entwickelt wurde und zu einem der weltweit am weitesten verbreiteten industriellen Kommunikationsprotokolle geworden ist. Profibus unterstützt den deterministischen Echtzeit-Datenaustausch zwischen speicherprogrammierbaren Steuerungen (SPS), Sensoren, Aktoren, Antrieben und anderen Automatisierungsgeräten, wobei das Protokoll über verdrillte Kupferkabel (RS-485) oder Glasfasern mit Datenraten von 9,6 kbit/s bis 12 Mbit/s je nach Kabellänge und Topologie arbeitet.
Es gibt drei Hauptvarianten:
- Profibus-DP (Dezentralisierte Peripheriegeräte) – optimiert für den Hochgeschwindigkeits-Datenaustausch mit Remote-I/O- und Feldgeräten in der Fabrikhalle.
- Profibus-PA (Prozessautomatisierung) – entwickelt für gefährliche Umgebungen (eigentlich sicher) und verwendet die Manchester Bus Powered (MBP) Technologie, die häufig in der Chemie-, Öl- und Gasindustrie zu finden ist.
- Profibus-FMS (Fieldbus Message Specification) – eine komplexere, Peer-to-Peer-Variante, die heute selten verwendet wird, da sie weitgehend durch Profinet- und Ethernet-basierte Protokolle ersetzt wurde.
Das Verständnis der von Profibus unterstützten Datentypen ist von grundlegender Bedeutung für die Konfiguration von Geräteprofilen, die Interpretation von Prozesswerten und die Gewährleistung einer nahtlosen Interoperabilität zwischen Systemen mit mehreren Anbietern.
Grundlagen von Profibus Datentypen
Der Datenaustausch erfolgt in Profibus-DP nach einem Master-Slave-Modell. Der Master (typischerweise eine SPS oder DCS) liest zyklisch Eingangsdaten von Slaves und schreibt Ausgangsdaten in diese. Jedes Slave-Gerät hat eine deklarierte Konfiguration, die definiert, wie seine Eingangs- und Ausgangsdaten strukturiert sind, d.h. die Anzahl der Bytes, die Zuordnung zu Datenobjekten und der Datentyp jedes Objekts. Die vom Gerätehersteller bereitgestellte General Station Description (GSD)-Datei beschreibt diese Datenstrukturen in einem standardisierten Format.
Datentypen in Profibus können kategorisiert werden in:
- Cyclic I/O-Daten – tauschen jeden Buszyklus aus (z.B. Messwerte, Steuerausgänge).
- Azyklische Parameterdaten – auf Anforderung gelesen/geschrieben für Konfiguration, Identifikation oder Diagnose.
- Diagnostische Daten – Status- und Fehlerinformationen des Slaves.
Alle Daten werden mit bestimmten Datentypen in Speicherbereiche abgebildet. Die Profibus-Spezifikation definiert einen Satz elementarer Datentypen, die zu komplexeren Strukturen kombiniert werden können. Die korrekte Interpretation an beiden Enden der Kommunikationsverbindung hängt davon ab, ob Master und Slave sich über Art, Länge und Byte-Reihenfolge (Endianness) jedes Datenfeldes einig sind.
Gemeinsame Profibus-Datentypen im Detail
Boolesches
Der Datentyp Boolean stellt einen Binärwert dar: TRUE (1) oder FALSE (0). In Profibus nimmt ein Boolesches typischerweise ein Byte ein, obwohl nur das am wenigsten signifikante Bit (LSB) Bedeutung hat; die verbleibenden sieben Bits sollten ignoriert oder auf Null gesetzt werden. Boolesche Werte werden ausgiebig für diskrete Signale wie Motorstart/Stop, Ventil offen/schließen, Endschalterstatus und Alarmindikatoren verwendet. Da viele Controller mehrere Boolesche Bits in ein einzelnes Byte oder Wort packen können (Bit-Streifen), ist eine sorgfältige Konfiguration erforderlich, um Fehlausrichtungen zu vermeiden.
Integer (signiert und nicht signiert)
Integers codieren ganze Zahlen. Profibus unterstützt signierte und nicht signierte Formate in drei Standardlängen:
- 8-bit (Byte): Signed (SINT) range −128 to +127; unsigned (USINT) range 0 to 255.
- 16-bit (Word): Signed (INT) range −32,768 to +32,767; unsigned (UINT) range 0 to 65,535.
- 32-bit (Double Word): Signed (DINT) range −2,147,483,648 to +2,147,483,647; unsigned (UDINT) range 0 to 4,294,967,295.
Integer-Typen werden üblicherweise für Zähler, Geschwindigkeitssollwerte, Timer und Geräteparameter verwendet, die keine fraktionierte Komponente erfordern. In vielen GSD-Dateien sehen Sie die Notation INT16 oder UINT32 Die Byte-Reihenfolge ist normalerweise groß-endian (das bedeutendste Byte zuerst) auf Profibus, aber überprüfen Sie immer die Master-Konfiguration, da einige Systeme auf klein-endian eingestellt werden können.
Real (Floating Point)
Reelle Zahlen (Fließkommawerte) sind für analoge Messungen wie Temperatur, Druck, Durchfluss und Füllstand unerlässlich. Profibus verwendet das 32-Bit-Format IEEE 754 mit Einzelpräzision, manchmal auch als REAL oder FLOAT bezeichnet. Ein 32-Bit-Real besteht aus einem Vorzeichenbit, einem 8-Bit-Exponenten und einer 23-Bit-Mantisse. Doppelpräzision (64-Bit)-Reale sind in der Spezifikation definiert, aber aufgrund der erhöhten Buslast und des erhöhten Speicherverbrauchs weniger verbreitet.
Beim Übertragen von Gleitkommadaten müssen Master und Slave sich auf die Byte-Order einigen. Der Standard für Profibus ist Big-Endian (MSB first). Wenn ein Gerät Little-Endian verwendet (üblicherweise wie einige PC-basierte Controller), müssen Sie einen Byte-Swap im Master konfigurieren, um verstümmelte Werte zu vermeiden.
Byte, Word und Double Word
Es handelt sich um Rohdatencontainer, die nicht als Zahlen interpretiert werden, sondern für:
- Übertragung von Binärstatusbits (Bit-Byte-Mapping).
- Weitergabe herstellerspezifischer Daten, die der Master nicht interpretieren muss.
- Zuordnung mehrerer Boolescher oder kleiner Ganzzahlwerte zu einer einzigen Übertragungseinheit.
Ein Byte ist 8 Bits, ein Word ist 16 Bits (2 Bytes) und ein Double Word ist 32 Bits (4 Bytes). Viele Profibus-Geräte definieren ihre E/A-Daten als ein Array von Bytes, und es liegt am Anwendungsprogramm, sie in den richtigen logischen Typ umzuwandeln.
String
String-Datentypen werden zur Übertragung alphanumerischer Informationen wie Geräteidentifikation, Modellnummern, Fehlermeldungen oder Operator-Anmerkungen verwendet. Profibus definiert Strings typischerweise als eine Sequenz von Zeichen mit fester Länge (z. B. 16, 32 oder 64 Byte), wobei jedes Byte ein ASCII-Zeichen enthält. Einige Profile unterstützen auch die Kodierung nach ISO 8859-1 (lateinisch-1). Da Strings eine feste Länge haben, können nachlaufende Leerzeichen oder Nullzeichen für die Padding verwendet werden.
Die Stringübertragung erfolgt in der Regel azyklisch (über Parameterkanäle), da die zyklische Übertragung Bandbreite verschwenden würde. Auf HMIs und SCADA-Systemen werden Strings von Profibus-Slaves nach der Decodierung der ASCII-Werte oft als Klartext angezeigt.
Verbundwerkstofftypen: Arrays und Strukturen
Profibus ermöglicht die Gruppierung von Elementardatentypen in arrays (wiederholt den gleichen Typ) und strukturen (Mischung verschiedener Typen). Beispielsweise könnte ein 4-Kanal-Analog-Eingabemodul ein Array von vier 16-Bit-Ganzzahlen senden. Ein Laufwerksprofil könnte eine Struktur verwenden, die ein Kontrollwort (16-Bit-Ganzzahl), einen Sollwert (32-Bit-Real) und ein Statuswort enthält 16-Bit-Ganzzahl. Die GSD-Datei definiert das genaue Layout und gibt jedem Element einen eindeutigen Steckplatz oder Index.
Komplexe Datentypen wie Time (z. B. Dauer- oder Zeitstempel) und Date (kodiert als 16-Bit- oder 32-Bit-Wert) sind ebenfalls in der Profibus-Spezifikation definiert, erscheinen aber hauptsächlich in profilspezifischen Anwendungskontexten (z. B. Laufwerkstechnologie oder Prozesssteuerung).
Praktische Nutzung in industriellen Anwendungen
Fertigungsautomatisierung
In der diskreten Fertigung – wie z.B. Automobilmontagelinien oder Verpackungsmaschinen – kommt Profibus-DP stark zum Einsatz.
- Boolesche Signale für teilweise vorhandene Sensoren, Reject-Aktoren und Bestätigungsbits.
- 16-Bit-Ganzzahlen für Geschwindigkeitsbefehle an variable Frequenzantriebe.
- 32 Bit Real für Drehmoment- oder Kraftmessungen von Servoantrieben.
Die Konfiguration der Datenmappings in der Master-SPS erfolgt mit einem Hardware-Konfigurationstool (z.B. Siemens TIA Portal, Rockwell ControlLogix mit Profibus-Scanner). Die Wahl des Datentyps hat direkten Einfluss auf die Zykluszeit: kleinere Typen reduzieren die Buslast und ermöglichen höhere Aktualisierungsraten.
Prozesssteuerung
Profibus-PA ist die bevorzugte Variante für die kontinuierliche Prozessindustrie. Hier dominieren analoge Messungen. Ein Drucksender sendet beispielsweise zyklisch einen 32-Bit-Realwert, der die Prozessvariable repräsentiert (z. B. 12,345 bar). Das Geräteprofil (PA Profile 3.0 oder 4.0) definiert standardisierte Blöcke wie Analog Input oder PID Controller mit jeweils genau definierten Datentypen und Statusbytes. Ein Statusbyte (typischerweise byteweit) geht dem Analogwert voraus oder begleitet ihn und liefert Qualitätsinformationen (gut, unsicher, schlecht) und Limitalarme. Diese Kombination von realen und booleschen Datentypen ermöglicht es dem Steuerungssystem, sowohl auf den Messwert als auch auf seinen Zustand einzuwirken.
Motion Control und Antriebe
Antriebsprofile für Profibus (z. B. PROFIdrive) verwenden eine Kombination von Datentypen, um eine schnelle, koordinierte Bewegung zu erreichen.
- Ein Steuerwort (16-Bit-Integer) mit booleschen Bits zum Ausführen, Stoppen, Zurücksetzen usw.
- Ein Geschwindigkeitssollwert (32-bit real) mit einem im Parametersatz definierten Skalierungsfaktor.
- Ein Statuswort (16-Bit-Ganzzahl), das die tatsächliche Antriebsgeschwindigkeit, Fehlerflags und den Leistungszustand widerspiegelt.
- Istwerte (32-bit real oder 16-bit integer) für Drehmoment, Strom oder Position.
Die korrekte Interpretation von Bitfeldern innerhalb von Steuer-/Statuswörtern ist entscheidend. Ein einzelnes falsch abgestimmtes boolesches Bit kann ein unerwartetes Laufwerksverhalten verursachen.
Sicherheitssysteme (PROFIsafe)
PROFIsafe ist eine Sicherheitskommunikationsschicht, die auf Profibus läuft. Sie verwendet ein spezielles Datenformat, das als "F‐host" und "F‐slave" Datenblöcke bekannt ist. Die sicherheitsrelevanten Daten (z. B. Not-Aus-Tasten, Lichtvorhänge) werden als Boolean oder 16-Bit-Integer Werte übertragen, jedoch mit zusätzlichen sicherheitsrelevanten Merkmalen: einer fortlaufenden Sequenznummer, einer CRC (zyklische Redundanzprüfung) über die Nutzlast und einem Watch-Dog-Timer. Die zugrunde liegende Datentyp-Semantik bleibt gleich, aber der PROFIsafe-Treiber behandelt den zusätzlichen Overhead transparent für den Benutzer.
Best Practices für die Datentypauswahl
- Verwenden Sie den kleinsten Datentyp, der die Auflösung und den Bereich erfüllt. Für diskrete Signale packen Sie mehrere Booleaner in ein Byte oder Wort. Für analoge Werte überlegen Sie, ob eine 16-Bit-Ganzzahl mit skalierter Auflösung anstelle einer 32-Bit-Realzahl ausreicht, um die Buslast zu reduzieren.
- Respektiere das Geräteprofil. Viele Profibus-Geräte entsprechen Standardprofilen (z. B. PA Profile, PROFIdrive, Encoder Profile). Die Verwendung der profilverpflichteten Datentypen gewährleistet die Plug-and-Play-Interoperabilität.
- Dokumentieren Sie die Byte-Order und Skalierung. Speichern Sie die Master-Konfiguration (GSD-Datei, I/O-Mapping) mit Versionskontrolle. Wenn eine Skalierung angewendet wird (z. B. eine 16-Bit-Ganzzahl, die 0–100% mit 0,1% Auflösung darstellt), muss der Skalierungsfaktor dokumentiert werden.
- Betrachten Sie die Endianness frühzeitig. Beim Entwerfen eines benutzerdefinierten Profibus-Geräts (z. B. eines Sensors mit einem Mikrocontroller) definieren Sie explizit die Byte-Reihenfolge in der GSD-Datei. Viele Konfigurationstools ermöglichen es, den Master bei Bedarf auf den Austausch von Bytes einzustellen.
- Verifizieren Sie mit Diagnosetools. Verwenden Sie einen Profibus-Analysator oder die Diagnosefunktionalität der SPS, um Roh-E/A-Daten zu lesen und zu bestätigen, dass Bytes korrekt den erwarteten Datentypen zugeordnet sind.
Fehlerbehebung bei Problemen mit häufigen Datentypen
Fehlinterpretationen von Datentypen sind häufige Ursache für Feldbusprobleme, zu den häufigsten Symptomen und deren Ursachen gehören:
- Fehlerhafte oder falsche Werte: Oftmals aufgrund von Fehlanpassungen bei der Endianness. Beispielsweise erzeugt eine 16-Bit-Integerzahl, die als Byte-Swapped gelesen wird, Werte wie 256 anstelle von 1. Lösung: Byte-Swap im Master oder in der Firmware konfigurieren.
- Boolesche Bits an der falschen Position: Ein Slave kann Bit 3 eines Bytes ein Boolesches zuweisen, aber der Master erwartet es auf Bit 0. Überprüfen Sie die GSD-Datei oder das Gerätehandbuch für die Bitzuordnung.
- Floating point liest sich als riesige Zahl oder Null: Fast immer ein Byte-Order-Problem. Einige Controller interpretieren 32-Bit-Reale standardmäßig als Little-Endian. Aktivieren Sie "Swap-Bytes" für diesen Datenblock.
- String-Daten erscheinen verstümmelt: Stellen Sie sicher, dass die Stringlänge mit der tatsächlichen übertragenen Länge übereinstimmt. Feste Längen-Strings, die mit Nullbytes gepolstert sind, können falsch interpretiert werden, wenn der Master Leerzeichen erwartet.
- Array-Index-Mismatch: Bei der Verwendung von Strukturen kann ein Fehler in der Datenabbildung alle nachfolgenden Werte verschieben.
Zukunft von Profibus und Datentypen
Obwohl Profinet aufgrund seiner höheren Geschwindigkeit und Flexibilität zunehmend für neue Installationen eingesetzt wird, ist Profibus nach wie vor tief in bestehende Anlagen eingebettet. Viele Anlagen betreiben hybride Netzwerke, in denen Profibus und Profinet über Proxy-Gateways koexistieren. Die Datentypdefinitionen von Profibus wurden in Profinet übernommen, wodurch sichergestellt wird, dass Geräteprofile und Konfigurationstools konsistent bleiben.
Für Ingenieure, die mit der Wartung von Profibus-Systemen beauftragt sind, ist es unerlässlich, die Nuancen des booleschen Packings, der Ganzzahl-Skalierung und der Gleitkommadarstellung zu beherrschen, eine genaue Diagnose zu ermöglichen, kostspielige Ausfallzeiten zu vermeiden und eine reibungslose Migration zu modernen Architekturen zu ermöglichen.
Nähere Angaben zu den Spezifikationen finden Sie in der offiziellen Profibus-Dokumentation von Profibus International (www.profibus.com) und den einschlägigen IEC-Normen. Weitere praktische Hinweise finden Sie in den Anwendungshinweisen von Siemens (Siemens Industry Online Support) und im Wikipedia-Artikel zu Profibus).