Samstag, 26. November 2022

  Copyright ©  Dipl.-Ing. Johannes Hofer 2022                                           

Die KI-SPS

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


Machine-Learning für Prozesskrane TIA-V16

Teil - 5




Hier der 5. Teil zum Thema KI und Deep-Learning. Mein laufendes Projekt beschäftigt mich derzeit, so dass ich wenig Zeit habe zu diesem Thema etwas zu berichten. Das Positionieren mit Lernkurven wird derzeit bei einer Krananlage (Modernisierung) umgesetzt und zeigt richtig gute Ergebnisse. Mehr dazu später, wenn's die Zeit erlaubt ...

Danke für das Verständnis!


Mein KI-Berater und Automatisierer:

https://kran-automation.marcel-rosiak.de/






Mittwoch, 19. Oktober 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022                                           

Die KI-SPS

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


Machine-Learning für Prozesskrane TIA-V16

Teil-3





Zu den Fragen auf meinem Blog und meine Antworten:

Ich verstehe nicht das Problem mit dem Bildwechsel?
Der Bildwechsel muss über einen Skript erfolgen, damit das Request-Bit auf dem neuen Bild berücksichtigt wird. Deswegen wird das Request-Bit vor dem Bildwechsel invertiert. Dazu mehr im Teil-4
Wie funktioniert der Balken im Button?
Kann der Bar Graph horizontal gezeigt werden?
Wie sieht der Script für den Bildwechsel aus?
Dazu werde ich im Teil-4 ein gesondertes Video machen.


Montag, 10. Oktober 2022

  Copyright ©  Dipl.-Ing. Johannes Hofer 2022                                           

Die KI-SPS

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


Machine-Learning für Prozesskrane TIA-V16

Teil-2




Jetzt in YouTube. Man kann nicht alles in einem Video erklären, aber so einen Überblick kann man schon bekommen - denke ich.

Zu den Fragen auf meinem Blog und meine Antworten:

Wie sieht der automatische Ablauf aus?
Zuerst kommen die automatisch gelernten Muster (LM), danach folgt die Standard-Automatik wenn keine Treffer zu den Muster existieren. Zuletzt werden die Handbefehle abgearbeitet. Alles befindet sich im Auftrags-Stack und kann auch beliebig gewichtet werden. 
Wieviel Tags hat das gezeigte TIA-Projekt im Video?
So ca. 485 soweit ich jetzt noch in Erinnerung habe. Das zeige ich auch im dritten Teil, falls genügend Anfragen kommen
Kann man den Source kaufen?
Nur über eine Einweisung (Seminar). Sonst macht das ja keinen Sinn.
Kann der Anwender die Machine-Learning abschalten?
Es gibt derzeit drei Gruppen: Handbefehle, Automatik und Machine-Learning. Jede Gruppe kann aktiviert oder deaktiviert werden.
Ist eine Projektunterstützung möglich?
Bitte anfragen. Grundsätzlich ja, falls freie Mitarbeiter vorhanden sind. 
Wie funktioniert der Balken im Button?
Dazu werde ich im Teil-4 ein gesondertes Video machen.



Im weiteren kann über den KI-Berater Marcel ein Inhouse-Seminar zu diesem Thema und den Sourcen angefragt werden.  Schreiben sie mir Ihr Interesse oder wenden Sie sich an den KI-Berater Herr Marcel Rosiak.

Bis demnächst ...

Bei Fragen zur Kran-Automatisierung oder allgemeine Projektunterstützung TIA-Portal bitte folgenden Link verwenden und Kontakt aufnehmen:







Samstag, 3. September 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022                                           

Die KI-SPS

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


Machine-Learning für Prozesskrane TIA-V16



TIA-Portal und Machine-Learning, WinCC-Advanced
Mein YouTube-Kanal: TIA-Expert Hofer



Die Programmierung der Automatik erfolgt komplett über Daten nach dem KI-Prinzip Machine Learning mit nachgeschaltetem Deep-Learning. Letzteres wird vom Bediener konfiguriert, solange dies sinnvoll erscheint.

Das alles mit dem TIA-Werkzeug V16 ohne zusätzliche Software oder anderen Hilfsmitteln.

Nun - die Darstellung des Konfigurators ist zwar bereits vorhanden, aber es fehlt noch eine Erklärung dazu, welche in einem weiteren Video gezeigt werden soll.

Ist auch nicht ganz so "ohne" mit dem was man im TIA-Portal bezogen auf Programmiermöglichkeiten und Debugging so geboten bekommt. Aber es funktioniert hervorragend, denn mittlerweile sind zwei Anlagen der ehemaligen Demag Mannesmann aus den 90ziger Jahren durch den Betreiber damit modernisiert worden. 

