Definition und Zweck:
Handshake-Programmierung ist eine Technik in der SPS-Programmierung und bei der Kommunikation zwischen verschiedenen Systemkomponenten, die einen Koordinationsmechanismus durch gegenseitige Bestätigung implementiert. Sie dient dazu, einen sicheren und verlustfreien Datenaustausch oder eine synchronisierte Abfolge von Aktionen zwischen zwei oder mehr unabhängigen Programmteilen, Geräten oder Steuerungen zu gewährleisten.
Das Grundprinzip ist, dass eine sendende Partei eine Aktion oder Daten zur Verfügung stellt und auf eine Bestätigung der empfangenden Partei wartet, bevor sie fortfährt. Die empfangende Partei signalisiert ihre Bereitschaft und bestätigt den Empfang, bevor sie die Daten verarbeitet.
Ablauf (Beispiel):
Stellen Sie sich eine SPS vor, die Daten an ein Robotersystem sendet:
- SPS (Sender): Setzt ein „Daten_bereit“-Bit auf TRUE.
- Roboter (Empfänger): Erkennt „Daten_bereit“ auf TRUE, liest die Daten und setzt ein „Daten_empfangen“-Bit auf TRUE.
- SPS (Sender): Erkennt „Daten_empfangen“ auf TRUE, setzt „Daten_bereit“ auf FALSE und wartet auf die nächste Bestätigung.
- Roboter (Empfänger): Erkennt „Daten_bereit“ auf FALSE, setzt „Daten_empfangen“ auf FALSE und wartet auf neue Daten.
Dieser zyklische Austausch von „Bereit“- und „Bestätigungs“-Signalen stellt sicher, dass keine Daten verloren gehen oder überschrieben werden und dass beide Seiten wissen, wann sie handeln können.
Relevanz in der Automatisierung:
Handshake-Programmierung ist unverzichtbar für die zuverlässige Koordination in komplexen Automatisierungssystemen:
- Datenübertragung: Sicherstellung der Integrität und des Verlusts von Daten zwischen SPSen, HMIs, Robotern, Messgeräten oder externen Computersystemen.
- Sequentielle Abläufe: Synchronisation von Prozessschritten, bei denen eine Aktion erst nach Abschluss einer anderen erfolgen darf.
- Ressourcenmanagement: Kontrolle des Zugriffs auf gemeinsame Ressourcen (z.B. ein Werkstück, das von zwei Robotern nacheinander bearbeitet wird).
- Fehlerbehandlung: Erkennung von Kommunikationsfehlern, wenn ein Bestätigungssignal nicht innerhalb einer bestimmten Zeit eintrifft (Timeout).
Diese Programmierung kann über digitale I/Os, interne Merker, gemeinsame Datenbausteine oder Kommunikationsprotokolle realisiert werden.
→ Siehe auch: Handshaking, Kommunikation, Synchronisation, SPS-Programmierung, Datenintegrität, Merker

