WO2023247196A1 - Maschine sowie verfahren zum betrieb derselben - Google Patents

Maschine sowie verfahren zum betrieb derselben Download PDF

Info

Publication number
WO2023247196A1
WO2023247196A1 PCT/EP2023/065332 EP2023065332W WO2023247196A1 WO 2023247196 A1 WO2023247196 A1 WO 2023247196A1 EP 2023065332 W EP2023065332 W EP 2023065332W WO 2023247196 A1 WO2023247196 A1 WO 2023247196A1
Authority
WO
WIPO (PCT)
Prior art keywords
machine
processor
time slot
calculation tasks
time
Prior art date
Application number
PCT/EP2023/065332
Other languages
English (en)
French (fr)
Inventor
Benny Beutler
Jan-Christian KOOP
Simon BRÜNS
Original Assignee
Focke & Co. (Gmbh & Co. Kg)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Focke & Co. (Gmbh & Co. Kg) filed Critical Focke & Co. (Gmbh & Co. Kg)
Publication of WO2023247196A1 publication Critical patent/WO2023247196A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Definitions

  • the present invention relates to a method for operating a machine that operates in particular cycles, in particular a packaging machine for packaging products, such as products from the tobacco industry, wherein the machine has at least one automation device for controlling, influencing and/or monitoring the machine, which has at least one Multi-core processor with several processor cores, in particular as part of an industrial PC of the automation device, are distributed to the calculation tasks of the automation device that process them.
  • the invention further relates to a machine that is operated using this method.
  • IPC industrial PC
  • each processor core of those processor cores to which these calculation tasks are distributed in particular with regard to the start time, end time and duration, the same or identical ones, arranged one after the other in time (in particular in a row), are preferred
  • each immediately successive time slots (time segments) are assigned, in particular dynamically, in which they each process the calculation tasks assigned to them one after the other, preferably using a predetermined timing scheme (timing diagram).
  • the respective duration (and/or the start time and/or the end time) of the time slots of the machine is determined dynamically during operation, preferably depending on the respective actual or actual calculation durations and/or predicted calculation durations of the respective calculation tasks that the Execute processor cores. This is in particular in accordance with the calculation time required for the processing of its calculation tasks by the processor core that requires the longest time of all the processor cores considered for processing in the corresponding time slot.
  • the (further) time slot following (in the series) a previous time slot in which calculation tasks are currently being processed is only released for its calculation tasks when the last calculation task of all calculation tasks to be processed in the previous time slot has been processed is that the processor cores under consideration have to process; or in other words, when the last calculation task of the processor core of the processor cores that needed the longest for its calculation tasks in the previous time slot was processed.
  • the time slots repeat cyclically one after the other within a predetermined total time period, in particular within a predetermined total time period that is smaller than the cycle time of the multi-core processor/processor cores, in order to ensure that the corresponding calculations and, if applicable, output data/output signals are carried out in a timely manner occur or be generated within one cycle.
  • the cycle time of the multi-core processor/cores can be, for example, 1 ms.
  • the individual time slots preferably follow one another in a row in such a way that a subsequent time slot in the row starts immediately, in particular with no or only a minimal time offset, as soon as the previous time slot ends.
  • the processor cores to which the calculation tasks are distributed (these can, but do not have to be, all of the processor cores of the multi-core processor) accordingly process their respective calculation tasks in the manner mentioned in parallel (in time) within the same time slot of the several assigned time slots, in particular defined and/or coordinated accordingly.
  • all processor cores begin their calculation tasks automatically immediately at the start time of a respective time slot.
  • FIG. 1 shows a section of a packaging machine operated or controlled according to the invention for producing packs for tobacco products
  • Fig. 2 is a side view of the packaging machine along the viewing direction II in Fig. 1 and a schematically illustrated one comprising an IPC with a multi-turn processor
  • FIG. 3 shows a timing scheme that is used in particular during normal operation of a machine, in particular the packaging machine in FIGS. 1 and 2, to distribute the calculation tasks to the individual processor cores of a multi-core processor,
  • Figure 4 shows a timing scheme used in an initialization operation of such a machine.
  • a packaging machine 10 for packaging cigarettes 11 or for producing cigarette packs with cigarettes 11 as pack contents can be operated or controlled, as is shown by way of example in FIGS. 1 and 2 and is known to the person skilled in the art in a variety of ways (only partially shown in the figures).
  • the method according to the invention can also be used in various other types of machines.
  • FIG. 1 shows a part of such a packaging machine 10, in which in a first area cigarettes 11 are moved back and forth by a drive C in the machine cycle, in the present case designed as an inserter 12, in groups and cycles from a cigarette magazine 13 in precise position Machine organs kept ready and moved cyclically (further) by a drive A, in the present case designed as pockets 14 of a rotating pocket conveyor 15, are pushed or pushed.
  • the pocket conveyor 15 further conveys the groups of cigarettes in cycles in the direction of a rotating driver conveyor 16, which has individual drivers 17 that are moved by a drive B and are designed in this case as drivers 17 Machine organs which move on a conveyor track running transversely to the conveying plane of the pockets 14.
  • a transfer area 18 in which the conveying or movement path of the pockets 14 and the conveying or movement path of the drivers 17 intersect, an upper driver part of one of the drivers 17, which is adapted to the inner contour of the respective pocket 14, is replaced by a respective one
  • the bag 14 held ready is moved lengthways through and thereby conveys the group of cigarettes located in the bag 14 (taking it with it) transversely to the conveying plane of the bags 14 from the bag 14 in the direction of a subsequent winding station 19, in which an inner blank 20 is then placed on the group of cigarettes and around it is folded.
  • the drives A, B, C can be controlled individually and are each designed as servo drives with a servo motor and corresponding position control.
  • the specific control of the movements shown or the drives A, B, C as well as various other components of the machine 10 takes place in the example mentioned via an automation device 21, which in the present case comprises, for example, an industrial PC, called an IPC, or consists of one.
  • automation device includes all automation devices and devices that have such automation devices, which are each suitable for controlling, influencing and/or monitoring machines and which can each be used in automation solutions and which are available to the person skilled in the art Automation technology and mechanical engineering are known at the time of registration.
  • these can be controls such as programmable logic controls, process computers, (industrial) computers and the like, drive controls, frequency converters and the like, such as those used to control, regulate and/or monitor technological processes, e.g. B. for forming or transporting material, energy or information etc. can be used or can be used, in particular via suitable technical devices, such as. B. sensors or actuators, energy is used or converted.
  • the control of a machine is preferably carried out using machine software which is executed on a computing unit of such an automation device of the machine, i.e. in the present example on the IPC.
  • a computing unit of such an automation device of the machine i.e. in the present example on the IPC.
  • multi-core processors are now used for the computing units of automation devices, on which the machine software then runs or which generally process the calculation tasks of the automation devices. It is known to distribute the pending calculation tasks among the processor cores.
  • computational tasks In the context of this application, all computing steps that such a multi-core processor or its individual processor cores process are collectively referred to as “computation tasks”.
  • Calculation tasks can include, for example, the recording or collection of actual signals from the machine or, if necessary, derived from them, in particular current machine data from the machine's hardware. Accordingly, in particular the collection of actual machine data, which can come from, among other things, the machine's sensors, but also from other machine data-generating hardware units of the machine.
  • the sensors can be any type of sensors. For example, encoder signals from encoders that are assigned to the actual positions of drives, such as drives A, B or C.
  • calculation tasks can also include the validation of such machine data; For example, comparing this machine data with stored target values or the like. Consistency tests can also be carried out to check whether the machine data is coherent and/or logical and can serve as a basis for later calculations.
  • Calculation tasks can also include further processing of this machine data. For example, with the help of formula-based relationships for calculation of results based on the validated data. For example, from validated actual positions of the drives A, B, C, target specifications for the drives A, B, C can be calculated or, in general, control signals/control data, on the basis of which the drives A, B, C or other processes can then be moved or be controlled.
  • the further processing of the machine data can also include, for example, recognizing inconclusiveness in the machine data or calculating data that is inconclusive based on this machine data. In such a case, corresponding error data/error signals are generated.
  • Calculation tasks can further include the output of the machine data, which has been further processed into control data, etc., to controllable elements of the machine hardware, such as the drives A, B, C, in particular as control signals.
  • the calculation tasks could include the output of this data as alarm or warning signals, for example to a display or output device, such as a screen or the like.
  • each processor core of the processor cores to which the calculation tasks are distributed is assigned the same or identical time slots (time segments) arranged one after the other, in particular immediately following one another, in particular with regard to the start time, end time and time period, in which they work through the calculation tasks assigned to them one after the other.
  • the time slots are preferably part of a timing scheme for the processor cores. This makes it possible to process the calculation tasks in parallel, especially in real time. To ensure real-time capability, it can be provided in particular that, preferably during normal operation of the machine, the time slots must be repeated cyclically one after the other within a predetermined total time period, in particular within a predetermined total time period that is smaller than the cycle time of the multi-core processor/processor cores.
  • time slots in particular the number and their total duration, so that the time slots do not occupy or cover a total of more than 80%, preferably not more than 70%, of the cycle time or cycle time of the multi-core processor or processor cores may.
  • a timing scheme 23 for four processor cores 22 a-d of a multi-core processor 26 is shown in FIG.
  • a first time slot 1 starts automatically, in which all processor cores 22 a-d then process their calculation tasks 24.
  • time slot 2 starts, then immediately after time slot 2, time slot 3 starts, and finally immediately after time slot 3, time slot 4 starts.
  • the respective start time and/or the respective end time and/or the respective length of each of the time slots 1-4 are determined dynamically for each processor core 22 a-d, as already shown at the beginning, preferably during operation of the machine 10 or the automation device 21. Even if, at least theoretically, a one-off static pre-determination is also conceivable.
  • the dynamic determination can take place depending on the respective actual or actual calculation times and/or predicted calculation times of the respective calculation tasks that the processor cores carry out. This is in particular in accordance with the calculation time required for the processing of its calculation tasks by the processor core that requires the longest time of all the processor cores considered for processing in the corresponding time slot.
  • the processor cores 22 ad process the calculation tasks described above in time slot 1 (collection time slot), which include collecting, in particular, current machine data from the machine hardware.
  • time slot 2 (validation time slot)
  • the processor cores 22 a-d process the calculation tasks described above, which include validating the machine data collected in time slot 1.
  • time slot 3 (further processing time slot) the calculation tasks described above are processed, which include further processing of the collected machine data.
  • time slot 4 output time slot
  • the calculation tasks described above are processed, which include the output of machine data further processed in the further processing time slot.
  • the processor cores 22 c and 22 d and their calculation tasks 24 in time slot 1 can (naturally independent of the example in FIG. 3) in the event that calculation tasks within a time slot before the specified end time of the time slot have been completed, an idle process can be provided and/or inserted to fill the time until the end time is reached, see idle process 25 in FIG. 3.
  • one of the processor cores of the multi-core processor of a machine - main dispatcher - preferably a predetermined processor core of the multi-core processor that does not change during operation (in FIG. 3 the processor core 22 a)
  • the calculation tasks that the processor cores of the Automation device must be processed, distributed among the several processor cores of the multi-core processor and / or a simultaneous release of the individual time slots is initiated, so that the individual processor cores can start their calculation tasks in the respective released time slot.
  • the multi-core processor has several such main dispatchers, each of which carries out the aforementioned distribution or release tasks fulfill, whereby each of these main dispatchers is then assigned its own group of processor cores for which it fulfills these tasks.
  • one of the processor cores of the multi-core processor which can also be one of the aforementioned main dispatchers, takes on the role of a higher-level main dispatcher, to which the other main dispatchers are assigned, whereby it is correspondingly takes over higher-level distribution, release and/or coordination tasks (for/between the assigned main dispatchers).
  • each main dispatcher can generally ensure that the right programs/program parts are executed on the right processor core and at the right time.
  • the main dispatcher therefore serves as a higher-level coordination point.
  • the main dispatcher can distribute or assign individual calculations to the processor cores using various approaches:
  • Time-critical, complex calculations could therefore not be assigned to all processor cores of the multi-core processor, but rather to a subgroup (fixed number) of processor cores in order to ensure that they are processed in a timely manner.
  • Another possible distribution approach is the use of artificial intelligence to subdivide the calculation tasks among the individual cores. This would make it possible to automatically assign calculation tasks based on trained models. As far as the time of dynamic distribution of the calculation tasks during operation to the individual processor cores is concerned, this can also be redefined, for example, after the expiration or completion of a complete cycle of the multi-core processor/processor cores or after completion of all time slots. However, it is also conceivable to provide a redistribution for the subsequent time slot after completion or completion of a previous time slot.
  • processor cores 22 b-d report back to the main dispatcher when their calculation tasks have been completed, and that the main Dispatcher only releases the next time slot when the last sub dispatcher has reported the completion of its calculation tasks. In the event that this last processor core or sub dispatcher does not succeed in doing this by the end time of the corresponding time slot, an error message could be generated and/or the machine could be stopped.
  • a special “message exchange” is also shown in FIG. If, for example, data is generated within one of the described time slots 1-4 that is required by several (software) components of the machine, a hierarchically independent distribution of this data in the form of a comprehensive message exchange - global messaging - can be provided.
  • This message exchange is preferably carried out on the main dispatcher and is also released by the main dispatcher once per clock cycle after all time slots have been processed.
  • a message adapter can be implemented as a program part in each software component of the sub-dispatchers. This message adapter can log in and/or log out of global messaging at any time.
  • Each message adapter can have its own input and output box, which can be designed as a ring buffer. If a message is to be transmitted by a message adapter, it is stored in the Output box stored. If a message is to be received by the message adapter, the message adapter must first "subscribe" to the message, i.e. it must inform global messaging which data is necessary for it and its further calculation. The inbox can then be checked cyclically for messages.
  • Global Messaging cyclically searches all outboxes of the registered message adapters. If it finds a message, it checks all other message adapters to see whether they subscribe or have subscribed to the message. If this is the case, it adds the message to the message adapter's inbox.
  • the individual processor cores While processing the calculation tasks, the individual processor cores must access memory areas in one or more data memories assigned to them, for example in order to copy, synchronize and/or exchange data with one another. Especially when using the same data across the board or for the mutual use of dependent data by different processor cores, this data should preferably be protected from simultaneous access by the processor cores.
  • This principle of securing storage space ensures the integrity (integrity) of the data.
  • This integrity is particularly necessary for the above-mentioned comprehensive use of the data from the processor cores. For example, when a first processor core processes calculation tasks that are required by another processor core for its calculation tasks.
  • the protection can prevent overlaps during the processing of the (divided) calculation tasks, so that it is not yet final Calculated data cannot be used prematurely and lead to incorrect calculation results.
  • memory areas of a data memory to which a first and a second processor core can or must access as part of the processing of their calculation tasks are protected from simultaneous access by both processor cores. This is done in particular by blocking the memory area for the second processor core for the duration of the access of the first processor core if the access of the second processor core occurs later than the access of the first processor core or at the same time, the blocking occurring after the access of the first processor core has been completed will be annulled.
  • the second processor core carries out a predetermined number of further access attempts.
  • provision can then be made for an error signal to be generated and/or the machine to be stopped if the second processor core has carried out a predetermined number of unsuccessful access attempts during the blocking.
  • Another special feature of the invention relates to the initialization or setup of a machine outside of normal operation, which usually takes place before the latter.
  • an initialization operation that is particularly non-cyclically repeating can be provided, which has a time slot - initialization time slot -, in Fig. 4 Time slot I, in which calculation tasks are processed that are used to set up or configure the machine.
  • the calculation tasks can in particular include the collection of actual machine data from the machine hardware, preferably from actual machine data that comes from sensors of the machine or from other hardware units of the machine that generate machine data, and/or the validation of collected machine data, and /or the further processing of validated machine data and/or the output of further processed data to controllable organs of the machine hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die 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 Äutomatisierungseinrichtung (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 Äutomatisierungseinrichtung (21), auf die Berechnungsaufgaben der Äutomatisierungseinrichtung (21) verteilt werden, die diese abarbeiten. Das Verfahren ist 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) vorzugsweise fest zugeordnet werden, in denen sie jeweils nacheinander die ihnen jeweils zugeordneten Berechnungsaufgaben abarbeiten, vorzugsweise unter Verwendung eines vorbestimmten Timingschemas (Timingdiagramm).

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

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.
*****
PCT/EP2023/065332 2022-06-21 2023-06-08 Maschine sowie verfahren zum betrieb derselben WO2023247196A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022115421.1A DE102022115421A1 (de) 2022-06-21 2022-06-21 Maschine sowie Verfahren zum Betrieb derselben
DE102022115421.1 2022-06-21

