Samstag, 20. Mai 2023

 

KI2Plc

Die Möglichkeiten einer SPS-Programmierung, um diese am Geschehen der künstlichen Intelligenz zu beteiligen





 

Zum Thema Byte-Code

Das mit dem Byte-Code scheint für Python-Programmierer sehr interessant zu sein. Aufgrund der Nachfrage das hier nachfolgende Beispiel.  Mittlerweile hat sich auch ein Hardware-Hersteller bei mir gemeldet. Erstaunlicherweise handelt es sich hier um eine Save-SPS (EN 61511-1). 

Python wird hier, was SIL betrifft, am höchsten eingestuft und somit C/C++ verdrängt. Das soll sich besonders auf den Störfall beziehen.

Ich hatte mit dem Thema Save-SPS schon einiges zu tun und bin ehrlich gesagt nicht überrascht. Dazu aber mehr, wenn der Teil Machine-Learning (siehe Bild oben, rechter Radio-Button) fertig ist, denn hier wird der SPS-Code automatisch erzeugt und der Byte-Code dazu zur Übertragung in eine Hardware generiert.

Falls es noch einen PLC-Hersteller der neuen Generation mit Interesse zum Thema Ki2Plc gibt, bitte melden.

Nun ist der byte-code-Generator für den Teil-1 endlich fertig und getestet und ich habe mich aufgrund der vielen Nachfragen entschieden, den Teil-2 ebenfalls fertig zu stellen, bevor es mit den Videos los gehen kann.

Somit wären alle Funktionen für beide Teile getestet und zudem weitere Python-PLC-Anweisungen fertig gestellt, welche nicht zum Thema IEC 61131-3 gehören, aber über den Byte-Code in der Hardware angewendet werden können.

So kommen wir schließlich über die hier integrierte SPS und dem Simulator zur KI2Plc, denn das ist ja schliesslich unser eigentliches Thema.



Der Byte-Code, kann in der PLC-Sim genauso wie der Python-Code getestet werden, wie im Bild oben zu sehen ist. Links der Python-Code mit allen gültigen Python-Anweisungen und rechts der Byte-Code mit den SPS-spezifischen Anwendungen.

Der Byte-Code wurde hier mit 83 Bytes aus der Funktion def fc_lc1: übersetzt und kann nun getestet werden. Das Ergebnis sollte wie bei dem Radio-Button pyPlc zu sehen, identisch sein.

Die Zeilen 193 bis 201 sind im Byte-Code nicht zu finden und werden demnach auch für die PLC nicht sichtbar.

Damit entfällt alles, was im regulären Python so noch programmiert wurde im Byte-Code für die KI2Plc.

Das macht die Sache sicherer, denn die Gepflogenheiten, ich darf das mal so nennen, der Python-Programmierung entfallen nun und können deshalb so z. B. in der Simatic S7-1200 angewendet werden.

Mittlerweile gibt es den Byte-Code auch auf dem Pico 😊, allerdings noch nicht genügend getestet, da auch hier noch einige Lektionen fehlen. Es folgt auch ein weiteres Beispiel auf einem Raspberry mit zusätzlicher Hardware-Erweiterung. Auch dazu Hersteller bitte melden, falls Interesse besteht.

Nun, ich hoffe das mit dem Byte-Code ein wenig gelichtet zu haben. Beim, nächsten Beitrag sehen wir auch die Merker-Worte und Real-Anwendungen für den analogen Teil der SPS zum Teil-2😊

🙋