# SPS eigenhändig erlernen



## UltimaRatio (4 Oktober 2017)

Hallo,
ich absolviere seit kurzem meine 2. Ausbildung zum Mechatroniker und möchte mich zeitnah um Fortschritt bemühen um nicht am Ende einer von vielen zu sein.

Ich habe absolut keine Vorkenntnisse und möchte SPS erlenen.
Ich suche nach Literatur oder sogar schon Simulationsmöglichkeiten um einen Einstieg zu bekommen.

Vielen Dank im voraus.

Gruß Ultima


----------



## oliver.tonn (4 Oktober 2017)

Die Frage ist ja immer welche SPS? Bei Siemens kann man zwar mit PLCSIM einiges simulieren, aber die Entwicklungsumgebung kostet Geld. Ich bin was Siemens angeht eher ein Laie, aber schau mal bei MHJ, die bieten Bücher an und haben auch Programme für die Simulation. Ich selber habe S7 Bücher von Hans Berger und finde diese sehr gut, allerdings bin ich, was die Programmierung im Allgemeinen und die SPS-Programmierung im Speziellen angeht kein Einsteiger mehr.
Soll es in Richtung von Codesys und seinen Derivaten (z.B. TwinCAT) gehen gibt es bei einigen (mit leichten Einschränkungen) die Entwicklungsumgebung kostenlos. Soweit Du z.B. Codesys von 3S direkt oder TwinCAT von Beckhoff nutzt kannst Du Dir eine Soft-SPS unter Windows installieren und damit üben.


----------



## Ph3niX (4 Oktober 2017)

Wenn du wirklich keinerlei Plan bisher von der Materie hast und in Siemens TIA oder Step7 projektieren willst, dann kann ich dir auf jeden Fall das Buch "SPS Theorie und Praxis" von Europa Lehrmittel empfehlen. Hier ist alles recht detailliert beschrieben, man wird durch die einzelnen Schritte gut durchgeführt von der Hardwarekonfiguration bis zur Verarbeitung von Analogwerten und Bus-Systemen. Auf CD anbei sind Übungen, welche mittels PLCSim durchgeführt werden und eine Step7 bzw TIA Probelizenz sind ebenfalls dabei.


----------



## FelixSch (4 Oktober 2017)

[FONT=&quot]Hallo,[/FONT]
[FONT=&quot]ich würde dir vom Bildungsverlag Eins das Arbeitsheft mit interaktiver CD empfehlen, da dies speziell für die berufliche Ausbildung gedacht ist.[/FONT]
[FONT=&quot]
[/FONT]
[FONT=&quot]https://verlage.westermanngruppe.de...tisierungstechnik-mit-Hinweisen-zu-CoDeSys-V3[/FONT]
[FONT=&quot]oder[/FONT]
[FONT=&quot]https://verlage.westermanngruppe.de/bildungsverlag-eins/suche?o=relevanz&q=tia[/FONT]
[FONT=&quot]
[/FONT]
[FONT=&quot]Die CD kannst du dann updaten, den Link findest du ebenfalls auf der Verlagsseite unter BuchPlusWeb.[/FONT]


----------



## bike (4 Oktober 2017)

Braucht man vor dem Programmieren nicht Grundlagen Elektrotechnik?
Ist es inzwischen so, dass man einfach ein Handbuch auswendig lernt und dann programmieren kann?
Ich würde mich mit meinem Ausbildungsbetrieb zusammensetzen und klären wohin es dich zieht und wie dein Ausbilder so deine Qualtitäten sieht.
So bekommst du feedback und Hilfe, wenn du welche brauchst, und kommst so bestimmt weiter.


bike


----------



## UltimaRatio (4 Oktober 2017)

@oliver.tonn
Welches SPS wir in der Firma benutzen finde ich morgen mal heraus, sind die Firmen denn so unterschiedlich? Ich dachte das Programmaufbau und Grundlagen etc. etwas allgemeiner gefasst werden können.

@Ph3niX
Das Buch sieht gut aus ich schau mal rein und merke es mir vor

@ FelixSch
Ebenso

