Sonntag, 23. April 2023

 

KI2Plc

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




Fragen zum Thema:

Was macht der Byte-Code?

Im oberen Titelbild ist das main.py zu dieser Frage dargestellt. Zunächst kann man schon erkennen, dass die Fragen zum Thema Byte-Code nicht so einfach beantwortet werden kann. Zudem bin ich gerade in der Testphase mit meiner S7- 1200 und da vergehen noch einige Tage, bis ich ein Video bereitstellen kann. Dieses wird wieder einmal in meinem YouTube-Kanal und natürlich auch hier noch veröffentlicht. Also bitte noch ein wenig Geduld.

Wie aus dem Code oben zu sehen, wird mit Snap7 eine Verbindung zur SPS aufgebaut und der Programmspeicher, hier die bcr (Byte_Code_Register) gelesen. So kann das alte Programm gespeichert werden – man weiß ja nie 😊

Der FC fc_test_bit_bcr wird in den Speicher der SPS übertragen und sieht so aus:

 


Eine einfache Verknüpfung (Zeile 518) einiger Merker, dessen Ergebnis in Merker M3.0 gespeichert wird (Zuweisung). Im FUP z. B. sieht das so aus:

 

Die Zeile 518 (oben) repräsentiert also das hier gezeigte FUP-Gebilde. Der Byte-Code beträgt dazu genau 23 Bytes und wird in Zeile 29 (Titelbild) in die SPS übertragen. Also was ganz Klitzekleines. In dem Code ist ebenfalls eine Error-Behandlung enthalten und natürlich ein Bezug zum plc_monitor, wie im Titelbild in Zeile 32 zu sehen ist. Hier kann die Python-Zeile getestet werden, denn nicht jeder hat schließlich eine SPS von Siemens 😊

Das SPS-Programm Main sieht für diesen Test so aus:


Welche Geräte können genutzt werden?

Und damit kommen wir automatisch über dieses Beispiel zur Antwort: Jedes Gerät, welches eine Byte-Programmierung wie hier in der Simatic mit SCL zulässt. Im Prinzip sind das alle Geräte, welche nach DIN IEC 61131 ausgeführt sind, da die Textsprache dort zur Verfügung stehen soll. Also auch Codesys!

Oder natürlich die Geräte, welche Python beherrschen und dann allerdings nicht unbedingt den Byte-Code benötigen. Die meisten allerdings doch, da der Byte-Code in z. B. Micropython auch programmierbar wird und viele Geräte wenig Speicher besitzen und da ist der Byte-Code vorteilhaft.. Zudem alles eine Frage der Sicherheit 😊.

Das beantwortet nicht unbedingt die Fragen zufriedenstellend, aber ist wenigsten schon mal eine Erklärung dazu. Der Bytecode hat zudem den Vorteil, dass Module, wie hier im Beispiel demonstriert,   (FC, FB) geladen werden können. So kann das Gerät gezielt mit dem Downoad der Byte-Datei überarbeitet werden, ohne immer das gesamte Programm zu laden. 

Die bereits im Einsatz befindlichen Bausteine sind somit abgesichert, sodass sich der Programmier immer auf sein neues Modul konzentrieren kann.

Also bitte das Video abarten und weitere Fragen stellen. 🙋