Bei Fragen zur Kran-Automatisierung folgender Link:









Freitag, 1. Juli 2022

Copyright ©  Dipl.-Ing. Johannes Hofer 2022                                           

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen






 Das Listing zum Pi:

# socket test for raspi

import socket
import threading
import sys
import time

HOST_CLIENT = "192.168.8.106"  
PORT_RCV = 3000  # port used by receive
PORT_SEND = 2000 # port used by send
FORMAT = 'utf-8'

# client to receive and send
def RCV_SEND():
    try:
        _rcv = None
        _send = None
        # socket receive messages
        _rcv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        _rcv.settimeout(30)
        _rcv.connect((HOST_CLIENT, PORT_RCV))
        print("Socket RCV is connected")
        # socket send answer
        _send = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        _send.settimeout(30)
        _send.connect((HOST_CLIENT, PORT_SEND))
        print("Socket SEND is connected")
        connected = True
        while connected:
            data = _rcv.recv(1024).decode(FORMAT)
            l = len(data)
            s = str(l)
            print(f"Len: " + s)
            # parseData
            print(f"Message [RCV]: {data}")
            # return from parseData
            s = "[{" + "SD:Raspi RCV -> ok" + "}]"
            _send.send(s.encode(FORMAT))
            print("[SEND]: " + s)
    except:
        print("Exception in RCV_SEND ",sys.exc_info()[0])   
        if(_rcv != None):
            _rcv.close()
        if(_send != None):
            _send.close()
        print("Close sockets")
        return;  

# main
def main():
    while(True):
        thread_RCV_SEND = threading.Thread(target = RCV_SEND)
        thread_RCV_SEND.start()
        print("Start RCV and SEND Thread")    
        while(thread_RCV_SEND.is_alive()):
            ...
        print("Inteface network is disconnect ... wait")    
        time.sleep(2)    
        print("try again")
  
main()     
print("Program out")






Montag, 6. Juni 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen




HMI-Anwender im Testmodus TIA-Simulation zeigt das folgende Video:


Damit können auch Interessierte ohne den Besitz einer Hardware aus der Simatic 1200/1500 profitieren und sich mit dem Thema beschäftigen ☺
 

Nachfolgend wie mehrfach gewünscht, der Script  zum  kopieren:


Sub Ki2HMI()
Const READ = 1
Const WRITE = 2
Const APPEND = 8 ' not use
'
Dim fso, fileIn, fileOut 
On Error Resume Next
'object 
  Set fso = CreateObject("Scripting.FileSystemObject")
  'program 
  Select Case SmartTags("Request_Counter")
Case 0 ' check file read
SmartTags("SendReceiveData_FlagRequestStr") = False
Set fileIn = fso.OpenTextFile("C:/KiToPlc_HMI/RequestText.txt",READ)
If(Err.Number <> 0) Then
SmartTags("InfoFileSystem") = " RequestText.txt => " & Err.Description
Err.Clear
Set fso = Nothing
SmartTags("Request_Counter") = 100
Else
' read file
SmartTags("RequestText") = fileIn.ReadAll()
fileIn.Close()
'KI2Plc set folder and filename
fso.DeleteFile "C:/KiToPlc_HMI/RequestText.txt"
SmartTags("InfoFileSystem") = "Read File ok => File deleted"
Set fso = Nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 1
SmartTags("SendReceiveData_RequestStr_HMI")= SmartTags("RequestText")
SmartTags("SendReceiveData_FlagRequestStr") = True
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
Case 2
'KI2Plc set folder and filename
If(SmartTags("SendReceiveData_FlagRequestStr") = False) Then
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 3
'KI2Plc set folder and filename and write file 
Set fileOut = fso.OpenTextFile("C:/KiToPlc_HMI/AcknowledgeText.txt",WRITE, True)
If(Err.Number <> 0) Then
SmartTags("InfoFileSystem") = " => " & Err.Description
Err.Clear
Set fso = Nothing
SmartTags("Request_Counter") = 100
Else
fileOut.WriteLine(SmartTags("SendReceiveData_AcknowledgeStr_HMI"))
fileOut.Close()
fso = Nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 4
' nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
Case Else
SmartTags("Request_Counter") = 0
End Select
'change sps-flag 
SmartTags("RequestHMI_Bit") = Not SmartTags("RequestHMI_Bit")
End Sub

 

Freitag, 29. April 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


8.2     Logic Edge-Control

