Forum: Mikrocontroller und Digitale Elektronik µC über Ethernet mit SPS koppeln


von Matze (Gast)


Lesenswert?

Guten Morgen,

ich habe eine kleine S7-SPS vor mir liegen. Nun habe ich mir überlegt, 
ob es nicht möglich wäre, über ethernet einen µC anzuschließen, um von 
der SPS weit entfernte Steuersignale einzulesen und auszugeben. Ein LAN 
dafür wäre schon vorhanden.

Ich habe schon verschiedene Projekte mit einer Profibus-Anbindung 
gesehen, aber dafür müsste ich ja erst Leitungen ziehen. Und zudem kommt 
in der Industrie ja auch immer mehr Ethernet.

Der Controller sollte dann so ca. 8 Eingänge lesen und ca. 8 Ausgänge 
schalten können. Zudem noch 2 AD-Werte (8 oder 10 bit) einlesen können.

Kennt jemand dazu schon ein Projekt?

Danke
Matze

von oldmax (Gast)


Lesenswert?

Hi
Bei Pollin wird eine Platine angeboten, die über Ethernet angesprochen 
werden kann. Die Bestell-Nr. ist  810 073 und das Ding ist bezeichnet 
mit AVR-Net-IO. Vielleicht wär das was für dich. Es sind auch des 
öfteren Beiträge dazu hier eingestellt.
Gruß oldmax

von Jens M. (Gast)


Lesenswert?

Matze schrieb:
> ich habe eine kleine S7-SPS vor mir liegen. Nun habe ich mir überlegt,
> ob es nicht möglich wäre, über ethernet einen µC anzuschließen, um von
> der SPS weit entfernte Steuersignale einzulesen und auszugeben. Ein LAN
> dafür wäre schon vorhanden.

Der Standard hierfür nennt sich OPC-Server (Open Plc Communication). 
Wenn es für deine S7 einen gibt dann kannst du µC und SPS über diesen 
verheiraten. Es gibt auch eine Reihe von Free OPC Servern.

von Thosch (Gast)


Lesenswert?

Achtung da werden einige begriffe vermischt: Ethernet ist der 
physikalische Layer und TCP/IP bzw Profinet ist das Protokoll!

Das Problem bei einer Siemens S7 und Ethernet ist doch wie auf das 
Abbild der Ein- Ausgänge vom Zyklusprogramm aus darauf zugegriffen 
werden kann.
Siemens verwendet dafür das Protokoll Profinet und nicht TCP/IP. 
Profinet läuft auch über Ethernet hat jedoch eine eigene 
Ethernetframekennung.
Wir haben gerade eine erfolgreiche Profinetankopplung mit Hilscher NETX 
von einem Mikrokontroller aus realisiert.

Das bei Pollin angebotene E-A Board läuft mit TCP/IP. Von einem PC aus 
ist das dann sehr einfach anzusteuern. Aber von einer S7 kann ich dafür 
m.W. keinen Treiber laden oder kennt da einer einen Weg?

OPC Server gibt es m.W. nur auf Windows und ev. Linux Betriebssystemen. 
Gibt es einen OPC Server den ich auf einem Mikrocontroller bzw C Source 
laufen lassen kann?

von Jens M. (Gast)


Lesenswert?

Thosch schrieb:
> Achtung da werden einige begriffe vermischt: Ethernet ist der
> physikalische Layer und TCP/IP bzw Profinet ist das Protokoll!
> Das Problem bei einer Siemens S7 und Ethernet ist doch wie auf das
> Abbild der Ein- Ausgänge vom Zyklusprogramm aus darauf zugegriffen
> werden kann.
> Siemens verwendet dafür das Protokoll Profinet und nicht TCP/IP.
> Profinet läuft auch über Ethernet hat jedoch eine eigene
> Ethernetframekennung.

Ehrlich gesagt hab ich keine Ahnung welches Protokoll Siemens da 
verwendet.
Es funktioniert aber über OPC wenn in der Siemens Kiste eine Ethernet 
Card steckt (was ja vermutlich beim TE der Fall ist)


> Wir haben gerade eine erfolgreiche Profinetankopplung mit Hilscher NETX
> von einem Mikrokontroller aus realisiert.

