DE102021213918A1 - Identifikation von Fehlerursachen auf Befehlsebene in Prozessen - Google Patents

Identifikation von Fehlerursachen auf Befehlsebene in Prozessen Download PDF

Info

Publication number
DE102021213918A1
DE102021213918A1 DE102021213918.3A DE102021213918A DE102021213918A1 DE 102021213918 A1 DE102021213918 A1 DE 102021213918A1 DE 102021213918 A DE102021213918 A DE 102021213918A DE 102021213918 A1 DE102021213918 A1 DE 102021213918A1
Authority
DE
Germany
Prior art keywords
algorithm
time series
data time
result
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021213918.3A
Other languages
English (en)
Inventor
Jonas Schwinn
Manuel Kaspar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Deutschland GmbH filed Critical KUKA Deutschland GmbH
Priority to DE102021213918.3A priority Critical patent/DE102021213918A1/de
Priority to PCT/EP2022/083696 priority patent/WO2023104591A1/de
Publication of DE102021213918A1 publication Critical patent/DE102021213918A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4068Verifying part programme on screen, by drawing or other means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33296ANN for diagnostic, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35288Verification of instructions on tape, direct or by comparing with reference
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35291Record history, log, journal, audit of machine operation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35304Real time analysis, check of program, just before machining

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

