thinkJDs Blog WhooHoo es blinkt!!!

2Sep/108

Warum ich Simatic verabscheue

Nachdem ich jetzt über alle Nachrichtenkanäle rausgeblasen habe, wie sehr ich Siemens hasse, ist es wohl an der Zeit zu schreiben woran das genau liegt.
Wenn ich sage, ich kann Siemens nicht leiden, bezieht sich das vor allem auf ihre SPS oder besser gesagt auf das Simatic System.

Jaja, ich könnte jetzt auch über die Überwachungstechnik, die sie für den BND bauen schreiben oder die Handys, welche am Anfang tatsächlich herausragend waren, später aber zu Elektroschrott verkommen sind. Tu ich aber nicht, ich versuche Siemens im Alltag bestmöglich zu vermeiden.
Beruflich ist das aber oft nicht so einfach ...

Vielleicht wollt ihr vorher noch wissen, was eine SPS eigentlich ist:

Das ist ein kleiner Computer, welcher hauptsächlich in der Automatisierungstechnik benutzt wird. Er erfüllt besondere Anforderungen wie große Ausfallsicherheit, lange Verfügbarkeit und ein paar Sicherheitsfeatures. Viel kann sie nicht, so eine SPS. Sie ist in etwa mit einem Mikrokontroller vergleichbar.
Sie besitzt einige digitale (oder analoge) ein und Ausgänge, welche mit Modulen erweitert werden können.
Diese kann man im Programm lesen, verarbeiten und wieder ausgeben.
Typisch für eine SPS ist die Vorgehensweise wie die Daten bearbeitet werden.
Zuerst werden alle Eingänge gelesen, dann schiebt die CPU einmal das Programm über diese Eingangsdaten. Was am Ende raus kommt, wird dann an die Ausgänge geschrieben. Das wars auch schon im Großen und Ganzen.
Natürlich gibt es noch allerlei Erweiterungsmodule wie Ethernet oder Touchscreens, diese sind meist extrem überteuert und man muss schon ein extremer Masochist sein, um die Dinger komfortabel zu finden.

Ich habe schon einige Programme, sowohl für den PC als auch für SPS oder Mikrokontroller geschrieben. Eins kann ich euch sagen, diese Siemensteile sind echt ein Krampf!

Dabei hatten sie eine so gute Idee:

Sie wollten Jedem (dummerweise wirklich Jedem) ermöglichen ein Programm zu schreiben. Die Lernkurve sollte dementsprechend flach und die Entwicklungsumgebung weitestgehend selbsterklärend sein.Das hat so weit auch ganz gut geklappt, zumindest wenn man noch nie ein Programm, in welcher Sprache auch immer, geschrieben hat.

Damit sind wir schon beim Thema, hat man schon einmal ein Programm geschrieben und seinen eigenen Stil entwickelt, kommt man schnell, ja sogar sehr schnell an einen Punkt, an dem man das Ding am Liebsten mit einem Hammer bearbeiten möchte bis es keine müdes Blinken mehr von sich gibt (oder einen Absturz ohne jeglichen Debughinweis).

In ihrem Masterplan, jedem Programmieren zu ermöglichen haben sie FUP den Funktionsplan ersonnen. Dabei hat man ähnlich wie bei Lego Mindstorms Funktionsblöcke (und, oder, nicht, Vergleicher, Zähler, Speicher usw.) die man sich in einem "Netzwerk" zusammen klickt.
Wie wir alle wissen, arbeitet ein Computer zeilenweise den Code ab, sodass man bei dieser Klickaktion einige Feinheiten beachten muss. Natürlich kommt man da nicht von selbst drauf, Siemens will schließlich teure Kurse verkaufen. Hält man sich nicht daran, verhält sich das Programm irgendwie komisch und du findest den Fehler nicht, da du nicht sehen kannst, was hinter den Kulissen passiert. Clever oder?

Macht aber nix, es gibt ja noch AWL (Anweisungsliste), eine Assembler ähnliche Sprache, mit der man sich durchaus Anfreunden kann. Leider kann man sie nicht richtig benutzen, man muss schließlich auf die Rückübersetzbarkeit in FUP achten. Dass dies Reibungslos funktioniert, muss man wieder Regeln beachten, welche mit der eigentlichen Programmlogik rein gar nichts zu tun haben. Ich könnte euch jetzt mit Beispielen langweilen, das können wir aber auch in den Kommentaren machen falls es interessiert.

Aber warum das Ganze?

  • Weil man den Leuten, anstatt ihnen zu zeigen, wie man programmiert, lieber ein paar bunte Bildchen hinlegt, sodass sie später an Grenzen stoßen, die sie mit Logik nicht mehr aus der Welt schaffen können?
  • Weil man überteuertes Zubehör für die grundlegendsten Funktionen verkaufen will?
  • Weil man sich durch besondere Innovation (Bwaaahahahahaha!!!) von den Mitbewerbern abheben will.
  • Weil man immer noch nicht gecheckt hat, dass es mehr sinn macht Fachleute auszubilden, anstatt irgendjemanden vor so ein Projekt zu setzen, um hinterher den Scherbenhaufen zusammenzukehren?

Wem nützt das?

Zum glück geht es auch anders, mit einem einfachen PC oder wenn die Features der SPS sehr wichtig sind, ein PC für Industriellen Einsatz mit einer speziellen SPS-Karte. Diese kümmert sich dann auf unterster Ebene um Sicherheitsfeatures, Laufzeitüberwachung und Ausfallsicherheit. Ihre Befehle erhält sie aber von einem Programm weiter oben in der Hirarchie.

Ich zum Beispiel habe hier einen PC mit Interbuskarte, darüber habe ich mir eine Klasse gestrickt von der alle "Ich will etwas mit dem Bus tun"-Klassen erben.
Am Bus selbst hängen Eingabe und Ausgabemodule. Die Steuerung (also die Schrittketten) selbst ist in C# geschrieben und läuft in einem extra Thread in ner Do Schleife (System.Threading.Thread.Sleep(20) nicht vergessen ;-) ). Auf meine Steuerung kann ich mit einem Formular und meiner Maus ganz einfach und ultraflexibel zugreifen.

"Kostenlos" dazu habe ich ein 17" Anzeigepanel, beliebige ein und Ausgabegeräte, Reports, Datenbankanbindung, Loging, und Fernzugriff. Ich kann Etiketten drucken, Berechnungen durchführen  und die Anlage sehr günstig erweitern.
Die Bediener der Anlage haben eine Hilfefunktion, menügeführte Fehlersuche, umfangreiche Statusinformationen, Debugmeldugen und, und, und...
Alle diese Features kosten ein paar Zeilen Code, der sich eh schon in irgendeinem anderen, früheren Projekt findet.

Bei Siemens müsste ich mich tagelang durch die wirklich unkomfortable, jämmerliche, Windows 95 Like IDE quälen.
Bausteine in UnterUnterUnterMenüs suchen und für lockere 5000€ Zubehör kaufen, um annähernd dieselbe Funktionalität zu bekommen.
Natürlich nur wenn die Software nicht gerade irgendein DRM Problem hat oder zwei Stunden lang ein 300MB Update einspielt.

Es ist mir total unverständlich, wie man auf so etwas setzen kann!

So, genug gerantet. Wie stehts mit euch? Habt ihr schon einmal mit diesem "Spitzenprodukt" gearbeitet?
Kennt ihr den unschlagbaren Vorteil, der mir in verborgen geblieben ist?
Habt ihr den Knall gehört?
Ich freue mich auf eure Kommentare.

thinkJD