-
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer Industriemaschine mit wenigstens einer Bewegungsachse, wobei die Industriemaschine mittels einer CNC-Steuerung gesteuert wird und wobei ein Client an die CNC-Steuerung angebunden ist.
-
Stand der Technik
-
Mittels einer Computerized Numerical Control (CNC) können Werkzeugmaschinen (CNC-Werkzeugmaschinen, CNC-Maschinen) gesteuert und geregelt werden. Mittels derartiger CNC-Maschinen können komplexe Werkstücke mit hoher Präzision und hoher Geschwindigkeit automatisch hergestellt werden.
-
Eine CNC kann dabei eine CNC-Steuerung zur Fertigungsautomatisierung umfassen, beispielsweise ein zweckmäßiges Steuergerät. Mittels einer derartigen CNC-Steuerung kann eine Bewegungssteuerung von unterschiedlichen Aktuatoren (umgangssprachlich auch als Achsen bezeichnet) der Werkzeugmaschine ermöglicht werden (Motion-Control).
-
Weiterhin kann mittels einer CNC-Steuerung eine Robot-Control implementiert werden. Dabei kann eine vollständige Funktionalität für mehrachsige Bahninterpolation im Raum erreicht werden. Mittels einer CNC-Steuerung kann somit beispielsweise ein automatisches Drehen, Fräsen, Bohren, Schleifen, Biegen, Nibbeln, Stanzen, Formschneiden und Handhaben des mit der Werkzeugmaschine herzustellenden Werkstücks ermöglicht werden.
-
Eine CNC-Steuerung kann an weitere Hardware- und/oder Software-Komponenten (sogenannte Clients) angebunden werden, mittels welcher der Herstellungsprozess des Werkstücks beispielsweise überwacht werden kann oder mittels welcher ein Benutzer Einfluss auf den Herstellungsprozess nehmen kann. Dabei sollen insbesondere Positionswerte der unterschiedlichen Aktuatoren der Werkzeugmaschine von der CNC-Steuerung an den Clients übertragen werden.
-
Diese Positionswerte werden von der CNC-Steuerung zumeist in einem festen Takt erzeugt. Diese Positionswerte können beispielsweise Soll-Positionswerte sein, welche von der CNC-Steuerung an die Werkzeugmaschine in dem festen Takt übermittelt werden, um die Aktuatoren entsprechend anzusteuern. Die Aktuatorpositionswerte beschreiben insbesondere eine Bewegungsbahn, welche der Aktuator bzw. das über den Aktuator bewegbare Werkzeug beschreibt.
-
Oftmals ist eine Übertragung derartiger Aktuatorpositionswerte der Werkzeugmaschine an den Client jedoch nicht in diesem festen Takt möglich, weil der Client üblicherweise nicht echtzeitfähig an die CNC-Steuerung angebunden ist. Somit erhält der Client Aktuatorpositionswerte in unterschiedlichen, nicht-kontinuierlichen Zeitabständen. Die Bewegungsbahn kann somit nicht mit einer homogenen, kontinuierlichen Abtastrate an den Client übermittelt werden.
-
Oftmals kann es jedoch gewünscht oder auch notwendig sein, die Aktuatorpositionswerte in einem festen Takt an den Client zu übermitteln. Beispielsweise, wenn mittels des Clients die Werkzeugmaschine bzw. der Herstellungsprozess überwacht werden soll, ist es von Bedeutung, dass der Client den Positionswerten Zeitpunkte zuordnen kann. Somit ist gewährleistet, dass der Client die Bewegungsbahn des Aktuators nachvollziehen und überwachen kann. Ein derartiger Zeitbezug zwischen Positionswerten und bestimmten Zeitpunkten ist beispielsweise von Nöten, falls diese Positionswerte mit weiteren Bewegungen bzw. Bewegungsbahnen der Werkzeugmaschine verglichen oder in Bezug gebracht werden sollen. Dies kann beispielsweise bei der Hubbewegung eines Stanzwerkzeuges einer Stanzmaschine der Fall sein.
-
Es ist daher wünschenswert, eine Möglichkeit bereitzustellen, um eine Übertragung von Positionswerten wenigstens eines Aktuators einer CNC-Werkzeugmaschine durch eine CNC-Steuerung mit einer mit einer festen, homogenen Abtastrate zu ermöglichen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß wird ein Verfahren zum Betreiben einer Industriemaschine mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Industriemaschine wird mittels einer CNC-Steuerung (Computerized Numerical Control Steuerung) gesteuert. Insbesondere wird mittels der Werkzeugmaschine ein Werkstück hergestellt. Die Industriemaschine umfasst dabei wenigstens einen Aktuator. Insbesondere wird dieser Aktuator (z.B. Rotations- oder Linearantrieb) durch die CNC-Steuerung entsprechend angesteuert, um das Werkstück zu bearbeiten. Mittels der CNC-Steuerung wird eine Bewegungssteuerung des Aktuators der Industriemaschine ermöglicht. Die Erfindung soll nicht auf einen einzigen Aktuator der Industriemaschine beschränkt sein, sondern eignet sich für eine zweckmäßige Anzahl an Aktuatoren.
-
Komponenten der Industriemaschine, beispielsweise unterschiedliche Werkzeuge, sind mittels derartiger Aktuatoren bewegbar. Die Aktuatoren werden von der CNC-Steuerung entsprechend angesteuert, damit die jeweiligen über die Aktuatoren bewegbaren Komponenten eine bestimmte Bewegung ausführen und das Werkstück bearbeiten.
-
Die Industriemaschine ist insbesondere als eine Werkzeugmaschine ausgebildet. Die Industriemaschine kann weiterhin beispielsweise als eine Bearbeitungsmaschine, Druckmaschine, Zeitungsdruckmaschine, Verpackungsmaschine, Industrieroboter, Transportband, usw. ausgebildet sein.
-
Ein Client ist an die CNC-Steuerung angebunden, beispielsweise über eine herkömmliche, nicht-echtzeitfähige Datenverbindung, z.B. WLAN, Ethernet, USB. Insbesondere wird mittels des Clients die Industriemaschine bzw. der Herstellungsprozess des Werkstücks überwacht. Client und CNC-Steuerung sind insbesondere miteinander vernetzt und können miteinander kommunizieren. Ein derartiger Client ist insbesondere eine Hardware- und/oder Software-Komponente. Der Client kann beispielsweise als ein Computer ausgebildet sein, mittels welchem die Industriemaschine überwacht wird. Weiter insbesondere kann der Client auch als Anwendung oder Prozess ausgebildet sein, welcher auf einem Computer ausgeführt wird und mittels welchem die Industriemaschine überwacht wird.
-
Insbesondere sind die Industriemaschine, die CNC-Steuerung und der Client Komponenten einer (leittechnischen) Anlage. Industriemaschine und CNC-Steuerung sind insbesondere Komponenten einer Feldebene dieser Anlage, der Client ist insbesondere eine Komponente einer Leitebene dieser Anlage. Die Feldebene beschreibt dabei mechanische, elektrische, hydraulische, pneumatische oder ähnliche Komponenten der Anlage sowie Sensoren, Aktoren, Antriebe, Fühler, Taster und Schalter. Die Leitebene beschreibt die oberste Ebene der Anlage, in welcher Organisation, Planung, Management der gesamten Anlage ablaufen.
-
Im Zuge des erfindungsgemäßen Verfahrens sollen Positionswerte des Aktuators an den Client übermittelt werden. Erfindungsgemäß erfolgt die Übermittlung dieser Positionswerte in drei Schritten, welche jeweils kontinuierlich in einem festen, jeweils eigenen Zeittakt durchgeführt werden. Die Positionswerte können neben der Position auch weitere Daten, wie z.B. Zeitstempel enthalten.
-
In einem ersten Schritt, welcher kontinuierlich in einem ersten Zeittakt durchgeführt bzw. wiederholt wird, werden Positionswerte des Aktuators der Werkzeugmaschine bestimmt und in eine erste Queue-Datenstruktur geschrieben. Insbesondere wird dabei pro ersten Zeittakt jeweils ein Positionswert in die erste Queue-Datenstruktur geschrieben. Die Positionswerte können dabei insbesondere mit einem Zeitstempel versehen werden.
-
In einem zweiten Schritt, welcher kontinuierlich in einem zweiten Zeittakt wiederholt wird, werden in der ersten Queue-Datenstruktur hinterlegte Positionswerte in eine zweite Queue-Datenstruktur geschrieben. Dabei wird pro zweiten Zeittakt eine erste Anzahl von Positionswerten von der ersten Queue-Datenstruktur in die zweite Queue-Datenstruktur geschrieben. Vorzugsweise ergibt sich die erste Anzahl als Quotient von zweitem zu erstem Zeittakt.
-
In einem dritten Schritt, welcher kontinuierlich in einem dritten Zeittakt wiederholt wird, werden in der zweiten Queue-Datenstruktur hinterlegte Positionswerte an den Client übermittelt. Insbesondere ist der zweite Zeittakt dabei länger als der erste Zeittakt, weiter insbesondere ist der dritte Zeittakt länger als der zweite Zeittakt. Dabei wird pro dritten Zeittakt eine zweite Anzahl von Positionswerten von der zweiten Queue-Datenstruktur an den Client übermittelt. Die zweite Anzahl ist dabei insbesondere größer als die erste Anzahl. Vorzugsweise ergibt sich die zweite Anzahl als Quotient von drittem zu erstem Zeittakt.
-
Insbesondere werden in der zweiten Queue-Datenstruktur hinterlegten Positionswerte gelöscht, nachdem diese an den Client übermittelt wurden. Sollte sich die Übertragung an den Client verzögern und nicht innerhalb des dritten Zeittakts durchgeführt werden, werden die Positionswerte in der zweiten Queue-Datenstruktur nicht gelöscht und im Zuge der nachfolgenden Übertragung gemäß dem dritten Zeittakt übermittelt.
-
Eine Queue-Datenstruktur wird dabei nach einem First In-First Out-Prinzip (FIFO) beschrieben und ausgelesen. Elemente bzw. Speichereinträge werden in der Reihenfolge aus der Queue-Datenstruktur abgerufen, in welcher sie zuvor in der Queue-Datenstruktur abgelegt wurden.
-
Vorteile der Erfindung
-
Die Positionswerte des Aktuator werden nicht einzeln an den Client übertragen, sobald diese bestimmt werden. Stattdessen wird zunächst die erste Anzahl von Positionswerten in der ersten Queue-Datenstruktur gesammelt. Eine größere zweite Anzahl an Positionswerten wird in der zweiten Queue-Datenstruktur gesammelt. Insbesondere sämtliche Positionswerte, die innerhalb der Zeitdauer des dritten Zeittakts in der zweiten Queue-Datenstruktur gesammelt wurden, werden komplett an den Client übertragen. Der Client erhält somit nicht einzelne Positionswerte in unregelmäßigen Zeitabständen, sondern eine Vielzahl von Positionswerte in dem regelmäßigen Zeitabstand des dritten Zeittakts. Somit wird gewährleistet, dass dem Client stets kontinuierlich Positionswerte vorliegen.
-
Der erste Zeittakt gibt an, in welchem Zeitabstand die Positionswerte bereitgestellt werden, also in welchem Zeittakt Daten von einer Datenquelle bereitgestellt werden. Der zweite Zeittakt gibt an, in welchem Zeitabstand die Positionswerte in die zweite Queue-Datenstruktur geschrieben werden. Der zweite Zeittakt kann auch als Sampling-Intervall bezeichnet werden. Der dritte Zeittakt gibt an, in welchem Zeitabstand die Daten aus der zweiten Queue-Datenstruktur ausgelesen und an den Client übertragen werden. Der dritte Zeittakt kann auch als Publishing-Intervall bezeichnet werden.
-
Die einzelnen Zeittakte können dabei insbesondere variiert und flexibel angepasst werden. Insbesondere wird der zweite Zeittakt angepasst. Somit wird insbesondere ermöglicht, dass der zweite Zeittakt an unterschiedliche Clients bzw. an unterschiedliche Bedürfnisse unterschiedlicher Clients angepasst wird. Unterschiedlichen Clients können somit Queue-Datenstrukturen mit unterschiedlichen Speicherkapazitäten und unterschiedlich große Zeittakte zugewiesen werden.
-
Die Positionswerte können absolute Positionen im Raum oder relative Positionen in Bezug auf einzelne Komponenten der Industriemaschine sein. Weiterhin können die Positionswerte Positionen des Aktuators beschreiben oder Positionen einer Komponente (beispielsweise eines Werkzeugs), welches über den Aktuator bewegt wird.
-
Die Positionswerte werden insbesondere im Zuge einer Bahninterpolation bestimmt, weiter insbesondere durch einen Interpolator der CNC-Steuerung. Die Positionswerte beschreiben insbesondere eine Bewegungsbahn. Insbesondere ist diese Bahnbewegung eine Soll-Bewegung, welche der Aktuator ausführen soll. Die CNC-Steuerung steuert den Aktuator entsprechend an, um diese Soll-Bewegung auszuführen. Dabei werden die Positionswerte insbesondere als Stützstellen für die Bahninterpolation bestimmt. Die Soll-Bewegung des Aktuators wird somit in diese einzelnen Stützstellen zerlegt. Die Positionswerte sind somit insbesondere Soll-Positionswerte für die Bahnbewegung. Die Positionswerte werden in einem festen Interpolationstakt bestimmt. Dieser Interpolationstakt bestimmt die Genauigkeit der Bahnbewegung. Der Interpolationstakt wird insbesondere vergleichsweise klein gewählt. Somit kann beispielsweise auch bei stark gekrümmten Bahnbewegungen oder hohen Geschwindigkeiten eine hohe Präzision der Bahnbewegung erreicht werden. Insbesondere entspricht der erste Zeittakt diesem Interpolationstakt.
-
Bevorzugt beträgt der erste Zeittakt bzw. der Interpolationstakt 1 ms. Die Positionswerte werden somit im Interpolationstakt in der ersten Queue-Datenstruktur gesammelt. Die Erfindung ermöglicht somit eine Übertragung kontinuierlicher Positionswerte des Aktuators der Industriemaschine mit einer festen Abtastrate, insbesondere im Millisekunden-Bereich.
-
Bevorzugt werden pro zweiten Zeittakt sämtliche in der ersten Queue-Datenstruktur hinterlegten Positionswerte in die zweite Queue-Datenstruktur geschrieben. Die erste Anzahl von Positionswerte, die pro zweiten Zeittakt von der ersten in die zweite Queue-Datenstruktur gespeichert werden, ist dabei aus dem Verhältnis von dem zweiten Zeittakt zu dem ersten Zeittakt bestimmt.
-
Weiter bevorzugt werden pro dritten Zeittakt sämtliche in der zweiten Queue-Datenstruktur hinterlegten Positionswerte an den Client übermittelt. Die zweite Anzahl von Positionswerten, die pro dritten Zeittakt an den Client übermittelt werden, ist insbesondere aus dem Verhältnis von dem dritten Zeittakt zu dem ersten Zeittakt bestimmt.
-
Vorteilhafterweise ist die Anbindung des Clients an die CNC-Steuerung mittels der Kommunikationstechnologie OPC UA realisiert. OPC UA (OPC Unified Architecture) ist eine Weiterentwicklung der OLE for Process Control(OPC)-Technologie. OLE (Object Linking and Embedding) ist ein Objektsystem und Protokoll, das die Zusammenarbeit unterschiedlicher (OLE-fähiger) Applikationen und damit die Erstellung heterogener Verbunddokumente ermöglicht. Mittels der OPC wird eine komfortable und leistungsfähige Vernetzung verschiedenster Komponenten ermöglicht. OPC UA erweitert OPC um wesentliche Eigenschaften und ermöglicht einen standardisierten und herstellerübergreifenden Datenaustausch zwischen verschiedenen Komponenten, unabhängig von Programmiersprache und Betriebssystem. Die OPC UA Technologie ermöglicht eine einheitliche Vernetzung der CNC-Steuerung mit dem Client.
-
Diese bevorzugte Ausführungsform der Erfindung ermöglicht somit eine Übertragung kontinuierlicher Positionswerte des Aktuators der Industriemaschine mit einer festen Abtastrate (insbesondere im Millisekunden-Bereich) bei gleichzeitigem Einsatz der Standardkommunikationstechnologie OPC UA. Die Erfindung kann auf einfache Weise ohne baulichen Aufwand und ohne hohe Kosten in einer Industriemaschine implementiert werden.
-
Bevorzugt erfolgt die Anbindung des Clients an die CNC-Steuerung mittels eines OPC UA Servers. Ziel eines derartige OPC UA Servers ist die Bereitstellung und Veröffentlichung von Informationen (insbesondere der Positionswerte), so dass diese dem Client zur Verfügung stehen.
-
Gemäß einer vorteilhaften Ausführungsform der Erfindung werden die in der ersten Queue-Datenstruktur hinterlegten Positionswerte mittels eines Subscriptions-Dienstes der OPC UA an den Client übermittelt. In einer OPC UA wird eine Vielzahl von Diensten bereitgestellt. Die verschiedenen Dienste sind insbesondere nach einem Request-Response-Prinzip aufgebaut, d.h. der Client sendet eine Anfrage-Nachricht (Request) an den Server, dieser verarbeitet die Nachricht und sendet eine Antwort-Nachricht (Response) an den Client zurück. Insbesondere abonniert der Client einen Subscriptions-Dienst der OPC UA bzw. des OPC UA Servers. Der Client meldet sich mittels des Subscriptions-Dienstes somit bei dem OPC UA Server an, um mittels einer Subscription die Positionswerte des Aktuators der Industriemaschine zu erhalten.
-
Ein derartiger Subscriptions-Dienst ermöglicht das Erstellen, Verändern und Löschen von Subscriptionen. Eine Subscription umfasst ein oder mehrere Überwachungsobjekte (Monitored Items), die Benachrichtigungen (Notifications) generieren. Die Subscription sendet in einem bestimmten Intervall (Publishing Intervall) die gesammelten Benachrichtigungen an den Client. Das Überwachungsobjekt ist dabei insbesondere ein sogenanntes Sammeldatenobjekt (Aggregated Data). Dabei wird ein Wert einer Variablen mit einem vergleichsweise kleinen Abtastintervall gelesen und auf Basis dieser Werte wird eine Berechnung (insbesondere Interpolation) durchgeführt. Die Berechnung erfolgt dabei in einem Sampling Intervall des Überwachungsobjekts.
-
Vorteilhafterweise werden die in der ersten Queue-Datenstruktur hinterlegten Positionswerte in dem zweiten Zeittakt in ein Überwachungsobjekt des Subscription Dienstes der OPC UA geschrieben. Der zweite Zeittakt entspricht dabei dem Sampling Intervall des Überwachungsobjekts. Das Überwachungsobjekt wird somit als zweite Queue-Datenstruktur verwendet. Bevorzugt beträgt der zweite Zeittakt bzw. das Sampling Intervall dabei 10 ms. Insbesondere besitzt das Überwachungsobjekt eine Speicherkapazität von wenigstens 100 Speichereinträgen. Wie weiter oben erläutert, können die Speicherkapazität des Überwachungsobjekts und die Dauer des Sampling Intervalls auch insbesondere flexibel variiert und für unterschiedliche Clients entsprechend gewählt werden. Vorzugsweise beträgt der zweite Zeittakt mindestens das Fünffache bis mindestens das Zehnfache des ersten Zeittakts und/oder der dritte Zeittakt (204a) beträgt mindestens das Fünfzigfache bis mindestens das Hundertfache des ersten Zeittakts (201a) und/oder der dritte Zeittakt (204a) beträgt mindestens das Fünffache bis mindestens das Zehnfache des zweiten Zeittakts (203a).
-
Das Überwachungsobjekt generiert entsprechende Benachrichtigungen. Die Subscription sendet in dem dritten Zeittakt bevorzugt die gesammelten Benachrichtigungen sowie das Überwachungsobjekt mit sämtlichen darin gespeicherten Positionswerten an den Client.
-
Somit werden die in der zweiten Queue-Datenstruktur hinterlegten Positionswerte an den Client übermittelt. Der dritte Zeittakt entspricht dabei insbesondere dem Publishing Intervall der Subscription. Bevorzugt beträgt der dritte Zeittakt bzw. das Publishing Intervall dabei 100 ms.
-
Insbesondere wird der Subscription Dienst mittels einer Oversampling-Funktion implementiert. Mittels einer derartigen Oversampling-Funktion kann eine Überabtastung (Oversampling) der Bahnbewegung des Aktuators durchgeführt werden. Wenn die Positionswerte, die beispielsweise im Zuge einer herkömmlichen Bahninterpolation bestimmt werden, in der ersten Queue-Datenstruktur gesammelt werden, dann werden genau die Positionswerte an den Client übertragen, gemäß welchen der Aktuator angesteuert wird, um die entsprechende Bahnbewegung auszuführen. Im Gegensatz dazu können die Positionswerte auch durch eine derartige Oversampling-Funktion gewonnen werden und mittels des Subscriptions-Dienstes der OPC UA an den Client übermittelt werden. Mittels einer derartigen Überabtastung werden dem Client somit mehr Positionswerte übermittelt als dem Aktuator. Beispielsweise kann der Client die Bahnbewegung des Aktuators somit mit einer höheren Präzision und einer größeren Genauigkeit nachverfolgen.
-
Im Gegensatz zu herkömmlichen CNC-Steuerungen werden die Positionswerte des Aktuators nicht einzeln an den Client übertragen. Stattdessen wird zunächst eine Vielzahl von Positionswerten in dem ersten Zeittakt in der ersten Queue-Datenstruktur gesammelt. Mittels des Subscriptions-Diensts der OPC UA werden diese gesammelten Positionswerte an den Client gemeinsam übertragen. Die Übertragung der Positionswerte wird somit mittels eines weiterentwickelten OPC UA Servers durchgeführt, bzw. mittels eines Dienstes, welcher von einem derartigen OPC UA Server bereitgestellt wird. Die Erfindung kann somit ohne baulichen Aufwand und ohne zusätzliche Kosten implementiert werden.
-
Gemäß einer besonders bevorzugten Ausführungsform der Erfindung wird als Client eine Echtzeitsimulation der Industriemaschine durchgeführt. Mittels einer derartigen Echtzeitsimulation kann eine digitale Visualisierung der Bearbeitung des Werkstücks durch die Industriemaschine ermöglicht bzw. simuliert werden. Die Echtzeitsimulation wird insbesondere von einer externen Recheneinheit, beispielsweise von einem Computer, durchgeführt. Mittels der Echtzeitsimulation kann der Herstellungsprozess somit nachvollzogen bzw. überwacht werden. An der externen Recheneinheit wird somit visuell
-
dargestellt, wie das Werkstück von der Industriemaschine bearbeitet wird. Eine derartige Echtzeitsimulation kann beispielsweise nützlich sein, wenn eine eingeschränkte Sicht in die Industriemaschine gegeben ist und das Werkstück in der Industriemaschine mit bloßem Auge nur schwer zu erkennen ist oder wenn die Industriemaschine während des Herstellungsprozesses nicht geöffnet werden kann oder aus Sicherheitsgründen nicht geöffnet werden darf.
-
Um die Echtzeitsimulation durchzuführen, müssen die aktuellen Positionswerte des Aktuators vorliegen. Die Positionswerte sollen dabei kontinuierlich in konstanten Zeitabständen von der CNC-Steuerung übermittelt werden, also mit einer festen, homogenen, kontinuierlichen Abtastrate. Dies ist in herkömmlichen Industriemaschinen mit herkömmlichen CNC-Steuerungen zumeist nicht möglich. Hingegen können die Positionswerte mittels der Erfindung von der CNC-Steuerung an die Echtzeitsimulation in kontinuierlichen, konstanten Abständen übermittelt werden, also mit einer homogenen, kontinuierlichen Abtastrate. Die Echtzeitsimulation kann somit mit einer größtmöglichen Präzision durchgeführt werden.
-
Bevorzugt ist die erste Queue-Datenstruktur als ein Ringpuffer ausgebildet. Ein Ringpuffer besitzt dabei, im Gegensatz zu anderen Queue-Datenstrukturen, eine feste Größe. Ringpuffer umfassen dabei zumeist zwei Zeiger. Ein erster Zeiger (In-Pointer) charakterisiert dabei den Anfang des Ringpuffers, an welchem neue Einträge in den Ringpuffer geschrieben werden. Ein zweiter Zeiger (Out-Pointer) charakterisiert das Ende des Ringpuffers, an welchem die Speichereinträge des Ringpuffers gelesen werden. Wenn der Ringpuffer voll ist, werden die ältesten Elemente bzw. Speichereinträge überschrieben, um weitere neuere Elemente bzw. Speichereinträge in den Ringpuffer zu schreiben. Insbesondere besitzt der Ringpuffer eine Speicherkapazität von wenigstens 10000 Speichereinträgen.
-
Weiter bevorzugt ist die erste Queue-Datenstruktur als ein Array ausgebildet. Bei einem Ringpuffer werden die Positionswerte einzeln eingelesen und einzeln in die zweite Queue-Datenstruktur übermittelt. Ist die erste Queue-Datenstruktur als ein Array ausgebildet, können sämtliche darin gespeicherten Positionswerte simultan als ein Block an die zweite Queue-Datenstruktur übermittelt werden. Somit kann Rechenzeit eingespart werden und ein Datenverkehr verringert werden.
-
Alternativ oder zusätzlich ist die zweite Queue-Datenstruktur bevorzugt als ein Array ausgebildet. Somit wird das Schreiben bzw. Kopieren der Positionswerte von der ersten Queue-Datenstruktur in die zweite Queue-Datenstruktur vereinfacht. Für dieses Schreiben bzw. Kopieren sämtlicher Positionswerte wird in diesem Fall nur ein einziger Befehl benötigt. Weiterhin wird somit ein Speicherbedarf der zweiten Queue-Datenstruktur verringert. Die zweite Queue-Datenstruktur ist dabei als ein einziges Datenelement ausgebildet bzw. wird als ein einziges Datenelement an den Client übermittelt und nicht als eine Liste von mehreren Datenelementen. Ein Datenelement beinhaltet dabei jeweils zusätzliche Daten, beispielsweise einen Zeitstempel. Somit muss nicht jeder einzelne Positionswert als ein Datenelement mit derartigen zusätzlichen Daten in der zweiten Queue-Datenstruktur hinterlegt werden.
-
Vorzugsweise wird ein IndraMotion System, weiter insbesondere ein IndraMotion MTX System als CNC-Steuerung verwendet. IndraMotion ist ein industrielles Steuerungssystem bzw. ein Motion-Logic-System der Firma Bosch Rexroth. Das IndraMotion-System bietet eine Steuerungsplattform, mit der auf einfache Weise Aktuatoren der Industriemaschine einfach und flexibel gesteuert werden können. Weiterhin können mittels des IndraMotion-Systems beispielsweise auch elektronische Getriebe, Kurvenscheiben und komplexe Bewegungsabläufe der Industriemaschine gesteuert werden. Insbesondere kann eine vollständige Funktionalität für mehrachsige Bahninterpolation im Raum erreicht werden.
-
Insbesondere wird die erfindungsgemäße Übertragung der Positionswerte des Aktuators der Industriemaschine somit mittels eines (weiterentwickelten) OPC UA Servers durchgeführt, welcher auf dem IndraMotion System zur Steuerung der Industriemaschine implementiert ist.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät einer Werkzeugmaschine, insbesondere ein CNC-Steuergerät, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung der Erfindung in Form von Software ist vorteilhaft, da dies besonders geringe Kosten ermöglicht, insbesondere wenn eine ausführende Recheneinheit noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten,
-
Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
-
Figurenbeschreibung
-
1 zeigt schematisch eine bevorzugte Ausgestaltung einer Industriemaschine, die dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Detaillierte Beschreibung der Zeichnung
-
In 1 ist eine bevorzugte Ausgestaltung einer Industriemaschine schematisch dargestellt und mit 100 bezeichnet. Die Industriemaschine 100 umfasst eine Werkzeugmaschine 110, mittels welcher ein Werkstück 111 hergestellt wird. Zu diesem Zweck wird das Werkstück 111 mittels eines Werkzeugs 112 bearbeitet. Das Werkzeug 112 kann mittels entsprechender Aktuatoren 113a, 113b, 113c entlang dreier Bewegungsachsen dreidimensional bewegt werden.
-
Die Werkzeugmaschine 110 wird mittels einer CNC-Steuerung 120 angesteuert. Die CNC-Steuerung 120 umfasst dabei sowohl Steuerprogramme als Software-Komponente, als auch ein Steuergerät als eine Hardware-Komponente, auf welchem die Steuerprogramme ausgeführt werden. In diesem Beispiel ist die CNC-Steuerung 120 als ein IndraMotion MTX System der Firma Bosch Rexroth ausgestaltet.
-
An die CNC-Steuerung 120 ist ein Client 130 angebunden. Der Client 130 umfasst dabei sowohl eine Hardware- als auch eine Software-Komponente. Die Software-Komponente ist dabei eine Echtzeitsimulation der Industriemaschine. Diese Echtzeitsimulation wird auf der Hardware-Komponente des Clients 130 ausgeführt. Diese Hardware-Komponente ist in diesem Beispiel als ein Computer 131, beispielsweise ein Laptop oder ein Tablet PC, ausgebildet. Der Computer 131 und die CNC-Steuerung 120 sind mittels einer geeigneten Verbindung miteinander verbunden und können über diese Verbindung miteinander kommunizieren. In diesem Beispiel ist diese Verbindung als eine WLAN-Verbindung 125 ausgebildet.
-
Mittels der Echtzeitsimulation kann eine digitale Visualisierung der Bearbeitung des Werkstücks 111 ermöglicht werden. Auf einem Bildschirm des Computers 131 wird dabei eine Bewegung bzw. eine Bewegungsbahn des Werkzeug 112 visuell dargestellt, angedeutet durch Bezugszeichen 132. Mittels der Echtzeitsimulation kann der Herstellungsprozess des Werkstücks 111 überwacht werden.
-
Die CNC-Steuerung 120 bestimmt für jeden der drei Aktuatoren 113a, 113b, 113c Positionswerte als Soll-Werte der Bewegungsbahn, gemäß welcher das Werkzeug 112 bewegt werden soll, um das Werkstück 111 zu bearbeiten. Diese Positionswerte sollen zur Durchführung der Echtzeitsimulation von der CNC-Steuerung 120 an den Client 130 bzw. an den Computer 131 übertragen werden. Zu diesem Zweck ist der Client 130 mittels eine OPC UA Architektur an die CNC-Steuerung 120 angebunden.
-
Die Industriemaschine 100 ist dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, um die Positionswerte der Aktuatoren 130a, 130b, 130c an den Client 130 zu übermitteln. Die bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens ist in 2 schematisch als ein Blockdiagramm 200 dargestellt.
-
In einem ersten Schritt 201 werden die Positionswerte der drei Aktuatoren 130, 130b, 130c im Zuge einer Bahninterpolation durch einen Interpolator der CNC-Steuerung bestimmt. Die bestimmten Positionswerte werden in einer als Ringpuffer ausgebildeten ersten Queue-Datenstruktur gespeichert. Die Bestimmung und das Speichern der Positionswerte in dem Ringpuffer werden in regelmäßigen Abständen im Zuge eines ersten Zeittakts wiederholt, angedeutet durch das Bezugszeichen 201a. Dieser ersten Zeittakt ist dabei ein Interpolationstakt des Interpolators und beträgt 1 ms.
-
In Schritt 202 werden sämtliche in dem Ringpuffer hinterlegten Positionswerte mittels eines Subscriptions-Dienstes an den Client 130 übermittelt. Dieser Subscriptions-Dienst wird von der OPC UA, insbesondere von einem OPC UA Server, bereitgestellt. Dabei werden in einem Schritt 203 zunächst die in dem Ringpuffer hinterlegten Positionswerte in ein Überwachungsobjekt (Monitored Item) des Subscriptions-Dienstes gespeichert. Dieses Überwachungsobjekt ist dabei eine zweite Queue-Datenstruktur.
-
Dieses Speichern der Positionswerte in das Überwachungsobjekt wird in regelmäßigen Abständen im Zuge eines zweiten Zeittakts wiederholt, angedeutet durch das Bezugszeichen 203a. Dieser zweite Zeittakt ist dabei ein Sampling Intervall des Überwachungsobjekts und beträgt 10 ms. Somit wird alle 10 ms eine erste Anzahl von zehn Positionswerten aus dem Ringpuffer in das Überwachungsobjekt gespeichert.
-
In Schritt 204 werden sämtliche in dem Überwachungsobjekt hinterlegten Positionswerte mitsamt einer Notification Benachrichtigung, die von dem Überwachungsobjekt generiert werden, über die WLAN-Verbindung 125 an den Client 130 übermittelt. Dieses Übermitteln der in dem Überwachungsobjekt hinterlegten Positionswerte wird ebenfalls in regelmäßigen Abständen im Zuge eines dritten Zeittakts wiederholt, angedeutet durch das Bezugszeichen 204a. Dieser dritte Zeittakt ist dabei ein Publishing Intervall des Subscription Dienstes und beträgt 100 ms. Somit wird alle 100 ms eine zweite Anzahl von 100 Positionswerten von der CNC-Steuerung 120 an den Client 130 übermittelt.
-
Dem Client 130 wird somit in festen regelmäßigen Zeitabständen von 100 ms eine Vielzahl von Positionswerten übermittelt. Diese Positionswerte werden als Eingangsparameter für die Echtzeitsimulation der Werkzeugmaschine 110 verwendet. Auf dem Computer 131 wird somit mittels der Positionswerte der drei Aktuatoren 130, 130b, 130c die Bahnbewegung des Werkzeugs 112 simuliert visuell dargestellt (132).