Montag, Juni 26, 2017

SPS-Technik:


Früher hatte ich gerne SPSen programmiert.

Aber nachdem die "Sprachen" (die IEC wäre ja ganz gut, leider ist es nur Entwurf) und "Programmierumgebungen" gegenüber dem Rest der Welt immer rückständiger werden, macht es keinen Spaß mehr.
Ich komme aus mehren Welten: Grafik-Verarbeitung (2D/3D), "normalen" Programmiersprachen aller Art, verschiedenster Auszeichnungssprachen, Datenformate, Textanalyse per Software, RegEx usw.
Selbst Mikrocontroller sind mittlerweile einfacher und effektiver zu Programmieren wie eine SPS.

Leider muß ich nach nun fast 30 Jahren SPS-Programmierung zusammenfassen


Die meisten SPS-Programmierer sind keine "Programmierer" und "Programmierer" (Informatiker) können eine SPS nicht richtig "programmieren"

Nur jemand der in beiden Welten zuhause ist kann SPSen und die HMI dazu effektiv nutzen.
SPS-Programmierer sind, meiner Erfahrung nach, meist Elektrofachkräfte, die das "SPS-Programmieren" irgendwie mal von Leuten gelernt hatten, denen es auch nicht besser ging - so sehen die Programme, Datenhaltung und Programiertechniken dann auch aus ...
Oft kommt dabei noch die Verweigerung der Firmen und Programmierer dazu, die Programme "etwas" effektiver zu gestalten als zu S5-Zeiten.


Und was SPS-Programmierer schon gar nicht sind: GUI-Designer

Das sieht man immer wieder an diesen bedientechnischen und Design-Katatstrophen die die meisten Firmen unverständlicher Weise als "Bedienoberfläche"  deklarieren.
Fernab jeder Ergonomie oder "gewohnter" Arbeitsweisen, werden hier dem Benutzer Vorgehensweisen aufgezwungen, die fernab jeder Intuitivität sind.
Selbst das eigene Coporate-Design wird so gut wie nie berücksichtigt (höchstens mal ein Firmen-Logo).
Das dies anscheinend alles eher zweitrangig ist, sieht man auch in den Programmen zur HMI-Erstellung. Oft sind irgendwelche Grafiken mitgeliefert die im Design den Clipart-Sammlungen aus den Anfängen des WWW entsprechen. Wenn dann noch sämtliche Bedienelemente in den Editoren schon andere Verhaltensweisen und vor allem andere Bezeichnungen wie in der restlichen Programmierwelt haben, was soll man dann schon für Ergebnisse erwarten?

 

Die Hersteller haben "alles" verschlafen ...

Die Problematik in der SPS-Programmierung wird dazu noch verschärft, dass es fast keine brauchbare Programmierumgebung am Markt gibt (kennt Jemand Eine?).

Bei der ersten S7-Version dachte ich mir noch: So etwas Primitives, manche Programierumgebung unter DOS ist besser, vom Amiga ganz  zu Schweigen - aber man gewöhnt sich an alles ...

Step7 hat sich leider nicht mehr verbessert und die "neuen" sind nicht wesentlich anderst:
Entweder diese schränken den "Programmierer" so stark ein, dass es unzumutbar ist damit zu arbeiten oder die Firmen versuchen bei  ihren "hochmodernen" Programmierumgebungen alte Techniken (Räder) neu zu erfinden (gescheitertes Siemens Patent auf den Datentyp "Variant", unbrauchbare Versionsverwaltungen) so, dass eben nichts Nützliches dabei herauskommt  (viereckige Räder),
Meist ist man mit einem normalen Editor, Makros und einem Präprozessor um Welten schneller am Ziel, als mit diesen "eierlegenden Wollmilchsäuen" . Diese können zwar vieles - davon alles garantiert nicht richtig; außer Übersetzen und Übertragen in die Steuerung und das ist oft nicht immer intuitiv durchführbar.

Das Schlimmste sind dann die Umgebungen bei denen das Marketing gemeint hatte, die primitiven, rückständigen (weitab der IEC) Programmierensprachen und ihre unbrauchare HMI in eine Programmoberfläche "quetschen" zu müssen (im ungünstigsten Fall noch auf dem NET-Framework aufgebaut, damit man jede Art von Performance garantiert vergessen kann ).


