Welche Hochsprache als Ergänzung?

itsdarkdownhere

Level-2
Beiträge
96
Reaktionspunkte
19
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend

Ich wollte mal eine kleine Umfrage machen, welche Hochsprache die beste Ergänzung zur SPS-Programmierung oder auch Roboterprogrammierung eurer Meinung nach ist? Mir sind die Grundlagen von C/C++ geläufig und mir macht diese Sprache auch relativ viel Spaß, vorallem da man mit ihr hardwarenah arbeiten kann. Würde es Sinn machen, sich hierdrin zu vertiefen?
Für technische Anwendungen scheint ja auch Python mittlerweile ziemlich interessant geworden zu sein.

Ich sehe, dass der Trend bei einigen Herstellern immer mehr in Richtung "NoCode-" oder Baustein-Lösungen geht, welche Hochsprachen überflüssig machen.
Bei diesem Thema fehlt es mir allerdings auch an Überblick, welche Möglichkeiten existieren.

Was meint ihr dazu? Lohnt es sich noch, fundierte Kenntnisse in einer Hochsprache zu erlangen?

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hängt sicherlich von der Art der Ergänzungen ab, die du Programmieren möchtest. Da hat häufig jedes Themengebiet andere Standard-Sprachen. Aufgrund der Entwicklung, dass HMIs immer häufiger webbasiert ausgeführt werden, würde ich sagen, dass Javascript und CSS-Kenntnisse am hilfreichsten sind.

Beim Rest hängt es wie gesagt davon ab, was du zusätzlich machen möchtest:
- Datenanalyse / KI -> Python
- Mikrocontroller -> C
- Windows-Anwendungen -> C# / .NET
- Anwendungen mit hohen Leistungsanforderungen C++/Rust
- ...

Zum Thema No-Code / Low-Code: Du hast recht, solche Tools kommen gerade an allen Ecken hervor. Ich denke aber nicht, dass No-Code/Low-Code die Hochsprachenprogrammierung verdrängen wird. Eher würde ich schätzen, dass Generative KI künftig No-Code / Low-Code Tools ersetzen wird.
 
Da viele Visualisierung in Richtung Webtechnik geht Javascript oder Type Script kein Fehler. Diese Sprache kommt am meisten generell auf der Welt zum Einsatz um Oberfläche im Browser oder artverwandten Techniken auf dem Bildschirm darzustellen. Auch im Bereich der Automatisierung.
Andere Programmiersprachen hängen dann eher von Aufgaben und vorliegen Markt betrieblichen Bedingungen ab. Eher macht es meiner Meinung nach eher sinn sich mit Konzeption der Programmierung zu befassen. Objekt Orientierung, funktionale Programmierung, Design pattern typerisierten Programmierung oder dynamischen Programmierung die einen Just in Time Compiler haben ala Javascript. Dann wird das lernen einer neuen Programmiersprache leichter weil vieles ähnlich oder identisch ist.
Und die Programmiersprache welche verwendet wird ändert sich immer mal wieder wenn man andere technische Produkte verwendet oder eventuell die Arbeit Wechsel oder die Technik weiterentwickelt.
 
Ergänzend zur SPS Programmierung fällt mir mal gar keine Sprache ein.
Ich denke es ist wichtig zu verstehen wie Scriptsprachen und OOP-Sprachen ticken, welche man dann verwendet muss zum Anwendungsfall passen.
Ich denke wer prinzipiell durcjschaut hat wie zB Java tickt, ist schnell in C# oder Rust drinnen. Zu Python ist der Weg dann auch nicht weit.
Ich hab mich über die Jahre durch QBasic, Pascal, SPS-Zeug, VB6, C, Java, Matlab, Sh usw durchgeackert. Wirklich gut bin ich abgesehen von C und den SPS Sprachen nirgends, aber bestehenden Code lesen und grob verstehen was abgeht ist immer nur eine Geduldsfrage.
JavaScript ist im WinCC Unified Umfeld sicher eine gute Idee. Für kleine Hilfsapplikationen ist C# keine schlechte Wahl.

Es hängt schlicht davon ab was du tun willst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für eure Antworten!
Ich denke mich weiter in C++ zu vertiefen, auch um meine Projekte mit Microcontrollern effizienter zu machen. Auch hinsichtlich des Wissens in OOP.

Die Idee mit JavaScript und TypeScript ist gut. Dadurch das WinCC Unified browserbasiert ist, kann man hier bestimmt viel Nutzen daraus ziehen.
 
