ChatGPT für SPS-Programmierung - geht das?

ChatGPT generiert lupenreinen Code in den gängigen Programmiersprachen - ganze Apps lassen sich mit Hilfe von ChatGPT und ein wenig menschlicher Hilfe erstellen. Aber wie ist es mit Industrieprogrammierung? Ist ChatGPT in der Lage Software für Maschinensteuerungen zu schreiben?

Fangen wir einfach an und finden wir mal heraus, ob ChatGPT überhaupt eine Vorstellung davon hat, was SPS-Programmierer machen:

Dieser Screenshot zeigt die Antwort von ChatGPT auf die Frage, was die Aufgaben eines SPS-Programmierers sind.

Die Antwort ist erstaunlich präzise. ChatGPT listet tatsächlich die wichtigsten Kompetenzen eines SPS-Programmierers auf und berücksichtigt technische und soziale Fähigkeiten - dafür gibt's von mir 5 Sterne!

So, dann schauen wir mal, ob ChatGPT die SPS-Programmiersprachen kennt:

Dieser Screenshot zeigt die Antwort von ChatGPT auf die Frage, was die Aufgaben eines SPS-Programmierers sind.

Und tatsächlich, die wichtigen Sprachen werden genannt und so bezeichnet und abgekürzt, wie sie in der relevanten Norm IEC 61131-3 genannt werden. Siemens hat leicht abgewandelte Abkürzungen, aber ich denke, es ist sinnvoll, wenn sich ChatGPT bei dieser allgemeinen Frage an die Norm hält. Also auch hier 5 Sterne!

Dann geht es jetzt mal an ein einfaches Programm. Vor einigen Wochen habe ich bereits FUP und KOP ausprobiert, da lieferte ChatGPT tatsächlich eine grafische Darstellung (mit ASCII-Zeichen), bei der man mit gutem Willen FUP bzw. KOP erkennen konnte. Mittlerweile funktioniert das nicht mehr. Bei Fragen nach FUP zeigt ChatGPT eine Lösung in SCL:

Dieser Screenshot zeigt, dass ChatGPT fälschlicherweise mit SCL auf eine FUP-Anfrage antwortet.

Und bei der folgenden Frage nach KOP hatte ChatGPT zunächst auch SCL gezeigt. Dann habe ich meine Frage nochmal präzisiert und leider auch wieder kein KOP, sondern stattdessen eine Handlungsliste bekommen:

Dieser Screenshot zeigt, dass ChatGPT fälschlicherweise mit einer Aktionsliste statt mit KOP antwortet.

Für grafische Programmiersprachen gibt es daher nur einen von fünf Sternen. Natürlich, ChatGPT ist eine textbasierte KI, also überfordern wir sie nicht, sondern fokussieren uns auf SCL:

Dieser Screenshot zeigt, dass ChatGPT eine Schleife in SCL ausgeben kann.

Gut, ehrlicherweise muss ich sagen, dass ich mehrere Versuche gebraucht habe, bis ChatGPT tatsächlich Code in SCL auswirft. Manchmal nutzt es SAS, eine Programmiersprache für Statistikauswertungen oder auch mal VB. Deshalb gibt es dafür erstmal nur 2 von 5 Sternen. Wenn ChatGPT aber verstanden hat, was gefordert ist, bringt es zum Beispiel folgende Lösungen. Hier mal zur Abwechslung eine Pumpensteuerung auf Englisch:

Dieser Screenshot zeigt, wie ChatGPT eine Pumpensteuerung in SCL ausgibt.

Das ist ordentlich gelöst, 5 Sterne. Jetzt schauen wir, wie SCL mit einer Sortieranlage umgeht:

Dieser Screenshot zeigt, wie ChatGPT Code in SCL für eine Sortieranlage ausgibt.

Das ist seltsam. material_type wird als INT deklariert, aber später in der IF-Abfrage wird auf WOOD geprüft. Das ist eindeutig kein Integer. Außerdem hat ChatGPT den zweiten Teil der Anweisung nicht korrekt verstanden. Das Band soll auch an Fach 2 stoppen, in dem ELSE-Zweig wird conveyor_stop aber auf TRUE gesetzt.

Fazit

ChatGPT kennt SPS-Programmiersprachen - allein das ist schon etwas überraschend. Und die KI erzeugt Code mit meistens richtiger Syntax. Um schnell mal eine Grundstruktur für einen Funktionsblock in SCL zu bekommen, insbesondere, wenn man die Syntax nicht in Perfektion beherrscht, kann es sehr hilfreich sein. Code-Snippets in SCL kann ChatGPT schon heute erstellen. Das kann Tipparbeit ersparen. Aber ungeprüft darf der Code nicht übernommen werden!

Für umfangreiche SCL-Programme oder gar eine komplette Maschinenprogrammierung kann es noch nicht verwendet werden. Das liegt vor allem daran, dass oft erst im Entwicklungsprozess die Anforderungen präzisiert werden und eine Vielzahl verschiedener Geräte verschiedener Hersteller mit unterschiedlichen Schnittstellen miteinander kommunizieren. Wer weiß, was die Zukunft bringt? Können präzise formulierte Pflichtenhefte direkt von ChatGPT in SCL-Code umgewandelt werden?

Was meinst du, wie sich ChatGPT entwickelt? Kannst du dir vorstellen, ChatGPT jetzt schon einzusetzen und wenn ja, wofür?