# SPS selberbauen mit PC?



## atlantis (5 August 2003)

Hallo zusammen:

Ich bin neu hier, und ich hoffe dass ich mit meinen Fragen überhaupt am richtigen Ort gelandet bin.

Also,
Ich möchte mir gerne eine Art SPS bauen, für den Heimbereich. Für mein Hobby benötige ich etwas mit möglichst vielen Ein-und Ausgängen. Ich benötige weiterhin ca. 8 analoge Ein-und Ausgänge. Zusätzlich bräuchte ich mindestens 4 Eingänge für Pulsgeber.

Nun die grosse Frage:

Da eine richtige SPS wie z.B eine Siemens s7 sehr teuer ist, hatte ich die Idee das ganze über meinen PC zu steuern. Nun frage ich mich:

- Ist dies überhaupt möglich?
- Wo bekomme ich die nötige Hardware (z.B Conrad)
- Kann ich all diese Karten an meinem PC anschliessen?
- Wie funktioniert das im Detail?
- Was für eine Software benötige ich da? Irgendwie muss ich dem PC ja   mitteilen können welchen Ausgang er auf einem bestimmten Modul setzen muss. (Beispiel)

- Was kostet mich das ganze?

Seit gnädig mit mir, ich bin ein absoluter Neuling auf diesem gebiet, aber ich fand die Idee recht gut und wollte diese nur mal prüfen.

Besten Dank: mauro


----------



## Zottel (5 August 2003)

Im Prinzip ist das möglich. Das ganze bezeichnet man dann als "Soft-SPS".
Bei der Hardware ist folgendes zu bedenken:
Wenn Du externe Elektrik/Elektronik anschließt, solltest Du eine Potentialtrennung vorsehen, um Deinen PC und auch Dich zu schützen.
Die einfachste Möglichkeit, etwas anzuschließen, ist über den Parallelport (Druckeranschluß). Dafür existieren eine Menge Vorschläge im Internet.
Leider ist es auf 8 - 12 I/O-Leitungen beschränkt.
Viel eleganter geht das mit einem USB-IC, weil Du dann weitere Schaltungen an denselben BUS hängen kannst. Die c't hatte dafür innerhalb der letzten 24 Monate einen Vorschlag. Siehe
http://www.heise.de.
Auch die Zeitschrift "elrad" (auch heise-Verlag) könnte ein heißer Tip sein.
Nun zur Software:
Unter Windows hast Du ein Problem. Dort laufen gewöhnlich mehrere Programme und nutzen die Rechenzeit abwechselnd. Wenn du nunn einen Motor einschaltest und ein Förderband bis zum Endschalter fährst, kann es gut sein, das der PC sich mit was anderem beschäftigt und den Endschalter überfahren läßt (Windoze meditiert vielleicht gerade über das fransenlose rendern (ausmalen) von true type fonts?).
Die Fähigkeit, auf eine Anforderung eines externen Prozesses innerhalb einer genau bestimmbaren Mindestzeit zu reagieren, heisst "Echtzeitfähigkeit". PC-Betriebssysteme können das nicht.

Unter Win 95 bis ME,2nd Edition hast Du keine Chance. Selbst teure Spezialsoftware wie BECKHOFF TwinCat (www.beckhoff.de, wenn Du dir die Sachen leisten kannst, haben die auch gute Hardware für Deinen Zwecke) läuft dort meines Wissens nach nicht gut.
Für NT und Nachfolger kann man im Prinzip Kernel-Treiber schreiben, die eine Ausführung zu bestimmten Zeiten garantieren. Möglicherweise kann man so etwas als fertige DLL finden (Preis?).  

Du kannst es mit DOS probieren.  Da kannst Du zum Beispiel dein Steuerprogramm mit jedem Timer-Interrupt (alle 55 ms) ausführen lassen. Das kommt einer SPS schon einigermaßen nahe. Probleme könnte es mit DOS-USB-Treibern geben.

Alle diese Sachen können KEINE schnellen Impulse (>10 -50Hz, kürzer 100-20 ms) verarbeiten. Wenns ein bischen schneller wird,  hat auch eine S7 Schwierigkeiten und braucht teure Spezialbaugruppen mit eigenem Prozessor.

Es gibt eine echtzeitfähige Erweiterungen des Betriebssystems LINUX (RTLinux, RTAI). Die geben in einer Demo deltamodulierte Sprache über den PC-Lautsprecher aus. Dazu müssen sie in die Größenordnung von ca.100 us Auflösung vorstossen. Früher gab es mal eine Demo im Netz, mit der Du Deinen Rechner booten konntest, ohne extra (RT)Linux zu installieren. Kann sie aber gerad nicht finden.


----------



## atlantis (6 August 2003)

Hallo Zottel,

Vielen, vielen Dank für Deine Tips und Warnungen.

Also das Netz überrascht mich immer wieder. Da gibts doch wirklich noch Leute die sich die Zeit nehmen um solche Fragen wie meine zu beantworten.

Nochmals, vielen Dank.

Zur Hardware:

Werde mich in der nächsten Zeit mal nach solchen USB Geräten umsehen.
Die Idee fand ich echt toll.

Zur Software:

Ich kann mir schon vorstellen dass ein normaler PC da nicht mit halten kann.
Du erwähnst Linux oder DOS als mögliche Basis.

Eigentlich hatte ich eh vor mir einen zweiten, vollig leeren PC zu bauen und diesen anschliessend mit der passenden Soft zu bestücken.

Ich hätte da noch eine andere Idee: Wie wäre es mit Assembler?

Eventuell wäre ja das eine geeignete Basis.

Besten Dank und hoffentlich hast Du noch etwas Zeit um meine Fragen zu beantworten.

Gruss: Mauro


----------



## Zottel (6 August 2003)

