Middleware zwischen SAP R/3 und einer Siemens S5/S7

Im Rahmen eines Kunden-Auftrages erhielt TEDSoft das Projekt, eine Middleware zwischen einem SAP R/3 System und einer Siemens S5/S7 Anlage zu schreiben. Die Middleware soll dabei Aufträge aus dem SAP-System annehmen, zwischenspeichern, an die S5/S7 weiterreichen und anschließend wieder bei SAP quittieren. Steuernder Eingriff soll dabei auch möglich sein.

Projekthintergrund

In einem Warenlager müssen eingehende Waren in einem Hochregallager (HRL) zwischengelagert werden und bei Bedarf wieder ausgelagert werden. Dieses Hochregallager wird durch Transport-Roboter angefahren, die durch eine Siemens S5/S7 Anlage angesteuert werden.
Bisher hat die Steuerungsanlage ihre Befehle direkt von SAP erhalten. Dabei stellt SAP die Priorisierung der Aufträge und die optimale Auslastung der Anlage sicher. Da die direkte Bindung zwischen SAP und der Siemens S5/S7 jedoch nicht mehr gewünscht ist, entstand der Bedarf einer Middleware.

Anforderungen

Aus dem bereits bestehenden System leiteten sich die Anforderungen an die Middleware ab. Folgende Kriterien müssen erfüllt werden:

Queueing der Aufträge und regulierender Eingriff

Da die Siemens S5/S7-Anlage Aufträge nicht so schnell annehmen und verarbeiten kann, wie sie vom SAP-System versandt werden, besteht die Notwendigkeit sie zwischenzuspeichern und nacheinander auszuführen.
Bei diesem System handelt es sich aber nicht um eine einfache Queue (Warteschlange), da die Aufträge nach einer integrierten Logik priorisiert und vorgesperrt werden müssen. Außerdem besteht die Anforderung, dass die Reihenfolge nachträglich durch einen autorisierten Anwender verändert werden kann.
Da die Daten der Queue persistent sein müssen, werden sie bei jeder Änderung auf ein physikalisches Medium geschrieben. Dabei hat Datenkonsistenz höchste Priorität. Man muss hier spezielle Fehlerfälle betrachten, z.B. den Hardware-Ausfall während eines Schreibvorgangs, und mit entsprechenden Strategien dagegen vorgehen. Nach einem Havarie-Fall kann die Middleware ihren gesamten Datenbestand wiederherstellen, sofern keine essentielle Hardware beschädigt wurde.
Der regulierende Eingriff des Anwenders geschieht durch eine grafische Oberfläche, welche die eingestellten Aufträge visualisiert. Hier können Aufträge selektiv gesperrt oder in einem definiertem Rahmen in ihrer Reihenfolge verändert werden. Um den gleichzeitigen Zugriff mehrerer Anwender zu koordinieren, darf immer nur ein Anwender gleichzeitig schreibend auf die Queue zugreifen.

Kommunikation mit SAP und der Siemens S5/S7

Die Middleware muss im laufenden Betrieb mit zwei verschiedenen Fremdsystemen kommunizieren.
Auf der einen Seite ist dies ein SAP R/3 System. Bei diesem registriert sich die Middleware mit einem "Remote Function Call". Anschließend erhält sie von SAP standardisierte IDoc-Dokumente, welche die vollständigen Informationen über einen Auftrag enthalten. Diese Informationen werden nun zwischengespeichert, damit sie an die Siemens S5/S7 weitergereicht werden können. Wurde ein Auftrag abgearbeitet, so wird von der Middleware wieder ein IDoc-Dokument generiert und an das SAP-System zurückgeschickt. Dabei gilt es unter anderem zu berücksichtigen, dass Aufträge vor ihrer Ausführung auch wieder storniert werden können, oder Fehler bei der Ausführung eines Auftrages auftreten können.
Auf der Seite der Siemens S5/S7 wird ein maschinendefiniertes Protokoll auf Basis des RFC 1006-Protokolls benutzt. Die Kommunikation findet dabei über die Netzwerkschnittstelle via TCP/IP statt. Mithilfe des Protokolls werden binäre Datenwörter in die Register der S5/S7 geschrieben, die ihr mitteilen, welche Bewegungen durchzuführen sind. Anschließend können diese Datenwörter wieder eingelesen werden um festzustellen, ob der Auftrag erfolgreich ausgeführt wurde. Diese Information wertet die Middleware aus und verarbeitet sie entsprechend weiter.

Ansprechpartner: Dr. Stefan Meuser <meuser@tedsoft.de>



© 1992 - 2010 TEDSoft GmbH ®
ImpressumDatenschutz
06.09.2010