Was ist, wenn ein PLC-Programmierer seine eigenes Programm zur Automatisierung anwenden möchte, ohne die KI-Vorteile zu verlieren. Nun das ist sicherlich verständlich, wenn zu den ganzen Dingen eines KI-Automaten kein sooo großes Vertrauen besteht. Schließlich weiß man ja auch nicht was da  in einem Baustein so abgeht – oder?

Verständlich und auch vollkommen normal den Dingen nicht zu trauen.

Man verwendet im eigenen Programm zwar Bibliotheksbausteine, aber nur soweit dieser überwiegend bekannt sind und zudem auch schon tausendmal getestet wurden.

Damit ein KI-System bestehen kann, müssen spezifische Daten existieren. Wir haben ja schon den Eingangs-Layer, die Regeln und den oder die Ausgangs-Layer kennen gelernt. Zudem kennen wir ja auch schon Deep-Learning, welches im Gerät Zwischenlayer erzeugen kann, um damit mehrere Möglichkeiten für die Ausgangs-Layer zu bilden.

Diese Vorgehensweise mit dem Deep-Learning wird direkt auf der Hardware ausgeführt und deswegen auch als Edge-KI bezeichnet.

Was man sich so alles einfallen lässt 😊. Das was da so innerhalb des KI-Automaten abgeht, könnte zur Automatisierung ungewünscht sein. Nach dem Motto, was der Bauer nicht kennt, frisst er nicht, können wir mit dem sogenannten Edge-Control aushelfen.

Betrachten wir dazu in einer Simatic dem Aufruf eines KI-Automaten, wie uns auch schon bekannt ist, dann sehen wir die Möglichkeit einen Eingangsparameter IN_EC zu setzen.

                       

                         Bild 8.2: Die SPS besitzt zu jedem KI-Automat einen Edge-Control-FB

Jeder KI-Automat besitzt einen booleschen Eingang IN_EC (Punkt 1) welche wahlweise den Funktionsbaustein EC_SD1 (Punkt 2) aktiviert oder nicht aktiviert. Damit können wir das logische Geschehen für den Programmablauf zur Logik dem Programmierer überlassen. Wie auch immer er dies löst entscheidet jetzt nicht mehr der KI-Baustein, sondern liefert dazu die Daten, Funktionen und nötigen Parameter. Somit ist der Programmierer völlig unabhängig der KI-Dinge und kann somit schalten und walten, wie er dies auch in der Vergangenheit schon getan hat.

Na also, dann haben wir ja unser Edge-Control und die KI vereinbart. Ob das so sinnvoll ist, muss im Einzelfall entschieden werden 😊

Die KI allerdings bleibt erhalten und liefert so wichtige Daten und Erkenntnisse, ob der Baustein nun so auch richtig funktioniert. Geliefert wird das dann über den sogenannten Backpropagation-Faktor und alle sind zufrieden – oder wie oder was?

Dazu nun das folgende Video zum Praxisbaustein "Automatische Türsteuerung" in YouTube


Praktikum KI-SPS - Teil 2

Vorerst noch überwiegend KV-Diagramm mit KI-Gerüst und der Einsatz von Bibliotheksbausteinen.  

Zum Test suche ich noch einen Spender über eine größere SPS. Muss nicht das TIA-Portal sein. Auch wäre eine neuzeitige SPS mit Arduino oder sowas denkbar. Da das KI-Verfahren sehr sicher ist, kann man hier auch eine andere Hardware sehr gut einsetzen. Also einfach auf meinem Blog melden :)

 Fortsetzung folgt im nächsten Post .... 💇

 

Samstag, 23. April 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen





https://youtu.be/0TjR0Gws6G0

Dieses mal aus zeitlichen Gründen nur das Video in YouTube :)


Freitag, 18. März 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Kapitelausschnitt:

8.1     Die ersten Schritte mit KI2Plc



Der Einstieg mit KI2Plc
vom KV zur KI-SPS



Diesmal das Video zum Kapitel. Nach Freigabe der ersten Lite-Version kann diese über meinen Blog unverbindlich und kostenfrei angefordert werden :) Das wird in Kürze der Fall sein. Alle Daten zur Person bez. dieser Anfrage werden vertraulich behandelt und sind zum aktuellen Update der SW nur auf meinem PC gespeichert. 

Fortsetzung folgt im nächsten Post .... 💇



Sonntag, 20. Februar 2022

Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Kapitelausschnitt:


7.1     Das Komponenten-Diagramm

