Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MACHINE AND METHOD FOR OPERATING THE SAME
Document Type and Number:
WIPO Patent Application WO/2023/247196
Kind Code:
A1
Abstract:
The invention relates to a method for operating a machine, in particular a cyclically operating machine, in particular a packaging machine for packaging products, such as products of the tobacco industry, wherein the machine has at least one automation device (21) for controlling, influencing and/or monitoring the machine, which automation device has at least one multicore processor (26) having a plurality of processor cores (22 a - 22 d), in particular as part of an industrial PC of the automation device (21), to which calculation tasks of the automation device (21) are distributed and are executed thereby. The method is characterized in that the same or the identical time slots (time periods) which are arranged in temporal succession, in particular each directly succeed one another, are preferably permanently assigned to each processor core (22 a - 22 d) of those processor cores (22 a - 22 d) to which these calculation tasks are distributed, in each case in particular with regard to the starting time, end time and duration, in which time slots the processor cores each execute the calculation tasks assigned to each of them in succession, preferably using a predetermined timing scheme (timing diagram).

Inventors:
BEUTLER BENNY (DE)
KOOP JAN-CHRISTIAN (DE)
BRÜNS SIMON (DE)
Application Number:
PCT/EP2023/065332
Publication Date:
December 28, 2023
Filing Date:
June 08, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FOCKE & CO (DE)
International Classes:
G06F9/48
Foreign References:
EP2583437A12013-04-24
US20060253853A12006-11-09
Attorney, Agent or Firm:
AULICH, Martin et al. (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Betrieb einer insbesondere taktweise arbeitenden Maschine, insbesondere einer Verpackungsmaschine zur Verpackung von Produkten, wie etwa Produkten der Tabakindustrie, wobei die Maschine mindestens eine Automatisierungseinrichtung (21) zur Steuerung, Beeinflussung und/oder Überwachung der Maschine aufweist, die über mindestens einen Mehrkernprozessor (26) mit mehreren Prozessorkernen (22 a - 22 d) verfügt, insbesondere als Bestandteil eines Industrie-PCs der Automatisierungseinrichtung (21), auf die Berechnungsaufgaben der Automatisierungseinrichtung (21) verteilt werden, die diese abarbeiten, dadurch gekennzeichnet, dass jedem Prozessorkern (22 a - 22 d) derjenigen Prozessorkerne (22 a - 22 d), auf die diese Berechnungsaufgaben verteilt werden, jeweils, insbesondere im Hinblick auf Startzeitpunkt, Endzeitpunkt und Zeitdauer, dieselben bzw. die identischen, zeitlich nacheinander angeordneten, insbesondere jeweils unmittelbar aufeinander folgenden Zeitschlitze (Zeitabschnitte) zugeordnet werden, in denen sie jeweils nacheinander die ihnen jeweils zugeordneten Berechnungsaufgaben abarbeiten, vorzugsweise unter Verwendung eines vorbestimmten Timingschemas (Timingdiagramm).

2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass die Berechnungsaufgaben, die die Prozessorkerne (22 a - 22 d) in einem ersten Zeitschlitz abarbeiten - Sammelzeitschlitz -, das Sammeln von insbesondere aktuellen Maschinendaten der Maschinen-Hardware umfassen, insbesondere von Ist- Maschinendaten, die von Sensoren der Maschine oder von anderen Maschinendaten erzeugenden Hardware-Einheiten der Maschine stammen.

3. Verfahren gemäß Anspruch 2, dadurch gekennzeichnet, dass die Berechnungsaufgaben, die die Prozessorkerne (22 a - 22 d) in einem zweiten Zeitschlitz - Validierungszeitschlitz - abarbeiten, das Validieren der gesammelten Maschinendaten umfassen.

4. Verfahren gemäß Anspruch 2 oder 3, dadurch gekennzeichnet, dass die Berechnungsaufgaben, die die Prozessorkerne (22 a - 22 d) in dem Zeitschlitz eines insbesondere unmittelbar nach dem Validierungszeitschlitz startenden weiteren Zeitschlitzes - Weiterverarbeitungszeitschlitz - abarbeiten, die Weiterverarbeitung der gesammelten Maschinendaten umfassen, insbesondere die Weiterverarbeitung zu Steuerungssignalen für die Maschine.

5. Verfahren gemäß Anspruch 4, dadurch gekennzeichnet, dass die Berechnungsaufgaben, die die Prozessorkerne (22 a - 22 d) in einem insbesondere unmittelbar nach dem Weiterverarbeitungszeitschlitz startenden, weiteren Zeitschlitz - Ausgabezeitschlitz - abarbeiten, die Ausgabe von in dem Weiterverarbeitungszeitschlitz weiterverarbeiteten Maschinendaten umfassen, insbesondere an steuerbarere Organe der Maschine und/oder an Anzeigegeräte der Maschine.

6. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass sich insbesondere im Normalbetrieb der Maschine die Zeitschlitze nacheinander innerhalb einer vorgegebenen Gesamtzeitdauer zyklisch wiederholen, insbesondere innerhalb einer vorgegebenen Gesamtzeitdauer, die kleiner ist als die Taktzeit des Mehrkernprozessors.

7. Verfahren gemäß Anspruch 6, dadurch gekennzeichnet, dass für die Initialisierung der Maschine, insbesondere vor dem Normalbetrieb derselben, ein sich insbesondere nicht zyklisch wiederholender Initialisierungsbetrieb vorgesehen ist, der über einen Zeitschlitz verfügt - Initialisierungszeitschlitz - , in dem Berechnungsaufgaben abgearbeitet werden, die der Einrichtung bzw. Konfiguration der Maschine dienen, insbesondere umfassend die Sammlung von Ist-Maschinendaten der Maschinen-Hardware, bevorzugt von Ist-Maschinendaten, die von Sensoren der Maschine oder von anderen Maschinendaten erzeugenden Hardware-Einheiten der Maschine stammen und/oder die Validierung von gesammelten Maschinendaten und/oder die Weiterverarbeitung von validierten Maschinendaten und/oder die Ausgabe von weiterverarbeiteten Daten an steuerbare Organe der Maschinen- Hardware.

8. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Dauer jedes Zeitschlitzes und/oder dessen jeweiliger Endzeitpunkt dynamisch im Betrieb der Automatisierungseinrichtung festgelegt wird, insbesondere nach Maßgabe der Berechnungsdauer, die derjenige Prozessorkern benötigt, der für die Abarbeitung seiner Berechnungsaufgaben in dem entsprechenden Zeitschlitz die längste Zeit aller Prozessorkerne benötigt und/oder insbesondere derart, dass ein jeweils nachfolgender Zeitschlitz erst dann freigeben wird, wenn in dem vorhergehenden Zeitschlitz die letzte der Berechnungsaufgaben desjenigen Prozessorkerns abgearbeitet ist, der am längsten für seine Berechnungsaufgaben benötigt.

9. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für den Fall, dass Berechnungsaufgaben innerhalb eines Zeitschlitzes vor dem festgelegten Endzeitpunkt des Zeitschlitzes abgeschlossen sind, ein Leerlaufprozess zur Füllung der Zeit bis zum Erreichen des Endzeitpunkts vorgesehen ist und/oder eingefügt wird.

10. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Sicherung der Datenintegrität ein Speicherbereich eines Datenspeichers, auf den ein erster und ein zweiter Prozessorkern (22 a - 22 d) im Rahmen der Abarbeitung ihrer Berechnungsaufgaben zugreifen können oder müssen, vor dem gleichzeitigen Zugriff beider Prozessorkerne (22 a - 22 d) geschützt werden, insbesondere, indem der Speicherbereich für den zweiten Prozessorkern (22 a - 22 d) für die Dauer des Zugriffs des ersten Prozessorkerns (22 a - 22 d) gesperrt wird, wenn der Zugriff des zweiten Prozessorkerns (22 a - 22 d) später erfolgt als der Zugriff des ersten Prozessorkerns (22 a - 22 d) oder zur gleichen Zeit, wobei die Sperrung nach Abschluss des Zugriffs des ersten Prozessorkerns (22 a - 22 d) aufgehoben wird.

11. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Sicherung der Datenintegrität Speicherbereiche eines Datenspeichers, in dem Daten liegen, die von Berechnungen eines ersten Prozessorkerns (22 a - 22 d) abhängen, während dieser Berechnungen des ersten Prozessorkerns (22 a - 22 d) gesperrt werden vor dem Zugriff eines zweiten Prozessorkerns (22 a - 22 d), und dass diese Sperre aufgehoben wird, wenn die Berechnungen abgeschlossen sind.

12. Verfahren gemäß Anspruch 11 , dadurch gekennzeichnet, dass für den Fall der Sperrung des Datenbereichs aufgrund des Zugriffs durch den ersten Prozessorkern (22 a - 22 d) der zweite Prozessorkern (22 a - 22 d) eine vorbestimmte Anzahl von weiteren Zugriffsversuchen durchführt.

13. Verfahren gemäß Anspruch 11 oder 12, dadurch gekennzeichnet, dass für den Fall der Sperrung des Datenbereichs aufgrund des Zugriffs durch den ersten Prozessorkern (22 a - 22 d) ein Fehlersignal erzeugt wird und/oder die Maschine gestoppt wird, wenn der zweite Prozessorkern (22 a - 22 d) während der Sperrung eine vorbestimmte Anzahl von vergeblichen Zugriffsversuchen durchgeführt hat.

14. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mindestens einer der Prozessorkerne (22 a) - Main Dispatcher -, bevorzugt ein im Laufe des Betrieb nicht wechselnder, vorbestimmter Prozessorkern (22 a) des Mehrkernprozessors (26), die Berechnungsaufgaben, die die Prozessorkerne (22 a - 22 d) der Automatisierungseinrichtung (21) abarbeiten müssen, auf die mehreren Prozessorkerne (22 a - 22 d) des Mehrkernprozessors (26) verteilt und/oder eine gleichzeitige Freigabe der einzelnen Zeitschlitze initiiert, sodass die einzelnen Prozessorkerne (22 a - 22 d) mit ihren Berechnungsaufgaben in dem jeweils freigegebenen Zeitschlitz starten können.

15. Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Verteilung der Berechnungsaufgaben auf die einzelnen Prozessorkerne (22 a - 22 d) nach Maßgabe eines definierten, insbesondere in einem Datenspeicher hinterlegten Aufteilungsschemas erfolgt, oder dass die Verteilung der Berechnungsaufgaben auf die einzelnen Prozessorkerne (22 a - 22 d) abhängig von der aktuellen Auslastung der Prozessorkerne (22 a - 22 d) erfolgt, oder dass die Verteilung der Berechnungsaufgaben auf die einzelnen Prozessorkerne (22 a - 22 d) unter Nutzung eines Verfahrens der künstlichen Intelligenz erfolgt.

16. Maschine mit einer Automatisierungseinrichtung (21) zur Steuerung, Beeinflussung und/oder Überwachung der Maschine, die über mindestens einen Mehrkernprozessor (26) mit mehreren Prozessorkernen (22 a - 22 d) verfügt, insbesondere als Bestandteil eines Industrie-PCs der Automatisierungseinrichtung (21), auf die Berechnungsaufgaben der Automatisierungseinrichtung (21) verteilt werden, wobei die Maschine derart ausgebildet und eingerichtet ist, dass sie das Verfahren gemäß einem oder mehreren der vorhergehenden Ansprüche ausführen kann.

*****

Description:
Maschine sowie Verfahren zum Betrieb derselben

Beschreibung

Die vorliegende Erfindung betrifft ein Verfahren zum Betrieb einer insbesondere taktweise arbeitenden Maschine, insbesondere einer Verpackungsmaschine zur Verpackung von Produkten, wie etwa Produkten der Tabakindustrie, wobei die Maschine mindestens eine Automatisierungseinrichtung zur Steuerung, Beeinflussung und/oder Überwachung der Maschine aufweist, die über mindestens einen Mehrkernprozessor mit mehreren Prozessorkernen verfügt, insbesondere als Bestandteil eines Industrie-PCs der Automatisierungseinrichtung, auf die Berechnungsaufgaben der Automatisierungseinrichtung verteilt werden, die diese abarbeiten. Die Erfindung betrifft des Weiteren eine Maschine, die mit diesem Verfahren betrieben wird.

In Verpackungsmaschinen erfolgt die Steuerung diverser Komponenten regelmäßig mittels Automatisierungseinrichtungen, die einen softwaretechnisch eingerichteten sogenannten Industrie-PC (IPC) umfassen. Mit steigenden Anforderungen an die Verpackungsmaschinen (bspw. Modularität, schnellere Ausführungszeiten, Industrie 4.0), steigt auch die Anforderung an die Rechenleistung der IPCs. Es ist bekannt, höhere Rechenleistungen von Computern über eine Vervielfachung der CPU- bzw. Prozessorkerne zu erreichen (Mehrkern-/Multicore-Prozessoren), wobei die Berechnungsaufgaben, die dem Mehrkernprozessor übertragen werden bzw. die dieser durchführen muss, auf die einzelne Prozessorkerne aufgeteilt werden.

Die Koordination dieser Verteilung stellt eine besondere Herausforderung dar.

Es ist Aufgabe der vorliegenden Erfindung, das Verfahren der eingangs genannten Art sowie die eingangs genannte Maschine weiterzuentwickeln. Diese Aufgabe wird gelöst mit einem Verfahren mit den Merkmalen des Anspruchs 1 sowie mit einer Maschine mit den Merkmalen des Anspruchs 16.

Das erfindungsgemäße Verfahren ist danach dadurch gekennzeichnet, dass jedem Prozessorkern derjenigen Prozessorkerne, auf die diese Berechnungsaufgaben verteilt werden, jeweils, insbesondere im Hinblick auf Startzeitpunkt, Endzeitpunkt und Zeitdauer, dieselben bzw. die identischen, zeitlich (insbesondere in einer Reihe) nacheinander angeordneten, bevorzugt jeweils unmittelbar aufeinander folgenden Zeitschlitze (Zeitabschnitte) insbesondere dynamisch zugeordnet werden, in denen sie jeweils nacheinander die ihnen jeweils zugeordneten Berechnungsaufgaben abarbeiten, vorzugsweise unter Verwendung eines vorbestimmten Timingschemas (Timingdiagramm).

Dies ermöglicht unter anderem, das Verfahren zum Betrieb der Maschine gesichert echtzeitfähig auszubilden.

Vorzugsweise wird die jeweilige Dauer (und/oder der Startzeitpunkt und/oder der Endzeitpunkt) der Zeitschlitze der Maschine dynamisch im Betrieb festgelegt, und zwar vorzugsweise abhängig von den jeweiligen tatsächlichen bzw. Ist-Berechnungsdauern und/oder prognostizierten Berechnungsdauern der jeweiligen Berechnungsaufgaben, die die Prozessorkerne ausführen. Dies insbesondere nach Maßgabe der Berechnungsdauer, die derjenige Prozessorkern für die Abarbeitung seiner Berechnungsaufgaben benötigt, der für die Abarbeitung in dem entsprechenden Zeitschlitz die längste Zeit aller betrachteten Prozessorkerne benötigt.

So kann etwa vorgesehen sein, dass der jeweils (in der Reihe) einem vorhergehenden Zeitschlitz, in dem aktuell Berechnungsaufgaben abgearbeitet werden, nachfolgende (weitere) Zeitschlitz für dessen Berechnungsaufgaben erst dann freigeben wird, wenn die letzte Berechnungsaufgabe aller in dem vorhergehenden Zeitschlitz abzuarbeitenden Berechnungsaufgaben abgearbeitet ist, die die betrachteten Prozessorkerne abzuarbeiten haben; oder anders ausgedrückt dann, wenn die letzte Berechnungsaufgabe desjenigen Prozessorkerns der Prozessorkerne abgearbeitet wurde, der in dem vorhergehenden Zeitschlitz am längsten für seine Berechnungsaufgaben benötigt. Es kann weiter vorgesehen sein, dass sich die Zeitschlitze nacheinander innerhalb einer vorgegebenen Gesamtzeitdauer zyklisch wiederholen, insbesondere innerhalb einer vorgegebenen Gesamtzeitdauer, die kleiner ist als die Taktzeit des Mehrkernprozessors/der Prozessorkerne, um sicherzustellen, dass die entsprechenden Berechnungen und ggf. Ausgabedaten/Ausgabesignale rechtzeitig innerhalb der eines Taktes erfolgen bzw. erzeugt werden. Die Taktzeit des Mehrkernprozessors/der Prozessorkerne kann beispielsweise 1 ms betragen.

Die einzelnen Zeitschlitze folgen vorzugsweise in einer Reihe derart zeitlich aufeinander, dass ein jeweils zeitlich in der Reihe nachfolgender Zeitschlitz unmittelbar startet, insbesondere ohne oder nur mit minimalem zeitlichen Versatz, sobald der vorhergehende Zeitschlitz endet.

Die Prozessorkerne, auf die die Berechnungsaufgaben verteilt werden (dies können, müssen aber nicht sämtliche der Prozessorkerne des Mehrkernprozessors sein), arbeiten entsprechend ihre jeweiligen Berechnungsaufgaben in der genannten Weise jeweils (zeitlich) parallel innerhalb desselben Zeitschlitzes der mehreren zugeordneten Zeitschlitze ab, und zwar insbesondere entsprechend definiert und/oder koordiniert.

Vorzugsweise beginnen alle Prozessorkerne gemeinsam mit ihren Berechnungsaufgaben automatisch unmittelbar zum Startzeitpunkt eines jeweiligen Zeitschlitzes.

Dabei ist allerdings denkbar, dass innerhalb des jeweiligen Zeitschlitzes, innerhalb dessen die Prozessorkerne gerade ihre Berechnungsaufgaben abarbeiten, einer, mehrere oder alle der Prozessorkerne bereits ihre jeweiligen Berechnungsaufgaben abschließen, bevor der Endzeitpunkt des Zeitschlitzes erreicht ist.

Weitere Merkmale der vorliegenden Erfindung ergeben sich aus den beigefügten Patent- ansprüchen, der nachfolgenden Beschreibung von Ausführungsbeispielen sowie aus den beigefügten Zeichnungen.

Darin zeigt: Fig. 1 einen Ausschnitt einer erfindungsgemäß betriebenen bzw. gesteuerten Verpackungsmaschine zur Herstellung von Packungen für Tabakprodukte,

Fig. 2 eine Seitenansicht auf die Verpackungsmaschine entlang der Blickrichtung II in Fig. 1 sowie eine schematisch dargestellte, einen IPC mit einem Mehrkehrnprozessor umfassenden

Automatisierungseinrichtung, die die Verpackungsmaschine steuert,

Fig. 3 ein Timingschema, das insbesondere im Normalbetrieb einer Maschine, insbesondere der Verpackungsmaschine in den Fig. 1 und 2, zur Verteilung der Berechnungsaufgaben auf die einzelnen Prozessorkerne eines Mehrkernprozessors verwendet wird,

Fig. 4 ein Timingschema, das in einem Initialisierungsbetrieb einer solchen Maschine verwendet wird.

Mit dem erfindungsgemäßen Verfahren kann beispielsweise eine Verpackungsmaschine 10 zur Verpackung von Zigaretten 11 bzw. zur Herstellung von Zigarettenpackungen mit Zigaretten 11 als Packungsinhalt betrieben bzw. gesteuert werden, wie sie beispielhaft in den Fig. 1 und 2 gezeigt ist und dem Fachmann in verschiedenster Art bekannt ist (in den Figuren nur ausschnittsweise dargestellt). Es versteht sich allerdings, dass das erfindungsgemäße Verfahren auch bei diversen anderen Arten von Maschinen anwendbar ist.

In der Fig. 1 ist ein Teil einer solchen Verpackungsmaschine 10 gezeigt, in dem in einem ersten Bereich Zigaretten 11 durch von einem Antrieb C im Maschinentakt hin und her bewegte, vorliegend als Einstößer 12 ausgebildete Maschinenorgane gruppen- und taktweise aus einem Zigarettenmagazin 13 in positionsgenau bereitgehaltene, von einem Antrieb A taktweise (weiter-)bewegte, vorliegend als Taschen 14 eines umlaufenden Taschenförderers 15 ausgebildete Maschinenorgane gestoßen oder geschoben werden. Der Taschenförderer 15 fördert die Zigarettengruppen im Weiteren taktweise in Richtung eines umlaufenden Mitnehmerförderers 16, der über einzelne, von einem Antrieb B bewegte, vorliegend als Mitnehmer 17 ausgebildete Maschinenorgane verfügt, die sich auf einer quer zu der Förderebene der Taschen 14 verlaufenden Förderbahn bewegen.

In einem Übernahmebereich 18, in dem sich die Förder- bzw. Bewegungsbahn der Taschen 14 und die Förder- bzw. Bewegungsbahn der Mitnehmer 17 schneiden, wird jeweils ein oberes, an die Innenkontur der jeweiligen Tasche 14 angepasstes Mitnehmerteil eines der Mitnehmer 17 durch eine jeweils bereitgehaltene Tasche 14 längs hindurchbewegt und fördert dabei die in der Tasche 14 befindliche Zigarettengruppe (unter Mitnahme derselben) quer zur Förderebene der Taschen 14 aus der Tasche 14 in Richtung einer nachfolgenden Wickelstation 19, in der dann ein Innenzuschnitt 20 auf die Zigarettengruppe gelegt und um diese gefaltet wird.

Die Antriebe A, B, C sind individuell ansteuerbar und vorliegend jeweils als Servoantriebe mit Servomotor und entsprechender Lageregelung ausgelegt. Die Steuerung konkret der dargestellten Bewegungen bzw. der Antriebe A, B, C sowie auch diverser anderer Komponenten der Maschine 10 erfolgt in dem genannten Beispiel über eine Automatisierungseinrichtung 21 , die vorliegend beispielsweise einen industriellen PC umfasst, IPC genannt, oder aus einem solchen besteht.

Der Begriff "Automatisierungseinrichtung" umfasst im Rahmen dieser Anmeldung sämtliche Automatisierungsgeräte sowie Einrichtungen, die solche Automatisierungsgeräte aufweisen, die jeweils zur Steuerung, Beeinflussung und/oder Überwachung von Maschinen geeignet sind und die jeweils bei Automatisierungslösungen zum Einsatz kommen können und dem Fachmann auf dem Gebiet der Automatisierungstechnik und des Maschinenbaus zum Anmeldezeitpunkt bekannt sind. Insbesondere können dies Steuerungen sein, wie speicherprogrammierbare Steuerungen, Prozessrechner, (Industrie-)Computer und dergleichen, Antriebssteuerungen, Frequenzumrichter und Ähnliches, wie sie zur Steuerung, Regelung und/oder Überwachung technologischer Prozesse z. B. zum Umformen oder Transportieren von Material, Energie oder Information etc. eingesetzt werden oder einsetzbar sind, wobei insbesondere über geeignete technische Einrichtungen, wie z. B. Sensoren oder Aktoren, Energie aufgewandt oder gewandelt wird. Die Steuerung einer Maschine, wie etwa der Verpackungsmaschine 10, die mit dem erfindungsgemäßen Verfahren betrieben werden soll, erfolgt vorzugsweise mittels einer Maschinensoftware, welche auf einer Recheneinheit einer solchen Automatisierungseinrichtung der Maschine ausgeführt wird, also etwa in dem vorliegenden Beispiel auf dem IPC. Mit steigender Komplexität der jeweiligen Maschine und deren zu steuernden Komponenten steigt auch der Bedarf der Rechenleistung der Recheneinheit.

Deshalb werden mittlerweile für die Recheneinheiten von Automatisierungseinrichtungen bereits Mehrkernprozessoren eingesetzt, auf denen dann die Maschinensoftware läuft bzw. von denen allgemein die Berechnungsaufgaben der Automatisierungseinrichtungen abgearbeitet werden. Dabei ist es bekannt, die anstehenden Berechnungsaufgaben auf die Prozessorkerne zu verteilen.

Im Rahmen dieser Anmeldung werden sämtliche Rechenschritte, die ein solcher Mehrkernprozessor bzw. dessen einzelne Prozessorkerne abarbeiten, zusammenfassend allgemein als "Berechnungsaufgaben" bezeichnet.

Berechnungsaufgaben können beispielsweise die Aufnahme bzw. Sammlung von Ist- Signalen der Maschine bzw. daraus ggf. abgeleiteten, insbesondere aktuellen Maschinendaten aus der Hardware der Maschine umfassen. Demnach insbesondere die Sammlung von Ist-Maschinendaten, die unter anderem von Sensoren der Maschine, aber auch von anderen Maschinendaten erzeugenden Hardware-Einheiten der Maschine stammen können. Bei den Sensoren kann es sich um jegliche Art von Sensoren handeln. Etwa beispielhaft um Drehgebersignale von Drehgebern, die Ist- Stellungen von Antrieben zugeordnet sind, wie etwa den Antrieben A, B oder C.

Berechnungsaufgaben können aber auch die Validierung solcher Maschinendaten umfassen; etwa den Vergleich dieser Maschinendaten mit hinterlegten Sollwerten oder dergleichen. Es können dabei auch Schlüssigkeitsprüfungen durchgeführt werden, um zu prüfen, ob die Maschinendaten schlüssig und/oder logisch sind und als Basis für spätere Berechnungen dienen können.

Berechnungsaufgaben können auch die Weiterverarbeitung dieser Maschinendaten umfassen. Etwa mithilfe von formelhaft hinterlegten Zusammenhängen zur Berechnung von auf den validierten Daten basierenden Ergebnissen. So können beispielsweise aus validierten Ist-Stellungen der Antriebe A, B, C Soll-Vorgaben für die Antriebe A, B, C errechnet werden oder allgemein Steuerungssignale/Steuerungsdaten, auf deren Basis dann die Antriebe A, B, C oder auch andere Prozesses bewegt bzw. gesteuert werden. Die Weiterverarbeitung der Maschinendaten kann aber beispielsweise auch umfassen, Unschlüssigkeiten der Maschinendaten zu erkennen bzw. Daten auf Basis dieser Maschinendaten zu errechnen, die unschlüssig sind. In einem solchen Fall werden entsprechende Fehlerdaten/Fehlersignale erzeugt.

Berechnungsaufgaben können des Weiteren die Ausgabe von den zu Steuerungsdaten etc. weiterverarbeiteten Maschinendaten an steuerbare Organe der Maschinen-Hardware umfassen, wie etwa an die Antriebe A, B, C, insbesondere als Steuerungssignale. Im vorstehend beschriebenen Fall der Weiterverarbeitung der Maschinendaten zu Fehlerdaten bzw. Fehlersignalen könnten die Berechnungsaufgaben die Ausgabe dieser Daten als Alarm- bzw. Warnsignale beispielsweise an ein Anzeige- oder Ausgabegerät umfassen, wie etwa einen Bildschirm oder dergleichen.

Durch die beschriebene Aufteilung der an dem Mehrkernprozessor anstehenden Berechnungsaufgaben auf dessen einzelne Prozessorkerne erfolgt eine entsprechend anteilige Verringerung der benötigten Gesamtrechenzeit.

Erfindungsgemäß besonders wichtig ist nun, dass jedem Prozessorkern der Prozessorkerne, auf die die Berechnungsaufgaben verteilt werden, jeweils insbesondere im Hinblick auf Startzeitpunkt, Endzeitpunkt und Zeitdauer dieselben bzw. die identischen zeitlich nacheinander angeordneten, insbesondere jeweils unmittelbar aufeinander folgenden Zeitschlitze (Zeitabschnitte) zugeordnet werden, in denen sie jeweils nacheinander die ihnen jeweils zugeordneten Berechnungsaufgaben abarbeiten.

Die Zeitschlitze sind dabei vorzugsweise Teil eines Timingschemas für die Prozessorkerne. Hierdurch wird eine parallele Abarbeitung der Berechnungsaufgaben insbesondere in Echtzeit möglich gemacht. Zur Sicherstellung der Echtzeitfähigkeit kann insbesondere vorgesehen sein, dass sich bevorzugt im Normalbetrieb der Maschine die Zeitschlitze nacheinander innerhalb einer vorgegebenen Gesamtzeitdauer zyklisch wiederholen müssen, insbesondere innerhalb einer vorgegebenen Gesamtzeitdauer, die kleiner ist als die Taktzeit des Mehrkernprozessors/der Prozessorkerne.

Denkbar wäre vorzusehen bzw. die Parameter der Zeitschlitze so festzulegen, insbesondere die Anzahl und deren Gesamtdauer, dass die Zeitschlitze insgesamt nicht mehr als 80 %, vorzugsweise nicht mehr als 70 % der Taktzeit bzw. Zykluszeit des Mehrkernprozessors bzw. der Prozessorkerne einnehmen bzw. umfassen dürfen.

Für den insbesondere taktweisen Normalbetrieb einer Maschine ist in Fig. 3 ein Timingschema 23 für vier Prozessorkerne 22 a-d eines Mehrkernprozessors 26 gezeigt.

Zu Beginn eines Zyklus bzw. Taktes startet dort automatisch ein erster Zeitschlitz 1 , in dem dann sämtliche Prozessorkerne 22 a-d ihre Berechnungsaufgaben 24 abarbeiten.

Danach startet unmittelbar auf den Zeitschlitz 1 zeitlich folgend Zeitschlitz 2, danach unmittelbar auf Zeitschlitz 2 zeitlich folgend Zeitschlitz 3 und schließlich unmittelbar auf den Zeitschlitz 3 zeitlich folgend Zeitschlitz 4.

Der jeweilige Startzeitpunkt und/oder der jeweilige Endzeitpunkt und/oder die jeweilige Länge jedes der Zeitschlitze 1-4 werden für jeden Prozessorkern 22 a-d, wie eingangs bereits dargestellt, vorzugsweise im Betrieb der Maschine 10 bzw. der Automatisierungseinrichtung 21 dynamisch festgelegt. Auch wenn zumindest theoretisch auch eine einmalige statische Vorfestlegung denkbar ist.

Die dynamische Festlegung kann abhängig von den jeweiligen tatsächlichen bzw. Ist- Berechnungsdauern und/oder prognostizierten Berechnungsdauern der jeweiligen Berechnungsaufgaben erfolgen, die die Prozessorkerne ausführen. Dies insbesondere nach Maßgabe der Berechnungsdauer, die derjenige Prozessorkern für die Abarbeitung seiner Berechnungsaufgaben benötigt, der für die Abarbeitung in dem entsprechenden Zeitschlitz die längste Zeit aller betrachteten Prozessorkerne benötigt. In dem vorliegenden Beispiel arbeiten die Prozessorkerne 22 a-d in dem Zeitschlitz 1 (Sammelzeitschlitz) die oben beschriebenen Berechnungsaufgaben ab, die das Sammeln von insbesondere aktuellen Maschinendaten der Maschinen-Hardware umfassen.

In dem Zeitschlitz 2 (Validierungszeitschlitz) werden von den Prozessorkernen 22 a-d die oben beschriebenen Berechnungsaufgaben abgearbeitet, die das Validieren der in dem Zeitschlitz 1 gesammelten Maschinendaten umfassen.

In dem Zeitschlitz 3 (Weiterverarbeitungszeitschlitz) werden die oben beschriebenen Berechnungsaufgaben abgearbeitet, die die Weiterverarbeitung der gesammelten Maschinendaten umfassen.

In dem Zeitschlitz 4 (Ausgabezeitschlitz) werden die oben beschriebenen Berechnungsaufgaben abgearbeitet, die die Ausgabe von in dem Weiterverarbeitungszeitschlitz weiterverarbeiteten Maschinendaten umfassen.

Wie jeweils erkennbar ist, vgl. beispielsweise die Prozessorkerne 22 c und 22 d und deren Berechnungsaufgaben 24 in Zeitschlitz 1, kann (naturgemäß unabhängig von dem Beispiel der Fig. 3) für den Fall, dass Berechnungsaufgaben innerhalb eines Zeitschlitzes vor dem festgelegten Endzeitpunkt des Zeitschlitzes abgeschlossen sind, ein Leerlaufprozess zur Füllung der Zeit bis zum Erreichen des Endzeitpunkts vorgesehen sein und/oder eingefügt werden, vgl. Leerlaufprozess 25 in Fig. 3.

Weiter kann vorgesehen sein, dass einer der Prozessorkerne des Mehrkernprozessors einer Maschine - Main Dispatcher -, bevorzugt ein im Laufe des Betriebs nicht wechselnder, vorbestimmter Prozessorkern des Mehrkernprozessors (in der Fig. 3 der Prozessorkern 22 a), die Berechnungsaufgaben, die die Prozessorkerne der Automatisierungseinrichtung abarbeiten müssen, auf die mehreren Prozessorkerne des Mehrkernprozessors verteilt und/oder eine gleichzeitige Freigabe der einzelnen Zeitschlitze initiiert, sodass die einzelnen Prozessorkerne mit ihren Berechnungsaufgaben in dem jeweils freigegebenen Zeitschlitz starten können.

Denkbar ist dabei im Übrigen auch, dass der Mehrkernprozessor mehrere solcher Main Dispatcher aufweist, die die vorgenannten Verteilungs- bzw. Freigabeaufgaben jeweils erfüllen, wobei dann jedem dieser Main Dispatcher jeweils eine eigene Gruppe von Prozessorkernen zugeordnet ist, für die er diese Aufgaben erfüllt. In diesem Zusammenhang ist auch denkbar, dass in diesem Fall einer der Prozessorkerne des Mehrkernprozessors, dies kann ggf. auch einer der vorgenannten Main Dispatcher sein, die Rolle eines nochmals übergeordneten Main Dispatchers übernimmt, dem wiederum die anderen Main Dispatcher zugeordnet sind, wobei er entsprechend übergeordnete Verteilungs-, Freigabe- und/oder Koordinierungsaufgaben (für/zwischen den zugeordneten Main Dispatchern) übernimmt.

Der bzw. ggf. jeder Main Dispatcher kann allgemein dafür sorgen, dass die richtigen Programme/Programmteile auf den richtigen Prozessorkern und zur richtigen Zeit ausgeführt werden. Somit dient der Main Dispatcher als übergeordnete Koordinationsstelle. Der Main Dispatcher kann dabei die Verteilung bzw. Zuordnung einzelner Berechnungen zu den Prozessorkernen nach verschiedenen Ansätzen vornehmen:

Ist beispielsweise der Rechenaufwand und die hierfür benötigte Rechenkapazität vor dem Start der Maschine bereits bekannt, kann eine definierte Aufteilung bzw. Zuordnung zu einzelnen Prozessorkernen vorab festgelegt werden.

Zeitkritische, aufwendige Berechnungen könnten entsprechend nicht allen Prozessorkernen des Mehrkernprozessors, sondern einer Untergruppe (feste Anzahl) von Prozessorkernen zugewiesen werden, um deren zeitgerechte Bearbeitung zu gewährleisten.

Denkbar ist auch eine automatische bzw. dynamisch Aufteilung bzw. Zuordnung von Berechnungen auf einzelne Kerne gemäß deren Auslastung. Hierfür würde eine Echtzeiterfassung der Auslastung der einzelnen Prozessorkerne erfolgen und gemäß deren freien Kapazitäten die Zuordnung der Berechnungen automatisch und variabel erfolgen.

Als weiterer Verteilungsansatz ist auch die Nutzung einer künstlichen Intelligenz zur Unterverteilung der Berechnungsaufgaben auf die einzelnen Kerne denkbar. Somit wäre eine automatische Zuordnung von Berechnungsaufgaben möglich, die auf trainierten Modellen basiert. Was den Zeitpunkt einer dynamischen Verteilung der Berechnungsaufgaben im Betrieb auf die einzelnen Prozessorkerne betrifft, so kann diese beispielsweise auch jeweils nach Ablauf bzw. nach Abschluss eines kompletten Taktes des Mehrkernprozessors/der Prozessorkerne neu festgelegt werden bzw. nach Abschluss sämtlicher Zeitschlitze. Denkbar ist aber auch, bereits nach Abschluss bzw. nach Beendigung jeweils eines vorhergehenden Zeitschlitzes eine Neuverteilung bereits für den jeweils nachfolgenden Zeitschlitz vorzusehen.

Es kann weiter vorgesehen sein, dass die anderen, letztlich von dem Main Dispatcher abhängigen Prozessorkerne - Sub Dispatcher -, in der Fig. 3 die Prozessorkerne 22 b- d, an den Main Dispatcher zurückmelden, wann ihre Berechnungsaufgaben abgeschlossen sind, und dass der Main Dispatcher erst dann den jeweils nächsten Zeitschlitz freigibt, wenn der letzte Sub Dispatcher den Abschluss seiner Berechnungsaufgaben gemeldet hat. Für den Fall, dass diesem letzten Prozessorkern bzw. Sub Dispatcher dies nicht bis zum Endzeitpunkt des entsprechenden Zeitschlitzes gelingt, könnte eine Fehlermeldung erzeugt werden und/oder die Maschine gestoppt werden.

In Fig. 3 ist des Weiteren ein besonderer "Nachrichtenaustausch" gezeigt. Werden beispielsweise innerhalb einer der beschriebenen Zeitschlitze 1-4 Daten erzeugt, die von mehreren (Software-) Komponenten der Maschine benötigt werden, kann eine hierarchisch unabhängige Verteilung dieser Daten in Form eines übergreifenden Nachrichtenaustausches - Global Messaging - vorgesehen sein. Dieser Nachrichtenaustausch wird vorzugsweise auf dem Main Dispatcher ausgeführt und auch durch den Main Dispatcher nach der Bearbeitung aller Zeitschlitze einmal pro Taktzyklus freigegeben.

Um beispielsweise den Zugriff von Softwarekomponenten der einzelnen Sub Dispatcher auf dieses Global Messaging herzustellen, kann ein Message Adapter als Programmteil in jede Softwarekomponente der Sub Dispatcher implementiert werden. Dieser Message Adapter kann sich jederzeit beim Global Messaging anmelden und/oder abmelden. Jeder Message Adapter kann dabei eine eigene Eingangs- und eine Ausgangsbox besitzen, die als Ringspeicher aufgebaut sein kann. Soll eine Nachricht von einem Message Adapter übertragen werden, wird diese in der Ausgangsbox abgelegt. Soll eine Nachricht vom Message Adapter empfangen werden, muss der Message Adapter die Nachricht zunächst "abonnieren", d. h., er muss dem Global Messaging mitteilen, welche Daten für ihn und seine weitere Berechnung notwendig sind. Danach kann zyklisch die Eingangsbox auf Nachrichten geprüft werden.

Das Global Messaging durchsucht zyklisch alle Ausgangsboxen der angemeldeten Message Adapter. Findet es eine Nachricht, prüft es alle anderen Message Adapter, ob diese die Nachricht abonnieren bzw. abonniert haben. Ist dies der Fall, fügt es die Nachricht in die Eingangsbox des Message Adapter.

Über diesen übergeordneten Austausch von Daten, ist eine direkte Adressierung (was an wen) jeder Softwarekomponente nicht mehr notwendig, wie dies im Stand der Technik erforderlich ist. Des Weiteren kann ein unnötiger Datentransfer verhindert werden, denn wenn keine Softwarekomponente die Datennachricht abonniert, liefert der Main Dispatcher solche Datennachrichten auch nicht eigenständig (keine passive Kommunikation). Das wiederum spart RechenleistungAzeit und sorgt so für schnellere Prozesse.

Während der Abarbeitung der Berechnungsaufgaben müssen die einzelnen Prozessorkerne auf Speicherbereiche in einem oder mehreren diesen zugeordneten Datenspeicher(n) zurückgreifen, um beispielsweise Daten zu kopieren, zu synchronisieren und/oder untereinander auszutauschen. Vor allem bei der übergreifenden Nutzung derselben Daten oder für die gegenseitige Nutzung abhängiger Daten durch verschiedene Prozessorkerne sollten diese Daten vorzugsweise vor einem gleichzeitigen Zugriff der Prozessorkerne geschützt sein.

Über dieses Prinzip der Absicherung des Speicherplatzes wird die Unversehrtheit (Integrität) der Daten gewährleistet. Diese Integrität ist vor allem bei der genannten übergreifenden Nutzung der Daten der Prozessorkerne notwendig. Beispielsweise, wenn ein erster Prozessorkern Berechnungsaufgaben verarbeitet, die von einem anderen Prozessorkern für seine Berechnungsaufgaben benötigt werden. Durch die Absicherung lassen sich Überschneidungen während der Abarbeitung der (aufgeteilten) Berechnungsaufgaben verhindern, sodass noch nicht abschließend berechnete Daten nicht vorzeitig weitergenutzt werden und zu falschen Berechnungsergebnissen führen.

Zur Sicherung der Datenintegrität ist dabei allgemein gesprochen vorgesehen, dass Speicherbereiche eines Datenspeichers, auf den ein erster und ein zweiter Prozessorkern im Rahmen der Abarbeitung ihrer Berechnungsaufgaben zugreifen können oder müssen, vor dem gleichzeitigen Zugriff beider Prozessorkerne geschützt werden. Dies insbesondere, indem der Speicherbereich für den zweiten Prozessorkern für die Dauer des Zugriffs des ersten Prozessorkerns gesperrt wird, wenn der Zugriff des zweiten Prozessorkerns später erfolgt als der Zugriff des ersten Prozessorkerns oder zur gleichen Zeit, wobei die Sperrung nach Abschluss des Zugriffs des ersten Prozessorkerns aufgehoben wird.

Weiter kann vorgesehen sein, dass zur Sicherung der Datenintegrität Speicherbereiche eines Datenspeichers, in dem Daten liegen, die von Berechnungen eines ersten Prozessorkerns abhängen, während dieser Berechnungen des ersten Prozessorkerns gesperrt werden vor dem Zugriff eines zweiten Prozessorkerns, und dass diese Sperre aufgehoben wird, wenn die Berechnungen abgeschlossen sind.

Dabei kann vorgesehen sein, dass für den Fall der Sperrung des Datenbereichs aufgrund des Zugriffs durch den ersten Prozessorkern der zweite Prozessorkern eine vorbestimmte Anzahl von weiteren Zugriffsversuchen durchführt. Für den Fall der Sperrung des Datenbereichs aufgrund des Zugriffs durch den ersten Prozessorkern kann dann vorgesehen sein, dass ein Fehlersignal erzeugt wird und/oder die Maschine gestoppt wird, wenn der zweite Prozessorkern während der Sperrung eine vorbestimmte Anzahl von vergeblichen Zugriffsversuchen durchgeführt hat.

Eine weitere Besonderheit der Erfindung betrifft die Initialisierung bzw. Einrichtung einer Maschine außerhalb des Normalbetriebs, der in der Regel vor letzterem erfolgt.

Für eine solche Initialisierung (beispielsweise im Rahmen einer Erst- oder Wiederinbetriebnahme der Maschine), insbesondere vor dem Normalbetrieb derselben, kann ein sich insbesondere nicht zyklisch wiederholender Initialisierungsbetrieb vorgesehen sein, der über einen Zeitschlitz verfügt - Initialisierungszeitschlitz -, in Fig. 4 Zeitschlitz I, in dem Berechnungsaufgaben abgearbeitet werden, die der Einrichtung bzw. Konfiguration der Maschine dienen.

Die Berechnungsaufgaben können dabei insbesondere die Sammlung von Ist- Maschinendaten der Maschinen-Hardware umfassen, bevorzugt von Ist- Maschinendaten, die von Sensoren der Maschine oder von anderen Maschinendaten erzeugenden Hardware-Einheiten der Maschine stammen, und/oder die Validierung von gesammelten Maschinendaten, und/oder die Weiterverarbeitung von validierten Maschinendaten und/oder die Ausgabe von weiterverarbeiteten Daten an steuerbare Organe der Maschinen-Hardware.

Bezugszeichenliste

10 Verpackungsmaschine

11 Zigaretten

12 Einstößer

13 Zigarettenmagazin

14 Taschen

15 Taschenförderer

16 Mitnehmerförderer

17 Mitnehmer

18 Übernahmebereich

19 Wickelstation

20 Innenzuschnitt

21 Automatisierungseinrichtung

22 a Prozessorkern

22 b Prozessorkern

22 c Prozessorkern

22 d Prozessorkern

23 Timingschema

24 Berechnungsaufgaben

25 Leerlaufprozess

26 Mehrkernprozessor