Verfahren (100) zum Bewerten und/oder Überwachen eines Prozesses, insbesondere eines Roboterprozesses, umfassend: Erfassen (102) mindestens einer Datenzeitreihe (Zi), wobei die mindestens eine Datenzeitreihe (Zi) mindestens einen Parameter des Prozesses beschreibt, und wobei die Datenzeitreihe (Zi) von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt, und wobei die mindestens eine Datenzeitreihe (Zi) einem Teil des Prozessprogrammes, insbesondere einem Prozessbefehl oder einem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet ist; Bestimmen (106) eines Ergebnisses (Y) durch einen ersten Algorithmus (AG) oder durch mindestens einen Teil eines Algorithmus (AG), basierend auf der mindestens einen Datenzeitreihe (Zi), wobei das Ergebnis (Y) einen Zustand des Prozesses beschreibt und wobei das Ergebnis (Y) dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden kann, insbesondere zugeordnet ist.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Bewerten und/oder Überwachen eines Prozesses, insbesondere eines Roboterprozesses, sowie ein System und Computerprogramm bzw. Computerprogrammprodukt zur Durchführung des Verfahrens.
  • STAND DER TECHNIK
  • Herkömmlicherweise werden Roboterprozesse überwacht und auftretende Fehler per Datenanalyse analysiert. Insbesondere werden Positionen, Kräfte oder Ströme als Zeitreihen aufgenommen und durch Datenanalyseverfahren ausgewertet. Damit werden in der Regel Fehler detektiert und Folgefehler verhindert.
  • Die einfachste Form der Zeitreihenanalyse ist die herkömmliche Event Detection. Hier werden Zeitreihen gegen handgesetzte, feste Grenzen (logisch oder numerisch) geprüft. Diese Prüfungen können zwar sehr schnell durchgeführt werden, erfordern aber Expertenwissen über den Prozess, sind aufwendig zu programmieren und können keine komplexen Events detektieren. Zeitreihenanalysen mittels maschinellen Lernens (Machine Learning) erfolgen bisher entweder auf der gesamten Zeitreihe des Prozesses oder auf einzelnen Zeitabschnitten und Zeitpunkten. Diese lassen keine Rückschlüsse auf ein zugrundeliegendes Programm oder gar Programmbefehle zu. Oftmals wird in solchen Fällen auf Trial-and-Error Optimierungen zurückgegriffen, die zeitaufwendig sind. Es ist daher schwierig, ausgehend von detektierten Fehlern ein Roboterprogramm zu optimieren.
  • AUFGABE
  • Aufgabe der vorliegenden Erfindung ist es, Prozesse, insbesondere Roboterprozesse zu verbessern, vorzugsweise obigem Problem abzuhelfen.
  • ZUSAMMENFASSUNG
  • Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 13 und 14 stellen ein System, Computerprogramm bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
  • BESCHREIBUNG
  • Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zum Bewerten und/oder Überwachen eines Prozesses den Schritt: Erfassen mindestens einer Datenzeitreihe. Die mindestens eine Datenzeitreihe beschreibt oder repräsentiert mindestens einen Parameter des Prozesses, insbesondere eine Kraft, eine Geschwindigkeit, eine Beschleunigung, eine Pose, einen Strom oder eine Spannung. Die Datenzeitreihe wird von dem Prozess verursacht, der ein Prozessprogramm mit Prozessbefehlen ausführt. Die mindestens eine Datenzeitreihe ist einem Teil des Prozessprogrammes, insbesondere einem Prozessbefehl oder einem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet.
  • Ein Prozess kann in einer Ausführungsform ein Produktionsprozess mit einer oder mehreren Produktions- bzw. Prozessanlagen, ein Prozess innerhalb einer der Produktions- bzw. Prozessanlagen, ein Prozess einer einzelnen Maschine, insbesondere eines Roboters, oder ein Prozess eines Teils einer Produktionsanlage, einer Maschine oder eines Roboters sein. Ein Prozess kann sich insbesondere auf die Instanziierung eines Programms zu dessen Ausführung, insbesondere innerhalb eines Rechnersystems und/oder dessen konkrete Ausführung beziehen. Ein Prozess kann insbesondere automatisch und/oder wiederholt oder wiederholbar durchgeführter werden. Ein Roboterprozess kann insbesondere ein Prozess sein, der einen Roboter umfasst oder einen Roboter aufweist.
  • Ein Parameter kann in einer Ausführungsform eine geometrische Angabe zu einer Prozessanlage, wie insbesondere zu einem Roboter, umfassen, insbesondere sein. Dazu gehören insbesondere eine Position und/oder eine Pose der Prozessanlage oder eines Teils der Prozessanlage. Zusätzlich oder alternativ kann ein Parameter eine dynamische Angabe, wie insbesondere eine Geschwindigkeit oder eine Beschleunigung wenigstens einer Komponente einer Prozessanlage umfassen. Ferner kann ein Parameter zusätzlich oder alternativ wenigstens eine physikalische Größe, wie insbesondere Kräfte, Ströme oder Spannungen umfassen.
  • Das Verfahren umfasst weiterhin: Bestimmen eines Ergebnisses durch einen ersten Algorithmus oder durch mindestens einen Teil eines Algorithmus, basierend auf der mindestens einen Datenzeitreihe. Das Ergebnis beschreibt einen Zustand des Prozesses. Das Ergebnis kann ferner dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden, insbesondere ist das Ergebnis dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet.
  • Hierdurch kann in einer Ausführungsform ermöglicht werden, dass das Verfahren das Ergebnis verwenden kann, um den Prozess zu Bewerten und/oder zu Überwachen. Weiterhin kann dadurch eine Integrität des Prozesses bewertet werden und es kann ermöglicht werden, dass der Prozess anhand des Ergebnisses gesteuert wird. Vorteilhafterweise kann der Prozess anhand des Ergebnisses insbesondere optimiert werden, besonders vorteilhafterweise das Prozessprogramm, insbesondere Prozessbefehle oder Teile der Prozessbefehle des Prozessprogramms. Ferner kann insbesondere ermöglicht werden, dass Rückschlüsse auf Abhängigkeiten im Prozessprogramm gezogen werden können.
  • Nach einer Ausführungsform kann es Ziel der Erfindung sein, ein Verfahren zu verwenden, das die Strukturen eines Prozesses, insbesondere eines Roboterprozesses nachbilden kann und es somit ermöglichen kann Aussagen über den gesamten Prozess zu treffen und gleichzeitig die Durchführung von insbesondere jedem Befehl des zugrundeliegenden Prozessprogramms zu beurteilen und/oder vorherzusagen.
  • Nach einer Ausführungsform kann das Verfahren ferner: Bestimmen eines Zwischenergebnisses durch den mindestens einen Teil des Algorithmus oder durch mindestens einen anderen Teil des Algorithmus oder durch einen zweiten Algorithmus, basierend auf der mindestens einen Datenzeitreihe, umfassen. Der mindestens eine Teil des Algorithmus oder der mindestens eine andere Teil des Algorithmus oder der zweite Algorithmus kann die mindestens eine Datenzeitreihe zum Bestimmen des Zwischenergebnis erhalten. Das Zwischenergebnis kann ein interpretierbares Zwischenergebnis oder ein nicht interpretierbares Zwischenergebnis sein. Unter einem interpretierbaren Zwischenergebnis wird hierin ein von einem Benutzer lesbares, bzw. erfassbares Zwischenergebnis verstanden. Insbesondere kann vom Benutzer mit dem Zwischenergebnis (bereits) ein Zustand des Prozesses abgeleitet werden und/oder eine Klassifizierung des Prozesses erkannt werden. Das Zwischenergebnis kann insbesondere eine Zuordnung zu einem vorbestimmten Prozesslabel beschreiben. Ein vorbestimmtes Prozesslabel wie hierin verwendet, kann insbesondere ein von einem Benutzer festgelegter Zustand eines Teils der Prozesskette sein. Insbesondere kann ein Roboter oder eine Anlage den Zustand „in Ordnung“ („i.O.“) oder „nicht in Ordnung“ („n.i.O.“) erhalten, je nachdem, bzw. entsprechend der (Entwicklung der) Datenzeitreihen. Insbesondere können die Prozesslabel kontinuierliche Zustände repräsentieren, wie insbesondere Werte zwischen 0,0 und 1,0, oder die Prozesslabel können Zustände repräsentieren, die insbesondere binär sind, oder einem vergleichbaren diskreten Beschreibungssystem entsprechen, wie insbesondere diskrete Labels mit insbesondere mehr als zwei Klassen, weiter insbesondere wie bei einem Prozess mit verschiedenen Fehlerklassen. Diese Zustände können als Prozesslabel insbesondere benannt werden, wie „i.O.“ oder „n.i.O.“ oder „erfolgreich“. Prozesslabel können insbesondere die Zustände in einem Prozess beschreiben, wie insbesondere „Produkt X aufgenommen“ oder „Produkt X nicht aufgenommen“, „Teil Y montiert“ oder „Teil Y nicht montiert“, oder dergleichen. Zustände für Prozesslabel können insbesondere mit maschinellem Lernen identifiziert werden und/oder manuell von einem Benutzer definiert werden. In Ausführungsformen kann ein Zustand insbesondere ein zukünftiger Zustand sein. In anderen Worten kann ein Zustand auch eine Vorhersage eines Zustands sein.
  • Insbesondere kann ein Zwischenergebnis zu dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden, insbesondere ist das Ergebnis dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet.
  • Insbesondere kann der mindestens eine Teil des Algorithmus oder der mindestens eine andere Teil des Algorithmus oder der zweite Algorithmus auf bekannten Paaren von Prozesslabeln und Datenzeitreihen trainiert werden. Der mindestens eine Teil des Algorithmus oder der mindestens eine andere Teil des Algorithmus oder der zweite Algorithmus kann dann insbesondere bei unbekannten Datenzeitreihen eine Vorhersage zu den Prozesslabeln ermitteln.
  • Hierdurch kann nach einer Ausführungsform ermöglicht werden, dass Fehler im Prozessprogramm oder in Prozessbefehlen erkannt werden und/oder markiert werden (können). Vorteilhafterweise kann damit eine Aussage über den gesamten Prozess ermöglicht werden.
  • Ein Prozessprogramm kann nach einer Ausführungsform aus einer Vielzahl von Befehlen, wie insbesondere für einen Roboterprozess aus (lin, ptp, ptp, open_gripper, lin,...), alternativ oder ergänzend aus dem Aktivieren oder Deaktivieren von Funktionen von an einem Roboter montierten Gerät(en) durch insbesondere Befehle werden, wie insbesondere das Anschalten eines Schweißgeräts oder dergleichen, bestehen. Die Befehle können insbesondere in einer beliebigen Sortierung vorliegen. Diese Sortierung kann die Verschachtelung innerhalb des Programms berücksichtigen, insbesondere bei bedingten Anweisungen („if-clauses“) oder Verzweigungen. Datenzeitreihen werden insbesondere während der Ausführung der Prozessbefehle aufgenommen Aneinandergereihte Datenzeitreihen können insbesondere eine Datengesamtzeitreihe ergeben.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann das Bestimmen des Ergebnisses durch den ersten Algorithmus oder durch den mindestens einen Teil eines Algorithmus ferner oder alternativ auf dem Zwischenergebnis basieren. Der erste Algorithmus oder der mindestens eine Teil des Algorithmus kann ferner oder alternativ das Zwischenergebnis erhalten.
  • Das Zwischenergebnis kann in einer Ausführungsform eine Zuordnung einer (unbekannten) Datenzeitreihe zu dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, umfassen, Damit kann in einer Ausführungsform ermöglicht werden, dass der Teil des Prozessprogrammes, insbesondere der Prozessbefehl oder der Teil der Prozessbefehle des Prozessprogrammes, insbesondere dargestellt werden kann, der einer erfassten Datenzeitreihe zugrunde liegt, insbesondere auf einer Benutzerschnittstelle („user interface“). Vorteilhafterweise, kann der Ablauf des Prozessprogramms in Echtzeit oder zumindest im Wesentlichen in Echtzeit über die Benutzerschnittstelle verfolgt werden, insbesondere von einem Benutzer.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann der zweite Algorithmus ein Algorithmus des maschinellen Lernens sein. Das maschinelle Lernen kann dabei: Trainieren des zweiten Algorithmus auf den Prozesslabeln (y), basierend auf der mindestens einen Datenzeitreihe zum Bestimmen eines Zwischenergebnisses, umfassen. Insbesondere kann für jeden Teil des Prozessprogrammes, insbesondere jeden Prozessbefehl oder jeden Teil der Prozessbefehle des Prozessprogrammes ein eigener und/oder entsprechender zweiter Algorithmus (automatisch) angelegt werden, der auf Datenzeitreihen, die mit der Ausführung des Teils des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes assoziiert sind, trainiert wird.
  • Dadurch kann ermöglicht werden, dass der zweite Algorithmus in vorteilhafterweise den Teil des Prozessprogrammes, insbesondere den Prozessbefehl oder den Teil der Prozessbefehle des Prozessprogrammes einem Prozesslabel (y) und einer Datenzeitreihe zuordnen kann. Damit kann in einer Ausführungsform ermöglicht werden, dass eine Datenzeitreihe mit einem Prozesslabel (y) klassifiziert werden kann. Vorteilhafterweise kann mit der Klassifizierung ermöglicht werden, dass die Datenzeitreihe dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes zugeordnet werden kann, die für die Datenzeitreihe verantwortlich sind. In anderen Worten kann der zweite Algorithmus vorteilhafterweise ermöglichen, dass eine (insbesondere erfolgreiche oder nicht erfolgreiche) Ausführung des Teils des Prozessprogrammes, insbesondere des Prozessbefehls oder des Teils der Prozessbefehle des Prozessprogrammes insbesondere festgestellt werden kann.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann der erste Algorithmus auf maschinellem Lernen basieren. Das maschinelle Lernen kann dabei Trainieren des ersten Algorithmus mit dem Zwischenergebnis des mindestens einen Teils des Algorithmus oder des mindestens einen anderen Teils des Algorithmus oder des zweiten Algorithmus auf den Prozesslabeln (y), umfassen.
  • Hierdurch kann in einer Ausführungsform ermöglicht werden, dass insbesondere über den und/oder die Algorithmen hinweg eine Datenzeitreihe mit dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes assoziiert werden kann. Ferner kann insbesondere ein Ergebnis mit dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes assoziiert werden. Das heißt, dass der erste Algorithmus insbesondere ein Ergebnis bestimmen kann, das auf den Teil des Prozessprogrammes, insbesondere den Prozessbefehl oder den Teil der Prozessbefehle des Prozessprogrammes rückführbar ist. Insbesondere kann das Ergebnis daher vorteilhafterweise eine Aussage über die Qualität der Prozessprogrammierung ermöglichen.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann die mindestens eine Datenzeitreihe aus einer Datengesamtzeitreihe des Prozesses selektiert werden. Insbesondere kann die Datengesamtzeitreihe eine oder mehrere Datenzeitreihen des Prozesses umfassen. Eine Datenzeitreihe, die aus einer Datengesamtzeitreihe selektiert wird, kann insbesondere eine Datenzeitreihe der Vielzahl an Datenzeitreihen der Datengesamtzeitreihe und/oder eine Datenzeitreihe, die einem (zeitlichen) Teil der Datengesamtzeitreihe entspricht, sein.
  • Insbesondere können Datenzeitreihen in bestimmten Fällen nicht für den einen Teil des Prozessprogrammes, insbesondere den einen Prozessbefehl oder den einen Teil der Prozessbefehle des Prozessprogrammes aufgezeichnet werden. Es kann aber in diesen Fällen möglich sein, eine Datenzeitreihe für mehrere Teile des Prozessprogramms, insbesondere für mehrere aufeinanderfolgende Prozessbefehle oder für mehrere aufeinanderfolgende Teile an Prozessbefehlen des Prozessprogramms, zu erhalten. Diese Datenzeitreihen können (ebenfalls wie die Datenzeitreihen, die für den einen Teil des Prozessprogrammes, insbesondere den einen Prozessbefehl oder den einen Teil der Prozessbefehle des Prozessprogrammes erhalten wurden) in einer Datengesamtzeitreihe umfasst sein. Eine entsprechende Datenzeitreihe kann daher aus einer Datengesamtzeitreihe selektiert werden.
  • Hierdurch können in einer Ausführungsform vorteilhafterweise Teile eines Prozesses, die in einer Datengesamtzeitreihe aufgezeichnet (bzw. erhalten wurden) mit dem einen Teil des Prozessprogrammes, insbesondere dem einen Prozessbefehl oder dem einen Teil der Prozessbefehle des Prozessprogrammes assoziiert werden, so dass ein Fehler in dem einen Teil des Prozessprogrammes, insbesondere dem einen Prozessbefehl oder dem einen Teil der Prozessbefehle des Prozessprogrammes bestimmt werden kann. Vorteilhafterweise kann dadurch ermöglicht werden, dass das ein Prozessprogramm optimiert werden kann.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann das Verfahren ferner umfassen: Analysieren des Zwischenergebnisses durch einen Anomaliedetektionsalgorithmus. Das Verfahren kann ferner Bestimmen eines Anomalieergebnisses umfassen (durch den Anomaliedetektionsalgorithmus), wobei das Anomalieergebnis einen Fehler bei der Ausführung des Teils des Prozessprogramms, insbesondere bei der Ausführung des Prozessbefehls oder des Teils der Prozessbefehle des Prozessprogramms, beschreibt. Insbesondere kann der Anomaliedetektionsalgorithmus pro Zwischenergebnis insbesondere bei unüberwachtem Lernen oder selbst-überwachtem Lernen, ermöglichen, dass Abweichungen von den Trainingsdaten der Methode der Anomaliedetektion erkannt werden. Insbesondere dann, wenn ausschließlich mit „i.O.“ -Daten trainiert wurde, kann bei einer Abweichung, bzw. bei Abweichungen die Hypothese aufgestellt werden, dass diese Abweichungen „n.i.O.“-Fälle sind. Damit kann ermöglicht werden, dass „n.i.O.“-Fälle für einen einzelnen Prozessbefehl vorhergesagt werden können. Dies ist insbesondere bei Verfahren mit überwachtem Lernen nicht möglich, da im Allgemeinen in diesen Fällen mit überwachtem Lernen keine Label für Prozessbefehle vorliegen, sondern nur globale Label. Entsprechend kann bei globalen Labeln aus einem globalen 10 Label geschlossen werden, dass alle Prozessbefehle IO waren. Bei einem globalen „n.i.O.“-Label kann aber nicht auf einen einzelnen „n.i.O.“-Prozessbefehl geschlossen werden. Insbesondere kann der Anomaliedetektionsalgorithmus basierend auf den Prozesslabeln (y) eine Vorhersage über den Prozess treffen. Insbesondere kann das Anomalieergebnisses ein Prozesslabel (y) sein, insbesondere eine Vorhersage zu einem Prozesslabel (y), insbesondere zu einer Datenzeitreihe oder einer Vielzahl an Datenzeitreihen. Der Anomaliedetektionsalgorithmus kann insbesondere als neuronales Netz, als Hauptkomponentenanalyse („principal componen analysis“ (PCA)), und/oder k-means-Algorithmus (oder dergleichen) ausgebildet sein. Der Anomaliedetektionsalgorithmus kann insbesondere mit Autoencodern trainiert werden („unsupervised learning“).
  • Hierdurch kann in einer Ausführungsform insbesondere eine Anomalie im Ablauf des Prozesses frühzeitig erkannt und/oder vorhergesagt werden. Vorteilhafterweise kann das Anomalieergebnis mit dem einen Teil des Prozessprogrammes, insbesondere dem einen Prozessbefehl oder dem einen Teil der Prozessbefehle des Prozessprogrammes assoziiert werden. Mit dem (zusätzlichen) Anomalieergebnisses kann insbesondere ermöglicht werden, dass eine Vorhersage über den (insbesondere) Prozess reichhaltiger ist, als beispielsweise eine Vorhersage mit (nur) Zwischenergebnis(sen) oder Ergebnis.
  • Nach einer Ausführungsform der vorliegenden Erfindung umfasst das Verfahren ferner: Ausgeben des Ergebnisses und/oder des Zwischenergebnisses über eine Benutzerschnittstelle (User-Interface). Alternativ oder zusätzlich kann das Verfahren Bewerten des Prozesses auf Basis des Zwischenergebnisses und/oder des Ergebnisses umfassen. Weiter alternativ oder zusätzlich kann das Verfahren Steuern des Prozesses, insbesondere des Roboterprozesses, basierend auf dem Zwischenergebnis und/oder dem Ergebnis, umfassen.
  • Insbesondere kann das Ausgeben des Ergebnisses und/oder des Zwischenergebnisses über eine Benutzerschnittstelle insbesondere akustisch, haptisch, grafisch (optisch) oder in Kombination erfolgen. Insbesondere kann ein Ausgeben auf allen gängigen Benutzerschnittstellen erfolgen. Dazu gehören insbesondere grafische Darstellung(en) auf einem Bildschirm, in einer erweiterten Realität (englisch: „augmented reality“), oder einer virtuellen Realität (englisch: „virtual reality“).
  • Das Bewerten kann ein Bewerten sein, das insbesondere außerhalb der (definierten) Prozesslabel (y) den Prozess in vordefinierte Kategorien einordnet. Das Steuern des Prozesses kann insbesondere basierend auf dem Zwischenergebnis und/oder dem Ergebnis erfolgen. Zusätzlich oder alternativ kann das Steuern des Prozesses auf dem Bewerten des Prozesses basieren.
  • Nach einer Ausführungsform der vorliegenden Erfindung umfasst das Ausgeben: Darstellen des Ergebnisses, insbesondere mit einer grafischen Darstellung, in einem Ablaufplan des Prozesses. Ein Ablaufplan kann insbesondere automatisch zu dem Teil des Prozessprogrammes oder dem Teil der Prozessbefehle des Prozessprogrammes erstellt werden.
  • Dadurch kann nach einer Ausführungsform ermöglicht werden, dass ein Benutzer insbesondere schneller erkennen kann, wo ein Fehler im Prozessprogramm auftreten kann oder aufgetreten ist. Vorteilhafterweise kann hierdurch in einer Ausführungsform ermöglicht werden, dass das Prozessprogramm einfacher verbessert werden kann.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann das Erfassen und/oder das Analysieren (Bestimmen eines Zwischenergebnisses und/oder eines Ergebnisses und/oder eines Anomalieergebnisses) der mindestens einen Datenzeitreihe zentral und/oder dezentral durchgeführt werden.
  • Insbesondere kann nach einer Ausführungsform die Rechenlast der einzelnen Schritte zentral und/oder dezentral verteilt werden. Insbesondere kann nach einer Aufführungsform ein Prozesscontroller einzelne Schritte des Verfahrens übernehmen und insbesondere das Zwischenergebnis und/oder das Ergebnis auf einem Open Platform Communications Unified Architecture (OPC UA) Server, oder dergleichen publiziert werden. Insbesondere können diese Schritte oder andere Schritte des Verfahrens auf einem Edge Controller, insbesondere dezentral, oder in der Cloud, insbesondere zentral, ausgeführt werden. Eine dezentrale und/oder zentrale Verarbeitung der Verfahrensschritte kann insbesondere von der Prozessarchitektur und/oder den Prozesskomponenten abhängen. Insbesondere kann eine Verarbeitung dynamisch auf zentrale und/oder dezentrale Recheneinheiten verteilt werden und/oder parallel ausgeführt werden.
  • Insbesondere können nach einer Ausführungsform die Algorithmen zum Bestimmen eines Zwischenergebnisses und die Algorithmen zum Bestimmen eines Ergebnisses auf unterschiedlichen Systemen untergebracht sein und/oder werden. Insbesondere kann die Auswertung der einzelnen Befehle, also insbesondere das Bestimmen eines Zwischenergebnisses, auf einem Prozesscontroller, insbesondere auf einem Robotercontroller vorgenommen werden. Diese(s) Zwischenergebnis(se) kann insbesondere auf einem OPC UA Server publiziert werden. Insbesondere kann dann ein höherwertiges System, wie insbesondere ein System auf einem Edge Controller oder in einer Cloud, die Zwischenergebnisse aggregieren, um dann insbesondere ein Ergebnis zu bestimmen.
  • Nach einer Ausführungsform der vorliegenden Erfindung kann das Verfahren ferner: Erfassen einer Datengesamtzeitreihe, wenn das Erfassen der Datenzeitreihe mit einer Zuordnung zu einem Prozessbefehl oder Prozessbefehlen nicht möglich ist, umfassen. Ferner kann das Verfahren ein Zerlegen einer Datengesamtzeitreihe in Datenzeitreihen durch einen Zerlegealgorithmus, umfassen. Insbesondere kann die Datengesamtzeitreihe mindestens einen Parameter des Prozesses beschreiben. Ferner kann die Datengesamtzeitreihe insbesondere von dem Prozess verursacht werden, der ein Prozessprogramm mit Prozessbefehlen ausführt.
  • Nach einer Ausführungsform der vorliegenden Erfindung ist der Zerlegealgorithmus ein Algorithmus des maschinellen Lernens.
  • Insbesondere kann der Zerlegealgorithmus eine Datengesamtzeitreihe derart in Datenzeitreihen zerlegen, dass eine Zuordnung der Datenzeitreihen zu dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes ermöglicht werden kann.
  • Nach einer Ausführungsform der vorliegenden Erfindung ist ein System zum Identifizieren von Fehlerursachen in einem Prozess, insbesondere in einem Roboterprozess, zur Durchführung eines Verfahrens wie in Ausführungsformen oben beschrieben, eingerichtet und/oder weist auf:
    • Mittel zum Erfassen mindestens einer Datenzeitreihe, wobei die mindestens eine Datenzeitreihe mindestens einen Parameter des Prozesses beschreibt, und wobei die Datenzeitreihe von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt, und wobei die mindestens eine Datenzeitreihe einem Teil des Prozessprogrammes, insbesondere einem Prozessbefehl oder einem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet ist;
    • Mittel zum Bestimmen eines Ergebnisses durch einen ersten Algorithmus oder durch mindestens einen Teil eines Algorithmus, basierend auf der mindestens einen Datenzeitreihe, wobei das Ergebnis einen Zustand des Prozesses beschreibt und wobei das Ergebnis dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden kann.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Bestimmen eines Zwischenergebnisses durch den mindestens einen Teil des Algorithmus oder durch mindestens einen anderen Teil des Algorithmus oder durch einen zweiten Algorithmus, basierend auf der mindestens einen Datenzeitreihe, wobei der mindestens eine Teil des Algorithmus oder der mindestens eine andere Teil des Algorithmus oder der zweite Algorithmus die mindestens eine Datenzeitreihe erhält, und wobei das Zwischenergebnis ein interpretierbares Zwischenergebnis oder ein nicht interpretierbares Zwischenergebnis ist und wobei das Zwischenergebnis eine Zuordnung zu einem vorbestimmten Prozesslabel beschreibt.
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass das Bestimmen des Ergebnisses durch den ersten Algorithmus oder durch den mindestens einen Teil eines Algorithmus ferner oder alternativ auf dem Zwischenergebnis basiert, und wobei der erste Algorithmus oder der mindestens eine Teil eines Algorithmus ferner oder alternativ das Zwischenergebnis erhält.
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass der zweite Algorithmus ein Algorithmus des maschinellen Lernens ist.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Trainieren des zweiten Algorithmus auf den Prozesslabeln (y), basierend auf der mindestens einen Datenzeitreihe zum Bestimmen eines Zwischenergebnisses.
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass der erste Algorithmus ein Algorithmus des maschinellen Lernens ist.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Trainieren des ersten Algorithmus mit dem Zwischenergebnis des mindestens einen anderen Teils des Algorithmus oder des zweiten Algorithmus auf den Prozesslabeln (y).
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass die mindestens eine Datenzeitreihe aus einer Datengesamtzeitreihe des Prozesses selektiert wird.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Analysieren des Zwischenergebnisses durch einen Anomaliedetektionsalgorithmus, und Mittel zum Bestimmen eines Anomalieergebnisses, wobei das Anomalieergebnis einen Fehler bei der Ausführung des Teils des Prozessprogramms, insbesondere bei der Ausführung des Prozessbefehls oder des Teils der Prozessbefehle des Prozessprogramms, beschreibt.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Ausgeben des Ergebnisses und/oder des Zwischenergebnisses über eine Benutzerschnittstelle (User-Interface); und/oder Mittel zum Bewerten des Prozesses auf Basis des Zwischenergebnisses und/oder des Ergebnisses; und/oder Mittel zum Steuern des Prozesses, insbesondere des Roboterprozesses, basierend auf dem Zwischenergebnis und/oder dem Ergebnis.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Darstellen des Ergebnisses, insbesondere mit einer grafischen Darstellung, in einem Ablaufplan des Prozesses.
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass das Erfassen und/oder das Bestimmen des Ergebnisses und/oder des Zwischenergebnisses und/oder des Anomalieergebnisses der mindestens einen Datenzeitreihe zentral und/oder dezentral durchgeführt wird.
  • In einer Ausführungsform weist das System bzw. seine Mittel auf: Mittel zum Erfassen einer Datengesamtzeitreihe, wenn das Erfassen der Datenzeitreihe mit einer Zuordnung zu einem Prozessbefehl oder Prozessbefehlen nicht möglich ist; und Mittel zum Zerlegen einer Datengesamtzeitreihe in Datenzeitreihen durch einen Zerlegealgorithmus, wobei die Datengesamtzeitreihe mindestens einen Parameter des Prozesses beschreibt, und wobei die Datengesamtzeitreihe von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt.
  • In einer Ausführungsform kann das System bzw. seine Mittel dazu eingerichtet sein, dass der Zerlegealgorithmus ein Algorithmus des maschinellen Lernens ist.
  • In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
  • Ein System und/oder ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere wenigstens eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den Roboter betreiben kann. Insbesondere kann ein Mittel im Sinne der vorliegenden Erfindung eine Programmiersprache und/oder Programmbibliothek aufweisen, insbesondere sein. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere computerlesbares und/oder nicht-flüchtiges, Speichermedium zum Speichern eines Programms bzw. von Anweisungen bzw. mit einem darauf gespeicherten Programm bzw. darauf gespeicherten Anweisungen aufweisen, insbesondere sein. In einer Ausführung veranlasst ein Ausführen dieses Programms bzw. dieser Anweisungen durch ein System bzw. eine Steuerung, insbesondere einen Computer oder eine Anordnung von mehreren Computern, das System bzw. die Steuerung, insbesondere den bzw. die Computer, und/oder eine Recheneinheit, dazu, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen, bzw. sind das Programm bzw. die Anweisungen hierzu eingerichtet.
  • Nach einer Ausführungsform der Erfindung ist ein Computerprogramm oder Computerprogrammprodukt vorgesehen, wobei das Computerprogramm oder Computerprogrammprodukt, insbesondere auf einem computerlesbaren und/oder nicht-flüchtigen Speichermedium gespeicherte, Anweisungen enthält, die bei der Ausführung durch einen oder mehrere Computer oder ein System nach Anspruch 12 den oder die Computer oder das System dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 11 durchzuführen.
  • Nach einer Ausführungsform kann ein Teil eines Algorithmus ein Ergebnis bestimmen. Ferner kann ein anderer Teil des Algorithmus ein Zwischenergebnis bestimmen.
  • Alternativ kann nach einer Ausführungsform ein erster Algorithmus ein Ergebnis und ein zweiter Algorithmus ein Zwischenergebnis bestimmen.
  • Alternativ kann nach einer Ausführungsform ein Ergebnis von einem Algorithmus bestimmt werden, insbesondere ohne ein Zwischenergebnis zu bestimmen.
  • Die hierein verwendete Bezeichnung „erster Algorithmus“ und „zweiter Algorithmus“ beziehen sich nicht auf eine zeitliche Abfolge der Algorithmen.
  • Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
    • 1: ein Ablaufdiagramm eines Verfahrens nach einer Ausführung der Erfindung;
    • 2: beispielhafte Datenzeitreihen eines Prozesses mit beispielhaften Labeln; und
    • 3: ein Verfahren nach einer Ausführung der vorliegenden Erfindung.
  • 1 illustriert schematisch ein Verfahren 100 zum Bewerten und/oder Überwachen eines Prozesses, insbesondere eines Roboterprozesses. Prozesse unterliegen meist einem Ablaufschema und können in der Regel mit insbesondere Sensoren überwacht werden. Eine solche Überwachung oder auch eine insbesondere von den Sensordaten abgeleitete Bewertung lässt in der Regel keinen Rückschluss auf die Programmierung des Prozesses zu.
  • Mit dem in 1 schematisch dargestellten Verfahren 100, können vorteilhafterweise Rückschlüsse zu einer Programmierung eines Prozesses, insbesondere zu einer Qualität einer Programmierung eines Prozesses gezogen werden.
  • B1, B2 bis Bn stehen in der 1 beispielhaft für Befehle in einem Prozessprogramm oder in einem Teil eines Prozessprogramms. Jedem Befehl B1 bis Bn ist ein erster Algorithmus oder mindestens ein Teil eines ersten Algorithmus oder ein zweiter Algorithmus A1, A2 bis An zugeordnet. Die durch den ersten Algorithmus oder den mindestens einen Teil des ersten Algorithmus oder den zweiten Algorithmus bestimmten Zwischenergebnisse O1, O2 bis On ergeben sich daher, wie beispielhaft dargestellt für die Datenzeitreihen Z1, Z2 bis Zn und können (insbesondere von einem Algorithmus A1 bis An) einem Befehl B1, B2 bis Bn zugeordnet werden.
  • AG stellt schematisch den mindestens einen Teil eines Algorithmus oder den ersten Algorithmus dar, der insbesondere basierend auf dem Zwischenergebnis ein Ergebnis bestimmt. Das Ergebnis Y kann insbesondere eine Zuordnung zu wenigstens einem Prozesslabel (y) sein, das einen Prozess bewertet und/oder zum Überwachen des Prozesses dient. Z bezieht sich hier beispielhaft auf eine Datengesamtzeitreihe Z, der ein Prozesslabel (y) als Ergebnis Y zugeordnet werden kann oder der ein Prozesslabel (y) als Ergebnis Y zugeordnet ist.
  • Es kann insbesondere angenommen werden, dass die Befehle in einer beliebigen Sortierung B1, B2, ... Bn vorliegen. Wird nun die fehlerhafte Durchführung eines Befehls Bi (i steht für einen beliebigen Befehl der Befehle B1 bis Bn) ermittelt oder vorhergesagt, kann das Verfahren insbesondere auf einem Userinterface die fehlerhafte Durchführung des Befehls Bi, insbesondere in einem Ablaufplan des Prozesses markieren.
  • Vorteilhafterweise kann dadurch ermöglicht werden, dass das Finden eines Fehlers für den Benutzer gezielter durchführbar ist. Weiter vorteilhaft kann insbesondere sein, dass die Struktur des Algorithmus (erster Algorithmus und zweiter Algorithmus, ein Teil des Algorithmus und ein anderer Teil des Algorithmus oder ein Algorithmus) ein verteiltes Erfassen (Aufnahme) von Datenzeitreihen ermöglicht und/oder eine verteilte Bestimmung von Ergebnis und/oder Zwischenergebnis (Auswertung) ermöglichen kann.
  • Datenzeitreihen Z1 bis Zn können insbesondere von einem Roboter generiert werden, der ein Roboterprogramm ausführt. Es können insbesondere auch mehrere Roboter oder (auch) andersartige Maschinen beteiligt sein, die Datenzeitreihen Zi generieren, bzw. deren Parameter mit insbesondere Sensoren als Datenzeitreihen aufgezeichnet werden können.
  • Ein Roboterprogramm kann insbesondere aus einer Vielzahl von Befehlen B1 bis Bn bestehen. Diese können insbesondere in einer beliebigen Sortierung vorliegen. Die Sortierung kann insbesondere die Verschachtelung innerhalb des Programms berücksichtigen, insbesondere durch die Verwendung eines Ablaufgraphen. Anhand des Ablaufgraphen können insbesondere nach dem Bestimmen eines Zwischenergebnisses und/oder eines Ergebnisses Rückschlüsse auf Abhängigkeiten im Programm gezogen werden.
  • Insbesondere können Datenzeitreihen während der Ausführung eines Befehls Bi erfasst werden, bzw. aufgenommen werden. Die erfassten Datenzeitreihen bilden insbesondere aneinandergereiht eine vollständige Datenzeitreihe Z des (betrachteten) Prozesses.
  • Falls das getrennte Aufnehmen von Datenzeitreihen Zi pro Befehl Bi insbesondere nicht möglich ist, aber eine Datengesamtzeitreihe Z für den Prozess zur Verfügung steht, kann insbesondere ein weiterer Machine learning Algorithmus verwendet werden, um die Datengesamtzeitreihe Z in die Datenzeitreihen Zi zu zerlegen. Dieser Algorithmus kann insbesondere mit Datengesamtzeitreihen Z (und Datenzeitreihen Zi) aus mehreren Prozessen trainiert werden.
  • Insbesondere kann für jeden Befehl Bi ein Algorithmus Ai angelegt werden, wie beispielhaft in 1 dargestellt. Die Algorithmen Ai können insbesondere die erste Schicht einer Hierarchie bilden. Jeder Algorithmen Ai kann als Input eine Datenzeitreihe Zi erhalten und basierend auf den Zi ein Zwischenergebnis (Output) Oi bestimmen oder generieren. Dieses Zwischenergebnis (Output) Oi kann mehrere Formen annehmen, insbesondere eine interpretierbare oder eine nicht interpretierbare. Eine zweite Schicht kann insbesondere ein weiterer Algorithmus AG darstellen, dessen Inputs insbesondere die Outputs Oi der ersten Schicht sein können. Daraus kann AG insbesondere eine Vorhersage Y für die (betrachtete) Datengesamtzeitreihe Z bestimmen.
  • Weiter insbesondere können sich für das Training der beispielhaft dargestellten Hierarchie folgende Möglichkeiten ergeben. Die Ai können insbesondere einzeln im Stile des überwachten Lernens (englisch: „supervised learning“) auf Prozesslabeln (y) trainiert werden. Anschließend kann insbesondere AG ebenfalls auf den Prozesslabeln (y) trainiert werden. Die Ai können insbesondere auf den Prozesslabeln (y) vortrainiert werden und anschließend die gesamte Hierarchie zusammen trainiert werden.
  • Alternativ oder zusätzlich können die Ai mittels eigener Prozesslabel für beispielswiese jede Datenzeitreihe Zi trainiert werden. AG kann insbesondere auf den Prozesslabeln (y) trainiert werden.
  • Alternativ oder zusätzlich können die Ai insbesondere mit Autoencodern trainiert werden („unsupervised learning“). Insbesondere kann, wenn Ai und AG als ein gemeinsames neuronales Netz ausgebildet sind, insbesondere während des überwachten Trainings, eine Zusatzbedingung, insbesondere über die Lossfunktion des neuronalen Netzes, gestellt werden, die bedingt, dass die Zwischenergebnisse normalverteilt sein müssen (Variational Autoencoder). Hierdurch kann in einer Ausführungsform insbesondere ein Code für die Zwischenschicht erzeugt werden, der anschließend von AG verwendet werden kann.
  • Nach einer Ausführungsform kann eine Hierarchie insbesondere abhängig von der Wahl der Algorithmen und/oder den (gewählten) Outputs Oi sein. Es können insbesondere weitere Schichten verwendet werden.
  • Zwischenergebnisse (Outputs) Oi können insbesondere interpretierbar Outputs Oi sein. Dies kann insbesondere dann der Fall sein, wenn die Algorithmen Ai als Regression und/oder Klassifikation im Rahmen von supervised learning sind.
  • Zusätzlich können insbesondere Konfidenzintervalle für die Zwischenergebnisse (Outputs) Oi geschätzt, bzw. ermittelt werden, insbesondere durch Dropout Sampling, mit insbesondere Mittelwert und Standardabweichung.
  • Zwischenergebnisse (Outputs) Oi können insbesondere Vektoren sein, die insbesondere nicht interpretierbar sind, aber mehr Informationen für insbesondere die zweite Schicht enthalten können, im Vergleich zu insbesondere interpretierbaren Zwischenergebnissen Oi.
  • Die Zwischenergebnisse (Outputs) Oi können insbesondere für andere (angrenzende) Systeme aufrufbar auf einem OPC UA Server publiziert werden. Insbesondere kann einer Datenzeitreihe Z1 das Prozesslabel „i.O.“ und einer zweiten Datenzeitreihe Z2 das Prozesslabel „n.i.O.“ und dem Gesamtprozess Z das Prozesslabel „n.i.O.“ zugeordnet publiziert sein. Diese Prozesslabel sind insbesondere auf Befehle B1 und B2 rückführbar. Für B2 kann daher insbesondere erkannt werden, dass der Befehl nicht korrekt oder nicht ausgeführt wurde, beziehungsweise, dass das vom Befehl B2 zu erreichende Prozessergebnis nicht oder nicht ausreichend erreicht wurde. Einem Benutzer kann ermöglicht werden, B2 insbesondere einfacher als Ursache für einen Gesamtprozess, der nicht den (insbesondere vom Benutzer definierten) Anforderungen genügt, zu identifizieren. Ferner kann insbesondere ermöglicht werden, dass der Befehl B2 optimiert werden kann und damit ein Prozess insgesamt optimiert werden kann, so dass insbesondere Anforderungen erfüllt werden können.
  • Algorithmen Ai können insbesondere Algorithmen des Maschinellen Lernens sein (englisch: „machine learning"). Es sind insbesondere alle Arten von Algorithmen des maschinellen Lernens (denkbar) einsetzbar. Entsprechend der Auswahl an Algorithmen können insbesondere die Arten von Zwischenergebnissen Oi eingeschränkt sein. Wenn insbesondere jeder Algorithmus Ai die Datenzeitreihe zu einem bekannten Roboterbefehl erhält, können Art und Größe der Datenzeitreihe im Vorhinein abgeschätzt werden. Insbesondere können hierdurch in einer Ausführungsform neuronale Netze ermöglichen, dass die Algorithmen Ai für einen neuen Befehl in einem neuen Prozess nur noch nachtrainiert werden müssen. Dies kann insbesondere die Datenlast des (Gesamt-)Algorithmus reduzieren.
  • Insbesondere kann für alle Ai die gleiche Art von Algorithmus verwendet werden und insbesondere nur auf (bestimmte) Größen von Datenzeitreihen festgelegt werden und/oder auf bestimmte Befehlsklassen, die insbesondere vortrainiert werden können.
  • Insbesondere kann die Aufgabe der Ai jeweils ähnlich sein, wie insbesondere bei gleichen Befehlen Bi. Hierdurch kann in einer Ausführungsform ermöglicht werden, dass für die neuronalen Netze insbesondere auf Weight-Sharing zurückgegriffen werden kann. Insbesondere können Abhängigkeiten der Befehle auch durch ein Recurrent Neural Network erlernt werden.
  • Insbesondere sind für AG alle Verfahren des maschinellen Lernens einsetzbar. Durch insbesondere eine Vorverarbeitung in der ersten Schicht, wie insbesondere das Bestimmen eines Zwischenergebnisses Oi, können für die zweite Schicht insbesondere Verfahren eingesetzt werden, die weniger komplexe Beziehungen modellieren aber insbesondere besser interpretierbare Ergebnisse bieten, wie insbesondere Entscheidungsbäume (englisch: „decision trees“) oder insbesondere Verfahren des Bayesian Learnings.
  • Wenn insbesondere für die Algorithmen Ai und als auch für AG neuronale Netze verwendet werden, insbesondere für (Ai + AG) mit (i = 1 bis n) mindestens ein neuronales Netz verwendet wird, können diese insbesondere gemeinsam durch Backpropagation insbesondere über die Zwischenergebnisse Oi trainiert werden. Dies kann ermöglichen, dass die gesamte Hierarchie gemeinsam trainiert werden kann. Es kann aber auch, über insbesondere Pretraining und/oder Finetuning der Algorithmen Ai oder auch über andere Prozesse, ein Transferlernen ermöglicht werden.
  • 2 zeigt schematisch eine Darstellung eines Ergebnisses anhand beispielhafter Datenzeitreihen Zi. Im unteren Bereich sind beispielhaft verschiedene Datenzeitreihen für verschiedenen Parameter dargestellt, hier beispielhaft mit Positions- und Kraftdatenzeitreihen. Im mittleren Bereich der 2 ist eine Anomaliedetektion beispielhaft dargestellt und im oberen Drittel der 2 ist ein beispielhaftes Ergebnis für eine Abschätzung (Bewertung) zu den Datenzeitreihen Zi dargestellt. In 2 sind Beispiele für Prozesslabel aufgeführt, wie insbesondere „succesful“, „not clipped“, „component missing“, „cabinet occupied“, „box occupied“, „angle diverting“, „rail missing“ und „wrong part“. Es sind andere Prozesslabel möglich, bzw. es können andere Prozesslabel vorbestimmt werden. Der hier beispielhaft dargestellte Prozess hat das Ergebnis „successful“, also „erfolgreich“.
  • 3 zeigt schematisch ein Verfahren 100 zum Bewerten und/oder Überwachen eines Prozesses, insbesondere eines Roboterprozesses. 102 stellt insbesondere das Erfassen mindestens einer Datenzeitreihe dar. 104 stellt insbesondere das Bestimmen eines Zwischenergebnisses dar. 106 stellt insbesondere das Bestimmen eines Ergebnisses dar. Mit 108 ist insbesondere das Analysieren eines Zwischenergebnisses und Bestimmen eines Anomalieergebnisses schematisch dargestellt. 110 betrifft insbesondere das Zerlegen einer Datengesamtzeitreihe in Datenzeitreihen. Die gestrichelt dargestellten Verfahrensschritte sind insbesondere optionale Verfahrensschritte, die je nach Fall Anwendung finden. Sind insbesondere Datenzeitreihen für jeden Befehl erfassbar, bedarf es keiner Zerlegung der Datenzeitreihen oder der Datengesamtzeitreihe in Datenzeitreihen, die einem Prozessbefehl zugeordnet sind. Ferner kann insbesondere ein Algorithmus ein Zwischenergebnis „intern“ verwenden, insbesondere in einer Art und Weise, in der das Zwischenergebnis nicht interpretierbar dargestellt oder publiziert wird. Es findet dann insbesondere keine „Übergabe“ des Zwischenergebnisses an einen anderen Algorithmus oder an einen ersten Algorithmus statt. Weiterhin kann eine Anomaliedetektion eine sinnvolle Ergänzung des Verfahrens sein, ein Ergebnis kann aber insbesondere ohne Anomaliedetektion bestimmt werden.
  • Ein Befehl Bi, wie in den Beispielen beschrieben, kann sich insbesondere auch auf eine Sequenz von Befehlen beziehen, für die eine Datenzeitreihe Zi erfasst wird.
  • Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist. Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten Merkmalskombinationen ergibt.
  • Bezugszeichenliste
  • 100
    Verfahren
    110
    Zerlegen einer Datengesamtzeitreihe
    102
    Erfassen mindestens einer Datenzeitreihe
    104
    Bestimmen eines Zwischenergebnisses
    106
    Bestimmen eines Ergebnisses
    108
    Bestimmen eines Anomalieergebnisses
    AG
    Teil eines Algorithmus oder erster Algorithmus
    Ai: A1 bis An
    anderer Teil eines Algorithmus oder zweiter Algorithmus
    Adi: Ad1 bis Adn
    Anomaliedetektionsalgorithmus
    Bi: B1 bis Bn
    Befehle
    Oi: O1 bis On
    Zwischenergebnis
    Zi: Z1 bis Zn
    Datenzeitreihe
    Z
    Datengesamtzeitreihe
    y
    Prozesslabel
    Y
    Ergebnis

Claims (14)

  1. Verfahren (100) zum Bewerten und/oder Überwachen eines Prozesses, insbesondere eines Roboterprozesses, umfassend: Erfassen (102) mindestens einer Datenzeitreihe (Zi), wobei die mindestens eine Datenzeitreihe (Zi) mindestens einen Parameter des Prozesses beschreibt, und wobei die Datenzeitreihe (Zi) von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt, und wobei die mindestens eine Datenzeitreihe (Zi) einem Teil des Prozessprogrammes, insbesondere einem Prozessbefehl oder einem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet ist; Bestimmen (106) eines Ergebnisses (Y) durch einen ersten Algorithmus (AG) oder durch mindestens einen Teil eines Algorithmus (AG), basierend auf der mindestens einen Datenzeitreihe (Zi), wobei das Ergebnis (Y) einen Zustand des Prozesses beschreibt und wobei das Ergebnis (Y) dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden kann, insbesondere zugeordnet ist.
  2. Verfahren (100) nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren (100) ferner umfasst: Bestimmen (104) eines Zwischenergebnisses (Oi) durch den mindestens einen Teil des Algorithmus (AG) oder durch mindestens einen anderen Teil des Algorithmus (Ai) oder durch einen zweiten Algorithmus (Ai), basierend auf der mindestens einen Datenzeitreihe (Zi), wobei der mindestens eine Teil (AG) des Algorithmus oder der mindestens eine andere Teil des Algorithmus (Ai) oder der zweite Algorithmus (Ai) die mindestens eine Datenzeitreihe (Zi) erhält, und wobei das Zwischenergebnis (Oi) ein interpretierbares Zwischenergebnis (Oi) oder ein nicht interpretierbares Zwischenergebnis (Oi) ist und wobei das Zwischenergebnis (Oi) eine Zuordnung zu einem vorbestimmten Prozesslabel beschreibt.
  3. Verfahren (100) nach Anspruch 2, dadurch gekennzeichnet, dass das Bestimmen (106) des Ergebnisses durch den ersten Algorithmus (AG) oder durch den mindestens einen Teil eines Algorithmus (AG) ferner oder alternativ auf dem Zwischenergebnis (Oi) basiert, und wobei der erste Algorithmus (AG) oder der mindestens eine Teil eines Algorithmus (AG) ferner oder alternativ das Zwischenergebnis (Oi) erhält.
  4. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der zweite Algorithmus (Ai) ein Algorithmus des maschinellen Lernens ist und wobei das maschinelle Lernen umfasst: Trainieren des zweiten Algorithmus (Ai) auf den Prozesslabeln (y), basierend auf der mindestens einen Datenzeitreihe (Zi) zum Bestimmen eines Zwischenergebnisses (Oi).
  5. Verfahren (100) nach einem der vorhergehenden Ansprüche 2 oder 3, dadurch gekennzeichnet, dass der erste Algorithmus (AG) auf maschinellem Lernen basiert, wobei das maschinelle Lernen umfasst: Trainieren des ersten Algorithmus (AG) mit dem Zwischenergebnis (Oi) des mindestens einen anderen Teils des Algorithmus (Ai) oder des zweiten Algorithmus (Ai) auf den Prozesslabeln (y).
  6. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine Datenzeitreihe (Zi) aus einer Datengesamtzeitreihe (Z) des Prozesses selektiert wird.
  7. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren (100) ferner umfasst: Analysieren des Zwischenergebnisses (Oi) durch einen Anomaliedetektionsalgorithmus (Adi), und Bestimmen (108) eines Anomalieergebnisses, wobei das Anomalieergebnis einen Fehler bei der Ausführung des Teils des Prozessprogramms, insbesondere bei der Ausführung des Prozessbefehls oder des Teils der Prozessbefehle des Prozessprogramms, beschreibt.
  8. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren (100) ferner umfasst: Ausgeben des Ergebnisses (Y) und/oder des Zwischenergebnisses (Oi) über eine Benutzerschnittstelle (User-Interface) und/oder Bewerten des Prozesses auf Basis des Zwischenergebnisses (Oi) und/oder des Ergebnisses (Y) und/oder Steuern des Prozesses, insbesondere des Roboterprozesses, basierend auf dem Zwischenergebnis (Oi) und/oder dem Ergebnis (Y).
  9. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Ausgeben umfasst: Darstellen des Ergebnisses (Y), insbesondere mit einer grafischen Darstellung, in einem Ablaufplan des Prozesses.
  10. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Erfassen (102) und/oder das Bestimmen (104, 106) des Ergebnisses (Y) und/oder des Zwischenergebnisses (Oi) und/oder des Anomalieergebnisses (108) der mindestens einen Datenzeitreihe (Zi) zentral und/oder dezentral durchgeführt wird.
  11. Verfahren (100) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren (100) ferner umfasst: Erfassen einer Datengesamtzeitreihe (Z), wenn das Erfassen der Datenzeitreihe (Zi) mit einer Zuordnung zu einem Prozessbefehl oder Prozessbefehlen nicht möglich ist; und Zerlegen einer Datengesamtzeitreihe (Z) in Datenzeitreihen (Zi) durch einen Zerlegealgorithmus, wobei die Datengesamtzeitreihe (Z) mindestens einen Parameter des Prozesses beschreibt, und wobei die Datengesamtzeitreihe (Z) von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt.
  12. Verfahren (100) nach Anspruch 10, dadurch gekennzeichnet, dass der Zerlegealgorithmus ein Algorithmus des maschinellen Lernens ist.
  13. System zum Identifizieren von Fehlerursachen in einem Prozess, insbesondere in einem Roboterprozess, das zur Durchführung eines Verfahrens (100) nach einem der vorhergehenden Ansprüche eingerichtet ist und/oder umfasst: Mittel zum Erfassen mindestens einer Datenzeitreihe (Zi), wobei die mindestens eine Datenzeitreihe (Zi) mindestens einen Parameter des Prozesses beschreibt, und wobei die Datenzeitreihe (Zi) von dem Prozess verursacht wird, der ein Prozessprogramm mit Prozessbefehlen ausführt, und wobei die mindestens eine Datenzeitreihe (Zi) einem Teil des Prozessprogrammes, insbesondere einem Prozessbefehl oder einem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet ist; Mittel zum Bestimmen eines Ergebnisses (Y) durch einen ersten Algorithmus (AG) oder durch mindestens einen Teil eines Algorithmus (AG), basierend auf der mindestens einen Datenzeitreihe (Zi), wobei das Ergebnis (Y) einen Zustand des Prozesses beschreibt und wobei das Ergebnis (Y) dem Teil des Prozessprogrammes, insbesondere dem Prozessbefehl oder dem Teil der Prozessbefehle des Prozessprogrammes, zugeordnet werden kann.
  14. Computerprogramm oder Computerprogrammprodukt, wobei das Computerprogramm oder Computerprogrammprodukt, insbesondere auf einem computerlesbaren und/oder nicht-flüchtigen Speichermedium gespeicherte, Anweisungen enthält, die bei der Ausführung durch einen oder mehrere Computer oder ein System nach Anspruch 12 den oder die Computer oder das System dazu veranlassen, ein Verfahren (100) nach einem der Ansprüche 1 bis 11 durchzuführen.
DE102021213918.3A 2021-12-07 2021-12-07 Identifikation von Fehlerursachen auf Befehlsebene in Prozessen Pending DE102021213918A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021213918.3A DE102021213918A1 (de) 2021-12-07 2021-12-07 Identifikation von Fehlerursachen auf Befehlsebene in Prozessen
PCT/EP2022/083696 WO2023104591A1 (de) 2021-12-07 2022-11-29 Identifikation von fehlerursachen auf befehlsebene in prozessen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021213918.3A DE102021213918A1 (de) 2021-12-07 2021-12-07 Identifikation von Fehlerursachen auf Befehlsebene in Prozessen

Publications (1)

Publication Number Publication Date
DE102021213918A1 true DE102021213918A1 (de) 2023-06-07

Family

ID=84519668

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021213918.3A Pending DE102021213918A1 (de) 2021-12-07 2021-12-07 Identifikation von Fehlerursachen auf Befehlsebene in Prozessen

Country Status (2)

Country Link
DE (1) DE102021213918A1 (de)
WO (1) WO2023104591A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1189126A2 (de) 2000-09-14 2002-03-20 Sulzer Markets and Technology AG Verfahren zum Überwachen einer Anlage
DE102019003382A1 (de) 2018-05-21 2019-11-21 Fanuc Corporation Anomaliedetektor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7092307B2 (ja) * 2019-02-01 2022-06-28 三菱電機株式会社 作業判別装置および作業判別方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1189126A2 (de) 2000-09-14 2002-03-20 Sulzer Markets and Technology AG Verfahren zum Überwachen einer Anlage
DE102019003382A1 (de) 2018-05-21 2019-11-21 Fanuc Corporation Anomaliedetektor

Also Published As

Publication number Publication date
WO2023104591A1 (de) 2023-06-15

Similar Documents

Publication Publication Date Title
DE102017000536B4 (de) Zellsteuereinheit zum Feststellen einer Ursache einer Anomalie bei einer Fertigungsmaschine
EP0753168B1 (de) Verfahren zur automatischen diagnose von störungsfällen
DE102006048430A1 (de) Verfahren zur Wartungsvorhersage einer Maschine
DE10007972A1 (de) Diagnosevorrichtung und -verfahren in einem Prozeßsteuersystem
DE102018133196A1 (de) Bildbasierte wartungsvorhersage und detektion von fehlbedienungen
EP3767403A1 (de) Machine-learning gestützte form- und oberflächenmessung zur produktionsüberwachung
EP1305677B1 (de) Verfahren zur ferndiagnose eines technologischen prozesses
WO2020064712A1 (de) Verfahren zur verbesserung der priorisierung von meldungen, softwarekomponente, bedien- und beobachtungssystem und automatisierungssystem
WO2010006928A1 (de) Verfahren und vorrichtung zur überprüfung und feststellung von zuständen eines sensors
EP3796117B1 (de) Diagnoseverfahren und diagnosesystem für eine verfahrenstechnische anlage
DE102021213918A1 (de) Identifikation von Fehlerursachen auf Befehlsebene in Prozessen
EP4058857A1 (de) Steuern und/oder überwachen einer maschinenanordnung
EP3605404B1 (de) Verfahren und vorrichtung zum trainieren einer maschinellen lernroutine zum steuern eines technischen systems
WO2014154281A1 (de) Objektbasierte konfiguration einer prozess- und/oder fertigungsanlage
AT522639A1 (de) Vorrichtung und Verfahren zum Visualisieren oder Beurteilen eines Prozesszustandes
EP4043976B1 (de) Verfahren und system zur vermessung von bauteilen sowie programm
EP1250666A1 (de) Verfahren zum automatisierten ermitteln von fehlerereignissen
WO2020207786A1 (de) Verfahren, vorrichtung und computerprogramm zum betreiben eines tiefen neuronalen netzes
DE102023204614B3 (de) Prozessanalyse
DE102019002506A1 (de) Gerät zum Anpassen von Messvorgangsparametern, maschinelle Lernvorrichtung und System
DE102018112647B4 (de) Verfahren zum Betreiben eines Roboters mittels eines speziellen Prozesskalküls
WO2023156127A1 (de) Computerimplementiertes verfahren zur zumindest teilweise automatisierten konfiguration eines feldbusses, feldbussystem, computerprogramm, computerlesbares speichermedium, trainingsdatensatz und verfahren zum trainieren eines konfigurations-ki-modells
KR20240116524A (ko) 프로세스의 명령 레벨에서 오류 원인의 식별
AT502241B1 (de) Verfahren und anordnung zur feststellung der abweichung von ermittelten werten
DE102021120477A1 (de) Verfahren und Anordnung zur Analyse eines Feldgeräts

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication