SAPI-S7 mit Java

Spackotus

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Im Ramen einer Projektarbeit müssen eine variable Anzahl von SPS-Steuerungen mit HW-Konfigurationen und DB's bzw. FB's geladen werden, da es in diesem Fall zu aufwändig wäre alles von Hand zu machen.
Java ist in diesem (speziellen) Fall eine Vorschrift...

Nun, um das Rad nicht neu erfinden zu müssen, müsste ich wissen, ob jemand von Fällen weis, wo SAPI-S7 mit Java angesteuert wurde... Google bringt mich nicht weiter...
Vor allem interessiert mich, ob man einfach die API in Java einbinden und verwenden kann...

Gruss
Spackotus
 
Meines Wissens nach bietet SAPI-S7 keine Funktionen für das Lesen von Bausteinen aus dem Projekt und Schreiben der Bausteine in die SPS.
Alternativ kann Buddy von mhj oder unser ACCON-S7-Backup diese Aufgabe übernehmen. Die Steuerung kann dann bei uns entweder über Kommandozeilenparameter oder Befehlsdatei erfolgen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Bausteine stehen hier bereits zur Verfügung... Sie müssen geschrieben und (wie ich gerade bemerke) auch gelesen werden. Aber wenn das nicht die SAPI-S7 ist, über welche Schnittstelle greift dann SIMATIC Step7 dann auf die SPS zu?
Es wurde hier bereits schon mal gelöst einfach in Visual-Basic, deshalb gehe ich davon aus, dass es eine DLL ist, welche man einbinden muss...
 
Bausteine lesen und schreiben kann z.B. libnodave. Allerdings können diese dann nur in einem eigenen Format gespeichert werden und nicht in einem S7-Projekt. Auch können mit dieser Bibliothek keine Bausteine aus einem S7-Projekt gelesen werden. Siemens greift über eine eigene Schnittstelle auf die S7 zu.
 
Welche Schnittstelle benutzt du? Oder hast du sie selber Programmiert?

Zugriff auf S7 Projekte wird nicht benötigt, ist alles schon gegeben.
Jochen setzt auf libnodave auf. Was ist bei den S7-Projekten schon gegeben? Jochen kann keinen Baustein aus der S7 auslesen und in einem S7-Projekt speichern. Wo sollen denn die gelesenen Bausteine gespeichert werden? Und wie sollen sie wieder in die SPS gescjrieben werden?
 
die Bausteine sind sozusagen bereits aus den Projekten extrahiert (als AWL quellen und übersetzt (ist nicht meine arbeit))
die gelesenen Bausteine soll man einfach nur vergleichen können (auf gleichheit bzw ungleichheit)...
und die "aktuellen" Bausteine sollen je nach dem geschrieben werden oder eben nicht...

edit1:
ENDLICH ich hab das gefunden, was ich solange gesucht habe... xD PRODAVE die Original Siemens Bibliothek ^^

edit2:
ICH DANKE EUCH BEIDEN!!! Ohne euch wär ich noch wochenlang am suchen!!! =D

edit3:
doch nicht... trotzdem danke bisher ;)
 
Zuletzt bearbeitet:
Meines Wissens nach kann auch prodave keine kompletten Bausteine lesen und schreiben. Zitat aus der prodave-Doku: "Die Funktion bst_read_ex6 liest Bausteine in einen Puffer ein. Code-Bausteine werden komplett eingelesen (Header und Daten); bei OBs und DBs wird nur der Header gelesen." Außerdem gibt es unter prodave keine Funktionen für den Zugriff auf das S7-Projekt.
Wenn AWL-Quellen übersetzt werden, dann sind diese ja wieder in einem Projekt enthalten. Warum dann der Umweg über AWL-Quelle und dann übersetzen?
Wie soll erkannt werden, welcher Baustein der aktuelle ist? Wie soll verglichen werden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
sorry, dass ich solang gebraucht habe...

nunja, schon der zeitstempel sollte ausreichen, um rauszufinden, ob der baustein aktuell ist oder nicht... (wenn nicht: ersetzen)

aber wie man dann die bausteine effektiv in die sps laden kann muss ich noch rausfinden.

zusätzlich muss ich sagen, dass ich mich jetzt nu mit sps'n befasse und warum überhaupt übersetzte bausteine zur verfügung stehen ist mir ehrlichgesagt auch schleierhaft. das einzige war dann das tool können muss, ist dann die bausteine nehmen und in die sps laden bzw runterladen...
 
das einzige war dann das tool können muss, ist dann die bausteine nehmen und in die sps laden bzw runterladen...
Möglichkeiten dazu habe im in Post #2 erwähnt. Meines Wissens nach gibt es keine Bibliothek, die diese Aufgabe (direkt mit S7-Projekt) erledigt. mhj bietet zwar in seiner Bibliothek die Bausteine aus und in eine WLD-Datei zu schreiben, aber nicht in das Originalprojekt.
 
Ich habe hier noch was von der Kommando-Schnittstelle gelesen... hab auch nachgeforscht und KEINE ordentliche doku gefunden, bzw. ich weiss nicht ob es mit der gehen würde...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

kenn mich mit Java nicht aus, aber wenn ich Du wäre, würde ich mir die
Nutzung der XML-DA Schnittstelle des SIMATIC NET OPC Servers mit Visual Basic .NET
durchlesen.

http://support.automation.siemens.com/WW/view/de/21402169

Zumindest die Installation des Servers.
Damit hättest Du schon mal eine Schnittstelle zur S7-SPS


Des weiteren gibt bei Siemens ein Java Beispielprogramm für den Zugriff auf den OPC XML DA Server
der in der RT einer Simotion integriert ist:


http://support.automation.siemens.com/WW/view/de/27097938

Wobei ich jetzt mal sagen würde, dass es dem Client egal sein müsste, ob nun eine Simotion oder eine S7-SPS am Server hängt.
Wenn, dann muss nur der Aufruf der passenden OPC DLL im Client angepasst werden.
Wie gesagt, bin kein Java Programmierer, aber vielleicht hilft Dir das ja weiter.


Viel Glück.

Gruß
Eleu
 
Zuletzt bearbeitet von einem Moderator:
@ Eleu
beide links gehen bei mir nicht...

@ Reiner Hönle
heisst das, dass der OPC server keine option ist, oder gibt es da noch mehr möglichkeiten?
 
Zurück
Oben