Kennen Sie das?

  • Sie haben wieder 7GB (oder mehr)  für eine "Programmierumgebung" heruntergeladen und mehrer Tage lang Software installiert, damit Sie auch noch ältere Hardware betreiben können?
    Wer mehrere "Programmiergeräte" betreuen muß, kommt um eine VM fast nicht herum; alles andere ist fahrläßige und sinnlose Verschwendung von Arbeitszeit.
  • Wieder ist keine brauchbare Software für HMI dabei, die nicht mal eine Tabelle darstellen kann?
  • Keine Objektorientierung in der SPS oder der HMI?
  • Eine mangelhafte Versionsverwaltung, die als solche nicht mal nutzbar ist?
  • Für jede kleinste Programmänderung, müssen Sie immer noch mehrere MB an Programmdaten (am besten noch per Modem) übertragen, damit es der Inbetriebnehmer vor Ort wieder in Steuerung einspielen kann?
    Also keine Übertragung der reinen Projekt-Differenzen möglich.
  • Mitgelieferte (Technologie-)Funktionen die sich nicht an die eigenen Programmierrichtlinien des Herstellers halten und damit einen unsäglichen Aufwand verursachen, wenn man diese nutzen möchte.
  • Jede Firma (und deren SPS-Programmierer) erfindet Funktionen, wie z.B. Motoransteuerungen usw. immer wieder von Neuem, da es keine wirklich umfassenden, für jeden zugänglichen Funktionsbibliotheken gibt.

    Stellen Sie sich mal vor Sie müßten bei einem neuen PC-Programm erst einmal anfangen die Zeichenroutinen für die Programmoberfläche zu programmieren - das ist SPS-Programmierung im Jahr 2017.

    Den gesamtwirtschaftlichen Zeitverlust, Geldverlust und die dadurch gelangweilten Programmierer, wegen diesen Unsinn möchte ich mir nicht mal vorstellen ...
  • Kaum eine effektive Art an den eigenen Quellcode zu gelangen, ohne die Programmieroberfläche zu starten oder über viel zu komplexe API-Zugriffe etwas für diesen Zweck selbst programmieren zu müssen?
  • Der Quellcode ist wieder in einem undokumentiertem Dateiformat oder in einer Datenbank abgelegt?
  • HMI-Bilder die nicht als SVG, XML abgelegt sind, die man dann auch "extern" bearbeiten könnte, sondern undokumentierte Binärdaten?
  • Keine Möglichkeiten moderne Vektorgrafik wie SVG einzusetzen?
  • Keine in der gesamten Programmierumgebung nutzbaren Makros?
  • Keine Möglichkeit das "Programm" aus Vorlagen (Templates, oder Präprozessor) generieren zu lassen?
  • Unbrauchbare Import/Export Formate für Listen aller Art?
    Anstatt als kleinsten gemeinsamen Nenner CSV oder XML zu wählen, darf man sich mit den neuesten EXCEL-Formaten begnügen, deren Dokumentation sich über mehrer Tausend hinzieht.
    XLS wäre wenigstens noch einfach auszulesen gewesen.
  • Für mehrsprachige HMI-Bedienoberlächen nur eine rudimentäre Software, die nur komplette Sätze 1:1 übersetzt?
  • Wieder keine Möglichkeit den Quelltext, am einfachsten nur per Kommandozeile, zu kompilieren und in die Steuerung zu übertragen, ohne eine "riesige" Programmierumgebung zu öffnen?
  • Wieder keine, trotz aller Werbeversprechen, Industrie 4.0-taugliche Programmierumgebung bzw. Programmiersprache oder HMI ...
  • (Programmier)Anfängerfehler in der CPU-Firmware, die man durch einen Grundkurs in C hätte vermeiden können.
  • CPUs die durch Bedienung des (leider) integrierten Panels ihre Arbeit einstellen
  • Sporadische CPU-Abstürze durch CPU-Firmware Fehler ... und von solchen Geräten hängt nicht gerade selten die Gesundheit und das Leben von Menschen ab (auch wenn für gewisse Firmen, hier der Stillstand der Produktion ein größeres Problem darstellt - das habe ich leider schon live erlebt ...)
  • ...

Die Liste läßt sich beliebig fortsetzen ...

Nur wie kann man dieses Problem lösen?

Ist es allein mit einer Software schon getan?
Die (relativ) fortschrittlichen IEC-Sprachen auf z.B. so etwas "einfach gestricktes" wie eine der neuen Steuerungen der Firma Si***ns zu übertragen dürfte wohl aufwendig werden - lösen kann man aber alles.

Eine wirklich gute Software sollte (mindestens) all das oben genannte Probleme beseitigen und am besten kompatibel mit sämtlicher (zumindest den Marktführern) Steuerungshardware sein - am besten hinunter bis zu einem Mikrocontroller ...

Wobei die Hardware sich mechanisch auch immer auf dem Weg in Richtung "minderwertig" befindet  - nicht versuchen einen Draht abzuklemmen, sonst fällt alles auseinander ... .
Ist es also auch Zeit an eine richtige Hardware für alle zu denken, die auch nicht in so unzählige Versionen und Varianten aufgeteilt ist, dass dies die Lagermöglicheiten jeder Instandhaltsungsabteilung zunichte macht?


Welche Mittel und Resourcen braucht man um diese Probleme aus der Welt zu schaffen?
(das ist wirklich, ganz sicher eine ernsthafte Frage)

Alle Betroffenen bitte melden!

Kommentar schreiben


Sicherheitscode
Aktualisieren