@bike
Ja das weiß ich eben nicht, wäre die Frage wieviel das denn ist, da kommt bestimmt auch noch einiges in der Schule/Betrieb, es ist jedoch wie schon erwähnt meine 2. Ausbildung und ich muss aus zeitlichen Gründen etwas aus dem Quark kommen.
Ich würde halt bevor ich ins Gespräch mit dem Betrieb gehe etwas Engagement vorweisen, wird da wohl gern gesehen.


Hoffe damit könnt ihr noch was anfangen.


----------



## Dr.MirakulixX (5 Oktober 2017)

Zu deiner Frage ob sich die Programme da sehr unterscheiden. Ja das machen Sie. Wenn du dich intensiv mit dem Program A beschäftigst und merkst es klappt dann heißt das nicht das du dann auch mit B klar kommst. 
Im grossen und ganzen gibt es da Siemens und Codesys in div. Abwandlungen. Viele verwenden Hersteller, mit Ausnahme von Siemens, verwenden eine Software die auf Codesys aufbaut oder zumindest in Grundzügen ähnlich ist. Daher ist die Frage durchaus interessant. Stell dir vor du setzt auf Pferd A lernst fleißig und nach einem Jahr merkst du das es alles vertane Zeit war (zumindest für die Ausbildung)
Als ich meine Ausbildung gemacht habe war das große S mehr oder weniger Standart. Das würde ich heute nicht mehr so unterschreiben. 
Darf ich fragen was deine erste Ausbildung war ? Oder hatte sie mit Technik nix zu tun ?


----------



## oliver.tonn (5 Oktober 2017)

Ich muss im gewissen Umfang Dr.MirakulixX widersprechen. Zwischen Siemens und Codesys basierten Steuerungen besteht ein gewaltiger Unterschied, aber bei den Codesys basierten Steuerungen ist der Unterschied bei der Software oft nicht so riesig, wobei dies bei V2 mehr gilt als bei V3. Natürlich sind gewisse Details unterschiedlich, z.B. bei der Hardwarekonfiguration oder es heißen Bibliotheken anders, aber im großen und ganzen kann man sich relativ schnell in ein neues System einarbeiten. Einzige Ausnahme bildet dabei bei der V3 Beckhoff, die mal wieder kaum ein Stein auf dem Anderen von Codesys gelassen haben und Visual Studio als Entwicklungsumgebung einsetzen, aber auch da werkelt Codesys im Hintergrund.


----------



## Ph3niX (5 Oktober 2017)

bike schrieb:


> Braucht man vor dem Programmieren nicht Grundlagen Elektrotechnik?
> Ist es inzwischen so, dass man einfach ein Handbuch auswendig lernt und dann programmieren kann?



Als Mechatroniker werden einem ja durchaus die Kenntnisse in der Elektrotechnik vermittelt, der Unterschied ist eben, dass aus zeitlichen Gründen (Quasi zwei Ausbildungsberufe [Industriemechaniker, Elektroniker] in einem) einige Themen etwas kürzer drangenommen werden. Wo du durchaus Recht hast, ist natürlich, dass der Ausbildungsbetrieb ebenso eine Rolle spielen sollte, wenn aber das Fachwissen hier nicht unbedingt in diese Richtung stärker ausgeprägt ist, bringt ihm das auch nicht viel. Auch wenn die Theorie besagt, dass der Ausbildungsbetrieb dies vom Fachwissen her gewährleisten sollte, ist die Praxis leider oftmals anders.


----------



## Boxy (5 Oktober 2017)

bike schrieb:


> Braucht man vor dem Programmieren nicht Grundlagen Elektrotechnik?
> Ist es inzwischen so, dass man einfach ein Handbuch auswendig lernt und dann programmieren kann?
> 
> bike



Jup  das denken doch die Firmen und Chefe's heute 
Kannst mal zu mir hier in die Firma (ebenfalls Namhafter Zentrenbauer ) kommen, du würdest dich wundern ...


----------



## Dr.MirakulixX (5 Oktober 2017)

@oliver das war auch auf den Unterschied zwischen Siemens und Codesys bezogen. Habe das evtl nicht ganz deutlich gemacht. Sorry