Ein SD allein funktioniert nicht. Wie immer ist alles viel komplizierter – warum soll es auch einfach sein, denn schließlich soll die neue Idee eine große Wirkung haben. Dazu müssen wir das Komponenten-Diagramm betrachten, welches das Zusammenspiel aller SW-Bausteine zeigt und erklären soll, auch wenn das in den meisten Fällen als sehr langweilig empfunden wird, denn wer liest derzeit in der modernen Internetwelt noch Literatur oder Bedienungsanweisungen. Da wird doch lieber am Objekt gleich ausprobiert, was da so abgeht.

Für den Programmierer allerdings ein wichtiger Informationszweig, denn aus den vielen Programmzeilen wird man ohne Plan nicht zurechtkommen. Zudem sind doch eine Menge Schnittstellen zu erkennen und die müssen verstanden werden, wenn man da etwas ändern, erweitern oder sonstiges unternehmen möchte.



   Bild 36: Das Komponenten-Diagramm zum Gesamtgeschehen

Betrachtet man die Komponente C_SD, dann ist diese für die Entwicklung der Eingangslayer, Ausgangslayer, Regeln und vieles mehr verantwortlich und sicherlich auch für den Anwender zur Entstehung seines Projektes, die wichtigste Anwendung am Monitor, welches letztendlich in der Hardware durch die KI-SPS zur Anwendung kommt.

Das Projekt unter NET Core in der Komponente MainWindow ist mit seinen folgenden Komponenten notwendig, damit überhaupt ein Klick mit der Maus und das daraus entstehende KI-Geschehen, ich darf das mal so nennen, wirksam wird.

Das SD kann über die Komponente C_KI_GroupLS letztendlich über die Assoziationen mit dem C_Project kommunizieren und ist so in der Lage seine Inhalte an die Komponente C_DG (Dokument_Generator) zu übermitteln. Der erzeugt dann das Datenformat (JSON) und wird, wenn gewünscht, in C_Project über die Funktion OL (Output Layer) an die Komponente C_Socket gesendet, welche dann dafür sorgt, dass die PLC ihre Daten zur Ausführung erhält.

Die Daten werden mit Hilfe der Komponente C_DB_Plc generiert, je nachdem was da für eine SPS angesprochen werden soll.

Nun – ist doch ganz einfach – oder 😊.


Fortsetzung folgt im nächsten Post .... 💇
Verleger und SPS-Hersteller können sich gerne melden 😊

Firma oder Start-up, mit Interesse mein know-now exklusiv zu erwerben können sich gerne melden.


 


Samstag, 12. Februar 2022

  Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Kapitelausschnitt:


6.4     Der Port ipzur PLC

Der Programmierer möchte gerne über das Dateninterface zur PLC Informationen erhalten bzw. Anweisungen an die PLC schreiben. Ich erwähne ausdrücklich PLC und nicht SPS, damit nicht der Eindruck entsteht, dass hier eine Verbindung zur Simatic oder einer anderen SPS gemeint ist. Obwohl ja PLC die engl. Übersetzung zur SPS ist, wird, so meine Erfahrung auf den Baustellen, die PLC oft als nicht Simatic oder ähnliches verstanden. Vielleicht auch nur eine typische verdeutschte Auffassung, dass eine PLC ein IOT-System wie Arduino oder Raspberry PI darstellen muss. Nun ja – wie auch immer das verstanden wird ist so ein SD in fast jedem System integrierbar 😊.

 


Bild 33: Das Tor zur PLC mit dbx_DB

Mit dem Port ipx kann der Programmierer aus der KI2Plc mit der ausgewählten PLC/SPS über das Interface <-SD_Obj – PLC_Onj -> kommunizieren. Im Prinzip ist die tatsächliche Hardware an dieser Stelle noch nicht bekannt, sondern wird erst über den Datentyp in der Komponente C_DB_Plc bestimmt, damit ab hier eine Kommunikation stattfinden kann.

Der Programmierer und letztendlich der Anwender der Software Ki2Plc wird über die Konfiguration den Weg zur Datenwelt der ausgewählten Hardware finden.

So wird das Bild 30 aus Kapitel 6.1 Dateninterface SD etwas gelüftet, denn schließlich liefert der Port den Weg zur Datenwelt einer PLC, wie immer diese gestaltet ist. Unklar ist bis jetzt noch der Datenfluss vom SD zu einer Hardware, welche nur über den C_Socket (Bild 30) zu erreichen ist.

Hier muss man ganz klar die Assoziationen genauer studieren, um sich im Datenfluss zurecht zu finden und das ist nicht jedermanns Sache. Erst viel später in den fortgeschrittenen Kapiteln wird das dann noch im praktischen Teil aufgeklärt.