C++, C#, VisualBasic, dass kann nie schaden. Je nachdem was du für Automatisierungslösungen machen willst, ändert sich auch die Programmiersprache. Im Automatisierungsbereich ist immer noch sehr viel an Pascal/Delphi im Einsatz. Programmierer dafür werden auch recht gut bezahlt. Statt mit Delphi/Embarcadero direct würde ich zu Lazarus/Freepascal tendieren - in weiten Teilen Delphi kompatibel, OpenSource und Corss-Platform. (Ein Opensource SCADA Projekt in Lazarus: PascalSCADA. Das ist ein Projekt aus Brasilien)

Wenn es darum geht eine Programmiersprache auszuprobieren, die extrem nah an SCL ist - inclusive der multiplen OUT Variablen, dann mal
Oberon/Object Pascal (BlackBox Framework)! Leider ist das für den operativen Einsatz im Moment nicht so geeignet. Das wäre aber modernisiert genau das was man im Automatisierungsumfeld benötigen würde.

Wenn man kleine Tools schreiben möchte, die auf den Maschinenrechnern laufen, dann benötigt man eine Sprache/Entwicklungsumgebung, die möglichst nicht auf jedem Anlagenrechner eine Lizens benötigt, keine Gigabytes an Downloads erfordert und noch 1000 Bibliotheken aussenrum. Eine Sprache, die relativ einfach ist, so dass sie grundsätzlich von SPS-Programmierern verstanden wird. Da wird die Luft dann dünn!

C++, C#, Java, Phyton ... fällt da raus. VisualBasic (Net) wäre eine Option. VB-Script bzw. VBA sollte man in den Grundlagen als Programmierer auch für SPS beherrschen. Pascal geht auch gut, da das noch relativ nahe an SCL ist. Bei Lazarus/FreePascal hat ma als "Anfänger" immer das Problem, die IDE für sich korrekt mit den zusätzlichen Paketen einzurichten. Lazarus verlangt einem dann doch auch wie Delphi einiges an Erfahrung ab.

Mein Favorit im Moment ist PureBasic, das hat die ganzen Erfahrungsprobleme mit der Einrichtung nicht.
(normalerweise installieren und läuft. Code schreiben oder aus Forum kopieren auf RUN klicken und testen. Das ist sehr nahe am VB6 feeling. VB6 ist heute noch in Automatisierungslösungen im Einsatz, da es bei "alten" Projekten oft als Frontend verwendet wurde.)

PureBasic
- Kleine und mächtige IDE
- Livetime Lizens für 79.-€; gute Lizensbedingungen
- Cross Plattform x32/x64 (Windows, Linux, MacOs (x86, ARM), Raspi)
- Basic Syntax (für Basic Syntax relativ nahe an C)
- man braucht so gut wie keine Bibliotheken aussen rum (2D/3D drawing integriert, directer OpenGL Zugriff, Ogre Physik Engine, http, ftp und Netzwerkbefehle und ... integriert)
- 2 Compiler Backends: kompilierung direkt in Assembler oder über C-Backend (dauert etwas länger in der Kompilierung). Direkt in den Kompileroptionen der IDE einstellbar.
- Im PB Forum sind überwiegend Profis unterwegs und man bekommt sehr schnell kompetente Hilfe
 
@Maagic7
Ich denk mal deine 2 Lieblingssprachen Lazarus und PureBasic werden hier die wenigsten auf dem Schirm haben.
Aber die beiden sind Sprachen zum richtig Geld verdienen im Retrofit-Bereich 😄
Viele der uralten VB- und Delphi-Programme lassen sich damit relativ einfach auf den heutigen Stand bringen.
Dazu sind beide auch auch noch Multiplattformfähig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denk mal deine 2 Lieblingssprachen Lazarus und PureBasic werden hier die wenigsten auf dem Schirm haben.
Ja, genauso sehe ich es auch. Deshalb erwähne ich sie auch, da sie gewisse Vorteile bieten! Auch bei all der Kritik und Probleme die ich mit diesen Systemen habee, sind die Probleme zumindest für mich geringer als z.B. bei Visual Studio.

Wir haben früher viel mit VB5/VB6 gemacht. Damals war die Entscheidung zwischen Delphi und VB. Wäre die Entscheidung damals auf Delphi gefallen hätte ich Heute weit weniger Probleme mit den alten Programmen, die immer noch laufen. Wohl noch mindestens bis Mitte der 30er Jahre!