----------



## UltimaRatio (5 Oktober 2017)

Ich bin Tischlermeister und habe die Ausbildung am 1.9 begonnen, vielleicht sollte ich ja wirklich noch 1 Jahr warte?!


----------



## Cassandra (5 Oktober 2017)

Hallo Ultima,

bei freier Wahl vom Steuerungshersteller, wäre ganz klar Beckhoff meine Wahl.
Du kannst die Entwicklungsumgebung TwinCAT 3 nach kostenloser Registrierung frei runterladen.
Bereits ohne Hardware kannst du vieles testen und simulieren.
Lizenzpflichtige Zusatztools lassen sich zum ausprobieren für 7 Tage freischalten. :smile:

TwinCAT 2 wäre zum kennenlernen vielleicht noch etwas übersichtlicher, aber leider läuft die Simulation nicht mehr auf 64 Bit Systemen… :???:

LG Cassandra


----------



## Fakrae (6 Oktober 2017)

TwinCAT 2 würde ich nicht mehr machen - klar das gibt's noch in Bestandsanlagen, aber das ist mittlerweile wirklich SO alt...
Zum etwas mehr Spielen wäre (kostengünstig) auch ein Raspberry Pi mit Codesys und PIXtend eine Möglichkeit - so kommt man gut an ein paar einfache IOs (auch mal was analoges)


----------



## oliver.tonn (6 Oktober 2017)

Hallo Fakrae,
weißt Du was wir gemeinsam haben? Das wir uns beide mit unserer Einschätzung gewaltig geirrt haben. Vor ein paar Monaten gab es unter der Rubrik Werbung eine Anzeige für einen S5 Kurs. Ich schrieb daraufhin dem Anbieter, dass dies ja wohl ein Tippfehler sei und sie eigentlich S7 meinten. Die Antwort des Anbieters sowie mehrerer Forumsmitglieder haben mich aber ganz schnell eines Besseren belehrt.
Codesys V2 auf der TwinCAT V2 ja basiert hat zwar schon etliche Jahre auf dem Buckel, wird aber noch von vielen Herstellern auf aktuellen Steuerungen eingesetzt. Natürlich ist V3 die Zukunft und der TE sollte sich damit beschäftigen, soweit er auf den Codesys Zug aufspringen möchte, aber V2 völlig links liegen zu lassen ist absolut falsch, denn er wird noch eine ganze Weile seines Arbeitslebens mit Altanlagen die V2 einsetzen zu tun haben. Ich würde sogar behaupten, dass er sich, wenn er auf den Siemens Zug aufspringt, auch etwas mit Step 5 beschäftigen sollte, man weiß ja nie.


----------



## Fakrae (6 Oktober 2017)

Damit magst du grundsätzlich recht haben. Aber trotzdem: Gerade wenn ich etwas neu lerne, dann würde ich mich mit dem aktuellen System beschäftigen. Lieber anständig CodesysV3 programmieren und für die Dinge, die mit V2 nicht gehen einen anderen Weg suchen, als V2 anständig programmieren und die Neuerungen von V3 nie nutzen ("weil man das ja auch anders/wie in V2 machen kann").
Zu merken "das geht nicht" und einen anderen Weg suchen ist viel leichter als in altem Denken festzuhängen, weil man vom neuen noch nichts gehört hat/gar nicht weiß, dass es anders auch viel geschickter geht.


----------



## oliver.tonn (6 Oktober 2017)

Fakrae schrieb:


> Gerade wenn ich etwas neu lerne, dann würde ich mich mit dem aktuellen System beschäftigen. Lieber anständig CodesysV3 programmieren und für die Dinge, die mit V2 nicht gehen einen anderen Weg suchen, als V2 anständig programmieren und die Neuerungen von V3 nie nutzen ("weil man das ja auch anders/wie in V2 machen kann").