Allerdings ist der Weg zur Kommunikation über mehrere Komponenten nicht immer notwendig und damit wesentlich einfacher zu verstehen, wenn das SD direkt im SPS-System integriert ist. Und damit meine ich jetzt tatsächlich eine Simatic mit einem KI-Automaten, denn hier habe ich das umgesetzt und kann so über die Visualisierung des Systems direkt mit dem SD kommunizieren und entsprechend die Regeln festlegen.

Die Konfiguration erfolgt somit innerhalb der KI-SPS und erlaubt so über das meist bestehende Visualisierungs-System (HMI) auch gleichzeitig die Festlegung der Regeln durch den Supervisor, um nicht Programmierer zu sagen 😊

Selbstverständlich ist der Service, wie das C#-Programm Ki2Plc nicht so umfangreich, allerdings besteht eine Schnittstelle PlcApi von der SPS zur Außenwelt und diese kann dann den Service, ganz besonders die Datenzugriffe und Algorithmen zur KI, wesentlich verbessern.


Fortsetzung folgt im nächsten Post .... 💇
Verleger und SPS-Hersteller können sich gerne melden 😊

Firma oder Start-up, mit Interesse mein know-now exklusiv zu erwerben können sich gerne melden.


 


Sonntag, 30. Januar 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Kapitelausschnitt:


6      Das Datenmodell zum SD

Bis zu diesem Kapitel sind bereits einige einfache Beispiele zum Thema KI-SPS in Bildern gezeigt worden. Damit eine Umsetzung dieser neuen Idee möglich wird, muss ein Interface geschaffen werden, welches zu jedem Element des SDs eine Datenverbindung anbieten kann.

Betrachten wir Bild 29 eines Projektes, dann lässt sich dieses sehr einfach beschreiben:

Ein Gerät (SPS, Raspberry Pi etc.) hat ein Programm, welches ich als Projekt bezeichne.  Das könnte die bereits erwähnte Krananlage oder eine Schuhmaschine oder eine Celle einer Fertigung für ein Zubehörteil eines Autos, sein. Das Projekt besteht, abgesehen von den Programmabschnitten und Modulen aus den Bibliotheken, aus mehreren KI-Gruppen, welche jeweils ein SD besitzt. Natürlich könnte eine KI-Gruppe auch mehrere SDs besitzen, um dieser Frage gleich zuvorzukommen 😊.

Jedes SD besitzt Elemente aus verschiedenen Datentypen. Damit diese auch Daten austauschen können, hat jedes Element eine Datenschnittstelle.

        Bild 29: Das Datenmodell zum SD

Ohne diese Datenschnittstelle wäre das SD hilflos und könnte über die gelernten Regeln keine Aktionen verursachen. Das Ganze beginnt also mit der Datenschnittstelle lebendig zu werden, um das mal so auszudrücken. So erklären sich auch die vielen Möglichkeiten bei einer SPS mit dem KI-Automat. Hier haben wir die KI-Gruppen stellvertretend durch ein SD, welches nun über die einzelnen Elemente, je nach Ergebnis der gelernten Regeln, Daten lesen und schreiben kann.

Diese Daten können auch Ergebnisse aus komplexen Bausteinen sein, wie PID-Regler oder Funktionsbausteine, welche noch traditionell programmiert sind.

Das bedeutet, die Kontrolle der entsprechenden Programmabschnitte, welcher Art auch immer, werden durch den KI-Automat übernommen.

Das ergibt nun eine völlig neue Denkweise zur Erstellung und Planung eines SPS-Programmes und deren Auswirkung zur Prozessumgebung. Immerhin haben wir es hier mit modernen, neuzeitige Elementen zu tun, welche über die Datenschnittstellen (JSON-Formate) auch mit anderen KI-Systemen, kommunizieren können.

Da wir es hier mit einer SPS vergleichen, richtet sich die Datenschnittstelle nach den üblichen Datenformaten einer SPS, welche auch als Operanden bezeichnet werden. Dazu gehören nicht nur die Eingangs- und Ausgangsoperanden, sondern z. B. auch Timer, Counter, Merker und sonstige Operanden-Typen.

Davon abgesehen ist das Gerät SPS ja mittlerweile nicht nur eine Simatic und dessen Strukturen, sondern wandert z. B.  über Codesys in ganz andere Gebilde, welche schließlich auch durch die Anbieter der Steuerungstechnik, mal ganz vorsichtig formuliert, als Geräte mit der Programmierung zur IEC-Kompatibilität auch als SPS bezeichnet werden.

Fortsetzung folgt im nächsten Post .... 💇
Verleger und SPS-Hersteller können sich gerne melden 😊