Publications (1)

Publication Number Publication Date
WO2023247196A1 true WO2023247196A1 (de) 2023-12-28

Family

ID=86861874

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/065332 WO2023247196A1 (de) 2022-06-21 2023-06-08 Maschine sowie verfahren zum betrieb derselben

Country Status (2)

Country Link
DE (1) DE102022115421A1 (de)
WO (1) WO2023247196A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253853A1 (en) * 2005-04-22 2006-11-09 Shengbing Jiang Extensible scheduling of tasks in time-triggered distributed embedded systems
EP2583437A1 (de) * 2010-06-17 2013-04-24 Saab AB Verteilte avionik

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010028896A1 (de) 2010-05-11 2011-11-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Vorrichtung zum Zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur
DE102012011584A1 (de) 2012-06-13 2013-12-19 Robert Bosch Gmbh Ressourcen-Managementsystem fürAutomatisierungsanlagen
DE102016221526A1 (de) 2016-11-03 2018-05-03 Robert Bosch Gmbh Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
DE102016222375A1 (de) 2016-11-15 2018-05-17 Robert Bosch Gmbh Vorrichtung und Verfahren zum Bearbeiten von Aufträgen
DE102017206626A1 (de) 2016-12-19 2018-07-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Steuern von Prozessen

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253853A1 (en) * 2005-04-22 2006-11-09 Shengbing Jiang Extensible scheduling of tasks in time-triggered distributed embedded systems
EP2583437A1 (de) * 2010-06-17 2013-04-24 Saab AB Verteilte avionik