Ich stimme Dir zu, dass sich der TE primär in V3 einarbeiten sollte, nur teile ich nicht Deine Meinung, dass er sich nicht auch mit V2 beschäftigen soll/muss. Es gibt immer noch neue Steuerungen die V2 einsetzen und selbst wenn dem einmal nicht mehr so ist müssen die alten Anlagen noch auf Jahre gewartet werden und da hat dann der die besten Chancen der beides beherrscht .


Von irgendwas mit Internetzugang gesendet


----------



## weißnix_ (6 Oktober 2017)

Ich gebe jetzt auch einfach mal Senf dazu.

Ich bin der Meinung, das es vom Grundsatz her völlig Wurst ist, welchess System man als Basis nimmt, solange es grundlegend an IEC61131 angelehnt ist.
Dabei ist es gerade am Start von Vorteil nicht nur eine Simulatiionsumgebung sondern ein reales System vor sich zu haben mit echten E/A's. Da kann ein "Hello World" schon richtig spannend werden.

Entscheidend bei der SPS-Programmierung ist doch nicht das letzte Feature des jeweiligen Systems, sondern das Verständnis für das Programmiermodell. Gerade die zyklische Abarbeitung, debugging und der sich nicht selbst blockierende Code sind für mich ganz wichtige Punkte. Und das ist IMHO völlig unabhängig vom Grundsystem. Die eigentliche Fähigkeit ist es das Prinzip zu verstehen und adaptieren zu können. Wichtig ist dann natürlich die gründliche Einarbeitung in die später zur Verwendung kommenden Produktivsysteme.

All das oben gesagte spricht nach meiner bescheidenen Meinung für einen Raspi mit Codesys, den man dann sukzessive mit ein paar E/A erweitert.


----------



## Heinileini (7 Oktober 2017)

Moin weißnix_!
Mit ...


weißnix_ schrieb:


> ... der sich nicht selbst blockierende Code ...


... hast Du mich neugierig gemacht. Was meinst Du damit?
Häwenaissuiikend! Gruss, Heinileini


----------



## Heinileini (7 Oktober 2017)

bike schrieb:


> Braucht man vor dem Programmieren nicht Grundlagen Elektrotechnik?


Definitiv NEIN! Ich nehme an, dass Du mit "Grundlagen Elektrotechnik" nicht meinst, wie man einen PC einschaltet?
Wichtig ist, dass man logisch denken und insbesondere eine Aufgabe in winzige Schritte aufbröseln kann, ohne dabei den Überblick über den Sinn und Zweck des angestrebten Ziels zu verlieren.
Anwenden lässt sich das bestens in der ElektroTechnik und beim Prgrammieren und ... und ... und ...
Komischerweise werden zur Erklärung von logischen Verknüpfungen immer Beispiele aus der ElektroTechnik gewählt.
In der ElektroTechnik habe ich hingegen noch nie gesehen, dass zur Erklärung von Reihen- oder ParallelSchaltung von Kontakten auf Beispiele aus der Programmierung zurück gegriffen wird.
Und auch heute noch sind die SoftwareAbteilungen meistens den ElektroAbteilungen untergeordnet. Aber warum überhaupt?



bike schrieb:


> Ist es inzwischen so, dass man einfach ein Handbuch auswendig lernt und dann programmieren kann?


Definitiv NEIN! Auswendig lernen einerseits und andererseits verstehen bzw. anwenden können sind zwei Paar Schuhe.
Das gilt zwar gleichermaßen für ElektroTechnik und Programmieren, aber auch auf vielen Gebieten, wenn nicht sogar auf allen.


----------



## rostiger Nagel (7 Oktober 2017)

Grundsätzlich ist es für einen SPS-Programmierer förderlich wenn er ein 
gewisses Grundwissen an Elektrotechnik hat. Spätestens dann wenn er
alleine in Afrika auf der Baustelle ist und ein *Elektrisches* Signal
nicht so ankommt wie es soll. 
Nebenbei muss er auch etwas von Mechanik, Hydraulik, Pneumatik, Antriebstechnik,
Sicherheitstechnik, Physik, Mathematik, EDV und grundsätzliche Überlebenstechniken beherrschen.  