Das ganze Web Datenbankzeug, dass meine Kollegen eingeführt haben, war eine gute Idee, da ja WEB auf dauer kompatibel bleibt (sah ich übrigens damals genau so)!

Heute bereits alles um die Ohren gefolgen, nix mehr kompatibel und praktisch nicht updatebar. Läuft alles nur unter XP und da kommt man nicht mehr raus. Bibliotheken alle veraltet. Bei Update der Bibliotheken muss man komplett den Code updaten was einer Neuentwicklung gleich kommt.

Ähnliches stelle ich mittlerweile bei den ersten VB-Net Programmen fest. Auf einem aktuellen VisualStudio bring ich das nicht mehr zu laufen.
Dazu muss ich aber auch sagen, dass ich auf einem aktuellen VisualStudio nicht mehr fit bin.
 
@Maagic7

Da kann ich dir zu 100% zustimmen.
Ein Kollege sollte vor ein paar Jahren ein VB-Programm hochrüsten um ein weiteres Datenbankfeld einzufügen.
Keine Chance.

Das Thema Versionen und Abhängigkeiten hast du heute nahezu überall. Egal welche Programmiersprache, egal ob Desktop- oder Web-Applikation. Da sind wir SPSler eigentlich noch gut bedient mit den paar TIA- oder Codesys-Versionen.

Eigentlich kann man @itsdarkdownhere zusätzlich den Tipp geben, dass neben der Programmiersprache (egal welcher) auch deren "Erhaltung und Pflege" ein ganz wichtiger Punkt ist. Bei Anlagen- und Maschinenlaufzeiten von teilweise bis zu 30 Jahren sollte man das im Blick haben.
 
Eigentlich kann man @itsdarkdownhere zusätzlich den Tipp geben, dass neben der Programmiersprache (egal welcher) auch deren "Erhaltung und Pflege" ein ganz wichtiger Punkt ist. Bei Anlagen- und Maschinenlaufzeiten von teilweise bis zu 30 Jahren sollte man das im Blick haben.
Danke das sind sehr gute Tipps von euch.
Ich kenne einen Embedded Entwickler der alten Schule, er hat mir auch vorgeschlagen mich mit den älteren Sprachen (C, Pascal, Forth) und deren Kompatibilität zu befassen.
Vor allem in Richtung Instandhaltung und Retrofit wird das, wie Ihr schon sagt, in Zukunft noch interessant werden.

Das ganze was mich gedanklich momentan blockiert ist die Entwicklung von KI und die Beschäftigung mit der Frage wohin sich das in Zukunft entwickeln wird.
Ich würde gerne tiefer in die Progammierung von Systemen einsteigen, als Ergänzung zur SPS und dem Steuerungsentwurf. Allerdings habe ich das Gefühl, dass die KI nicht nur Hilfsmittel bleiben wird, sondern Teile in diesem Feld übernimmt.

Da ich (noch) zur jüngeren Sorte gehöre, will ich mich natürlich auch in eine Richtung weiterbilden, welche in Zukunft auch noch gefragt sein wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde gerne tiefer in die Progammierung von Systemen einsteigen, als Ergänzung zur SPS und dem Steuerungsentwurf. Allerdings habe ich das Gefühl, dass die KI nicht nur Hilfsmittel bleiben wird, sondern Teile in diesem Feld übernimmt.
Wenn du dich mit KI und Programmierung beschäftigen willst, dann ist aktuell Phython eine gute Wahl.
Python ist auch sonst eine Empfehlung. Da Python zur Strukturierung nur Einrückungen verwendet, erzieht es den Programmierer sauberen Code zu schreiben :).
Und da ja IIoT, Cloud und KI immer mehr "zusammen wächst", ist Javascript in Verbindung mit Node.JS meine zweite Empfehlung an dich.
Ich hab keine Ahnung wer auf die - in meinen Augen - bescheuerte Idee kam Javascript für Automatisierung zu verwenden, aber nun ist es nun mal so und du wirst damit leben müssen. Da Javascript nicht typbasiert ist und zudem auch synchrone und asynchrone Bearbeitung hat, sind die Minen und Stolpersteine vorprogrammiert. Aber dadurch lernt man :)
Damit du ne praktische Verwendung von Javascript hast, kannst du mal mit ioBroker "spielen". ioBroker ist ne Smarthome-Software und verwendet für Scripte eben Javascript.
 
