-
Die vorliegende Erfindung bezieht sich auf eine Kommunikationseinrichtung und ein Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine.
-
Eine Maschine, wie beispielsweise eine Druckmaschine, eine NC- oder CNC-Maschine (CNC = Computerized Numerical Control = computerunterstützte numerische Steuerung), eine Automatisierungsanlage mit insbesondere einem Schweißwerkzeug und einer Transporteinrichtung, usw. findet bei der Fertigung und/oder Bearbeitung von Produkten in vielen Bereichen Verwendung. Damit Bedienpersonal den Zustand der Maschine überwachen und bestimmen kann, hat die Maschine meist eine Bedienoberfläche, welche auch als Mensch-Maschine-Schnittstelle oder kurz HMI (Human Machine Interface) bezeichnet wird.
-
Bei derzeit bekannten Lösungen für die Bedienoberfläche besteht immer eine 1:1-Verbindung zwischen einem angezeigten Wert einer Visualisierung an der Bedienoberfläche und Variablen auf der Maschinensteuerung. Um die Variablen auf der Maschinensteuerung an der Bedienoberfläche zu visualisieren, wird von der Bedienoberfläche über einen Kommunikationstreiber eine Abfrage nach der entsprechenden Variablen auf der Maschinensteuerung an die Maschinensteuerung geleitet. Hierbei ist es bisher jedoch nicht möglich, die von der Maschinensteuerung angefragten Variablen mit einer logischen Bedingung zu verknüpfen. Die verwendeten Kommunikationstreiber leiten stattdessen die Abfragen lediglich an einen Datenserver der Maschinensteuerung weiter und senden das Ergebnis der Abfrage zurück an die Bedienoberfläche als Client.
-
Problematisch ist, dass die mit dieser Kommunikationsanbindung erstellten Visualisierungen weitestgehend statisch sind und an die jeweilige Anwendung (Applikation) angepasst werden müssen. Dadurch muss die Auswertung der visualisierten Werte bei Bedarf durch das Bedienpersonal der Maschine vorgenommen werden. Dies ist zeitaufwändig, fehleranfällig und erfordert in jedem Fall speziell ausgebildetes Personal zum Bedienen der Maschine. Wird eine Auswertung vorgenommen, so ist diese wiederum vom Bedienpersonal zu dokumentieren. Auch dieser Vorgang erfordert Zeit und ist daher kostenintensiv.
-
Daher ist es Aufgabe der vorliegenden Erfindung, eine Kommunikationseinrichtung und ein Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine bereitzustellen, mit welchen die zuvor genannten Probleme gelöst werden können. Insbesondere sollen eine Kommunikationseinrichtung und ein Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine bereitgestellt werden, bei welchen die Auswertung von Daten der Steuereinrichtung der an der Bedienoberfläche bei Bedarf schnell, kostengünstig, sicher und mit geringerem Aufwand als bisher ermöglicht wird.
-
Diese Aufgabe wird durch eine Kommunikationseinrichtung zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine nach Patentanspruch 1 gelöst.
-
Vorteilhafte weitere Ausgestaltungen der Kommunikationseinrichtung sind in den abhängigen Patentansprüchen angegeben.
-
Die Kommunikationseinrichtung ermöglicht, die statische 1:1 Verbindung zwischen einem an der Bedienoberfläche angezeigten Wert und einer Variablen der Steuereinrichtung aufzulösen. Es ist möglich, eine Anfrage in SQL-Syntax an eine Steuereinrichtung über die Kommunikationseinrichtung zu senden, ohne dass die aufwändige Umsetzung der logischen Verknüpfung in einzelne Daten zur Abfrage an die Steuereinrichtung in der Bedienoberfläche auszuführen ist. Die Kommunikationseinrichtung, welche auch gemäß einem weiteren Protokoll, insbesondere dem OPC-UA kommunizieren kann, kann diese Anfrage verarbeiten, das Ergebnis entsprechend der Anfrage-Attribute (Selektion, logische Bedingung) aufbereiten (Filtern, Sortieren, usw.) und an die abfragende Bedienoberfläche als Client senden. Damit kann die Auswertung von visualisierten Werten bei Bedarf schnell, kostengünstig, sicher und mit geringerem Aufwand als bisher ermöglicht werden.
-
Somit erleichtert die Kommunikationseinrichtung das Auslesen von Werten (Attributen) von mehreren Datenquellen. Es werden mit einer entsprechenden Abfrage nur die Datensätze herausgesucht, die wirklich relevant sind (logische Bedingungen). Das Filtern von Ergebnissen nach Relevanz ist hingegen in die Kommunikationseinrichtung verlagert und muss somit nicht in jeder Bedienoberfläche implementiert werden. Dies ist besonders vorteilhaft, wenn mehr als eine Bedienoberfläche vorhanden ist.
-
Die Aufgabe wird zudem durch ein Verfahren zur Kommunikation zwischen einer Bedienoberfläche einer Maschine und einer Steuereinrichtung der Maschine nach Patentanspruch 10 gelöst.
-
Das Verfahren erzielt die gleichen Vorteile, wie sie zuvor in Bezug auf die Kommunikationseinrichtung genannt sind.
-
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.
-
Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegende Zeichnung und anhand von Ausführungsbeispielen näher beschrieben. Es zeigen:
-
1 ein Blockschaltbild einer Maschine mit einer Kommunikationseinrichtung gemäß einem ersten Ausführungsbeispiel; und
-
2 ein schematisches Zeitverlaufsdiagramm zur Darstellung einer Kommunikation zwischen einer Bedienoberfläche und einer Steuereinrichtung der Maschine mit der Kommunikationseinrichtung gemäß dem ersten Ausführungsbeispiel;
-
In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.
-
1 zeigt eine Maschine 1 mit einer Bedienoberfläche 10, einer Kommunikationseinrichtung 20, einer Steuereinrichtung 30, welche Daten 35 der Maschine 1 speichert, und einen Webserver 40.
-
Die Maschine 1 kann beispielsweise eine Druckmaschine, eine NC-Maschine, eine CNC-Maschine, usw. sein. Die Maschine 1 kann jedoch auch ganz allgemein eine Automatisierungsanlage sein, in welcher Produkte bearbeitet und/oder gefertigt werden.
-
Die Steuereinrichtung 30 steuert die Maschine 1 und speichert hierfür die Daten 35. Die Daten 35 können Sollwerte sein, welche bei der Steuerung der Maschine 1 mit der Steuereinrichtung 30 zu erreichen sind. Zudem können die Daten Istwerte sein, welche bei der Steuerung der Maschine 1 mit der Steuereinrichtung 30 auftreten. Beispielsweise kann die Maschine 1 einen oder mehrere Antriebe, insbesondere für einen Greifer oder für ein Transportband, usw. aufweisen. Hierbei kann ein Sollwert für die Geschwindigkeit des Antriebs, insbesondere zu einer vorgegebenen Zeit, ein Sollwert für den Ansteuerstrom des Antriebs, ein Sollwert für das vom Antrieb ausgeübte Drehmoment usw. als Daten 35 in der Steuereinrichtung 30 gespeichert sein. Die Steuereinrichtung 30 kann jedoch auch zugehörige Istwerte speichern.
-
Um die Daten 35 zu überwachen, können die Daten 35 mit der Bedienoberfläche 10, genauer gesagt ihrer Anzeigeeinheit 101 angezeigt werden. Die Steuereinrichtung 30 gibt hierfür auf Anfrage von der Bedienoberfläche 10 Daten über die Kommunikationseinrichtung 20 an die Bedienoberfläche 10 weiter. Aufgrund dessen kann ein Benutzer die Daten 35, insbesondere die Sollwerte, bei Bedarf ändern und so Einfluss auf die Steuerung der Maschine 1 mit der Steuereinrichtung 30 nehmen.
-
Die Bedienoberfläche 10 kann als Anzeigeeinrichtung ausgeführt sein, welche Ergebnisdaten 38 optisch und gegebenenfalls akustisch, beispielsweise in Form von Signaltönen als Warnung bei Grenzwertüberschreitung, anzeigt.
-
Die Bedienoberfläche 10 hat zudem eine erste bis dritte Schnittstelle 11, 12, 13 zu der Kommunikationseinrichtung 20. Die Kommunikationseinrichtung 20 hat eine erste bis dritte Schnittstelle 21, 22, 23 zu der Bedienoberfläche 10 und eine vierte und fünfte Schnittstelle 24, 25 zu der Steuereinrichtung 30. Die Steuereinrichtung 30 hat eine erste und zweite Schnittstelle 31, 32 zu der Kommunikationseinrichtung 20..
-
Zur Verbindung zwischen der Bedienoberfläche 10 und der Kommunikationseinrichtung 20 dienen zum einen die Schnittstellen 11, 21, zum anderen die Schnittstellen 12, 22 und des Weiteren die Schnittstellen 13, 23. Die Schnittstellen 11, 21 ermöglichen bei dem vorliegenden Ausführungsbeispiel eine Kommunikation zwischen der Bedienoberfläche 10 und der Kommunikationseinrichtung 20 als proprietäre MLPI-Schnittstelle (MLPI = Motion Logic Programming Interface). Die Schnittstellen 24, 31 entsprechen den Schnittstellen 11, 21.
-
Die Schnittstellen 12, 22 ermöglichen bei dem vorliegenden Ausführungsbeispiel eine Kommunikation zwischen der Bedienoberfläche 10 und der Kommunikationseinrichtung 20 auf der Grundlage eines industriellen M2M-Kommunikationsprotokolls. Hierbei kann das industrielle M2M-Kommunikationsprotokoll OPC Unified Architecture sein, das auch kurz OPC UA genannt wird. Als derzeit neueste aller OPC-Spezifikationen der OPC Foundation unterscheidet sich OPC UA erheblich von seinen Vorgängern, insbesondere durch die Fähigkeit, Maschinendaten (Prozesswerte, Messwerte, Parameter usw.) nicht nur zu transportieren, sondern auch maschinenlesbar semantisch zu beschreiben. Die Schnittstellen 25, 32 entsprechen den Schnittstellen 12, 22.
-
Die Schnittstellen 13, 23 ermöglichen bei dem vorliegenden Ausführungsbeispiel eine Kommunikation zwischen der Bedienoberfläche 10 und der Kommunikationseinrichtung 20 mit dem WebSocket-Protokoll.. Dadurch kann die Bedienoberfläche 10 plattformunabhängig zum Beispiel mit HTML (HyperText Markup Language) und JavaScript implementiert werden. Die Kommunikationseinrichtung 20 hat einen WebSocket-Protokoll-Umsetzer 201, welcher die Anfragen von der Bedienoberfläche 10 über die Schnittstellen 13, 23 wiederum mit Hilfe einer MLPI-Einheit 202 in das native MLPI-Format oder mit Hilfe einer UA. Einheit 203 in das OPC-Format übersetzt.
-
Zudem hat die Kommunikationseinrichtung 20 bei dem vorliegenden Ausführungsbeispiel eine SQL-Verarbeitungseinheit 204, um welche der WebSocket-Protokollumsetzer 201 erweitert ist. Die Schnittstellen 13, 23, der WebSocket-Protokollumsetzer 201 und die SQL-Verarbeitungseinheit 204 ermöglichen eine Kommunikation zwischen der Bedienoberfläche 10 und der Kommunikationseinrichtung 20 auf der Grundlage einer an eine strukturierte Abfragesprache SQL (Structured Query Language) angelehnten Syntax. Das WebSocket Protokoll ist Teil der HTML5 Spezifikation und wird von allen HTML5-fähigen Web-Browsern unterstützt. Merkmale von WebSockets liegen in der konstanten Verbindung zwischen Client, beispielsweise der Bedienoberfläche 10, und Server, beispielsweise der Kommunikationseinrichtung 20, während des gesamten Ablaufs oder Sitzung (Session). Es ermöglicht eine bidirektionale Kommunikation, sodass das ineffiziente Anfrage/Antwort-Verfahren (Request/Response-Verfahren (Polling)), wie es beim HTTP-Protokoll nötig ist, entfällt.
-
Die WebSocket-Schnittstelle dient bei der Maschine 1 als hoch effizienter und plattformunabhängiger Kommunikationskanal zum Versenden der SQL-Anfragen und deren Ergebnisse zwischen der Bedienoberfläche 10 als Visu-Client und der Kommunikationseinrichtung 20 als Kommunikationsserver.
-
Die Bedienoberfläche 10 ist somit in der Lage, über die Kommunikationseinrichtung 20 eine Abfrage gemäß einer an SQL angelehnten Syntax an die Steuereinrichtung 30 zum Erlangen der Daten 35 in einer logischen Verknüpfung zu starten.
-
2 veranschaulicht eine Folge einer Abfrage 50 von der Bedienoberfläche 10 über die Kommunikationseinrichtung 20 in einer an SQL angelehnten Syntax an die Steuereinrichtung 30. Die Kommunikationseinrichtung 20, genauer die SQL-Verarbeitungseinheit 204, hat hierfür eine Abfragebearbeitungseinrichtung 231, eine Anfragesteuereinrichtung 232 und eine Anfrageeinrichtung 233. Die Abfrage 50 umfasst eine logische Verknüpfung von Daten 35 der Maschine 1 und fragt ein Ergebnis als Ergebnisdaten 38 für die logische Verknüpfung bei der Steuereinrichtung 30 der Maschine 1 an. Die Ergebnisdaten 38 der logischen Verknüpfung werden dann auf der Bedienoberfläche 10 für einen Benutzer angezeigt. Mit einer oder mehreren Abfrage(n) 50 können dynamische Datenmodelle erstellt werden.
-
Die Abfrage 50 verwendet eine an SQL (Structured Query Language = Strukturierte Abfragesprache) angelehnte Syntax. SQL findet bei Datenbanken als Abfragesprache Verwendung, Ziel ist die effiziente Auswahl einer Teilmenge des zugrundeliegenden Informationsbestandes der Daten 35, wie insbesondere die Auswahl bestimmter Sollwerte, Istwerte, Parameter, SPS-Variablen, usw.. Damit ist es mit einer oder mehreren Abfrage(n) 50 möglich, komplexe Datenmodelle zu erstellen.
-
Die Kommunikationseinrichtung 20, genauer gesagt die SQL-Verarbeitungseinheit 204, erlangt aus den Daten 35 Attribute 36, Zwischenergebnisse 37 und Ergebnisdaten 38 durch eine Abfragekette 50 bis 64 und Schleifen 71, 72.
-
Die Abfrage 50 ist allgemein folgendermaßen aufgebaut:
SELECT [ALL | DISTINCT] {spalten | *}
FROM tabelle [alias] [tabelle [alias]] ...
[WHERE {bedingung | unterabfrage}]
[GROUP BY spalten [HAVING {bedingung | unterabfrage}]]
[ORDER BY spalten [ASC | DESC] ...];
-
Somit werden mit einer Abfrage 50 entweder alle oder nur zumindest eine der Spalten einer oder mehrerer Datentabelle ausgewählt und ermittelt, ob eine bestimmte Bedingung und/oder Unterabfrage erfüllt ist.
-
Soll beispielsweise eine Warnung angezeigt werden, wenn die Ist-Geschwindigkeit eines aktiven Antriebs (Drive) von mehreren Antrieben 1 bis 6 (Drive1 bis Drive 6) der Maschine 1 einen Wert von 100 m/s überschreitet, lauten die beiden Abfragen 50:
- – SELECT iActualVelocity, bIsActive FROM Drive1, Drive2, Drive3, Drive4, Drive5, Drive6 WHERE iActiualVelocity > 100 AND bIsActive = true;
- – SELECT sDiagMsg, xType FROM arDiagList WHERE xType != “Warning”
-
Hierfür gibt gemäß 2 die Bedienoberfläche 10 über die Schnittstellen 13, 23 eine Abfrage 50 an die Kommunikationseinrichtung 20, genauer gesagt die SQL-Verarbeitungseinheit 204, weiter. Die Abfrage 50 kann strukturiert sein mit SELECT * FROM* WHERE. Die Abfrage 50 wird von der SQL-Verarbeitungseinheit 204 in eine neue Abfrage 51 (new (Query, fnCallback) gewandelt und an die Abfragebearbeitungseinheit 231 weitergeleitet. Die Abfragebearbeitungseinrichtung 231 sendet eine Initialisierung 52 an die Anfragesteuereinrichtung 232, welche daraufhin eine Schleife 71 startet, um für eine Anfrage (Request) in der Abfrage (Query) eine neue Anfrage 53 (new (Request, fnCallback) an die Anfrageeinrichtung 233 weiterzugeben. Die Anfrageeinrichtung 233 sendet jeweils entsprechende Anfragen 54 (send) über die Schnittstellen 28, 32 mit einem Lesebefehl 55 (read) für die Daten 35 an die Steuereinrichtung 30. Infolgedessen werden die aus den Daten 35 zu lesenden Attribute 36 über die Antworten 56, 57 an die Anfrageeinrichtung 233 zurückgegeben, welche die zu lesenden Attribute 36 an die Anfragesteuereinrichtung 232 in einer Antwort 58 (fnCallback(result)) weitergibt. Die Anfragesteuereinrichtung 232 fügt in einer Unterroutine 59 (addToResultQueue(result)) das jeweils empfangene Attribut 36 zu einer Antwortschlange als Zwischenergebnis 37. Bei einer Unterroutine 60 in einer Schleife 71 wartet die Anfragesteuereinrichtung 232, bis alle Anfragen 53, 54 und Lesebefehle 55 ausgeführt und Antworten 56, 57, 58 und darauffolgende Unterroutinen 59 ausgeführt wurden. Ist dies der Fall, sendet die Anfragesteuereinrichtung 232 die Antwort 61 (Ende = done) an die Abfragebearbeitungseinrichtung 231. Die Abfragebearbeitungseinrichtung 231 bereitet dann in einer Sequenz 62 die Ergebnisse (im JSON-Format oder einem anderen strukturierten, maschinenlesbaren Format) der Antworten 56, 57, 58, 61 und darauffolgende Unterroutinen 59, 60 durch Filtern (WHERE-Klausel) und/oder Sortieren (ORDERBY-Klausel) und/oder Zusammenführen (JOIN) und/oder Umbenennen (AS) auf. Das Ergebnis als Ergebnisdaten 38 der Sequenz 62 wird als Abfrageantwort 63 (fnCallback(JSON)) an die Schnittstellen 13, 23 und anschließend als Abfrageantwort 64 (JSONResult)) an die Bedienoberfläche 10 als Ergebnisdaten 38 weitergegeben.
-
Somit wird bei dem zuvor beschriebenen Verfahren mit der Bedienoberfläche 10 zumindest eine Abfrage 50 für eine logische Verknüpfung von Daten 35 der Maschine 1 erstellt und das Ergebnis der logischen Verknüpfung als Ergebnisdaten 38 bei der Steuereinrichtung 30 der Maschine 1 abgefragt. Das Ergebnis der logischen Verknüpfung kann dann mit der Bedienoberfläche 10 an der Anzeigeeinheit 101 angezeigt werden. Hierbei wandelt die Kommunikationseinrichtung 20 für eine Kommunikation mit der Steuereinrichtung 30 eine Kommunikation der Schnittstellen 13, 23 gemäß einem dritten Protokoll, nämlich dem WebSocket-Protokoll, in eine Kommunikation gemäß dem ersten oder zweiten Protokoll, nämlich dem Protokoll über die MLPI-Schnittstelle oder dem industriellen M2M-Kommunikationsprotokoll, insbesondere OPC Unified Architecture, über die OPC-UA-Schnittstelle 12, 22 um.
-
Gemäß einem zweiten Ausführungsbeispiel sind mehrere Bedienoberflächen 10 an die Kommunikationseinrichtung 20 angeschlossen. Somit kann die Kommunikationseinrichtung 20 die Abfrageergebnisse für alle angeschlossenen Bedienoberflächen 10 aufbereiten.
-
Alle zuvor beschriebenen Ausgestaltungen der Bedienoberfläche 10, der Kommunikationseinrichtung 20 und des Verfahrens können einzeln oder in allen möglichen Kombinationen Verwendung finden. Insbesondere können alle Merkmale und/oder Funktionen der zuvor beschriebenen Ausführungsbeispiele beliebig kombiniert werden. Zusätzlich sind insbesondere folgende Modifikationen denkbar.
-
Die in den Figuren dargestellten Teile sind schematisch dargestellt und können in der genauen Ausgestaltung von den in den Figuren gezeigten Formen abweichen, solange deren zuvor beschriebenen Funktionen gewährleistet sind.
-
Die Steuereinrichtung 30 kann auch eine andere Datenquelle sein, wie beispielsweise ein Datenserver, auf welchen die Steuereinrichtung 30 bei der Steuerung zum Erlangen der Daten 35 zugreift.