S7-200 + CP243-1 - Kommunikation mit Linux-System

sashxx

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Vorweg: Ich bin SPS-Anfänger...

Ich habe noch - war für ein nie realisiertes Projekt gedacht - zwei komplette S7-200 SPS-Systeme (CPU226, CPU224, 2x CP243-1, mehrere EMs).

Ich möchte diese Teile jetzt verwenden.
Allerdings möchte ich die Steuerung der E/A nicht durch das SPS-Programm, sondern von einem Linux-System aus machen.
Die S7 soll dabei nur als "dumme" dezentrale I/O über Ethernet dienen.

Gibt es für Linux eine Möglichkeit mit der S7-200 zu kommunizieren?
Ich habe schon mal was von libnodave gehört, aber die scheint nur den PG-Modus zu unterstützen (Programm hochladen?)...

Dabei möchte ich ungefähr folgedes:

- das Linux-System fragt nicht immer im jedem Zyklus alle Eingänge ab, sondern die SPS benachrichtigt das Linux-Programm, wenn Änderungen der E vorliegen (eine gewisse Vorverarbeitung)

- Falls das Linux-System ausfällt (bzw. für eine bestimme Zeit nicht reagiert) läuft auf der SPS ein Programm, welches minimale Basisfunktionalität bietet

Der Hintergrund: Das System wird eine Licht- und Bühnensteuerung für ein kleines Theater.
Die Realisierung über ein Linux-System bringt uns mehrere Vorteile (grafisches Interface, keine Lizenz- und Softwarekosten, ich habe Erfahrung mit Linuxprogrammierung, etc.)


Meine Frage: Ist das alles so wie ich es beschrieben habe realisierbar?
Gibt es eine Kommunikationsmöglichkeit mit Linux?

Ich habe bereits kleine SPS-Programme auf der S7-200 geschrieben. Ganz neu ist die Materie also nicht. Allerdings habe ich nie eine Kommunikation mit der SPS realisiert.

Vielen Dank!

Gruss
Sascha
 
Hallo Sascha,

wird denke ich nicht ganz einfach. Alle SW für S7-200 die ich kenne läuft nur unter Windows.
OPC-Server wäre was, aber ich kenne keinen der unter Linux läuft und Daten mit S7-200 austauschen kann.

Option: mit CP243-1IT über FTP.

Allerdings die S7-200 selbst mußt du mit einem Windows-PC programmieren, da MicroWin nicht unter Linux läuft (evtl. Windows unter Linux???)

Option mit Windows:
Wenn du SW Lizenzen sparen möchtest und trozdem zwischen PC und CPU Daten übertragen möchtest, dann kannst du mit der S7-200 ASCII verwenden.
Dazu mußt du die CPU-Schnittstell in den "Freeport" stellen (Stichwort SMB30) und jetzt kannst du von einem PC Daten an die CPU übertragen bzw. die CPU kann auf den PC Daten senden.
Wenn du zB. AB0 per ASCII ändern möchtest, so empfangst du den Wert z.B. 255 und schibst den im CPU Programm von der empfangenen Adresse nach AB0.

Ist aber doch schon was aufwendiger.

Infos: Findest du auf der zweiten CD von MicroWIN oder kannst von den Siemens Supportseiten kostenlos runtersaugen.

Gruss

Helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe schon mal was von libnodave gehört, aber die scheint nur den PG-Modus zu unterstützen (Programm hochladen?)...
Für diese Aufgabe ist libnodave die richtige Wahl, denn
  • libnodave wurde ursprünglich unter und für Linux entwickelt,
  • damit kannst Du auf DBs, Merker, Eingänge, Ausgänge, usw. lesend und schreibend zugreifen,
  • es ist Open Source unter der GPL.

Damit kannst Du z.B. vom PC aus die Ein- und Ausgänge direkt ansprechen, ist aber IMHO keine empfehlenswerte Lösung.

Ich habe bereits kleine SPS-Programme auf der S7-200
geschrieben. Ganz neu ist die Materie also nicht.
In dem Fall würde ich Dir empfehlen, die Steuerungslogik in der SPS zu programmieren (d.h. die SPS steuert die Ausgänge in Abhängigkeit der Eingänge, Merker, Werte in DBs, ...), im PC die Visualisierung (grafisches Interface) zu realisieren, und aus der Visualisierung heraus nur die Vorgaben für das SPS-Programm in DB oder Merker zu schreiben. Das hat den Vorteil, das die Steuerungslogik in der SPS auch bei unterbrochener Verbindung zwischen SPS und PC weiter funktioniert, dann halt mit den zuletzt gemachten Einstellungen.

Allerdings habe ich nie eine Kommunikation mit der SPS realisiert.
Das ist mit libnodave ziemlich einfach, lad es Dir doch einfach mal bei SourceForge runter, und probier's mal aus, es sind ja einige Testprogramme gleich mit dabei.


Gruß Axel
 
Wie Lichtsteuerung / Bühnensteuerung mit S7?

Also Bühnensteuerung kann ich mir damit ja vorstellen aber die Lichtsteuerung solltest du vielleicht doch den Standard DMX-Dimmern und -Controllern überlassen, jeder Lichttechniker, der da mit arbeiten soll wird verrückt werden, wenn er nicht ein Standard-Lichtpult da stehen hat...

Wie willst du das Dimmen der Lampen eigentlich realisieren? Über Analogausgänge? Welche Dimmer nimmst du dazu?

Zu Beachten ist auch, dass gerade bei Theaterlicht, in der Software für jede Szene / Schritt verschiedene Zeiten (Überblendzeit, Standzeit, usw.) und Kurven programmierbar sind.

Wenn die Bühne professionell genutzt werden soll, dann würde ich von der S7-Steuerung für das Licht abraten. Was Bühnentechnik, wie Movintruss oder sonstiges betrifft, da kannst du S7 auf jeden Fall einsetzen.

Gruß
Marc
 
Vielen Dank fuer die vielen Antworten!

Um genauer zu sein: die SPS soll fuer Buehnensteuerung und Saallicht eingesetzt werden.
Fuer die Buehnenbeleuchtung gibts nen Lichtpult mit DMX.

Ich habe mir jetzt libnodave genauer angeschaut und konnte schon nach ein paar Minuten schon Ein- und Ausgaenge ansteuern.

Ich hatte mir das so gedacht:
Ich schreibe vom Linux-System ein Befehlswort in einen Merker.
Die SPS ueberprueft diesen Merker und liest den Befehl "z.B. Saallicht langsam runterdimmen" ein, fuehrt diese Aktion aus und schreibt z.B. den Fortschritt der Aktion in einen anderen Merker.
Dieser Merker wird vom PC ausgelesen und der Fortschritt wird z.B. grafisch dargestellt.

Ist die Denkrichtung so richtig?

Kann es dabei zu Konflikten (z.B. einer race condition) kommen, wenn z.B. der PC einen Merker beschreibt und das SPS-Programm diesen gleichzeitig auslesen will?
 
Zurück
Oben