Das S7 Protokoll (RFC 1006) dient zur Verbindung von S7 Automatisierungsgerten mit beliebigen Kommunikationspartnern. Es ermglicht den direkten Zugriff auf den S7-Benutzerspeicher ohne nderungen in der Benutzeranwendung selbst. Wie in der folgenden Abbildung dargestellt, untersttzt das S7 Protokoll (RFC 1006) eine Vielzahl verschiedener Transportmethoden: Fr die Nutzung von TCP/IP muss nur eine Kommunikationseinheit (CP) fr den Ethernet-Anschluss oder alternativ eine Onboard-Ethernet-Schnittstelle, die ISOonTCP (RFC1006) untersttzt, vorhanden sein. Treiber für die Kommunikation mit Simatic S7 über TCP/IP. Chart: Einordnung in ISO-OSI-Referenzmodell
Im Vergleich zu Simatic Fetch/Write ermglicht das S7 Protokoll (RFC 1006) die Adressierung aller internen SPS-seitigen Daten, d. h. keine Einschrnkung der Datenblcke (DB). Je nach SPS mssen nur kleine oder gar keine Konfigurationsnderungen zur Untersttzung des S7-Protokolls vorgenommen werden. Die SIMATIC S7-Serie untersttzt das Protokoll ISO-on-TCP nativ im passiven Modus, d. sie arbeitet als Server und akzeptiert Client-Verbindungen.
S7 Protokoll Aufbau X
Die Werte werden nun zyklisch erhoben und stehen im connect-Gateway für Daten-Konsumenten zur Verfügung. Foto-Strecke
Eine Siemens Simatic S7-1200 im Test-Aufbau mit Schaltern für die Eingänge. Test-Aufbau mit dem connect-Gateway links und der Siemens S7 Steuerung rechts. Ein Ausschnitt aus der Programmierung im TIA-Portal. Ein Ausschnitt aus der Programmierung im TIA-Portal. Ergebnis
Die Maschinendatenerfassung an einer Siemens Simatic Steuerung ist kein Problem mit dem connect-Gateway. Es müssen lediglich die Speicheradressen bekannt sein, um die entsprechenden Werte ermitteln zu können. Sind die Daten einmal als Datenpunkt im connect-Gateway verfügbar, können sie an beliebige Systeme weitergereicht werden. Im Übrigen ist der umgekehrte Weg auch möglich, dass heißt man kann Werte in der S7-Steuerung setzen. S7 protokoll aufbau full. So kann man etwa bestimmte Konfigurationsparameter über eine Datenbank an die Steuerung weiterreichen. Das verlinked connect-Gateway macht es möglich.
S7 Protokoll Aufbau 2
#2
mal so als gedankenanstoß:
ich würde ja einen FIFO anlegen und die werte in einen DB schreiben, der block würde dann aus
Datum - Word
Zeit - DWord
Var1 - (analog?? ) machma mal DWord... REAL
Var2 - DWord... REAL
Meldungstyp - INT also Word (oder haste mehr als 60000? ) bestehen, davon, weiß nich, wieviele brauchste denn? einen tag? macht bei 5 minütiger speicherung 288 solcher blöcke... kommt ein neuer, fällt der letzte raus... FIFO halt... S7 protokoll aufbau 2. das kannste dir dann auch auf deinem TP anzeigen lassen, die dazugehörigen Meldungstexte würd ich im TP hinterlegen... heißt dann textliste... und jetz du... Zuletzt bearbeitet: 15 April 2008
#5
Wie kann ich FIFO am einfachsten umsetzen? guckst du link von marlob... ist sein lieblingslink... meiner ist der hier
Kann man trotzdem eine Log-Datei schreiben? Ich hätte die Daten gern dauerhaft gespeichert, um sie später mal am PC auswerten und darstellen zu können. bedenke: der speicherplatz ist begrenzt
frage: was für eine steuerung? was für eine memorycard?
S7 Protokoll Aufbau Full
Darum ordnet das auf TCP aufsetzende Protokoll, d. h. der Name "on-TCP", die Pakete und Bytes, so dass die SPS wieder eine saubere Nachricht empfangen kann. Dafür markiert es die Position der Nutzdaten und enthält u. a. auch eine Endekennung (End of Telegramm EOT)
Das Protokoll erlaubt auch das Schreiben und Lesen von der S7-SPS. Es enthält ein Unterscheidungsmerkmal für verschiedene Verbindungen. Die Transportservice-Zugriffspunkte (Quelle und Ziel)! Diese TSAPs erlauben z. B. die Konfiguration einer Visualisierungsverbindung auf die S7, mittels der spezifischen TSAP-Kennung "0302". Die Kennung 03 steht dabei für die Visu-Verbindung. Die Nachfolgende 0 für das Rack und die 2 für den CPU-Steckplatz. Mit dem Protokoll wird also konfiguriert, wie es genau auf die CPU Zugreifen soll und was es tun soll. IPCOMM, Protokolle: S7 Protokoll (RFC 1006). Es gibt KEINE Möglichkeit einen Benutzer oder eine Verbindung genauer zu qualifizieren. Prinzipiell sind alle Verbindungen gleichwertig. Weiterhin ist der TCP-Port 102 standardmäßig geöffnet, um diese Verbindungen überhaupt zuzulassen.
#5
Könntes auch mal eine Blick auf unser S7-LAN oder IP-S7-LINK beides komplett kompatibel zu SIMATIC CP bzw. intergrierte Ethernetschnittstelle. Habe da einfache Beispiele in C / C++ / C# / Delphi /Excel VB, PHP etc.
Grüsse
#6
das ist also sone art Netlink -Compact? aber meine Frage ist mehr woher die Informationen über das S7-Protokoll kommen? wurde alles mittels wireshark reverse-engineered? #7
S7-LAN ist komaptibel zum S7-TCP/IP-Protkoll. Somit kann z. B. SPS Welt: Kommunikation Siemens S7-SPS mit C# und S7.Net. WinCC, OPC, unser IP-S7-LINK oder auch unser OPC-Manager oder ähnliches sofort auf eine S7, die kein TCP/IP hat zugreifen. Parallel zur VISU kann natürlich auch programmiert werden (STEP 7 oder auch TIA-Portal). Beim S7-LAN ist unser OPC-Server mit 100 Varaiablen frei dabei! Zum S7-Protokoll:
Das Protokoll ist nicht offengelegt. Ich habe das selbst entschlüsselt. Schon zu einer Zeit, wo nur MPI oder ProfiBus möglich war. Gruß aeger
#8
vielen dank für die info
ich hab aber noch mehr Fragen:
NetLink und CP-Module sprechen offensichtlich das selbe Protokoll, warum?
Ein solcher Fehler kann
dann auf dem PC angezeigt werden bzw. das PC-Programm kann in
angemessener Weise reagieren. Neu in V5:
Passwort an eine passwortgeschtzte CPU bergeben
Verfgt die CPU
ber einen Schreibschutz, d. h. der schreibende Zugriff auf die CPU
ist nur ber das Passwort mglich, so kann ab der Version 5 dieses
Passwort an die CPU bergeben werden. Dazu stellt ComDrvS7 zwei
Funktion zur Verfgung. ber die erste Funktion kann berprft
werden, ob fr einen schreibenden Zugriff ein Passwort erforderlich
ist. S7 protokoll aufbau x. Die zweite Funktion bergibt dann das Passwort an die CPU (das
korrekte Passwort muss natrlich bekannt sein) und schaltet den
Zugriff frei. Die Freischaltung gilt dann so lange, bis die
Kommunikation zur CPU wieder abgebaut wird. Lesen von DB-Daten aus unterschiedlichen DBs in einem
Funktionsaufruf
ber die beiden
Funktionen MPI_A_MixReadDBByte und MPI_A_MixReadDBWort ist es
mglich, Daten aus verschiedenen Datenbausteinen ber einen
Funktionsaufruf zu lesen. Damit kann beispielsweise aus dem DB10 das
Byte 12 und aus dem DB11 das Byte 0 gelesen werden.