Meistens ist es das du von der Baustelle in der Firma anrufst, das der Kunde ein Verpackungsanlage
bestellt hat, aber eine Säge angekommen ist. Die zuhause im warmen Büro sitzen und das ganze 
zu verantworten haben, sagen dann immer Programier doch eben die Säge zur einer Verpackungsanlage 
um. Das kannst du heute Abend schnell im Hotel machen, komm aber bloß nicht ohne Abnahmeprotokoll
Zurück in die Firma.


----------



## Lipperlandstern (7 Oktober 2017)

Bei meinem aktuellen Projekt bist du ohne etwas Grundwissen verloren. Ein Schaltplan lesen (die Theorie) mit dem Schaltschrank abgleichen (die Praxis) und dann ins Handbuch des betreffenden Bauteils schauen wie es dann wirklich angeschlossen wird ist unabdingbar. Dazu noch Sozialkompetenz um den Schaltplanplaner diplomatisch klar zu machen das er Mist gezeichnet hat ist auch ganz wichtig.


----------



## Heinileini (7 Oktober 2017)

Absolut, rostiger Nagel!
War mal in Ungarn auf einer Baustelle und ein elektrisches Signal kam nicht so an, wie es sollte - da war ein Fehler in der Verrohrung der Hydraulik die Ursache.
Ein Anruf in der BasisStation wegen eines defekten MikroSchalters ergab: nicht mehr lieferbar und einen von den Abmessungen her passenden ErsatzTyp konnte man nicht finden.
Also - nein, nicht das Problem per SoftwareÄnderung gelöst - sondern mit SekundenKleber provisorisch behoben. Und bekanntlich ist nichts beständiger als ein Provisorium!
Ein ZulieferTeil (kleines BedienGerät) wollte nicht funkionieren - Ursache: Speicher-ICs reagierten auf negative Flanke statt auf positive (oder war's genau umgekehrt?). Abhilfe: Transistoren und Widerstände aus dem ElektronikLaden geholt und Inverter dazwischen gebastelt.
Leute, die mit ElektroTechnik zu tun haben, müssen UniversalGenies sein - daran wird sich wohl auch nichts ändern. Das ist allemal eine gute Voraussetzung für alle möglichen Tätigkeiten, sogar für's Programmieren.
Aber dennoch: man muss das Ohmsche Gesetz nicht einmal dem Namen nach kennen, um das Programmieren zu erlernen. Auch das Wissen, dass 1Nm=1Ws=1J ist, hilft nicht wirklich in jeder Situation.
GrundKenntnisse der Art, dass Kilo keine MaßEinheit für Gewicht ist und dass 1 kCal nicht annähernd 1 Kalorie ist, sondern 1000 Kalorien, halte ich für wesentlich wichtiger - sogar speziell für's Programmieren, weil es gerade beim Programmieren so wichtig ist, präzise zu formulieren. 
Selber denken und Selbermachen hilft alle Male schneller weiter, als das Warten auf maßgeschneiderte Befehle oder FunktionsBausteine - auch das Googlen nach PatentLösungen kann sehr leicht zu einer frustrierenden BeschäftigungsTherapie werden. U.s.w., u.s.w. ... , aber wem sage ich das ...
Gruss, Heinileini


----------



## weißnix_ (8 Oktober 2017)

@Heinileini
blockierender code z.B.:
in einer while-schleife auf ein Eingangsbit warten
=Zykluszeitüberschreitung

Damit haben gelegentlich multithreadende Hochsprachenprogrammierer Probleme, die mit so 'ner simplen SPS ihr Heim automatisieren wollen.


----------



## oliver.tonn (8 Oktober 2017)

Ja, mit der zyklischen Programmabarbeitung hatte ich bei meinem ersten SPS Projekt auch zu kämpfen. Ich hatte bisher lediglich relativ einfache PC Programme erstellt und wurde dann auf TwinCAT losgelassen. Habe ein Programm so wie ich es vom PC gewohnt war geschrieben, übersetzt und gestartet und RUMS, flogen mir die Zähler mit Überläufen um die Ohren. Wie, das Programm wird immer wieder gestartet? Ups!

Von irgendwas mit Internetzugang gesendet


----------