Das ist vermutlich Bridging (zumin. im OSI Layer) kein Gateway wie OPC 
(das dann in der Regel Bridge heißt weil es ein Gateway ist aber geiler 
klingt ;-).

>
> Das bei Pollin angebotene E-A Board läuft mit TCP/IP. Von einem PC aus
> ist das dann sehr einfach anzusteuern. Aber von einer S7 kann ich dafür
> m.W. keinen Treiber laden oder kennt da einer einen Weg?

Ein OPC Server ist ein Server im Netz. Der hat mit den beiden Geräten 
erstmal nichts zu tun. Auf welcher Maschine der läuft ist konzeptionell 
egal und von den vorhandenen Produkten abhängig.


>
> OPC Server gibt es m.W. nur auf Windows und ev. Linux Betriebssystemen.
> Gibt es einen OPC Server den ich auf einem Mikrocontroller bzw C Source
> laufen lassen kann?

vermutlich ja, ist aber egal ... s.o.

OPC Server haben wir schon selber geschrieben (i.d.R. wenn der 
Programmierer mit dem kommerziellen Kram die Nerven verloren hat ;-). 
Ging recht flott, sollte als kein Problem sein.

von oldmax (Gast)


Lesenswert?

Hi
Ich weiß, das es Kopplungen über Ethernet von S7 zu S7 gibt und ich 
meine, nicht OPC. Aber dazu müßte ich's mir in der Firma noch mal 
anschauen. Macht man ja nicht alle Tage.... Möglicherweise ist ein 
Controller dafür auch empfänglich.
Gruß oldmax

von Oliver O. (axon)


Lesenswert?

Nun, ja, der Fred ist schon etwas älter ... aber ich bin gerade drüber 
gestolpert und möchte auch etwas dazu beitragen.

Also für die Kopplung SPS <-> MC via LAN finde ich die erste Antwort von 
oldmax als Lösung sehr gut. Ich selbst habe vor einigen Monaten eine 
S7-1212C via TCP mit einem AVR gekoppelt. Allerdings habe ich das Board 
von Ulrich Radig und als Firmware das Projekt Ethersex verwendet. Aber 
das Board von Pollin geht sicherlich auch (es gibt hier ja sogar diverse 
Anleitungen).

Zu OPC kann ich nur sagen, schlechte Idee. Außer du möchtest einen 
Rechner nebenbei laufen lassen und etwas programmieren, was .... nunja, 
muss einfach nicht sein. Es gibt zwar diverse Lösungen und auch DLLs, 
die man sich ergooglen kann, aber das ist unnötig.

Zu den unterstützten Protokollen kann ich nur sagen, schau in das 
Datenblatt der SPS. Auch eine S7 kann mehr als Profinet ... das 
Stichwort hier ist "open communication". Auch eine S7-SPS ist in der 
Lage einen Bytestream via TCP zu senden und zu empfangen. Wenn du eine 
S7 mit PN-Schnittstelle hast ist das schon mal eine gute Ausgangsbasis. 
Diese können in der Regel sogar TCP-Nachrichten unbekannter Länge 
empfangen. (Geht z.B. nicht mit jedem S7-CP)

Ich hatte das mit der S7-1212C damals wie folgt realisiert:
Board von Ulrich Radig -> ETH_M32_EX
Darauf habe ich dann eine selbst zusammengestellte Firmware mit Hilfe 
des Projektes Ethersex erstellt. Dabei habe ich die Option ECMD 
verwendet. Du hast dann eine Art Telnetserver auf dem AVR laufen. An 
diesem kannst du ganz einfach ASCII via TCP senden und auch wieder von 
diesem empfangen. Fertig ist die Kommunikation. Ok, ich habe etwas 
länger gebraucht ....

von Joachim R. (bastelbaer)


Lesenswert?

Hi, schau dir mal die LIBNODAVE an. Ist eine Biliothek um mit Linux auf 
S7 zuzugreifen. Ich habs schon mit S7 und mit einer S5 95U zum Laufen 
gebracht. Verhält sich wie ein PG und man kann z.B. auf DBs in der SPS 
zugreifen. Bei der Lib ist der Quellcode dabei. Ober der sich auf einen 
AVR portieren lässt ware zu prüfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.