Also Published As

Publication number Publication date
DE102022115421A1 (de) 2024-01-11

Similar Documents

Publication Publication Date Title
EP2067081B1 (de) Verfahren zum synchronisieren zweier steuereinrichtungen und redundant aufgebaute automatisierungsvorrichtung
EP0107026B1 (de) Speicherprogrammierbare Steuerung
WO2021008782A1 (de) Vorausschauende wartung für eine vorrichtung in der lebensmittelindustrie mithilfe eines digitalen zwillings und optimierte produktionsplanung
EP2504738A1 (de) Parallelisierte programmsteuerung
EP1238318B1 (de) Automatisierungsgerät und aufdat-verfahren
EP2732347B1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
EP3082002B1 (de) Sicherheitssteuerung und verfahren zum steuern einer automatisierten anlage
DE102006052757A1 (de) Automatisierungsgerät mit einer Verarbeitungseinheit und Verwendung einer Verarbeitungseinheit in einem Automatisierungsgerät
WO2023247196A1 (de) Maschine sowie verfahren zum betrieb derselben
DE2632277A1 (de) Mikroprogrammierbarer computer fuer eine numerische steuervorrichtung
EP3861440A1 (de) Verfahren zur datenverarbeitung und speicherprogrammierbare steuerung
EP2090948B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
DE102017130552B3 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
EP0799448A1 (de) Responsives system zur signalverarbeitung sowie verfahren zur herstellung eines responsiven systems
DE60302103T2 (de) Steuerungsvorrichtung für eine Maschine
EP3548975B1 (de) Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage
EP1947540B2 (de) Verfahren zur Speicherung und Reproduktion eines Zustands in einem Automatisierungsgerät
EP3553608A1 (de) Automatisierungsanlage und verfahren zum betreiben einer automatisierungsanlage
DE112021002502T5 (de) Steuerung
WO2024110390A1 (de) Lager- und kommissioniersystem mit optimiertem materialfluss
WO2023066626A1 (de) Verfahren zur verarbeitung von daten mit einem datenverarbeitungsnetzwerk umfassend eine mehrzahl von datenverarbeitungsmodulen, datenverarbeitungsmodul und datenverarbeitungsnetzwerk
EP3095015B1 (de) Vorrichtung und verfahren zum betrieb einer automatisierungsanlage mit reduziertem energieverbrauch
WO2022063663A1 (de) Verfahren, datenverarbeitungsmodul und datenverarbeitungsnetzwerk zur verarbeitung von daten
EP1982238B1 (de) Steuerverfahren und prozessorsystem dafür
EP3742240A1 (de) Verfahren und engineering-system zur änderung eines programms einer industriellen automatisierungskomponente

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23732024

Country of ref document: EP

Kind code of ref document: A1