-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich auf ein maschinelles Lernsystem zur Unterstützung der Ingenieurtätigkeit, die Verwendung des maschinellen Lernsystems, ein Computerprogrammelement und ein computerlesbares Medium.
-
HINTERGRUND
-
Ingenieurtätigkeiten, im Folgenden auch als „Engineering“ bezeichnet, im Bereich von Industrieanlagen können eine sehr mühsame Aufgabe darstellen, die typischerweise sich wiederholende und umfangreiche Arbeiten beinhaltet. Bis zu einem gewissen Grad sind die Aufgaben bereits automatisiert, und es existieren Bibliothekselemente und Vorlagen, die die Wiederverwendung vorhandener Teile unterstützen. In der Regel sind jedoch bestimmte Aufgaben zu komplex, um einfach automatisiert werden zu können, und viele kleinere Aufgaben lohnen sich möglicherweise nicht, um automatisiert zu werden.
-
Die Steuerungslogik heutiger Prozessleitsysteme oder Prozessautomationssysteme wird in der Regel in einer der fünf Sprachen von IEC61131-3 entwickelt. Die in dieser Norm definierten Sprachen basieren entweder auf einem grafischen Engineering wie Funktionsblockdiagrammen, Ablaufplänen usw. oder stark vereinfachte textuelle Sprachen bieten die Möglichkeit, Anweisungen als Anweisungsliste oder als strukturierter Text einzugeben. In einigen Fällen werden Varianten der fünf Sprachen verwendet, oder es wird ISO (International Organization for Standardization) C verwendet. Neben der Programmierung der Steuerungen bzw. SPS (Speicherprogrammierbare Steuerung) müssen das Verarbeitungsnetzwerk konfiguriert, die IO (In/Out)-Signale auf Kanäle für konventionelle lOs abgebildet sowie verschiedene Projekteinstellungen und IT (Information Technology)-Konfigurationen vorgenommen werden. Möglicherweise müssen Bibliotheken aktualisiert und/oder angepasst und Dokumentationen geschrieben werden. Je nach Projektgröße können diese Aufgaben von einem oder mehreren Projektingenieuren übernommen werden. Je nach Projektgröße kann eine Bibliothek auch nur ausgewählt oder angepasst werden, wie z.B. mit projektspezifischen Ergänzungen, Modifikationen oder Vorlagen.
-
ZUSAMMENFASSUNG
-
Die konventionelle Lösung ist kostspielig, weshalb der Wunsch bestehen könnte, den Aufwand und damit die Kosten für diese Verfahren zu reduzieren.
-
Das Problem wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Ausführungsformen bieten die abhängigen Ansprüche, die folgende Beschreibung und die dazugehörigen Abbildungen.
-
Die beschriebenen Ausführungsformen beziehen sich in ähnlicher Weise auf das maschinelle Lernsystem zur Unterstützung des Ingenieurwesens, die Verwendung des maschinellen Lernsystems, ein Computerprogrammelement und ein computerlesbares Medium. Synergieeffekte können sich aus verschiedenen Kombinationen der Ausführungsformen ergeben, auch wenn sie möglicherweise nicht im Detail beschrieben werden.
-
Im weiteren Verlauf soll darauf hingewiesen werden, dass alle Ausführungsformen der vorliegenden Erfindung bezüglich der Schritte, die das maschinelle Lernsystem ausführen soll, so gestaltet sind, dass die Schritte in der beschriebenen Reihenfolge ausgeführt werden können, doch muss dies nicht die einzige und wesentliche Reihenfolge der Schritte sein. Die hier vorgestellten Schritte, für deren Ausführung das maschinelle Lernsystem konfiguriert ist, können mit einer anderen Reihenfolge der offengelegten Schritte ausgeführt werden, ohne von der jeweiligen Ausführungsform des maschinellen Lernsystems abzuweichen, es sei denn, es wird im Folgenden ausdrücklich das Gegenteil erwähnt.
-
Fachbegriffe werden gemäß ihrer üblichen bzw. bekannten Bedeutung verwendet. Wenn bestimmten Begriffen eine spezielle Bedeutung beigemessen wird, werden im Folgenden Definitionen von Begriffen gegeben, in deren Zusammenhang die Begriffe verwendet werden.
-
Nach einem ersten Aspekt wird ein maschinelles Lernsystem zur Unterstützung des Engineering bereitgestellt, das so konfiguriert ist, dass es die folgenden Schritte durchführt. In einem ersten Schritt werden Benutzeraktivitäten innerhalb eines Engineering-Projekts verfolgt und aufgezeichnet, wobei die Benutzeraktivitäten die Verwendung von mindestens einem im Engineering-Projekt verwendeten Engineering-Tool umfassen. In einem nächsten Schritt werden Abhängigkeiten zwischen den Benutzeraktivitäten erkannt. In einem weiteren Schritt werden Muster aus den verfolgten Benutzeraktivitäten und den erkannten Abhängigkeiten erkannt. In einem weiteren Schritt wird ein maschinelles Lernsystem basierend auf den erkannten Mustern trainiert.
-
Eine Unterstützung der Technik kann die Generierung von Unterstützungssoftware für die Technik umfassen, die Anweisungen enthält, die z.B. von einem Mikroprozessor oder Mikrocontroller, einer Verarbeitungslogik, einem FPGA (Field Programmable Gate Array), einem CPLD (Complex Programmable Logic Device) oder ähnlichem verarbeitet werden. Die Unterstützung der Technik kann zusätzlich oder alternativ auch Algorithmen zur Konfiguration eines Verarbeitungssystems, eines Netzwerks oder von technischen Werkzeugen umfassen. Dazu kann das maschinelle Lernsystem auf gespeicherte oder übertragene Daten wie Konfigurationsdaten, Textdateien, Datendateien wie xml-Dateien, Datenbanken usw. zugreifen. Das maschinelle Lernsystem kann die abgerufenen Daten zur Generierung von Aktionen verwenden, z.B. zur Erzeugung weiterer Dateien wie Konfigurationsdateien, digitale Objekte in einer Software, Dialoge mit dem Benutzer, Kommunikation usw. Konfigurationsdateien können auch von der Art sein, wie die Software selbst konfiguriert wird. Wenn das maschinelle Lernsystem Software generiert, können Beispiele die Generierung eines Web-Browsers oder eines Teils eines Web-Browsers, eines Clients oder eines Servers sein, sowie eine unabhängige ausführbare Datei, ein nach einem Flussdiagramm generierter Code, bei dem das Flussdiagramm entsprechend dem Ergebnis der Lernalgorithmen des maschinellen Lernsystems angepasst werden kann, oder andere digitale Logik sein. In einer Ausführungsform kann das maschinelle Lernsystem eine generische Software umfassen, deren Funktionalität durch die oben genannten Dateien definiert werden kann. Komplexer ausgedrückt, könnte eine Unterstützungssoftware erzeugt werden, die von einer generischen Software generiert wird, die ausführbaren Code auf der Grundlage von Eingabedaten erzeugt. Die Eingabedaten, z.B. aufgezeichnete Daten, Konfigurationsdaten, Zeit- und Regionsdaten, können Daten sein, die in einem Speicher gespeichert oder durch Kommunikation mit anderen Verarbeitungsinstanzen empfangen werden.
-
Ein Ingenieurprojekt ist in diesem Zusammenhang ein mit Hilfe der Informationstechnologie entwickeltes Projekt. Das Projekt kann Teil eines untergeordneten Projekts sein. Ein Engineering-Projekt kann Software- und Hardware-Engineering, System- und Gerätekonfiguration sowie Kommunikation aufweisen.
-
Engineering-Tools bzw. Ingenieurswerkzeuge oder technische Werkzeuge im gegenwärtigen ingenieurwissenschaftlichen und informationstechnologischen Kontext können z.B. Software- und Hardware-Entwicklungswerkzeuge, Test- und Debugging-Werkzeuge, Verwaltungswerkzeuge wie z.B. Werkzeuge zur Versionskontrolle von Dokumenten und Software, aber auch Textverarbeitungswerkzeuge und Kommunikationswerkzeuge wie z.B. E-Mail-Clients oder Client/Server-Module für den Fernzugriff auf Geräte sein.
-
Ein Muster kann ein Muster in Bezug auf zugegriffene bzw. verwendete Werkzeuge und verwendete Funktionen der Werkzeuge sein, aber auch in Bezug auf Inhalte, wie z.B. vom Benutzer geschriebener Programmiercode, Benennung von Objekten, Text und Phrasen für die menschliche Kommunikation. Eine weitere Musterkategorie kann das Einrichten von Verbindungen zu Geräten in einem drahtgebundenen und/oder drahtlosen Netzwerk sein.
-
Entsprechend einer Ausführungsform weist der Schritt der Verfolgung und Aufzeichnung von Benutzeraktionen die Verfolgung des Typs des mindestens einen Engineering-Tools und/oder der verwendeten Funktionalität und/oder der Benutzereingaben und Dialogaktionen des mindestens einen Engineering-Tools. Ein Typ kann eines der oben angeführten Beispiele sein. Anstelle eines Typs kann auch die Verwendung eines bestimmten Tools bzw. Werkzeugs, d.h. eines Produkts, verfolgt werden. Eine Funktionalität kann Aktionen wie das Starten von Tests umfassen, das Ausführen einer Debug-Sitzung, das Exportieren von Dokumentation in einem bestimmten Format und das Versenden einer E-Mail betreffen, z.B. neben dem automatisch generierten Text des Werkzeugs auch Text, den der Benutzer schreiben würde, und z.B. Adressaten, die nicht in z.B. einem vom Menschen definierten Skript oder einer Konfigurationsdatei konfiguriert sind. Als weiteres Beispiel kann der Benutzer beim Aufbau der Struktur eines industriellen Verarbeitungsnetzwerks unterstützt werden. Eine solche Unterstützung kann mit dem Aufbau der Hierarchie und der Grundstruktur eines Netzwerks beginnen und mit der Benennung von Datenobjekten, Attributen usw. fortgeführt werden. Das Netzwerk weist z.B. Busse wie Feldbusse und Geräte oder Module wie Clients, Server, Feldgeräte, Sensoren, und Aktoren auf, die in Bezug auf Adressen, Adressräume, Kontexte, Namen, Variablen, Verbindungen, Zugriffsrechte usw. konfiguriert werden müssen. Die Geräte oder Module können zumindest teilweise durch Datenobjekte repräsentiert werden. Solche Datenobjekte können zur Repräsentation eines Gerätes, z.B. eines Sensors oder Feldgerätes an einem Client-Gerät, dienen und gerätespezifische Elemente wie Attribute, Variablen, semantische Kontextelemente usw. enthalten. Die Benutzeraktivitäten können in Bezug auf die Erstellung der Struktur und der Namensräume, die Auswahl der Elemente, die Namensgebung, die Bereitstellung von Adressen usw. verfolgt werden, was der Benutzer normalerweise nach bestimmten Schemata tun kann, die in seiner Vorstellung sind oder die durch Firmenregeln vorgegeben sind.
-
Das Engineering findet in der Regel in einer Umgebung statt, in der der Benutzer mehrere Engineering-Tools verwendet. Die Benutzeraktivitäten innerhalb eines einzelnen Engineering-Tools können verfolgt werden, oder innerhalb eines Satzes von Engineering-Tools oder in der gesamten Engineering-Umgebung. Häufig weisen die Benutzeraktivitäten Abhängigkeiten in Bezug auf die verwendeten Werkzeuge auf. Ein einfaches Beispiel: Bei der Softwareentwicklung hat der Benutzer seine Programmierumgebung als erstes Werkzeug, ein Versionskontrollwerkzeug als zweites Werkzeug und ein Dokumentationswerkzeug. Nach dem Testen einer Routine kann der Benutzer den Code einchecken und schließlich die Dokumentation aktualisieren. Der Benutzer kann seine Handlungen in Abhängigkeit von verschiedenen Aspekten wie Anzahl und/oder Art der bestandenen Tests variieren, bevor er die Dokumentation entsprechend dem für ein Projekt oder einen Teil des Projekts verwendeten Stil eincheckt und durchführt. Möglicherweise sollen nur einige der verwendeten Werkzeuge in den maschinellen Lernprozess einbezogen werden. Z.B. kann der Benutzer, nachdem alle Tests bestanden sind und alle Anforderungen erfüllt sind, mit einem Release-Generator-Werkzeug eine Release-Version seiner Software erzeugen. Es kann jedoch ein vorgegebenes, striktes Verfahren geben, wie dieses Release erzeugt werden soll, das spezifiziert werden kann und das durch das maschinelle Lernsystem nicht verändert werden darf. Weiterhin können Werkzeuge, die im Entwicklungsprozess nicht als E-Mail-Anwendungen oder ein Software-Browser verwendet werden, ausgeschlossen werden. Daher können bestimmte Entwicklungswerkzeuge ausgeschlossen oder einbezogen werden. Spezifische Funktionen können innerhalb eines enthaltenen Werkzeugs implementiert werden, um die Aktivitäten des Benutzers zu erkennen.
-
Entsprechend einer Ausführungsform weist der Schritt des Verfolgens und Aufzeichnens von Benutzeraktivitäten das lokale Speichern der aufgezeichneten Benutzeraktionen und/oder das Hochladen der aufgezeichneten Benutzeraktivitäten auf einen Server und/oder in eine Cloud auf. Die aufgezeichneten Aktivitäten des Benutzers könnten verallgemeinert und in einem bestimmten Format gespeichert werden. Die Aktivitäten könnten dann lokal gespeichert oder auf einen Server oder in eine Cloud zur Speicherung und Weiterverarbeitung hochgeladen werden. Die Algorithmen des maschinellen Lernsystems greifen auf den Speicher zu, bei dem es sich um einen Speicher handeln kann, der aus Dateien wie einer Datenbank, xml-Dateien, Textdateien usw. besteht, und können Abhängigkeiten zwischen den Aktionen erkennen. Die Art oder das Format der aufgezeichneten Aktionen kann in einen von mehreren vordefinierten Werten einer vordefinierten Kategorie umgewandelt werden. Der Wertebereich kann begrenzt sein und kann z.B. numerische und/oder alphanumerische Werte, Zeichen, Ziffern, usw. umfassen.
-
Die Mustererkennung und der Aktivitätsvorschlag könnten extrahiert und in einer Bibliothek gespeichert werden, auf die mehrere Tools zugreifen können. Das heißt, Rohdaten der Nachverfolgung, oder ausgewertete Daten, aber auch generierte unterstützende Software können in einer Bibliothek oder Datenbank gespeichert werden. Im Falle von generierter, unterstützender Software kann eine Bibliothek z.B. auch ein Plugin oder eine Bibliotheksdatei mit dynamischem Link sein, die an ein Werkzeug angehängt ist. Die Software des maschinellen Lernsystems kann so konfiguriert werden, dass sie auf weitere Bibliotheken oder Datenbanken mit gelernten Mustern und Aktivitätsvorschlägen zugreift, die in der Cloud oder auf zentralen oder verteilten Servern zugänglich sind.
-
Gemäß einer Ausführungsform weist der Schritt des Verfolgens und Aufzeichnens von Benutzeraktionen das Hinzufügen eines Zeitstempels mit dem Zeitpunkt, zu der eine Benutzeraktion ausgeführt wurde auf, und der Schritt des Erkennens von Abhängigkeiten zwischen Aktionen berücksichtigt den Zeitstempel für die Erkennung von Abhängigkeiten. Die Zeitstempel können eine Beziehung zwischen den Aktionen oder eine Reihenfolge, in der die Aktionen ausgeführt werden müssen, anzeigen.
-
Gemäß einer Ausführungsform werden bei dem Schritt des Erkennens von Abhängigkeiten zwischen Aktionen Regionsinformationen berücksichtigt. Regionale Differenzierungen können für das richtige Lernen eine Rolle spielen, z.B. für die Konfiguration der richtigen Zeit, aber auch für andere regionale oder branchenspezifische Unterschiede. So müssen z.B. Industriestandards oder Zeitzonen berücksichtigt werden.
-
Gemäß einer weiteren Ausführungsform weist der Schritt des Verfolgens und Aufzeichnens von Benutzeraktivitäten die Aktivitäten eines oder mehrerer Benutzer auf. Die Quellen für die berücksichtigten Erkenntnisse sind daher aufgezeichnete Aktivitäten z.B. eines einzelnen Benutzers, eines Teams und/oder technischer Mitarbeiter eines ganzen Unternehmens.
-
Das System kann ferner eine GUI (Graphical User Interface) umfassen, die Elemente vorschlägt und erstellt und/oder die vorgeschlagenen Elemente bearbeitet. Die GUI kann werkzeugspezifisch sein und somit individuell für die spezifischen Werkzeuge implementiert werden.
-
Einer Ausführungsform zufolge weist der Schritt des Trainierens und Lernens das Empfangen von Benutzereingaben auf. Daher kann das System eine Konsolenschnittstelle oder ein GUI (Graphical User Interface) umfassen. Benutzereingaben können zusätzliche Informationen sein, mit denen der Benutzer die Eingabe in das selbstlernende System beeinflussen kann. Zum Beispiel kann das System ein überwachtes System sein, in dem der Benutzer typische Aktionen markieren oder beschriften oder dem System eine Rückmeldung geben kann, so dass das System lernen kann, ob Entscheidungen richtig oder falsch waren, um zu vermeiden, dass das System falsche Aktionen lernt.
-
Einer Ausführungsform zufolge weist der Schritt des Trainierens und Lernens das Lesen historischer Daten auf. Das heißt, im Lernprozess können aufgezeichnete Aktivitäten aktueller Projekte oder früherer Projekte berücksichtigt werden. Die Quellen für das Lernen können historische Datenquellen sein, d.h. Aktivitäten, die in den für frühere Projekte erstellten Bibliotheken aufgezeichnet wurden, sowie bestehende Ingenieurprojekte und Bibliotheken. Das System wird also sowohl von alten Projekten als auch von aktuellen Ingenieurprojekten bzw. von Benutzeraktivitäten in diesen Projekten trainiert. Die Bibliotheken oder Vorlagen werden für das aktuelle Projekt verwendet und eventuell angepasst.
-
Gemäß einer Ausführungsform weist der Schritt des Trainierens und Lernens eine Gewichtung der Nutzeraktivitäten auf. Das heißt, die Nutzeraktivitäten könnten so gewichtet werden, dass z.B. Nutzeraktivitäten lokaler Ingenieure höher gewichtet werden als Nutzeraktivitäten von Ingenieuren aus einem anderen Standort oder einer anderen Geschäftseinheit oder Industrie. Benutzergewichte könnten auch die Erfahrung eines Ingenieurs widerspiegeln.
-
Einer Ausführungsform zufolge ist das maschinelle Lernsystem ferner so konfiguriert, dass es den Schritt ausführt, die Benutzeraktionen vorherzusagen und die vorhergesagten Aktivitäten auszuführen. Das heißt, Aktivitäten, die der Benutzer wahrscheinlich ausführen würde, werden im Stillen vorhergesagt und ausgeführt.
-
Gemäß einer Ausführungsform weist der Schritt der Vorhersage von Benutzeraktionen und der Durchführung der vorhergesagten Aktionen die Anzeige der vorhergesagten Aktion an den Benutzer und die Durchführung einer Interaktion mit dem Benutzer auf. Solche Interaktionen können Dialoge in einem Konsolenfenster oder einer GUI sein.
-
Die stille Ausführung auf der einen Seite und die Interaktion auf der anderen Seite können für die Engineering-Tools oder für Funktionalitäten eines Engineering-Tools konfigurierbar sein.
-
Nach einem zweiten Aspekt wird der Einsatz des maschinellen Lernsystems in einer industriellen Verarbeitungsnetzentwicklungs- und/oder -wartungsumgebung vorgeschlagen. Darüber hinaus kann das maschinelle Lernsystem in jedem digitalen Ingenieursprojekt eingesetzt werden.
-
Nach einem weiteren Aspekt wird eine industrielle Verarbeitungsnetzentwicklungs- und/oder -wartungsumgebung bereitgestellt, die ein solches maschinelles Lernsystem aufweist. Ein solches Netzwerk kann Feldgeräte, Aktoren, Steuergeräte, Sensoren und ein Kommunikationsnetzwerk mit Feldbussen, Ethernet oder anderen drahtgebundenen oder drahtlosen Verbindungen umfassen. Das maschinelle Lernsystem kann jedoch in jeder Software- und Hardwareentwicklungs- oder -wartungsumgebung eingesetzt werden, einschließlich Netzwerkeinrichtung und -konfigurationen, Softwareeinführungs- oder Softwarefreigabeverfahren, oder in jeder Umgebung, in der IT eingerichtet werden muss und in der Werkzeuge verwendet werden.
-
Nach einem weiteren Aspekt wird ein Computerprogrammelement bereitgestellt, das bei der Ausführung durch einen Prozessor des maschinellen Lernsystems das maschinelle Lernsystem anweist, die oben beschriebenen Schritte durchzuführen.
-
Nach einem weiteren Aspekt wird ein computerlesbares Medium zur Verfügung gestellt, auf dem ein solches Programmelement gespeichert ist.
-
Das Computerprogrammelement kann Teil eines Computerprogramms sein, es kann aber auch selbst ein ganzes Programm sein. Beispielsweise kann das Computerprogrammelement dazu verwendet werden, ein bereits bestehendes Computerprogramm zu aktualisieren, um zur vorliegenden Erfindung zu gelangen.
-
Das computerlesbare Medium kann als Speichermedium angesehen werden, wie z.B. ein USB-Stick, eine CD, eine DVD, ein Datenspeichergerät, eine Festplatte oder jedes andere Medium, auf dem ein Programmelement wie oben beschrieben gespeichert werden kann.
-
Die Erfindung ermöglicht eine Kostenreduzierung durch Verringerung des Arbeitsaufwands, insbesondere in den Bereichen Projektmanagement, Programmierung, Elektrotechnik und Maschinenbau, IT-Administration oder anderen Ingenieurtätigkeiten. Das System basiert auf einem Ansatz der künstlichen Intelligenz, der eine flexible Anpassung der technischen Umgebung ermöglicht.
-
Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden mit Hilfe der beiliegenden Abbildungen und der folgenden Beschreibung besser verstanden.
-
Figurenliste
-
- 1 zeigt ein schematisches Diagramm, das die Verfolgung der Aktivität eines Benutzers und das Hochladen von Daten in die Cloud gemäß einer Ausführungsform zeigt,
- 2 zeigt schematisch den Ablauf des Daten-Uploads, der Verarbeitung und Nutzung der Daten nach einer Ausführungsform,
- 3 zeigt ein Flussdiagramm der Schritte, für die das maschinelle Lernsystem entsprechend einer Ausführungsform konfiguriert ist.
-
DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
1 zeigt ein schematisches Diagramm, das die Verfolgung der Aktivität eines Benutzers und das Hochladen von Daten in die Cloud gemäß einer Ausführungsform zeigt. Der Benutzer 102 liefert Input für ein Engineering-Tool 104. Die Eingabe wird verfolgt und aufgezeichnet und zur Speicherung und Weiterverarbeitung in eine Cloud 106 hochgeladen. Die Algorithmen des maschinellen Lernsystems können Abhängigkeiten zwischen den in der Cloud 106 gespeicherten Aktivitäten erkennen. Auch die Zeit wird gespeichert und regionale Informationen werden dem Speicher hinzugefügt. Regionale Differenzierungen können für das korrekte Lernen eine Rolle spielen, z.B. für die Konfiguration der korrekten Zeit, aber auch für andere regionale oder branchenspezifische Unterschiede.
-
2 zeigt eine schematische Darstellung des Arbeitsablaufs von Daten-Upload, Verarbeitung und Nutzung der Daten. Die Eingaben vom Tracking und vom Benutzer 102 werden so transformiert, dass das maschinelle Lernsystem in der Lage ist, die gespeicherten Informationen zu suchen, Abhängigkeiten zu erkennen und Regeln zu finden. Verbindungen zwischen Engineering-Tools werden gefunden. Zum Beispiel eine Konfiguration, die in zwei Engineering-Tools vorgenommen werden muss, wobei eines der Tools auf erstellte Projektdateien zugreifen will, die erst erstellt werden müssen und die Dateinamen übereinstimmen müssen. Es kann bestimmte Regeln geben, wie ein Dateiname zu erstellen ist. In einem anderen Beispiel kann eine Eingabe aus einer Tabellenkalkulation und aus einem Textverarbeitungsprogramm erforderlich sein. Neben der Benennung bzw. Namensgebung von z.B. Objekten gibt es weitere Beispiele für zu erkennende Muster und zu findende Regeln wie Mapping, also beispielsweise die Abbildung eines Eingangs oder Ausgangs zu einer Karte oder eines Steckplatzes, Objekthierarchie, Feldbuskonfiguration usw. Die Benennung von Objekten kann z.B. die automatische Vervollständigung des Objektnamens beinhalten. Variablen oder technische Artefakte können nach einem bestimmten Benennungsschema oder durch Neueingabe von Namen aus einer anderen Quelle benannt werden.
-
Die Software zur technischen Unterstützung kann ganze Unterstrukturen anpassen, wie beispielsweise beim intelligenten Kopieren und Einfügen, Engineering-Artefakte mit hervorgehobenen Änderungen und Vorschau zu korrigieren, Objekte nach einem Schema oder anderen Vorgaben, z.B. einer Excel-Tabelle, zu erstellen, Vorlagen entsprechend den umgebenden Objekten oder einem früheren Projekt anzupassen und zu verwenden, Einstellungen entsprechend einem früheren Projekt zu konfigurieren, Elemente nach bestimmten Regeln abzubilden (z.B. lO-Mapping) und Bibliothekselemente je nach Nutzung durch den Benutzer zu aktualisieren.
-
Im lO-Mapping-Beispiel von 2 müssen die im Engineering Tool 104 definierten Variablen 212 auf eine Ein- oder Ausgangskarte 214 abgebildet werden. Jede Karte 214 kann mehrere Steckplätze 216 haben, so dass der Steckplatz der Karte wie in Tabelle 210 angegeben werden muss. Tabelle 210 kann eine vom Programmcode 220 verwendete Konfiguration sein. Die Konfigurationseingabe des Benutzers 102 wird verfolgt und in die Cloud 106 übertragen, wo maschinelle Lernalgorithmen ausgeführt, Muster erkannt, Lösungen gefunden und Benutzeraktionen durch die maschinellen Lernalgorithmen vorhergesagt werden können und die Ergebnisse in einem Speicher oder einer Datenbank 108 gespeichert werden können. Die Datenbank 108 kann außerdem aktuelle und historische technische Projekte, Bibliotheken und Vorlagen speichern. Das Engineering-Werkzeug 204, bei dem es sich um dasselbe Werkzeug, aber um ein anderes Projekt handeln kann oder das ein weiteres Werkzeug im selben Projekt sein kann, greift über die Cloud 106 auf die in der Datenbank 108 gespeicherten Daten zu und verwendet die gespeicherten Ergebnisse zur Erzeugung einer neuen Konfiguration im Engineering-Werkzeug 204. Die Interaktion des Benutzers kann erforderlich sein, um unbekannte oder unsichere Konfigurationselemente zu lösen. Zum Beispiel kann im Engineering-Tool 204 der Name Tl1 hervorgehoben werden, und für die Variable Var2 zeigt ein Pulldown-Menü verfügbare Optionen an, wie die Variable auf die Karte abgebildet werden kann. Benutzer 102 kann daher mit dem Engineering-Tool 204 interagieren, genauer gesagt, zum Beispiel mit der DLL-Erweiterung (Dynamic Link Library) des Tools, das diesen Teil des maschinellen Lernsystems bereitstellt. Die DLL kann z.B. eine Schnittstelle zum Benutzer über eine GUI bereitstellen. Diese Benutzereingabe kann wiederum in die Algorithmen des maschinellen Lernens eingegeben werden, um die Ergebnisse weiter zu verfeinern und zu korrigieren, die dann wiederum in die Cloud übertragen und im Speicher oder in der Datenbank 108 gespeichert werden können.
-
Das heißt, während der Nutzung der Technik wird eine Verbindung zum maschinellen Lernsystem, z.B. in der Cloud, hergestellt. Es könnte auch eine lokale Replik dieser Information verwendet werden, aber vorzugsweise wird eine Verbindung zur Cloud verwendet. Das System verfolgt wiederum, was der Benutzer innerhalb des Engineering-Tools tut, und sagt dann voraus, was der Benutzer als nächstes tun und ihn mit verschiedenen Mitteln unterstützen wird.
-
Der Algorithmus kann in der Cloud laufen, um die Daten möglichst vieler Nutzer, d.h. „global“, erfassen zu können. Die Cloud kann so konfiguriert werden, dass sie die Sicherheit des Algorithmus in Bezug auf nicht erlaubte Zugriffe gewährleistet. Ferner können die gesammelten Daten anonymisiert werden.
-
Je nach Engineering- Tool können verschiedene Möglichkeiten zur Unterstützung des Benutzers angewandt werden. So kann z.B. eine Autovervollständigungs- oder Intelli-sense-Funktionalität für textuelle Programmiersprachen und/oder Listen, Raster oder Benennung von Elementen bereitgestellt werden. Beispielsweise kann ein Wort fertiggestellt werden oder ein Dropdown-Feld mit Alternativen versehen werden, die nach Bedarf gefiltert werden können. Ungewöhnlicher Text, z.B. Text, der nicht zu den gelernten Regeln passt, wird hervorgehoben oder es werden andere Einstellungen angeboten, damit der Benutzer darauf aufmerksam gemacht werden kann. Für die Verwendung von Vorlagen, z.B. Funktionsdiagrammen, kann eine grafische Vorschau verwendet werden. Je nach Benutzeraktion weiß das System, ob die Vorhersage korrekt war oder nicht, was wiederum ein Lernen zur Folge hat.
-
3 zeigt ein Flussdiagramm der Schritte, für die das maschinelle Lernsystem entsprechend einer Ausführungsform konfiguriert ist. In einem ersten Schritt 302 werden die Benutzeraktivitäten innerhalb eines Engineering-Projekts verfolgt und aufgezeichnet, wobei die Benutzeraktivitäten die Verwendung von mindestens einem im Engineering-Projekt verwendeten Engineering-Tool umfassen. In einem nächsten Schritt 304 werden Abhängigkeiten zwischen den Benutzeraktivitäten festgestellt. In einem weiteren Schritt 306 werden Muster aus den verfolgten Benutzeraktivitäten und den erkannten Abhängigkeiten erkannt. In einem weiteren Schritt 308 wird ein maschinelles Lernsystem auf der Basis der erkannten Muster 308 trainiert. Im nächsten Schritt 310 werden Benutzeraktionen vorhergesagt die vorhergesagten Benutzeraktionen ausgeführt. Weiterhin können die vorhergesagten Aktion für den Benutzer angezeigt werden und eine Interaktion mit dem Benutzer durchgeführt werden.
-
Der in dieser Erfindung beschriebene Ansatz hat mehrere Vorteile im Vergleich zu traditionellen Systemen. Erstens kann das Engineering aufgrund der besseren Werkzeugunterstützung schneller durchgeführt werden. Zweitens werden Kosten und Zeit gespart, und drittens wird die Wahrscheinlichkeit, Fehler zu machen, durch automatische Prüfungen verringert, so dass die Qualität verbessert wird.
-
Andere Variationen zu den offenbarten Ausführungsformen können von den Fachleuten, die die beanspruchte Erfindung in der Praxis anwenden, anhand des Studiums der Zeichnungen, der Offenbarung und der beigefügten Ansprüche verstanden und ausgeführt werden. In den Ansprüchen schließt das Wort „umfassend“ andere Elemente oder Schritte nicht aus, und der unbestimmte Artikel „ein“ schließt eine Pluralität nicht aus. Ein einzelner Bearbeiter oder eine andere Einheit kann die Funktionen mehrerer in den Ansprüchen genannter Elemente oder Schritte erfüllen. Die bloße Tatsache, dass bestimmte Maßnahmen in voneinander verschiedenen abhängigen Ansprüchen rezitiert werden, bedeutet nicht, dass eine Kombination dieser Maßnahmen nicht vorteilhaft eingesetzt werden kann. Ein Computerprogramm kann auf einem geeigneten Medium wie z.B. einem optischen Speichermedium oder einem Festkörpermedium, das zusammen mit oder als Teil einer anderen Hardware geliefert wird, gespeichert/verbreitet werden, kann aber auch in anderer Form verbreitet werden, z.B. über das Internet oder andere drahtgebundene oder drahtlose Telekommunikationssysteme. Etwaige Referenzzeichen in den Ansprüchen sollten nicht so ausgelegt werden, dass sie den Umfang der Ansprüche einschränken.