JavaScript wird ja auch in WinCC Unified verwendet. Das habe ich mal für die Dynamisierung eines Objekts benötigt.

Also würde ich mir folgende Sprachen vornehmen:
  • JavaScript
  • PureBasic
  • C/C++
Bei JavaScript und C/C++ fallen mir einige Anwendungsmöglichkeiten ein (Mikrocontroller, Unified, Web).

Aber was ist bei euch z.B. in Delphi, VBA oder VBScript umgesetzt? Ich habe bis jetzt noch nichts in dem Bereich (bewusst) gesehen? Oder anders gefragt, für welche Anwendungen werden/wurden diese Sprachen in Automatisierungsprojekten genutzt?
 
VBS wird z.B. bei den bisherigen Panels (vor Unified) verwendet.

In Delphi wurden früher viele PC-Anwendungen in der Automatisierungstechnik erstellt.
Prüfstände, Materialflussrechner, Visualisierungen, usw.
Delphi (Object Pascal) hatte eine weitere Verbreitung in der Branche als Microsoft.
Wurde dann aber durch ein unfähiges Management, div. Firmenverkäufe usw. im Prinzip zu Grunde gerichtet.
 
Mit dem Transferwissen hast du Recht.
Die grundlegenden Sprachelemente sind ähnlich.

Du kannst das Erlernen einer Sprache damals nicht mit den heutigen Möglichkeiten vergleichen.
Damals war Literatur angesagt. Heute Online.
Für mich war es am einfachsten, wenn ich mir eine Aufgabe ausgesucht habe, die ich auch irgendeinen Bezug zur Automatisierung hatte.
Da Smarthome ein Hobby von mir ist, war das dann natürlich recht praktisch zum "Spielen".
 
Was denkt Ihr bspw. zu solchen Angeboten, um die Grundlagen zu erlernen?

Ich denke ein Kurs hat den Vorteil, dass man das aufeinander aufbauend in einer gewissen Struktur lernt.
Da ich das aber auch in meinem beruflichen Alltag nutze, möchte ich auch gerne am Ende etwas schriftliches, dass ich meinem AG vorlegen kann.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich habe mir PureBasic nun angeschaut und das scheint echt gut zu sein.
Gerade wenn ich überlege, viele der alten Systeme auf denen noch XP oder älter läuft, mit wenig Hardwareressourcen, könnten dafür in Betracht kommen.

Könnte man damit praktisch auf einem alten IPC eine "neue" Visualisierung für ein bestehendes S7-300 Projekt erstellen?
 
Zuletzt bearbeitet:
Mein Favorit im Moment ist PureBasic, das hat die ganzen Erfahrungsprobleme mit der Einrichtung nicht.
(normalerweise installieren und läuft. Code schreiben oder aus Forum kopieren auf RUN klicken und testen. Das ist sehr nahe am VB6 feeling. VB6 ist heute noch in Automatisierungslösungen im Einsatz, da es bei "alten" Projekten oft als Frontend verwendet wuwurde.
Vielen Dank für diesen Tipp. Ich hab grade genau sowas am Tisch liegen - nicht aufwändig aber in VB6 entwickelt - geschrieben für Windows NT4.
Prtiert auf 2000 und später auf Windows 7. Der PC kommt jetzt ans Ende und das Migrieren auf Windows 10/11 schiebe ich seit Monaten vor mir her.

Wollte es eigentlich in C# neu machen (lassen). Inwieweit lassen such VB6 Elemente da migrieren? Code sollte kein Problem sein. Wie siehrs mit GUI aus?
 
Ich habe die Erfahrung gemacht, dass ich dann immer wieder andere Sprachen gebraucht habe als ich sozusagen auf Verdacht gelernt hatte. Aber mit einigermaßen guten Grundlagen aus Pascal und C mich dann immer recht schnell zurecht gefunden habe. Der größte gedankliche Sprung ist für mich dann immer auf OOP oder das was die Hersteller dafür halten, gewesen.

Wichtig ist so denken zu können dass man es in einer Programmiersprache einem Computer, eine SPS ist ja auch nur ein spezieller Computer, beibringen kann. Von daher halte ich wenig von möglichst viel Sprachen kennen. Sondern mehr davon am Beispiel einer Sprache tiefer in Programmierkonzepte, Algorithmen, etc. einzusteigen. Wie die dann jeweils kodiert werden ist erstmal egal. Oder mitunter auch gar nicht mehr der eigene Job.
 
Zurück
Oben