Firma oder Start-up, mit Interesse mein know-now exklusiv zu erwerben können sich gerne melden.

Dienstag, 18. Januar 2022

Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Kapitelausschnitt:

 


5      SD und die KI

Bis Kapitel 4 haben wir das SD mit seinen Elementen so ein wenig im Einsatz gesehen. Die Steuerungstechniker kennen überwiegend das KV-Diagramm und wissen, dass hier eine optimale Kürzung für digitale Schaltungen mit einem Ausgang erfolgen kann. Daraus wurde ja früher der Schaltschrank mit der Klappertechnik gebaut, 😊. Diese Dinge werden gegenwertig zwar noch in der Ausbildung zum Steuerungstechniker erwähnt, aber das war es auch schon. Durch die Programmierung der Schütztechnik in der SPS, ist das KV weit in den Hintergrund gerückt.

Viele Programmierer wenden Teile des KVs an, aber meist unbewusst.


                          

                        Bild 26: Struktur zum Signatur-Diagramm SD

Warum heißt das nun Signatur-Diagramm (SD) und nicht Signal-Diagramm?

Ein SD, wie vereinfacht in Bild 26 zu sehen, kann nun auch mehrere Ausgänge bedienen und integriert zudem auch analoge Signale, sowie Funktionsergebnisse und schließlich selbst wieder SDs. Wesentliche Unterschiede zum KV bilden sich bereits in den Element-Bereichen und den dazugehörigen Elementen (IPA, IPF, IPD, IPSD analog dazu die Output-Bezeichnungen).

Es gibt also je Parameter einen Platzhalter für den Datentyp, welche erst später zugeordnet werden kann und deswegen über eine Verbindung zur Datenbasis verfügt. So wie das Signatur-Diagramm aus der Literatur Informatik, allerdings in anderer Form.

Meiner Meinung nach ist das Signatur-Diagramm aus der Informatik ein Signatur-Plan.

Das KV hat seine Regeln (Rules), welche binär auch zur Optimierung verwendet werden. Das SD hat ebenso Regeln, diese werden mittels machine learning erfasst und über Methoden im deep learning optimiert. Der wesentliche Unterschied besteht darin, dass es sich dabei zwar auch um Regeln handelt, diese aber mit analogen Signalen verknüpft werden können und durch verschiedene Algorithmen im deep learning spezialisiert werden.

Ein SD hat somit auch Regeln, werden aber anders angewendet.

Die Anwendung und Auswertung hat nicht nur das Ziel bei digitalen und analogen Signalen eine binäre Verknüpfung zu kreieren, sondern auch critical inputlayer zu erkennen. Diese wirken sich dann direkt auf den Ausgangslayer (CIE) aus und bilden ein Alarmsystem, welches über Schnittstellen im JSON-Format (DG) anderen Komponenten zur Verfügung gestellt wird. Die Aufbereitung der Regeln werden für den KI-Automat definiert und können zusätzlich über den DG (document generator) auch anderen Komponenten zur Verfügung gestellt werden.

Wie bei Funktionsparametern in Programmiersprachen werden Bezeichnungen und deren Datentypen übergeben. Das nennen die Informatiker Signatur einer Schnittstelle. Deswegen auch die Bezeichnung SD, 😊

Da es sich hier um eine Software (SW) handelt, gibt es eine ganze Menge an Ideen, sinnvolle Dinge zur IOT-Welt vom SD abzuleiten. Besonders bei schon bestehenden Anlagen ist eine automatische Erstellung des SD sehr gut möglich. Was da so alles gemacht werden könnte, ist sehr umfangreich. Deswegen möchte ich mich in dieser Lektüre auf die Programmerstellung über einen SD und einen KI-Automat beschränken.

Die Anwendung für eine SPS, da befindet sich der KI-Automat, ist dann sinnvoll, wenn diese das entsprechende Umfeld zum SD anbietet. Dazu gehören genügend Speicher und eine attraktive Programmiersprache, damit der KI-Automat  auch schmerzlos umgesetzt werden kann. Zudem ist ja ohne Webseite heutzutage nix mehr los – oder?

Das SD und deren Struktur ist für eine Webanwendung besonders gut geeignet.

Warum ist das so? Nun einige Argumente sind Speicher, Internet, moderne Programmiersprachen und IOT. Was hat das Ganze nun mit der SPS zu tun?

Ein SPS-Programmierung kann auch virtuell existieren und hat in Verbindung mit einem SD und der KI mehr Sicherheit zu bieten als eine SPS-Programmierung herkömmlicher Art. Zudem kann das Programm in verschiedenen Plattformen zur Anwendung kommen und ist 100%ig internetfähig.

