# Codesys Kommunikation mit S7 herstellen



## Sawascwoolf (18 Januar 2016)

Hallo Forum,

ich möchte gerne von CodeSys aus auf die Sensorwerte der S7 zugreifen und auch Aktorwerte durch Codesys vorgeben.

Leider kann ich keine Anleitung finden, die mir erklärt wie ich hier vorgehen kann.


Zwecks meiner Diplomarbeit muss ich folgendes realisieren:

*Die bestehende Fischertechnik-Anlage soll über eine in der Cloud laufende Steuerung gesteuert werden.*


Folgende Hardware steht mir zur Verfügung (die I/O-Karten lasse ich jetzt mal weg, da diese für die Kommunikation mE unwichtig sind):
*S7-CPU315-2 
**CP343-1 IT

Die SPS ist über die CP343-1 IT mit dem Netzwerk verbunden und zusätzlich ist ein PC über Profibus (SIMATIC CP 5611) direkt mit der CPU verbunden.


Die Kommunikation zwischen zwei laufenden Codesys SoftSPS' *funktioniert bereits* problemlos, ich muss nun also eine Möglichkeit finden:
a) die Daten vom PC zur S7 und umgekehrt zu übertragen
b) falls möglich die Daten von der S7 direkt an die Cloud zu senden


Vielen Dank schonmal!


----------



## PN/DP (18 Januar 2016)

Sawascwoolf schrieb:


> a) die Daten vom PC zur S7 und umgekehrt zu übertragen


Kann die SoftSPS Profibus-DP-Master oder -Slave oder FDL?



Sawascwoolf schrieb:


> b) falls möglich die Daten von der S7 direkt an die Cloud zu senden


Definiere: was ist "die Cloud"?

Welche Verbindungen die S7-SPS kann: CPU-CPU Kommunikation mit SIMATIC Controllern

Harald


----------



## Sawascwoolf (18 Januar 2016)

Die Cloud bezieht sich auf eine weitere Soft-SPS von CodeSYS, welche auf einem Internetserver (Amazon EC2) läuft. Eine Kommunikation zu diesem PC ist nur über Netzwerk möglich.

Aktuell habe ich nur die *Simatic CP 5611* (http://w3.siemens.com/mcms/industri...anschluesse-pg-pc/cp5611/seiten/cp5611a2.aspx) als Schnittstelle zur Verfügung.

Falls ich diese Karte mit Codesys zum laufen bekomme habe ich sowohl
- Master,
- Slave als auch 
- FDL

Nach meiner bisherigen Recherche wird das mit dieser Karte leider nicht funktionieren, d.h. ich muss sowieso eine neue anschaffen und somit kann ich die Variante wählen welche mir hier empfohlen wird.


----------



## Thomas_v2.1 (18 Januar 2016)

Wenn beide SPSen am Ethernet-Netzwerk hängen, ist es dann wohl das einfachste den Datenaustausch über eine TCP-Verbindung abzuwickeln.
Dann überlegst du dir wie ein solches Telegramm aufgebaut seint soll, und stellst dann auf beiden SPS-Programmen dieses Telegramm zusammen und verschickst es an den Partner. Sinnvollerweise verwendest du dazu ein Telegramm mit fester Datensatzlänge, das macht vieles einfacher. Du musst nur beachten, dass die S7 eine andere Byte-Reihenfolge als die üblichen anderen Systeme besitzt. Bedeutet, wenn du ein int16 von der S7 an die Codesys SPS verschickst, musst du dort Hi- und Lo-Byte tauschen um auf den gleichen Wert zu kommen. Oder du tauschst es auf S7-Seite schon vor dem versenden auf die übliche Netzwerk-Byteorder, dann hast du es standardisiert.


----------



## Sawascwoolf (18 Januar 2016)

Ich habe bisher nur recht einfache Sachen programmiert, kennst du vielleicht ein Tutorial dazu?

Ich muss glücklicherweise nur Boolsche Werte übertragen, daher muss ich micht mit der Hi-Lo Problematik nicht beschäftigen.


----------



## Thomas_v2.1 (18 Januar 2016)

Hier gibt es ein Beispiel von Siemens:
https://support.industry.siemens.com/cs/ww/de/view/18843927

Bei anderen Beispielen von Siemens musst du auf die verwendete Hardware aufpassen. Denn eine S7 mit Ethernet-CP ist anders handzuhaben als eine S7 mit integrierter Profinet-Schnittstelle.


----------



## Sawascwoolf (19 Januar 2016)

Leider geht dein Link heute immer noch nicht und die Google Suche führt mich auch wieder zum gleichen Eintrag


----------



## Thomas_v2.1 (19 Januar 2016)

Was ist denn mit dem Link? Also ich habe damit keine Probleme.


----------



## Sawascwoolf (19 Januar 2016)

Mit Firefox kam folgendes:



Auf Grund deiner Bemerkung habe ich mal Edge benutzt und siehe da, es hat funktioniert


----------



## Sawascwoolf (20 Januar 2016)

Sorry für den Doppelpost, aber ich habe noch eine kleine Frage:
Ich habe nun angefangen das verlinkte Tutorial zu befolgen und das Programm einzurichten. Wie es so ist tauchten hierbei einige Fehlermeldungen auf.

Bevor ich nun anfange mich auf die Fehlersuche zu begeben habe ich eine kurze Frage:
Wenn ich dem Netzwerkmodul (CP343-IT) eine IP-Adresse zugewiesen habe reagiert es auf Ping-Anfragen von einem PC?

Meines reagiert darauf nicht.


----------



## Thomas_v2.1 (20 Januar 2016)

Sawascwoolf schrieb:


> Wenn ich dem Netzwerkmodul (CP343-IT) eine IP-Adresse zugewiesen habe reagiert es auf Ping-Anfragen von einem PC?
> 
> Meines reagiert darauf nicht.



Auf ein Ping sollte er antworten, ja. 
Hast du Subnetzmaske und ggf. Gateway eingetragen, und auch die HW-konfig übersetzt und hochgeladen?


----------



## Sawascwoolf (20 Januar 2016)

Ja ich habe schon alle mir sinnvoll erscheinenden Einstellungen für das Netzwerk Modul getestet und jeweils übersetzt und hochgeladen.

 Die Anlage ist an das Netzwerk der Universität angeschlossen. Ich werde morgen mal versuchen ein eigenes Netzwerk aufzubauen um das Uni-Netz als Fehlerquelle gänzlich auszuschließen.


----------