Selbstverständlich ließe sich ein PC mit einem Assemblerprogramm ohne Betriebssystem betreiben.
Aber dann must Du eben wirklich alles selbst machen:
Grafik initialisieren, falls Du was sehen willst.
Wenn deine CPU mehr leisten soll als den 8086 Befehlssatz ein bischen schneller abzuarbeiten als das Original und mehr als 1Mb Speicher zur Verfügung haben soll, protected mode initialisieren
Falls einer der folgen Punkte funktionieren soll, Interruptcontroller
initialisieren
Tastatur bedienen
USB bedienen
Serielle Schnittstelle bedienen.
Festplatte bedienen.
Am Ende hast Du ein recht grosses Programm. Wenn du keinen Mechanismus zum dynamischen Einbinden neuer Programmteile vorsiehst (schon das Laden und Ausführen einer .exe oder .com-Datei ist solch ein Mechanismus), mußt Du jedesmal alles kompilieren und den Rechner damit booten.
Wenn Du Fehler suchen willst, must Du Dir den Debugger selbst bauen, weil die vorhandenen ein Betriebssystem erwarten.
Wenn Du Beispielcode für all diese Dinge suchst, kannst Du gleich die Quellen des LINUX Kernels anschauen. Als Beispiel mögen die älteren besser(einfacher sein) (www.kernel.org).


----------



## Markus (6 August 2003)

also ich weiß ja nicht was du vorhast, aber wenn du nur ein wenig damit rumspielen willst und sowieso noch nicht allzuviel davon verstehst würde ich es am anfang mal nicht so übertreiben...

assembler? naja wers braucht...
also du solltest von vorne weg wissen was du willst, wenn du das nur so zum spass machen willst soll es ok sein, wenn du dadurch aber mehr über sps lernen willst würde ich das nicht so machen, weil eine herkömmliche pc-steuerung nicht viel mit einer sps zu hat, nicht nur von der programmiersprache her, sondern auch vom ablauf...

günstige gebrauchte sps-steuerungen bekommst du ebay

vieleicht mal vorab ein paar dinge.
was hast du damit vor? nur zum spass oder praktischen einsatz, welchen?
was kannst du den schon? programmiersprachen?

es gibt auch softwaresteurungen zb WINAC von siemens, diese laufen auf einem normalen pc, und lassen sich uasi handeln wie eine sps. brauch natürlich auch perepherie (profibus) aber das wäre villiecht noch interessant...
dafür gibts auch schönen visualisierungssysteme wie WINCC und PROTOOL. such mal mit google nach diesen sachen, villleicht ist es ja was für dich...


----------



## Anonymous (6 August 2003)

Schau doch mal unter MAT auf sourcforge.net nach. Vielleicht ist das nach deinem Geschmack.

Günter


----------



## Zottel (7 August 2003)

matPLC
http://mat.sourfecorge.net ist ein Projekt, um eine Soft-SPS als freie Software unter Linux zu erstellen.
Gegenüber einer "normalen" SPS fehlen folgende Dinge:
1. Die Echtzeitfähigkeit. LINUX hat zwar solche Reaktions- und Taskwechselzeiten, dass ein Steuerprogramm, das auf einer SPS mit Zykluszeiten um die 20ms laufen würde, auch auf matPLC laufen würde. Aber um beim Beispiel des Motors zu bleiben, der beim Erreichen des Endschalters gestoppt werden soll: Selbst wenn es 10000 mal klappt, gibt es keine Garantie und keinen theoretischen Beweis, der ausschließt, daß es beim nächsten mal versagt, weil der Rechner anderweitig beschäftigt ist.
2. Remanenter Speicher.
3. Die Möglichkeit, während der Laufzeit Code zu ändern.


----------



## Zottel (7 August 2003)

Sorry, Tippfehler:
http://mat.sourceforge.net


----------



## Anonymous (15 November 2003)

S5`en gibt`s bei ebay wirklich günstig ! einfach mal schauen

Und zum Programmieren brauchst du auch kein teueres PG


Mfg


----------



## halorenzen (4 Januar 2004)

Thinker schrieb:
			
		

> S5`en gibt`s bei ebay wirklich günstig ! einfach mal schauen
> 
> Und zum Programmieren brauchst du auch kein teueres PG
> Mfg



Hat jemand etwas davon gehört das die S5 "nachgebaut" werden soll ?
mal unabhängig von der rechtlichen Seite kann ich mir das Marktpotential
hierfür nicht so recht vorstellen...

Es soll aber wohl, u.a. für Export..., ernsthaft in Betracht gezogen worden sein !
von wem ???


----------



## sps-concept (4 Januar 2004)

*S5*

vielleicht hat ja Siemens die Rechte an der S5 an VIPA verkauft *g*  Nein aber mal im Ernst.. es gibt da viele Trittbrettfahrer. Hab da auch schon vor ca nem Jahr gehört dass ein Roboterhersteller jetzt mit ner integrierten SPS auf S5-basis auf den Markt gehen will. Solange man nur mit Bits arbeitet machts sicher kaum nen Unterschied.

MfG
André Räppel


----------



## Anonymous (14 Januar 2004)

halorenzen schrieb:

> Hat jemand etwas davon gehört das die S5 "nachgebaut" werden soll ? 
Sowas gibts.

sps-concept schrieb:

> vielleicht hat ja Siemens die Rechte an der S5 an VIPA verkauft *g* 
> Nein aber mal im Ernst.. es gibt da viele Trittbrettfahrer. ...
Das Teil ist eine Eigenentwicklung.


Gast:
hier ist ein Link auf eine S5 "kompatible" CPU (natürlich VIPA).
http://www.vipa.de/de/pro/pro_de200v20.html#300

Dies soll keine Werbung sein.


----------