Besitzt nun eine herkömmliche SPS einen KI-Automaten, dann ist sie damit auch internetfähig, zumindest über den SD-Anteil. Besonders in der IOT kann ich mir ein Produkt vorstellen, welches SDs verarbeitet. Ob das dann noch als SPS bezeichnet wird? 😊.

Das Mischen mit SD und traditioneller SPS-Programmierung ist immer gegeben und jederzeit möglich.

Nun gut – nur die Eingangs- und Ausgangslayer in Form der KI darzustellen, reicht auch nicht für eine ganz, ganz schwache KI aus. Deswegen noch einmal: Was hat das SD mit KI zu tun?

Ich würde das mit der KI sicherlich nicht ins Spiel bringen, wenn da nicht machine learning eingebettet wäre. Nebenbei bemerkt existiert das deep learning auch, ist aber nicht unbedingt notwendig, bei Verwendung einfacher Steuerungen.

Aus den gelernten Daten entsteht eine Interpretation für den KI-Automat, welche jederzeit durch zusätzliches Lernen online ausgetauscht werden kann. Die Daten berücksichtigen auch SW-Komponenten der SPS, wenn diese so gelernt wurden.

Eigentlich bin ich der Überzeugung, wie in dieser Lektüre schon öfters erwähnt, dass ein ungeplantes Programm ein Zufallsprodukt ist. Trotz Planung, beispielhaft mit Grafcet, WSD oder anderen Planungsmitteln, kann ich wenig anfangen, wenn ich dabei an eine KI denke, denn jedes SD umgesetzt in einen KI-Automat kann gleichzeig Zustände analysieren, welche in der Programmierung nicht berücksichtigt wurden oder sogar online Zustände erkennen, welche die Anlage im Fehlerfall liefert. 

Man könnte daraus ableiten: Lernen und nicht planen 😊

Der KI-Automat ist durch seine Struktur in der Lage bei einem angeschlossenem, externen KI-System analysegerechte Daten zu liefern. Mit all den genannten Fakten kann nach meiner Meinung das SD in die leichte KI eingestuft werden.

Nun gut- lange Rede kurzer Sinn. Schauen wir uns das mal genauer an und versuchen im folgenden Kapitel einen sinnvollen Ablauf, KI-gerecht 😊, zu verstehen.


Fortsetzung folgt im nächsten Post .... 💇

Verleger und SPS-Hersteller können sich gerne melden 😊
Firma oder Start-up, mit Interesse mein know-now exklusiv zu erwerben können sich gerne melden.
 

Samstag, 15. Januar 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen


Zur besseren Erklärung aus den Anfängen, noch ein wenig aus dem Kapitel 3: 


3      Aus Alt wird neu

Bei einer netten Unterhaltung innerhalb eines Programmier-Seminares, kamen wir auf das Thema KI und deren Anwendung, wohlgemerkt für die industrielle Automatisierung an Maschinen und Anlagen. Nun, meine Geschichte über das Fotografieren von Katzen zur späteren Detektieren eines Tierbildes über ein KI-System, kam bei den SPS-Programmierern sehr gut und auch lustig an. Die Bilder zu analysieren, damit diese später dann zur Wiedererkennung verwendet werden ist nichts neues in der Automatisierung, denn Bilderkennungssysteme mit entsprechender Komplexibilität existieren schon seit geraumer Zeit und werden als Modul in diverse Steuerungen schon lange angewendet. Ich denke die ersten Gehversuche sind so Ende der 90ziger gewachsen und stellen heute ca. 30 Jahre später, einen Standard in der Automatisierung sowie grundsätzlich im Sondermaschinenbau dar.

Was gab es damals für Probleme mit der Beleuchtung und ganz zu schweigen von den Speicherproblemen und natürlich teilweise bis heute der zeitraubenden Datenzugriff zur Auswertung der Bilder.

Und trotzdem kam mein Gedanke Fotos zu machen und als Eingangslayer zu verarbeiten, vorerst in der SPS-Welt nicht besonders gut an.

Die SPS-Programmierer konnten mit dieser neuen Idee noch nicht so richtig etwas anfangen. Diese denken immer sofort ans Programmieren und deswegen, ich denke das ist der Hauptvorsatz, ist das beispielhafte Fotografieren von Signalen nicht so richtig verstanden worden. Aus diesem Grund habe ich mich teilweise vom Foto der Signale entfernt und habe von Fotos zur Erfassung einer Katze gesprochen, dann gab es wenigsten etwas zum Lachen, 😊.

