# SAP R3 SPS Kopplung



## rabit (22 August 2009)

Hallo zusammen,

ich bin jemand der die S7 schulisch und in der Technikerschule gelernt hat.
Kleine Anlagen mit Analogwertverarbeitung auch schon programmiert dies ist ungefähr mein Level.

Meine frage ist wie kann man eine Sps mit SAP R3 koppeln?
Z.B. Hochregaltechnik.
Sap sagt in seiner sprache wo das Material im Lager liegt und die Sps führt aus.
Wo und in welcher Form werden Befehle von SAP abgelegt.
Gibt es Software wie Deltalogic zu diesem Problem als Übungsplattform?
Danke für die Antworten.


----------



## Question_mark (22 August 2009)

*Das geht schon ...*

Hallo,

also erstmal wirst Du nicht darum kommen, einen PC zwischen S7 und SAP als "Übersetzer" zwischen SAP und S7 einzusetzen. Darauf erstellst Du ein Programm in einer Hochsprache (zb. C++, C# oder Delphi), das die Kommunikation zwischen S7 und SAP organisiert und die naturgemäß unterschiedlichen Datenformate zwischen beiden Systemen übersetzt.



			
				rabit schrieb:
			
		

> Gibt es Software wie Deltalogic zu diesem Problem als Übungsplattform?



Da meinst Du sicher AGLink von Deltalogic. AGLink übernimmt für Deine zu erstellende Software die Kommunikation mit der S7 SPS. Und AGLink lässt sich aus vielen aktuellen Programmiersprachen (wie schon oben beschrieben) ansprechen, ist zuverlässig, professionell und gut dokumentiert. Und da spreche ich aus eigener Erfahrung. Eine vollwertige Demoversion mit geringen Einschränkungen (zb. NagScreen beim Start) kannst Du auf der Deltalogic Homepage herunterladen. Damit wäre erstmal  das Thema Kommunikation zwischen PC und SPS gelöst. 

Der nächste Schritt ist, eine geeignete Hochsprache für die Kommunikation mit SAP zu finden (dieses Problem stellt sich für AGLink nicht, da für fast alle gängigen Hochsprachen geeignet). Dafür setze ich in der Mehrheit der Projekte Embarcaderos Delphi ein. Dafür gibt es ebenfalls geeignete Bibliotheken zur Kommunikation mit SAP, diese sind allerdings nicht gerade billig ...
Wie die Anbindung an SAP für Programmiersprachen wie C++ oder C# aussieht, kann ich Dir nicht beantworten. Bisher konnte ich das alles zur Zufriedenheit in Delphi lösen, also bestand kein zwingender Grund, sich nach anderen Lösungen umzusehen.

Du wirst nicht um diese PC-Lösung herumkommen, bisher gibt es keine Möglichkeit, einen direkten Zugriff zB. über einen in der SPS integrierten FB, FC oder sonstwas eine Kommunikation mit einer Datenbank (egal ob Oracle, MS-SQL Server, IBM, SAP und Konsorten) direkt durchzuführen. 

Ein Gebiet, das bisher von den Entwicklern der SPS-Steuerungen sträflich vernachlässigt wurde und mit Sicherheit ein gutes Marketing-Argument für einen SPS-Hersteller sein könnte. Aber ganz ehrlich gesagt, die beiden Welten SPS und Datenbank sind doch zu unterschiedlich. 



			
				rabit schrieb:
			
		

> Meine frage ist wie kann man eine Sps mit SAP R3 koppeln?
> Z.B. Hochregaltechnik.



Um nochmal auf die Ausgangsfrage zurückzukommne : Ja, man kann. Wie das geht, habe ich oben beschrieben. Aber es ist nicht trivial ...

Gruß

Question_mark


----------



## rabit (22 August 2009)

Ok danke erstmal für deine Antwort.
Ich würde sagen ich muss erstmal den Quellcode oder bessergesagt die Befehle von SAP verstehen und danach c++ lernen und dann meine Sps Fähigkeiten ins rollen bringen?

Wie soll ich vorgehen?
Was genau muss ich lernen c++?
Deltalogic hilft ja in diesem Fall nicht oder dieses AG LINK auch nicht?


----------



## Question_mark (22 August 2009)

*Bis wann muss Deine Diplomarbeit denn fertig sein ???*

Hallo,



			
				rabit schrieb:
			
		

> Ich würde sagen ich muss erstmal den Quellcode oder bessergesagt die Befehle von SAP verstehen und danach c++ lernen und dann meine Sps Fähigkeiten ins rollen bringen?



Die Fähigkeiten in Bezug auf SPS sind da eher sekundär, aber sehr gute Kenntnisse in einer Hochsprache solltest Du Dir doch schon aneignen. Ob da C++ die beste Wahl ist, will ich da mal in Frage stellen.



			
				rabit schrieb:
			
		

> Deltalogic hilft ja in diesem Fall nicht oder dieses AG LINK auch nicht?



Es hilft Dir auf jeden Fall, die Kommunikation zwischen SPS und PC herzustellen. Also ohne AGLink, OPC-Server oder eine andere Kommunikationsbibliothek geht es nicht ...

Gruß

Question_mark


----------



## Blockmove (22 August 2009)

rabit schrieb:


> Hallo zusammen,
> 
> ich bin jemand der die S7 schulisch und in der Technikerschule gelernt hat.
> Kleine Anlagen mit Analogwertverarbeitung auch schon programmiert dies ist ungefähr mein Level.
> ...



Wenn ich deine Fragestellung so lese, dann würde ich einfach raten:
Lass die Finger davon!
Denn "das SAP" gibt es schon mal gar nicht. SAP ist eigentlich vergleichbar mit einer SPS:
So wie du mit einer SPS die Logik/Funktionen einer Anlage abbilden musst, machst du das mit SAP für die Geschäftslogik.
Die Implementierung sieht in jeder Firma anders aus.
Sucht euch einen Systempartner der euch eine PC-basierte Kopplung SAP<->SPS erstellt. Definiert mit ihm zusammen die SPS-Schnittstelle und kümmert euch nur um die SPS.
Glaub mir, selbst damit wirst du noch genügend zu tun haben.

Gruß
  Dieter


----------



## Lipperlandstern (22 August 2009)

Wir haben ein Kopplung von SPS zu SAP über ein Subdriver von Dematic realisiert.

LINK

Auf SAP-Seite muss eine Art Funktionsbaustein geschrieben werden und auf SPS-Seite empfängst du ein Telegramm über TCP/IP.


----------



## rabit (23 August 2009)

Hallo together.
Also wir haben zwischen Sap und der SPS auch eine Midleware (PC).
Ich wollte mich eigentlich auf meinen neuen Arbeitgeber vorbereiten und wie gesagt auf die SAP Codes vorbereiten.
Wenn das aber komplett frei deffiniert und individuell ist kann ich mich also gar nicht auf SAP vorbereiten und wen doch wie?

Gut TCP/IP in welchen Baustein werden die in der SPS empfangen?
In welcher form kommen diese Befehle an. (Beispieltext)?
Danke schon mal.


----------



## Blockmove (23 August 2009)

rabit schrieb:


> Wenn das aber komplett frei deffiniert und individuell ist kann ich mich also gar nicht auf SAP vorbereiten und wen doch wie?
> 
> Gut TCP/IP in welchen Baustein werden die in der SPS empfangen?
> In welcher form kommen diese Befehle an. (Beispieltext)?
> Danke schon mal.



Deine Fragen lassen sich nicht pauschal beantworten.
Das hängt komplett von der verwendeten PC-Lösung ab.

Generell läßt sich sagen:
Alle Konstanten sind variabel 

Schönen Sonntag


----------



## rabit (23 August 2009)

Ok also muss ich mich wirklich nur auf meine SPS konzentrieren und abwarten welche Vereinbarungen ich mit dem Datentechniker treffe?


----------



## Blockmove (23 August 2009)

rabit schrieb:


> welche Vereinbarungen ich mit dem Datentechniker treffe?



Aber lass dich nicht über den Tisch ziehen von denen 

Ich musste mal zu S5-Zeiten eine Kopplung schreiben, bei der im Prinzip eine ASCII-Datei in DBs abgelegt werden musste. Bin damals beinahe wahnsinning geworden bis die Jungs zufrieden waren. Seitdem reagiere ich irgendwie allergisch auf die IT'ler.

Gruß
  Dieter


----------



## rabit (23 August 2009)

Ja wo Du es gerade erwähnst, ASCI kann natürlich eine mögliche Ablage für mich sein.
DB´s sind doch um die momentane Position eines gerätes o.Ä im Absturzfall zu speichern oder?


----------



## Blockmove (24 August 2009)

rabit schrieb:


> DB´s sind doch um die momentane Position eines gerätes o.Ä im Absturzfall zu speichern oder?


 
Wenn diese Frage ernst gemeint war, dann tu dir selbst einen Gefallen und mach dich erst mit der Funktionsweise einer SPS vertraut.
Mit deinem jetzigen KnowHow - denke ich - ist diese Aufgabe eine Nummer zu hoch für dich.

Gruß
  Dieter


----------



## rabit (24 August 2009)

Ja wärst Du vieleicht so nett und versuchst es mir zu erklären?
Ich möchte das mal so formulieren ich habe nie den Bedarf gehabt etwas im DB zu machen habe alles mit FB´s und FC´s und VAT´s hinbekommen.
Das die DB´s Signale usw Speichern weis ich.
Kann mir jemand erklären (Grundfunktionen) was und wofür DB´s direkt beschrieben werden.


----------



## knarf (24 August 2009)

Hallo rabbit,
die Firma INAT www.inat.de hat entsprechende Produkte für Dein Problem.

Gruß Frank


----------



## automobil80 (24 August 2009)

Bei uns ist zwischen SAP und SPS-S7 auch ein Materialflussrechner dazwischen, der die SAP-Aufträge in Fahraufträge für die SPS übersetzt.


----------



## rabit (24 August 2009)

Und wie ist die genaue Programier- und Funktionsweise???


----------



## automobil80 (24 August 2009)

Das weiss ich leider selbst nicht, ich bin nur für die Instandhaltung der Fördertechnik incl. SPS-Technik zuständig. Weiss also leider nicht wie die Telegramme gewandelt werden, bzw. in welchen Sprachen dies passiert.


----------



## argv_user (24 August 2009)

knarf schrieb:


> Hallo rabbit,
> die Firma INAT www.inat.de hat entsprechende Produkte für Dein Problem.
> 
> Gruß Frank



Hallo Frank,

kannst Du da mal nähere Angaben machen? Bei INAT habe ich bisher unter dem Stichwort SAP noch nichts gefunden.

Gruß Gerald


----------



## Blockmove (24 August 2009)

rabit schrieb:


> Das die DB´s Signale usw Speichern weis ich.
> Kann mir jemand erklären (Grundfunktionen) was und wofür DB´s direkt beschrieben werden.



Globale, bausteinübergreifende Daten werden z.B. in DBs abgelegt.
Ausserdem nutzt man sie als definierte Schnittstelle zu HMI-, Scada-, Leit- und ähnlichen Systemen. Also genau für den von dir genannten Zweck.

Die Middleware schreibt dir z.B. einen Auslagerungsauftrag in einen DB-Datenbereich.
Deine SPS quittiert den Erhalt und meldet den erfolgreichen bzw. den fehlerhaften Vollzug.

Gruß
  Dieter


----------



## rabit (25 August 2009)

S U P E R!

Danke Dieter das schlüsselt bei mir viele Fragen auf.
Also könnte ich z.B bei einem "Absturz, Fehler" etc. sehen wenn ein Auftrag nicht ausgeführt wird ob ein Telegramm gesendet wurde und die SPS nicht reagiert hat oder umgekehrt (Netzwerkfehler).

Kann ich denn direkt einen PEW oder EW vom DB speisen?


----------



## knarf (25 August 2009)

Hallo Gerald,
suche einmal bei INAT nach echocollect und OPC-Router.
Das SAP Add-on für den OPC-Router kostet 3000€
Ich habe gerade bei Inat nachgesehen. Den OPC-Router mit dem SAP Add-on finde ich dort im Internet auch nicht. In dem gedruckten Katalog von Inat ist er aber abgebildet.
Am besten Du rufst dort einmal an. 0911/54427-49 Herr Mackowiak 

Gruß Frank


----------



## Blockmove (25 August 2009)

rabit schrieb:


> Kann ich denn direkt einen PEW oder EW vom DB speisen?


 
Lad dir doch mal von Siemens die Ausbildungsunterlagen herunter und arbeite sie durch.
Hier der Links dazu:
http://www.automation.siemens.com/fea/html_00/down_module.htm

S7-Kurse bei Siemens wären für dich auch sehr hilfreich!

Gruß
  Dieter


----------



## derwestermann (25 August 2009)

rabit schrieb:


> Und wie ist die genaue Programier- und Funktionsweise???


 
Sag' doch gleich, daß Du hier für lau alles gemacht haben willst.
Du hast von nix 'ne Ahnung und willst ein Projekt machen, bei dem ich nach 14 Jahren Automation und Hochsprachenkenntnissen noch gaaaanz vorsichtig wäre.
Da krieg' ich 'ne Megakrawatte!!!!!!


----------



## rabit (25 August 2009)

Von nix habe ich Ahnung bist ja ein Ferdiagnostiker und Psychologe!
Bist ja echt nett Danke!
Ich wollte nicht das projekt gemacht haben sondern nur Beispiele und Du hast auch mal klein angefangen.....


----------



## MSB (25 August 2009)

rabit schrieb:


> Ich wollte nicht das projekt gemacht haben sondern nur Beispiele und Du hast auch mal klein angefangen.....



Richtig man fängt *klein *an, und das von dem du da gerade sprichst, inklusive deiner momentan
eher als beschränkt zu bezeichnenden Kentnisse ist ein derartiges Projekt viele Nummern zu groß für dich.
Du kennst, wie du über die DB-Geschichte zugibst, offensichtlich noch nicht mal absolut essentielle Grunddinge in der Simatic-Welt,
und sprichst davon in etwas was man durchaus als "High-End" in der Automatisierungsbranche bezeichnen kann einzusteigen.

Aber wie heißts so schön:
Wer nicht hören will muss fühlen, in deinem Fall so oder so ...

P.S. Wenn dein neuer Arbeitgeber da gewisse Erfahrungen hat, dann lass dich doch einfach überraschen,
was die da in Ihrem Projekttopf schon realisiert haben, die werden dich dann ohnehin anlernen müssen.

Mfg
Manuel


----------



## rabit (25 August 2009)

Danke MSB!
WIe gesagt ich wollte mich eben so gut wie möglich vorbereiten.
Aber hast recht die müssen mich anlernen.


----------



## deltahusa (26 August 2009)

*SAP und SPS ist (nicht) einfach!*

Hi rabit (und Rest),

das Thema SAP & SPS beschäftigt die Gemüter seit vielen Jahren, ich bin im SAP Bereich tätig und habe schon oft solche Kopplungen gemacht. Es gibt ein einfaches Problem, aber keine Lösung:

Das SAP erlaubt Datenaustausch nur über das SAP-eigene RFC Protokoll. Hierfür gibts bei SAP Freeware-bilbiotheken für Windows und Linux. Leider nicht für die Laufzeitumgebung einer S7 (RMOS?), es sei denn es handelt sich um eine Soft-CPU, die auf Win oder Unix eine S7 emuliert. Die DLLs müssen dann in eine Protokoll-Logik eingebunden werden, hierbei kommen dann so Themen wie Handshake, Wiederanlauf, Wiederholungen etc ... zum tragen.

Aus Sicht der S7 werden Zustände abgefragt, die dann zur Folge haben, dass zu einem Ereignis ("Lichtschranke") ein Datenbaustein ausgelesen wird ("Palettennummer"). Mit diesen Daten wird von der CPU an die Netzwerk-Baugurppe (CP343 oder so?) eine Meldung erzeugt, die die CP dann einfach an einen fest definierten Partner im Netz sendet (IP-Adresse, Port). Der Inhalt und das Format dieser Nachricht ist frei wählbar, muss jedoch nachher im SAP wieder aufgedröselt werden. Wir nennen das hier "Protokoll", sowas gibts für Hochregallager als Standard (z.B. Siemens TIM Protokoll).

Das Partnerprogramm empfängt die Meldung und es passieren 2 Dinge:
- Das Nachrichtenformat wird umgesetzt von TCP/IP auf SAP-RFC.
- Es wird eine Logik (Geschäftsprozess) durchlaufen, z.B. HRL Einlagern.

Für diese 2 Funktionen brauchst Du eine Plattform (ausserhalb der SPS, weil die ja keinen SAP-RFC kann). Es gibt 2 grundlegende Möglichkeiten, die beide bereits weiter oben schon mal erwähnt waren:

Erstens hast Du einen Materialfluss- oder Lagerverwaltungsrechner, der sowohl die Kopplung als auch die Ablauflogik beinhaltet. In diesem Fall brauchst Du Dir um SAP keine Gedanken machen. Das Nachrichtenformat wird dann mit dem Datentechniker MFR/LVR ausgemacht.

Im Zweiten Fall setzt Du ein Gateway wie einen PC oder den Dematic Subdriver ein, der übernimmt jedoch NUR die Kopplung, die Logik ist dann im SAP programmiert. Die Dematic liefert Dir zwar die passenden SAP-Programme mit, leider ist das sicherlich nicht billig. Auf alle Fälle musst Du Dich in diesem Fall dann mit den SAP-Leuten über das Nachrichtenformat (Protokoll) einig werden. 

LG Delta


----------



## Question_mark (26 August 2009)

*SPS und SAP*

Hallo,



			
				deltahusa schrieb:
			
		

> Auf alle Fälle musst Du Dich in diesem Fall dann mit den SAP-Leuten über das Nachrichtenformat (Protokoll) einig werden.



Das ist aber jetzt kein spezielles SAP-Problem. Das Problem tritt immer auf, wenn eine SPS-Steuerung mit einer Datenbank (egal ob SAP, IBM, Oracle, MS SQL-Server etc.) kommunizieren muss.

Im Falle der Kommunikation mit SAP ist meiner Meinung nach der Dematic Subdriver schon der geeignete Protokolltreiber. Echt Sch...eteuer, aber das wohl wahrscheinlich auf Grund der Alleinstellung am Markt. 
Für andere Systeme gibt es kostengünstigere Treiber, da mehr Konkurrenz am Markt.

Gruß

Question_mark


----------



## Question_mark (26 August 2009)

*Ich bin neugierig geworden*

Hallo,



			
				deltahusa schrieb:
			
		

> der übernimmt jedoch NUR die Kopplung



Ich habe Deinen Beitrag nochmal nachgelesen und daher eine Frage. Heisst das nun in der Konsequenz, dass ich mit dem Dematic Treiber nur den Protokollrahmen abdecke und kann aus meiner Software heraus (wie bei anderen Datenbanken) keine Abfragen (wie mit SQL bei Datenbanken) gegen SAP stellen kann ? Ich habe bisher zwar mit allen möglichen Datenbanken zu tun gehabt, aber SAP ist für mich noch ein weisser Fleck auf der Landkarte.

Gruß

Question_mark


----------



## Lipperlandstern (26 August 2009)

Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...



Hallo QM.


So sieht das aus. Dematic macht "nur" so eine Art Protokollwandlung. Eine direkte Abfrage aus der Datenbank ist m.E. nicht möglich. Solltest Du da weitere Informationen benötigen kann ich Dir gerne einen Kontakt zu einem Anwender herstellen.

Grüsse

Axel


----------



## Question_mark (26 August 2009)

*SAP und SPS*

Hallo,



			
				Lipperlandstern schrieb:
			
		

> So sieht das aus. Dematic macht "nur" so eine Art Protokollwandlung. Eine direkte Abfrage aus der Datenbank ist m.E. nicht möglich.



Das ist natürlich eine Einschränkung in der Funktionalität, ob da der Preis für den Treiber noch in irgendeiner Weise gerechtfertigt ist ?



			
				Lipperlandstern schrieb:
			
		

> Solltest Du da weitere Informationen benötigen kann ich Dir gerne einen Kontakt zu einem Anwender herstellen.



Nein, mir ging es da eher um allgemeine Informationen über den Dematic Treiber und dessen Funktionalität. 
Dann sieht es bei SAP eher so aus, dass jegliche Logik wirklich nur auf der Ebene von SAP implementiert sein muss. Aber das ist natürlich für den SPS-Programmierer auch von Vorteil, einfach dem SAP Programmierer sagen wo die Daten in der SPS stehen und fertig ist .....

Ich bin bisher gewohnt, bei der Anbindung an Datenbanken die Logik auf einem PC zu halten. Die EDV stellt mir die entsprechenden Tables zur Verfügung und macht sonst nichts (Jedenfalls nicht in Bezug auf Kommunikation, was die EDV hinterher mit den Daten anstellt ist etwas anderes). Die EDV hat einen minimalen Aufwand (erspart zehntausende Euronen für die Erstellung von Stored Procedures), der SPS-Proggie (das bin ich meistens selber ) stellt nur die definierten Datenbereiche zur Verfügung und den Rest erledige ich...

Und im Zweifelsfalle bin ich immer der Schuldige und alle anderen sind raus aus der Nummer    

Naja, erstmal Danke für die Infos über die SAP-Kopplung, aber alle meine Vorurteile haben sich manifestiert.

Gruß

Question_mark


----------

