-
Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Festlegen von Aufgaben eines zyklischen Ablaufs mittels einer Prozessoreinrichtung sowie ein entsprechendes Computerprogramm. Daneben ist die Erfindung auf ein entsprechendes Speichermedium gerichtet.
-
In Computerwissenschaften wird unter einer Aufgabe (Task) jede Einheit einer Arbeitsausführung verstanden. Je nach Zusammenhang kann eine derartige Aufgabe die Form eines Prozesses, einen Ausführungs-Thread, oder auch eine vollständige virtuelle Maschine bedeuten, die von einem Hypervisor betrieben wird, sein. Die Vorgehensweise, durch die eine solche Aufgabe zu einer Rechnerressource zugeordnet wird, wird im Stand der Technik als „Scheduling“ bezeichnet. In Echtzeitumgebungen, wie beispielsweise Systemen zur automatischen Kontrolle in der Automotive- oder Robotics-Industrie sollte diese „Scheduling-Methode“ sicherstellen, dass die verteilten Aufgaben bestimmten Terminen gerecht werden.
-
Auf diese Weise kann das System stabil gehalten werden. Zum Steuern derartiger Tasks, die bevorzugt synchronisiert zueinander in unterschiedlichen Zykluszeiten laufen sollen, wird im Stand der Technik eine eigene Management- und Ausführeinheit, im Folgenden als Scheduler bezeichnet, verwendet. Die Aufgabe dieses Schedulers besteht darin, die Tasks zu dezidierten Zeitpunkten zu starten und/oder deren Ausführung zu überwachen.
-
Dieser Scheduler selbst ist eine Task, die mit einer sehr hohen Priorität und einer sehr geringen Zykluszeit läuft, um die Tasks gleichzeitig und dabei insbesondere rechtzeitig starten zu können. So läuft der Scheduler typischerweise fest in der minimal möglichen Zykluszeit der Tasks, beispielsweise einer Millisekunde.
-
Auf diese Weise können die Zykluszeiten der Tasks im Millisekundenraster konfiguriert werden. In jedem Zyklus muss zudem durch den Scheduler ermittelt werden, welche Tasks gestartet oder überwacht werden müssen. Dies jedoch bedeutet zusätzliche Rechenzeit.
-
Da der Scheduler immer in der geringsten Rechenzeit läuft, wird die verfügbare Rechenzeit der Steuerung relativ hoch durch diesen Scheduler ausgelastet, auch wenn in den meisten Zyklen keine Tasks gestartet oder überwacht werden müssen. Daneben ist es nur möglich, Zykluszeiten in einem festen Raster, das üblicherweise einem Vielfachen der Scheduler-Zykluszeit entspricht, zu verwenden.
-
Aus der
EP 3 399 412 A1 ist ein Verfahren und eine Vorrichtung zum Zuordnen von Tasks an einen zyklischen Schedule bekannt. Dabei wird eine Bearbeitung von Tasks nach deren Dringlichkeit vorgenommen.
-
Die
US 2018/0039514 A1 beschreibt Verfahren und eine Vorrichtung zum effizienten Schedulen von Tasks in einem System. Dabei werden periodische und aperiodische Tasks identifiziert und entsprechend eine minimal für deren Abarbeitung benötigte Zeitdauer ermittelt.
-
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Rechenzeit derartiger Anlagen zu senken. Auch soll ein Verfahren zur Verfügung gestellt werden, welches eine verminderte Ressourcenbeanspruchung ermöglicht. Dies wird erfindungsgemäß durch den Gegenstand der unabhängigen Ansprüche erreicht. Vorteilhafte Ausführungsformen und Weiterbildungen sind Gegenstand der Unteransprüche.
-
Bei einem erfindungsgemäßen Verfahren zum Festlegen von Aufgaben eines insbesondere zyklischen Ablaufs mittels einer Prozessoreinrichtung, insbesondere in einer Maschine oder Anlagensteuerung startet eine Steuerungseinrichtung dieser Prozessoreinrichtung wenigstens zwei zyklische, unterschiedliche Prozesse zu vorgegebenen Zeitpunkten und/oder überwacht diese Prozesse zu diesen Zeitpunkten bzw. Zeiträumen. Dabei weisen diese Prozesse Prozesszykluszeiten auf und bevorzugt arbeitet die Steuerungseinrichtung mit einer vorbestimmten Steuerungszykluszeit und/oder verwendet eine vorbestimmte Steuerungszykluszeit, um ein rechtzeitiges Starten und/oder Überwachen der Prozesse zu ermöglichen.
-
Erfindungsgemäß wird die Steuerungszykluszeit der Steuerungseinrichtung in Abhängigkeit von den Prozesszykluszeiten angepasst.
-
Im Gegensatz zum Stand der Technik wird also vorgesehen, dass die Steuerungseinrichtung, das heißt insbesondere der oben erwähnte „Scheduler“ nicht auf eine feste Steuerzykluszeit gesetzt wird und/oder mit einer festen Steuerzykluszeit betrieben wird, sondern diese Steuerungszykluszeit angepasst wird in Abhängigkeit der jeweils benötigten Prozesszykluszeiten der einzelnen Prozesse.
-
Auf diese Weise kann eine Anpassung der Gesamtrechenleistung und insbesondere eine Reduktion der Gesamtrechenleistung erreicht werden. Bevorzugt werden unterschiedlichen Prozessen unterschiedliche Prioritäten zugewiesen. Bevorzugt wird dem Scheduler eine höhere Priorität zugewiesen als den einzelnen Prozessen.
-
Bevorzugt wird die Steuerungszykluszeit in Abhängigkeit der Prozesszyklusleistung und/oder Prozesszykluszeiten der ablaufenden und/oder benötigten zyklischen Prozesse angepasst und/oder gewählt. Besonders bevorzugt erfolgt die Anpassung in Abhängigkeit aller ablaufenden und/oder benötigten zyklischen Prozesse.
-
Besonders bevorzugt dient das hier beschriebene Verfahren zu einer Anwendung in Echtzeitumgebungen, insbesondere im Bereich der Automation oder der Robotertechnik (Prinzipiell alle Anwendungen der Automatisierungstechnik: bspw. Druck- und Verpackungsmaschinen, Pick and Place Anwendungen, siehe unten). Bevorzugt wird das hier beschriebene Verfahren unter Aufsicht eines Hypervisors durchgeführt. Dieser Hypervisor kann dabei durch eine Verwaltungssoftware gesteuert werden. Insbesondere kann es sich dabei um einen Typ-1 Hypervisor handeln.
-
Das beschriebene Verfahren eignet sich für eine weite Bandbreite von Applikationen, beispielsweise für Tunnelbohrmaschinen, Hydraulik-Stanzen/Pressen, allgemeine Automatisierungen, Semiconductor-Handling, Robotik usw. Besonders eignet sich das Verfahren für Steuerungen von Maschinen. Eine derartige Maschine kann insbesondere als eine Werkzeugmaschine, wie beispielsweise ein Schweißsystem, ein Schraubsystem, eine Drahtsäge oder eine Fräsmaschine, oder als eine Bahnbearbeitungsmaschine, wie z.B. eine Druckmaschine, eine Zeitungsdruckmaschine, eine Tiefdruck-, Siebdruckmaschine, eine Inline-Flexodruckmaschine oder eine Verpackungsmaschine ausgebildet sein. Eine derartige Maschine kann auch als eine (Band-) Anlage zur Herstellung eines Automobils oder zur Herstellung von Komponenten eines Automobils (z.B. Verbrennungsmotoren oder Steuergeräte) ausgebildet sein.
-
Da im Stand der Technik der Scheduler bzw. die Steuerungseinrichtung immer in der geringsten Zykluszeit läuft, wird die verfügbare Rechenzeit der Steuerung im Stand der Technik relativ hoch durch die Steuerungseinrichtung bzw. den Scheduler ausgelastet, auch wenn in den meisten Zyklen keine Tasks gestartet oder überwacht werden müssen. Zudem ist es nur möglich, Zykluszeiten in einem festen Raster, das einem Vielfachen der Scheduler-Zykluszeit entspricht, zu verwenden. Die Erfindung ermöglicht eine rechenzeitoptimierte Ausführung der Steuerungseinrichtung bzw. des Schedulers in frei wählbaren Zykluszeiten.
-
Durch die rechenzeitoptimierte Ausführung der Steuerungseinrichtung (d.h. des Schedulers) steht mehr Rechenzeit zur Ausführung anderer Aufgaben der Steuerung zur Verfügung. Dabei kann es sich beispielsweise um eine Interpolation von Positionswerten oder anwenderspezifische SPS-Programme handeln.
-
Bei einem bevorzugten Verfahren sind die Zykluszeiten der einzelnen Aufgaben bzw. Tasks frei wählbar. Die Zykluszeiten der Tasks hängen von der jeweiligen Aufgabe ab. Beispielweise muss bei einer Anlage schneller interpoliert werden, um eine höhere Genauigkeit zu erreichen, bei anderen Anlagen spielt dies ggf. eine untergeordnete Rolle. Somit stellt der Nutzer die Zykluszeiten frei nach seinen Bedürfnissen ein. Die minimale Zykluszeit ist abhängig von der Leistungsfähigkeit der eingesetzten Hardware und ggf. der verwendeten Peripherie (bspw. Feldbusse wie Ethercat oder Sercos). Die Zykluszeit des Schedulers wird bevorzugt an die konfigurierten Zykluszeiten der Tasks angepasst, wobei besonders bevorzugt diese Anpassung automatisch erfolgt. Bevorzugt wird die Zykluszeit des Schedulers, also die oben erwähnte Steuerungszykluszeit, einmal, möglicherweise jedoch auch mehrmals, ermittelt. Auch ist es möglich, diese Steuerungszykluszeit selbst zyklisch zu ermitteln.
-
Bei einem weiteren bevorzugten Verfahren wird eine minimale Zeitdauer für wenigstens eine Task ermittelt. Daneben kann auch eine Zeitdauer ermittelt werden, welche für die Zeitspanne zwischen der Beendigung einer Task und einer weiteren Aktivierung dieser Task oder einer weiteren Task benötigt wird.
-
Bevorzugt wird, falls kein zyklischer Prozess definiert oder konfiguriert wird, keine Ausführung der Steuerungseinrichtung durchgeführt, bzw. der Scheduler bevorzugt deaktiviert. Auch auf diese Weise kann Rechenzeit eingespart werden.
-
Bei einem bevorzugten Verfahren überwacht die Steuerungseinrichtung wenigstens zwei Prozesse und insbesondere zwei zyklische Prozesse. Bei dieser Ausgestaltung wird die Steuerungszykluszeit in Abhängigkeit der Zykluszeiten dieser beiden Prozesse angepasst. Unter zyklischen Prozessen werden Prozesse verstanden, die sich wenigstens über einen bestimmten Zeitraum hinweg -insbesondere mit gleichbleibenden Zykluszeiten - wiederholen.
-
Bei einem weiteren bevorzugten Verfahren wird die Steuerungszykluszeit der Steuerungseinrichtung derart verändert, dass eine Rechenzeit der Steuerungseinrichtung minimiert wird. Dabei können, wie oben erwähnt, bevorzugt auch die Zykluszeiten der Aufgaben entsprechend gewählt werden.
-
Bei einem bevorzugten Verfahren wird die Steuerungszykluszeit aus den Prozesszykluszeiten und/oder unter Berücksichtigung der Prozesszykluszeiten ermittelt. Dabei wird besonders bevorzugt durch einen mathematischen Prozess die entsprechende Steuerungszykluszeit ermittelt.
-
Bei einem bevorzugten Verfahren wird als Steuerungszykluszeit der größte gemeinsame Teiler der Prozesszykluszeiten verwendet. Auf diese Weise ist ein sicheres Starten bzw. Überwachung jedes der einzelnen Prozesse möglich, da sichergestellt wird, dass durch die Steuerungszykluszeit jeder der bearbeiteten Prozesse erfasst wird.
-
Bevorzugt können in dem Scheduler Tasks dynamisch erzeugt und deren Zykluszeiten frei konfiguriert werden. Vorzugsweise optimiert sich die Steuerungszykluszeit, d.h. die Zykluszeit des Schedulers, automatisch an die Zykluszeiten der konfigurierten Tasks und bevorzugt so, dass möglichst wenig Rechenzeit für den Scheduler verbraucht wird.
-
Dazu wird bei dem oben beschriebenen Verfahren der größte gemeinsame Teiler aller konfigurierten Zykluszeiten ermittelt, welcher die Zykluszeit des Schedulers darstellt.
-
Bei einem weiteren bevorzugten Verfahren wird beim Anpassen der Steuerungszykluszeit festgelegt, welcher Prozess zu welcher Zeit gestartet und/oder überwacht wird.
-
Mit anderen Worten ist es möglich, dass bereits beim Einstellen der Zykluszeit festgelegt wird, welche Tasks zu welchem Zeitpunkt gestartet und überwacht werden müssen. Auf diese Weise wird zur Laufzeit keine Rechenzeit in der hochprioren Schedulertask benötigt, um zu ermitteln, welche Tasks zu dem jeweilen Zeitpunkt gestartet oder überwacht werden müssen.
-
Besonders bevorzugt wird zu diesem Zweck das kleinste gemeinsame Vielfache der Prozesszykluszeiten ermittelt. Genauer gesagt wird besonders bevorzugt zusätzlich zum größten gemeinsamen Teiler noch das kleinste gemeinsame Vielfache ermittelt, welches den Zyklus darstellt, bis alle Tasks wieder im gleichen Zyklus gestartet oder überwacht werden müssen.
-
Auf diese Weise können schon während der Konfiguration alle Zyklen vordefiniert werden, damit in den jeweiligen Zyklen effizient und bevorzugt ohne weitere Berechnung der Tasks gestartet und/oder überwacht werden können.
-
Bevorzugt ist damit das kleinste gemeinsame Vielfache der Prozesszykluszeiten diejenige Zykluszeit, in der alle Prozesse gestartet und überwacht werden.
-
Die vorliegende Erfindung ist weiterhin auf ein Computerprogramm gerichtet, welches geeignet und bestimmt zur Durchführung eines Verfahrens der oben beschriebenen Art ist.
-
Daneben ist die Erfindung auch auf eine Vorrichtung gerichtet, welche zum Durchführen des Verfahrens nach Anspruch 9 geeignet und bestimmt ist.
-
Daneben ist die vorliegende Erfindung auch auf einen computerlesbaren Datenträger gerichtet, der ein Programm der oben beschriebenen Art enthält.
-
Weitere Vorteile und Ausführungsformen ergeben sich aus der beigefügten Zeichnung. Darin zeigen:
- 1 eine Darstellung zur Veranschaulichung der Ermittlung von Zykluszeiten.
-
1 zeigt eine Darstellung zur Veranschaulichung der Ermittlung der Steuerungszykluszeit. Dabei ist auf der Ordinate bzw. x-Achse die Zeit aufgetragen und an der Koordinate bzw. y-Achse die Priorität der einzelnen Tasks T1, T2 und T3. Daneben ist auch der Scheduler eingetragen. Dabei laufen hier zwei Zyklen ab, nämlich der Zyklus 1 und der Zyklus 2. Der Scheduler hat hier eine höhere Priorität als die Tasks T1, T2, T3. Auch die Tasks T1, T2 und T3 haben hier unterschiedliche Prioritäten nämlich T1 eine höhere Priorität als T2 und T2 eine höhere Priorität als T3.
-
In Zyklus 1 werden alle drei Tasks T1, T2 und T3 gestartet, in Zyklus 2 nur die beiden Tasks T1 und T3. Die Zykluszeit t1 des Tasks T1 beträgt in dem gezeigten Beispiel 2ms, die Zykluszeit t2 des Tasks T2 beträgt 4ms und die Zykluszeit des Tasks T3 beträgt 2ms.
-
Der größte gemeinsame Teiler (ggT) dieser drei Zykluszeiten ist damit 1ms. Entsprechend wird die Steuerungszykluszeit ts auf zwei Millisekunden (ms) festgesetzt.
-
In dem ersten Zyklus werden hier alle Tasks gestartet und gemäß ihrer Priorität auf ihrer jeweiligen CPU ausgeführt (falls Multicore-CPUs vorliegen). Es wird weiterhin das kleineste gemeinsame Vielfache (kgV) der einzelnen Zykluszeiten ermittelt. Dieses beträgt hier 4 ms. Nach erreichen des kleinesten gemeinsamen Vielfachen beginnt der Gesamtzyklus von vorne (genauer gesagt zum Zeitpunkt Tneu).
-
Falls beispielsweise zwei Tasks mit den Zykluszeiten 4 ms und 6ms vorhanden sind kann der Scheduler im 2ms Takt laufen. In einem Zyklus läuft der Scheduler, ohne konkret eine Task zu starten (NOP = no operation).
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- EP 3399412 A1 [0007]
- US 2018/0039514 A1 [0008]