Bei genauer Betrachtung einer noch nicht in Betrieb genommener Anlage haben wir es zu Beginn mit einem Chaos der Signale zu tun. Abgesehen von Verdrahtungsfehlern, oder vertauschte Signalgeber, müssen auch mechanische Probleme zur Einstellung der Stellglieder und was es da so alles gibt, noch richtiggestellt werden. Alles ist somit vorerst unbestimmt und funktionieren tut eigentlich, zum Leid des Auftraggebers, nur wenig bis nichts. Erst mit der Inbetriebnahme ändert sich der Zustand allmählich und wird schrittweise in Ordnung gebracht. Betrachten wir das mal aus dieser Sicht, welche ja schließlich jeder Automatisierer kennen sollte.

Wenn wir alles richtig gemacht haben und alle Einzelbewegungen funktionieren, dann könnte man mit dem Programmieren oder mit der Inbetriebnahme des mitgebrachten Programmes beginnen. Und nun wieder zu den Katzen, 😊.

Schon bei dieser Erstinbetriebnahme, die auch als Einstellbetrieb bezeichnet wird, könnte man Zustände der Eingangs-Signale mit einer „quasi Kamera“ in, meinetwegen 100 Millisekunden-Takt, erzeugen.

Diese Bilder (Daten) werden dann zur Auswertung in einem speziellen Diagramm zur Verfügung gestellt. Ist doch denkbar – oder?

So erzeugte Bilder bzw. Daten nenne ich Signatur-Diagramm (SD), denn das beschreibt einen wahren Zustand der Anlage für einen ganz bestimmten Moment.

Das ist dann der Fall, wenn alles ordnungsgemäß funktioniert, was nach einer Inbetriebnahme oder auch vor der Inbetriebnahme im Test eines SDs, der Fall sein sollte.

Und da genau muss man ansetzen. Also z. B. könnte bei einer bereits bestehenden, funktionierenden Anlage trotzdem fotografiert und dessen Signatur gespeichert werden. Sollte nun doch ein Fehler auftreten (Endschalter kaputt oder Programmfehler), dann fällt das nun bei der Signatur auf, da ein Vergleich mit der damals gültigen und funktionierenden Signatur stattfindet oder sogar eine logische, mathematische Signatur zum Vergleich zur Verfügung steht.

Qualitäts-Sicherung oder Verbesserung der Produktionssicherheit oder wie auch immer man das nennen möchte, auf hohem Niveau natürlich, ein sehr sicheres Verfahren mit dem SD.

Überdenken wir nun das Ganze mal umgekehrt. Es gibt keine Inbetriebnahme, sondern ein KI-System, welche die Signaturen, wie auch immer, aufnimmt und diese dann ordnungsgemäß innerhalb der SPS interpretiert. Und da ist genau der Ansatz zur KI zu entdecken. Wir brauchen kein Programm, sondern müssen Signaturen erzeugen, damit diese KI-gerecht an das, ich möchte mal sagen KI-Modell, übergeben werden können um sie danach (Deep-Learning) über einen KI-Automaten als Programmersatz und gegebenenfalls als Programmierschnittstelle anzuwenden.

Mit diesem Gedanken habe ich begonnen und nach einer Signatur gesucht, welche als Eingangslayer erfasst und dann gegebenenfalls über Deep-Learning in einem KI-Automaten umgesetzt wird.

Das SD wird so nach einem Test in eine SPS übertragen. Dazu dient die Schnittstelle in der SPS, welche ich als PlcApi bezeichnet habe. Die SPS kann eine Simatic-S7 oder eine entsprechende SPS-Hardware sein, welche den erwähnten KI-Automat besitzt.

Das hört sich zunächst so als Bilderprogrammierung oder Umsetzung von einem KV-Diagramm an, ist es aber nicht, denn:

Genau diese Technik erlaubt auch das Verständnis andere Programmierwelten wie z. B. Webprogrammierer, Analytiker und weitere, moderne Instanzen zur industriellen Automatisierung.

Warum das so ist, möchte ich hier noch nicht darstellen, denn das würde zu sehr verwirren. Es fehlen für das Verständnis noch entsprechende, zusätzliche Informationen. Die Anwendung dieser neuen Idee mit dem SD und dem KI-Automat sollen uns viel später in der fortgeschrittenen Lektüre zeigen, warum das so ist.


Fortsetzung folgt im nächsten Post .... 💇

Verleger und SPS-Hersteller können sich gerne melden 😊
Firma oder Start-up, mit Interesse mein know-now exklusiv zu erwerben können sich gerne melden.