Method and system
The method and system improve operator integration and shop floor agility by using an event log for dynamic task management between machines and human actors, addressing the inefficiencies of current systems.
Patent Information
- Application Number
- PCT/JP2023/033768
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-15
- Publication Date
- 2025-03-20
AI Technical Summary
Current manufacturing operation systems lack effective integration of operators, leading to inefficiencies and inflexibility, particularly in dynamic shop floor environments where human operators need to interact with machines and other resources.
A method and system that utilize an event log to facilitate reactive task management between machines and human actors on a shop floor, allowing for dynamic assignment of tasks based on capability signals from actors and reducing the need for centralized planning.
This approach enhances operator integration, improves the agility and responsiveness of shop floor operations, and reduces the complexity and costs associated with traditional centralized planning systems.
Smart Images

Figure JP2023033768_20032025_PF_FP_ABST
Abstract
Description
METHOD AND SYSTEM
[0001] the present invention generally relates to a method for reactive task management between machines and actors located on a shop floor. Furthermore, the present invention generally relates to a system for the same. The method and system also relate to controlling of shop floors, machining lines, machining cells or stand-alone machining centers. [Background Art
[0002] In present methods and systems, the operator integration in control software architectures is low. Operators consume dashboards, realize proactive scheduled task lists or follow pre-defined task instructions. However, no fine planning systems, which mean that a specific worker is assigned for a specific task, exist. The complexity in using and operating such a centralized fine planning would lead to greatly increased software and hardware requirements due to the number of actors, actuators and resources required in such a system. Current IT systems do not represent communication and orchestration patterns like humans would do as humans plan tactically in smaller groups to better react to changing conditions and requirements. That is to say, today’s IT-system-orchestrated manufacturing operation is not human-centric.
[0003] Further, the shop floor is not dynamic and agile because there are parallel systems running on a shop floor, such as centrally (IT-)allocated main resources (like machining centers) and decentralized human-orchestrated secondary processes.
[0004] Additionally, automation today is characterized by isolation of robots by fences. Humans only can interact with systems via predefined (local) hardware or software interfaces. With the introduction of mobile robots (AGVs / AMRs), the need for local actuators and fences will disappear. With it, controllers for orchestrating machines, devices and data must become more wide-range acting and flexible and manufacturing operation systems are necessary to close the gap between the PLC (programmable logic controller) and MES (manufacturing execution system) levels. Nevertheless, areas with full automation are not realistic, especially in brownfield / existing job shops. The idea of a fully automated shop floor / factory / workshop is known, and only in few cases has it become reality considering buffer areas and big capital investments that are needed. Finally, the human is the most versatile actuator for secondary processes like tool preparation or quality check. Operators are and will be a fundamental part of an overall shop floor. The latest frontline automation systems show how it can be better, but these do not consider the complexity of controlling machining centers and flexible manufacturing system controllers including its necessary planning and handling of devices and data for machining.
[0005] State of the art cell controllers are encapsulated systems automating repeatable secondary (or non-value adding tasks) like exchanging workpieces, exchange tools, temporary storing of workpieces or / and tools. Physically, these systems are separated from the human accessible shop floor via security fences. These systems have limited collaboration with a human operator. Standard cell controllers are prone to human intervention. Human intervention leads to a mismatch between the physical state and the state stored in database which causes time consuming recovery actions.
[0006] Standard cell controllers also have fixed system set-ups which cannot be changed during runtime. Updating the software and adding or removing hardware leads to system downtime, thereby reducing the throughput of the system.
[0007] There is therefore a need for better operator integration in manufacturing operation systems.
[0008] The invention is set out in the independent claims. Preferred embodiments of the invention are set out in the dependent claims.
[0009] According to a first aspect, we describe a method comprising: sending, by a first machine arranged on a shop floor, a first signal comprising data about a task related to running the first machine to a storage medium to write a first event on an event log stored on the storage medium, wherein the event log is recognizable by each one of a plurality of actors operating on the shop floor, wherein the first event corresponds to the task; reading, by each of the plurality of actors, the event log; sending, by any of the plurality of actors capable of performing the task, to the storage medium one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task; determining, by a processor coupled to the storage medium, which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: sending, by the processor to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the first actor, the first actor is informed of the task having been assigned to the first actor; and b) in case at least two of the plurality of actors sent at least two respective second signals to the storage medium: sending, by the processor to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the at least two actors; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the at least two actors, the one of the at least two actors is informed of the task having been assigned to said actor.
[0010] The term “recognizable by” as used throughout the present disclosure may be equivalent to or comprise “visible to”. The event log may, for example, be readable by each one of the plurality of actors, or by a subset of the plurality of actors. Additionally or alternatively, the term “recognizable”, as in the event log being recognizable by an actor (and / or any component in the system), may, in any one or more of the examples outlined throughout the present disclosure, mean that the event log (that is events / data written on the event log) is readable and / or processible by the actor (and / or any component in the system).
[0011] The first machine may be one of any number (i.e. one or more) of possible machines suitable for positioning on a shop floor. For example, the first machine may be a generic assembly actor. The generic assembly actor may be responsible for conducting physical assembly tasks. An assembly task may be defined by creating a physical module out of physical items. Via the assembly process of a module a unique resource identifier may be assigned from the system, as will be described in more detail herein. The unique resource identifier of the module may describe the temporary existing physical item such as an assembly out of tool holder and tool. Each physical item of the assembly may keep its own unique resource identifier for ensuring independent life time tracking. The unique resource identifier of the assembly may be published to the event log and can be consumed by other generic actors, which will be described in more detail herein.
[0012] The event log may be an immutable append only event log. In contrast to a standard cell controller which uses a classical relational approach of representing the physical system state, an immutable append only event log (called an “event log” herein) may be used. The event log may need an interface for generic actors. This may lead to a possible reconstruction of activities should an error be made in the system. Therefore, supervisors, humans, or any other suitable person or apparatus can check as to which person / machine was assigned to and / or completed the task. For decoupling purposes this interface may be needed to follow a publish / subscribe pattern. It may be ensured that the incoming events are appended to the event log in a chronological order but also in a logical order. This logical order may be predetermined from real world processes. The event log can be deployed centralized or distributed. Algorithms (that is IT algorithms) may be used in order to ensure that a logical order is implemented on the event log. An IT algorithm may, in some examples, be needed in order to keep consistency for events written on the event log.
[0013] The plurality of actors may be any suitable type of actor positionable on, and suitable for, a shop floor. An actor may be defined as one or more of the following:
[0014] A generic geometry transformation actor may allow for geometrical transformation which can be subtractive (milling, lathing, sparking, sawing, etc.) and / or additive (welding, 3D printing, etc.). This actor may represent the value adding entities on each shop floor. The generic geometry transformation actor may subscribe to events related to process steps and react with second signals and second events accordingly. During manufacturing, the generic transformation actors may also publish status events. The generic transformation actor may also interact, via the event log with other generic actors. These interactions can be physical interactions, where physical objects such as workpieces or tools are exchanged, or virtual interactions, where data such as NC files, tool data or any other machine specific parameter are exchanged. The generic transport actors, as described below, can interact with the generic geometry transformation actors for loading workpieces or tools or other end-effectors which can geometrically transform solid bodies.
[0015] A generic transport actor may be responsible for conducting transport tasks comprising, for example, loading and / or unloading of physical items. The transport task may be defined by actively changing the location of physical items on the shop floor, such as a workpiece or tools. These location changes may also be published to the event log and can be subscribed to by other generic actors. A successful updated location may also trigger a certain information flow of defined properties of the to be transported physical item to the designated generic actor.
[0016] A generic check actor may be responsible for conducting physical or virtual check tasks. A check task may be defined as comparing a given setpoint with an actual value and / or feeding back subjective evaluation. In the present disclosure, a check task may fall into the category of “maintenance”. The result of the comparison (in some cases based on a customizable rule-set) may be published to the event log. The customizable rule-set may allow for a customer to decide what to do in specific cases via, for example, a decision tree based on a result of the check task. For example, the actor may repeat a machining process if the dimensions of a hole are outside a tolerance due to the tool bending as a consequence of tool wear. The result can be of type passed or failed. In case of a pass, the next process step may be triggered. In case of a fail, the next action depends on the customizable rule-set. For example, the last process step could be triggered again or the process can be interrupted. In some examples, the check task and / or the first machine and / or the event log may ask for the actor to input a value related to the task. This value can then be used to decide further actions to be taken by the first machine and / or the actor and / or a different actor via, in some examples, comparing the input value with an expected value. The value may relate to a visual inspection, an acoustic inspection, a haptic inspection, a physical inspection, or any other suitable type of inspection.
[0017] A generic measurement actor may be responsible for conducting physical measurement tasks such as geometrical quality / tolerance features of workpieces, geometrical features of tools or indication of wear width and / or chipping on tools and / or other equipment and / or consumables. The measurement results may be published to the event log and can be consumed by other generic actors.
[0018] A generic assembly actor may be responsible for conducting physical assembly or disassembly tasks. An assembly task may be defined by creating a physical module out of physical items. Via the assembly process of a module a unique resource identifier may be assigned from the system, as will be described in more detail herein. The unique resource identifier of the module may describe the temporary existing physical item such as an assembly out of tool holder and tool. Each physical item of the assembly may keep its own unique resource identifier for ensuring independent life time tracking. The unique resource identifier of the assembly may be published to the event log and can be consumed by other generic actors, which will be described in more detail herein.
[0019] A generic actor may have a specific set of capabilities called X, also describable as a logical entity. During implementation, the generic actor may be coupled to a physical entity via a specific adaptor. Resulting on this connection, an individual sub-set of capabilities called Y may be generated automatically during start-up. A physical entity can overtake multiple generic actors. The generic actor may be an entity that can communicate via publication and subscription to the event log. For interacting with physical devices, the generic connector may need to be combined with a “specific adaptor” which acts as an interface to the physical device. The specific adaptor may cause abstraction of the device proprietary communication interface and / or mapping of the proprietary commands to the capabilities of the generic actor. The specific adaptor may also technologically abstract the proprietary interfaces of the hardware devices via using standardized communication protocols such as websockets, etc. Not every physical device can support each capability of a generic actor, therefore each combination of a generic actor and a specific adaptor may result in a different sub-set of resulting capabilities. According to the resulting sub-set of capabilities the generic actor may publish and subscribe to a specific set of events in the event log and conduct actions accordingly.
[0020] In some further examples, the actor may be a software node. In this case, the actor may not comprise any moving parts, but may comprise, for example, a processor and / or a transceiver and / or a memory, and may be able to undertake calculations and / or processes related to the task that require only data and / or software. This may also apply to an actor having one or more moving parts and a processor and / or a transceiver and / or a memory.
[0021] The skilled person understands that the first machine may be any of the above actors. The skilled person also understands that in a system, there may be a plurality of any one of the above actors and / or an absence of any of the above actors.
[0022] The determination may comprise two parts. A job injection actor may input manufacturing jobs to the system and / or processor and / or storage medium via the first and / or second signals. A job can consist of multiple process steps. The process steps may be divided into value adding steps that, for example, conduct geometrical transformation on workpieces or of no-value adding steps which may be, for example, checking tasks, which may mean any kind of inspection, and measurement tasks, which may mean measurement of geometrical aspects related to geometrical tolerance measures. The job injection node can be a graphical user interface (for human-centric input) or an application programming interface for interfacing with other computer systems such as ERP (enterprise resource management) or MES (manufacturing execution system) systems or online platforms like cloud manufacturing services. It can be also a hybrid version out of GUI and API. A process manager may manage process steps and task assignment. The process manager may contain a cost function. Via the process manager, the weights of the cost function can be individually adapted. Prior to each announcement, a plurality of announcements, of a new process or tasks, the process manager may check if all required pre-conditions for the actors are met. The pre-conditions may be defined as a rule-set of the process manager. The rule-set could be individually adapted for each use case, i.e. for each type of task being carried out by the actor. The cost function component of the process manager may be triggered when second events are published to the event log, due to the subscription of the process manager and actors to these event types. The process manager may then publish the result of the cost function process to the event log. This may then inform the generic actors which were involved if they have been given the task. This pattern of decoupled communication via publication and subscription to the event log may ensure scalability of the method and system described herein.
[0023] The above may allow for more efficient orchestration of resources considering machines, robots, devices, data and actors without a system break between planning and / or controlling primary and secondary processes.
[0024] Throughout the present disclosure, it should be understood that the terms “machine” and “human” may be interchangeable with the term “actor”.
[0025] The second event and / or second signals may only comprise data about the possible capabilities of the actor. That is to say, the actor may send a second signal while being busy with another task and / or out of operation, as the actor still has the capability to perform the task.
[0026] In some examples, the determining of which of the plurality of actors to assign the task to based on the one or more second events is based on the processor reading the event log. In some examples, the processor may read the event log and see which actors have written second events to the event log. The processor may then only use actors which have written second events to the event log in the determination step. This may lead to a more efficient process in terms of hardware requirements, as the processor may only need to run the determination step of a subset of actors, and not for every actor coupled, wirelessly, or wiredly, to the processor.
[0027] In some examples, once any event has been written on the event log, said event cannot be removed from the event log. This may allow for the functioning of the publication and subscription system (herein sometimes called pub / sub), and allow for actors and / or the processor to parse all of the first and / or second events which have occurred, thereby improving the efficiency of the method and system as the actors and / or processor can scan the entire history of the event log. Indeed, in some examples, the event log is immutable, and said event is an immutable append to the event log.
[0028] In some examples, at least one of the plurality of actors is a human. The human may be integrated into the system via smart devices such as a smart phone, a smart watch, headphones, a pager, a laptop, a tablet computer, smart glasses, a neurotransmitter, or any other suitable device. The smart devices may be the physical interface between the human and the system / method. The human may also listen / scan / receive updates to / from the event log. The human may consume and parse the same events as the machine actors, as the human may also just be an instance of the generic actors. This may achieve a seamless integration of the human into the system and method, and the human can be used by the system as an integral part without corrupting the system. In some examples, the first and / or second lists mentioned herein, or indeed any list, may be viewed by a human via an app on a smart phone and / or laptop and / or computer and / or smart watch and / or any other suitable device.
[0029] In some examples, upon having been informed of having been assigned the task, the method comprises updating or generating, by the actor which has been assigned to the task, a first task list visible only to the actor which has been assigned to the task, wherein the first task list comprises the task which the actor has been assigned to. This may allow for the actor easily see which tasks it has been assigned and yet to complete, thereby ensuring that each task is completed. In some examples, there may not be a first and / or second task list, wherein the second task list is described in more detail below. In such a scenario, the actor(s) may be able to directly read the event log via reading the events and / or subscribing to certain events, wherein the certain events require a capability the actor(s) comprises to be needed for the task.
[0030] In some examples, upon completion of a part of the task by the actor which the task was assigned to, the method comprises sending, by the actor to the storage medium, data about the completion of the part of the task to write a fifth event on the event log. This may allow for the processor and / or other actors to see that a task has been at least partially completed. This task may then be moved to a partially “completed” list, wherein the actors cannot write second events to the event log regarding this task. This may allow for tasks to not be doubled up, thereby improving the efficiency of the method and system. In some examples, the event log, and actors subscribed to the event log, may take note of where the actor is in the task, in order for one of the other actors to take over the task in case of, for example, malfunction, breakdown, shift-ending, or any other reason why the actor may not be able to complete the task. In this case, another actor with at least the capability to undertake the task may take over and complete the task.
[0031] In some examples, upon starting of the task by the actor which the task was assigned to, the method comprises sending, by the actor to the storage medium, data about the starting of the task to write a sixth event on the event log. This may allow for the event log and / or other actors to see that the task has been started. This task may then be moved to a partially “completed” list, wherein the actors cannot write second events to the event log regarding this task. This may allow for tasks to not be doubled up, thereby improving the efficiency of the method and system. In some examples, the event log, and actors subscribed to the event log, may take note that the task has been started, in order for one of the other actors to take over the task in case of, for example, malfunction, breakdown, shift-ending, or any other reason why the actor may not be able to complete the task. In this case, another actor with at least the capability to undertake the task may take over and complete the task.
[0032] In some examples, upon having been informed of having been assigned the task, the method comprises updating or generating, by the actor which has been assigned to the task, a second task list visible to the plurality of actors, wherein the second task list comprises the task which the actor has been assigned to. This may allow for all of the actors to see which actor has been assigned the task. This may also allow for a supervisor to check which actor has been assigned a task should the task be completed wrongly and / or should, for example, a malfunction occur with the actor. This may allow for better accountability in the system. This may be referred to as a “global task list”, as each of the actors can see / recognize this list. In some examples, the second task list is available to each actor individually. That is to say, the second task list may be retrievable by each actor, and each actor can read / recognize the second task list at their local station and / or position via, for example, a processor comprised in the actor.
[0033] In some examples, the actor can only begin the task once the first and / or second task list has been updated or generated. This may mean that the actor can only start the task once the determination process has finished. This may allow for an avoidance of tasks being undertaken by a plurality of actors, when only one actor is sufficient, thereby improving the efficiency of the system. In some examples, the first and / or second task list may not be restricted to a single actor, but may instead be visible to a team of actors and / or a workstation comprising a plurality of actors.
[0034] In some examples, upon completion of the task by the actor which the task was assigned to, the method comprises sending, by the actor, data about the completion of the task to the storage medium to write a seventh event on the event log. This may allow for the processor and / or other actors to see that a task has been completed. This task may then be moved to a further “completed” list, wherein the actors cannot write second events to the event log regarding this task. This may allow for tasks to not be doubled up, thereby improving the efficiency of the method and system.
[0035] In some examples, the method further comprises blocking the sending of the data about the completion of the task, or completion of part of the task, if the task, or the part of the task, has not been completed. The blocking of the sending of data may be achieved by the first machine and the actor communicating to one another via the event log. That is to say, the first machine may write an event onto the event log stating that the task has been completed, but until this event has been written, the sending of the data about completion of the task by the actor is blocked. For example, if a door needs to be closed or a button needed to be pressed in order to complete a task, the actor cannot write an event onto the event log stating that the task has been completed until the first machine writes an event onto the event log stating that the door has been closed or the button has been pressed.
[0036] In some examples, the one or more second signals are sent automatically by an actor if the actor is a second machine capable of performing the task, and / or wherein the one or more second signals are sent manually by an actor if the actor is a human capable of performing the task. This may allow for the actor to send, to the event log and / or processor, an indication that the actor is capable of performing a task. In particular, the machine may automatically send a second signal regardless of what the second machine is currently doing, for example, if it is in the middle of a task, undergoing maintenance, if it has no task assigned and so on. The same may apply to the human, as the human can send a second signal at any time.
[0037] In some examples, upon being informed that said actor has been assigned the task, if the actor is the second machine, the second machine then automatically starts that task, or the second machine rejects the task. The machine may not perform the task immediately should it be assigned the task, but may only start the task after a predetermined amount of time and / or after other more important tasks have been completed and / or when the machine has undergone maintenance. If the machine rejects the task due to, for example, downtime, maintenance, or being involved in another task, the task may be re-published to the event log. In some examples, a human may reject a task on behalf of the machine.
[0038] In some examples, upon being informed that said actor has been assigned the task, if the actor is the human, the human can manually start or reject the task. The human may not perform the task immediately should they be assigned the task, but may only start the task after a predetermined amount of time and / or after other more important tasks have been completed. If the human rejects the task due to, for example, downtime, or there not being enough time left in their shift, the task may be re-published to the event log.
[0039] In some examples, if the actor rejects the task, the method restarts by the first machine sending a fifth signal comprising data about the task related to running the first machine to the storage medium to write an eighth event on the event log stored on the storage medium, wherein the first and fifth signals relate to the same data. This may mean that the task is re-published onto the event log. In the case of a task not having yet been started, the fifth signal may be the same as the first signal. In the case that the task has been partially completed, the fifth signal may comprise data relating to the remainder of the task not yet completed.
[0040] In some examples, the actor which has been assigned the task begins said task at a first time, wherein the first time is based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: time taken to complete a task; cost of completing a task; urgency of a task; and cost of not completing a task are considered in the priority weighting. This may mean that the actor may undertake the task once more important tasks have been completed. The cost of completing a task may relate to material cost, or sale cost of an item. The cost of not completing a task may relate to the losses, monetary or otherwise, suffered by the system if the task should not be completed.
[0041] In some examples, the determination step determines which of the plurality of actors to assign the task to based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: time taken to complete a task; cost of completing a task; urgency of a task; and cost of not completing a task are considered in the priority weighting. This may mean that a task may only be assigned to an actor once more important tasks have been assigned. The cost of completing a task may relate to material cost, or sale cost of an item. The cost of not completing a task may relate to the losses, monetary or otherwise, suffered by the system if the task should not be completed.
[0042] In some examples, upon the sending of the first signal comprising data about a task related to running the first machine to a storage medium to write a first event on the event log stored on the storage medium, the processor automatically assigns the task to an actor. In this scenario, the method may skip from the sending of the first signals to the sending of the third / fourth signals. This may allow for an even more efficient shop floor and system, as the determination step can be missed. This may also reduce the software requirements needed to run the system, as the determination step is omitted.
[0043] In some examples, if the first event relates to maintenance of the first machine, one or more sixth signals relating to the maintenance is sent, by the first machine to the storage medium, to write one or more ninth events on the event log stored on the storage medium at predetermined time intervals. Maintenance may relate to fixing the first machine, checking a parameter on the first machine, measuring a parameter on the first machine, or any other suitable maintenance task related to the running of the first machine. This may allow for certain tasks to be assigned to actors at predetermined intervals, thereby ensuring the smooth running of the first machine. In some examples, an actor may not undertake the same task twice. For example, if the task relates to checking of a tolerance, the same actor may not be allowed to undertake the task twice within a predetermined time period. In this case, another actor would be assigned the task. If the task is a maintenance task, this may be, for example, a check task covering the checking of a machine and / or machine tool in terms of its state and / or its output for, e.g., every 100 or 200 workpieces machined by said tool and / or a repeating maintenance task carried out by a technician.
[0044] In some examples, the method further comprises: sending, by the actor assigned to the task to the storage medium, one or more seventh signals to write corresponding, respective one or more tenth events on the event log, wherein the one or more seventh signals comprise data about the maintenance; reading, by the first machine, the event log; and i) altering, by the first machine, the length of the predetermined time interval based on the maintenance; or ii) sending, by the first machine to a storage medium, an eighth signal comprising data about a task related to running the first machine to write an eleventh event on the event log stored on the storage medium, wherein the eleventh event corresponds to the maintenance. This may allow for maintenance to be carried out at more suitable intervals and / or allow the first machine to write a further event on the event log related to the maintenance. For example, if the rate coolant is used in the machine is less than planned and / or expected, the predetermined time interval may be lengthened. If the coolant level is below a safe threshold, the further event written onto the event log may relate to topping up the coolant.
[0045] In some examples, a time gap between the sending of the one or more second signals and the determining step depends on the task. For example, transport tasks could be “open”, i.e. actors are allowed to send second signals and write second events, for longer so that they may be undertaken by a human who can realize said tasks faster instead of fast automated assignment to AGVs, which complete the task at a slower pace. The time gap may be dependent on one or more of time taken to complete a task; cost of completing a task; urgency of a task; and cost of not completing a task. The cost of completing a task may relate to material cost, or sale cost of an item. The cost of not completing a task may relate to the losses, monetary or otherwise, suffered by the system if the task should not be completed. In some examples, if a human actor sends a second signal, the determination step may prioritize the human actors over the machine actors, and be more likely to assign the task to a human actor.
[0046] According to a second aspect, we describe a system comprising: a first machine arranged on a shop floor comprising a first transmitter; a processor couplable to a storage medium, the storage medium storing an event log; and a plurality of actors operating on the shop floor each comprising a second transmitter, wherein the first transmitter is configured to send a first signal comprising data about a task related to running the first machine to the storage medium to write a first event on the event log, wherein the event log is visible to each one of the plurality of actors, wherein the first event corresponds to the task, wherein each of the plurality of actors is configured to read the event log, wherein a second transmitter of any of the plurality of actors capable of performing the task is configured to send, to the storage medium, one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task, wherein the processor is configured to determine which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: the processor is further configured to send, to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor, wherein each of the plurality of actors is further configured to read the event log, and wherein the first actor is informed of the task having been assigned to the first actor by the reading of the event log; and b) in case two of the plurality of actors sent two respective second signals to the storage medium: the processor is further configured to send, to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the two actors, wherein each of the plurality of actors is configured to read the event log, and wherein the one of the two actors is informed of the task having been assigned to said actor by the reading of the event log.
[0047] The event log may be seen as raw data. The event log and / or the processor may prepare the data in any of the signals mentioned herein in a format readable for any one of the actors.
[0048] In some examples, the data comprised in the first signal comprises one or more of: a G-code file; tool table data; a simulation project; read / write offset data; read / write product lifecycle, PLC, and / or numerical control, NC, parameters; read servo data; a set curve; a path-dependent offset file; and an NC parameter file. This may allow for any actor to be able to receive data, via the event log, form the first machine. Although the first signal is mentioned here, the skilled person understands that this may apply to any signal mentioned herein.
[0049] The above features may allow for further benefits. Patterns of a better operator integration in a manufacturing operation system may be reached by implementing a human as an actor including machine-like communication mechanisms to cell controllers as well as machine controllers via wearable devices. As a consequence, the human may follow rules such as they may take responsibility for a task after task application and assignment. Further, any risk for corrupt machines or cell controllers should be minimized as humans can bypass every process and push every button. This can be reduced via better integration of actors. A clean event stream and data set may help with this reduction.
[0050] With or without considering fine planning of main resources (proactive scheduling), the human-centric task management may have the following benefits in a human-centric cyber physical manufacturing system: If an actor wants to realize the task, the actor may then realize the task. A human may be, in most secondary processes, faster in task realization than robots. a. A human can do more complex task or take over tasks where machine failed e.g. at tool assembly or palletizing by AMR (autonomous mobile robots). b. A human can see changes in boundary conditions (material availability, prioritization etc.) and react to it, which may allow for ad-hoc flexibility. c. There may be no need for software reconfiguration or extra data handling while up- / downscaling human or robot capacity, at shift end e.g. from day to human-free night shift which may allow for flexible switching between purely human-driven, hybrid or purely robot-driven task realization, starting robot automation which may allow small job shops start with process standardization and data automation before investing into budget-intensive automation hardware, and if a robot is broken, task realization can be done via human as emergency case d. This may be a competence-based involvement of staff, not role-based. e. The actor may better identify itself with a task if the task is proactively applied for. f. There may be more event logs for task tracing, data mining and model training.
[0051] The reactive task assignment may be based on workers interaction. The shop floor may become more dynamic and agile. Concurrently running parallel systems on shop floor may be merged, i.e. centrally (IT-)allocated main resource (like machining centers) and decentralized human-orchestrated secondary processes.
[0052] Further, beneficial applications are claimed which can improve human-system interaction, creating a basis for human-cyber physical manufacturing systems.
[0053] As a side benefit of wearable devices and the above approach, notifications are human-specific and wireless, and a confirmation event may be created confirming that the notification and / or task was seen and assigned.
[0054] The skilled person understands that the above benefits are not only applicable for human-centric systems, but may also be suitable for machine-centric systems and / or hybrid systems.
[0055] Any advantages and features described in relation to the any of the above aspects and examples may be realized in any of the other aspects and examples described herein. That is to say, for example, any aspects described with respect to the first aspect can be introduced into the second aspect and vice versa.
[0056] It is clear to a person skilled in the art that certain features of the system set forth herein may be implemented under use of hardware (circuits), software means, or a combination thereof. The software means can be related to programmed microprocessors or a general computer, an ASIC (Application Specific Integrated Circuit) and / or DSPs (Digital Signal Processors). For example, a processing unit may be implemented at least partially as a computer, a logical circuit, an FPGA (Field Programmable Gate Array), a processor (for example, a microprocessor, microcontroller (μC) or an array processor) / a core / a CPU (Central Processing Unit), an FPU (Floating Point Unit), NPU (Numeric Processing Unit), an ALU (Arithmetic Logical Unit), a Coprocessor (further microprocessor for supporting a main processor (CPU)), a GPGPU (General Purpose Computation on Graphics Processing Unit), a multi-core processor (for parallel computing, such as simultaneously performing arithmetic operations on multiple main processor(s) and / or graphical processor(s)) or a DSP.
[0057] Even if some of the features described above have been described with reference to a method, these features may also apply to a device and / or system and / or computer-readable medium and vice versa.
[0058] Furthermore, with regards to method steps, some steps may be undertaken simultaneously. Additionally or alternatively, the steps may take place in a different order to those described herein. Additionally or alternatively, not all steps are required in order for the method to function. For example, there may not be a determination step and / or a global task list and / or any other suitable step.
[0059] These and other aspects of the invention will now be further described, by way of example only, with reference to the accompanying figures, wherein like reference numerals refer to like parts, and in which:Figure 1 shows a schematic diagram of a system according to some example implementations as described herein;Figure 2 shows schematic diagrams of actors according to some example implementations as described herein;Figure 3 shows a schematic diagram of a system according to some example implementations as described herein;Figure 4A shows a flow diagram of a method according to some example implementations as described herein; andFigure 4B shows a flow diagram of a method according to some example implementations as described herein; andFigure 4C shows a flow diagram of a method according to some example implementations as described herein; andFigure 5 shows a flow diagram of a method according to some example implementations as described herein.
[0060] Throughout the following, “Task” may be defined as an operation to be performed by, for example, a human, a mobile robot, an electrode charger, or a work charger (static robot). “Process” may be defined as an operation to be performed by a machine such as, for example, an electro discharge machine or a machining center. “Process Group” may be defined as a collection of processes that may need to be executed on the same machine with no intermediary transport tasks. “Operation” may be defined as a collective name for “Task” or “Processes”. “Job” may be defined as a directed graph of “Operations” that describe an order of execution. “Item” may be defined as a collective name for, for example, tools, electrodes and machining objects such as material, WIP (work in progress), workpiece etc.
[0061] One or more of the following may also apply: - jobs may need to start with palletizing and stop with depalletizing. - processes with alternative processes may not be in a group. - only EDM (electrical discharge machining) processes may be replaced by milling processes. - if all groups / processes in a job have in-machine measurements, there may be no measurement task. - check tasks may be inserted anywhere as long as there is a process before. The process may be, for example, a geometrical transformation of the workpiece / item being worked on before and / or after the check task. - dependent operations may be triggered by the machine that handles the next process. - dependent operations may not be part of a job. - a transport task may be on demand because it is not clear if it is needed and what the source and destination are. This may be called a reactive system. - manual transport tasks can be used to notify of a manual item location change, this is not part of a job. - after a check task, it can be decided to repeat the last process, so it is not acyclic. This may also trigger a rework job, which can be classified as a new job. - there may be different actors for a check task such as, for example, it being manually conducted by a human or automatically conducted as a QA (quality assurance) measurement task in, for example, a milling machine or on a CMM (coordinate measuring machine).
[0062] Additionally, the following may apply: The method and system described herein may create a system that integrates the human as an integral part of the system. A system may be created that allows the orchestration of a homogenous or heterogenous robot fleet. A system may be created in which a set-up, in terms of involved hardware and software building blocks, can be flexibly changed during run time.
[0063] Each possible task “action” of the shop floor may be abstracted in the highest possible abstraction level. Generic actors, as described herein, can conduct the abstract types of tasks. The generic actors may be decoupled logical entities. That is to say, in terms of communications between generic actors, no direct communication may take place, generic actors may be logically fully decoupled from each other, the communication may be mapped via an immutable append only event log, and the generic actors may be coupled to the immutable append only event log via a publish / subscribe pattern.
[0064] This may allow for the first machine and the actors to be fully decoupled from one another. A logical order of the immutable append only event log may be ensured. That is to say, the events may be written to the event log in a chronological order. The generic actors may continuously observe the immutable append only event log for specific events. Also, the reaction on events may be reactive, which means that the events are used to trigger certain actions of the generic actors.
[0065] Task assignment may take place in a fully reactive manner. A cost function may be used for assigning tasks. The cost function can have an adjustable set of desired optimization targets containing, for example, cost efficiency, energy efficiency, earliest production and so on. The cost function may define the system behavior in an implicit manner. The human may have the possibility to individually adjust the weights of certain hyper parameters to find optimal customized system behavior for their actual needs. The cost function can be adapted during runtime of the system, which may enable an “online” change of the system behavior. Additionally or alternatively, the task assignment may take place in a proactive manner. That is to say, an actor could undertake a task before it is assigned, but knows that the task will be assigned in the near future. As an example, the actor(s) may know that an oil level of the first machine needs to be checked soon, so may undertake the task before the task has been assigned and / or before the first event has even been written onto the event log.
[0066] A generic actor may have a specific set of capabilities called X, also describable as a logical entity. During implementation, the generic actor may be coupled to a physical entity via a specific adaptor. Resulting on this connection, an individual sub-set of capabilities called Y may be generated automatically during start-up. A physical entity can overtake multiple generic actors. The generic actor may be an entity that can communicate via publication and subscription to the event log. For interacting with physical devices, the generic connector may need to be combined with a “specific adaptor” which acts as an interface to the physical device. The specific adaptor may cause abstraction of the device proprietary communication interface and / or mapping of the proprietary commands to the capabilities of the generic actor. The specific adaptor may also technologically abstract the proprietary interfaces of the hardware devices via using standardized communication protocols such as websockets, etc. Not every physical device can support each capability of a generic actor, therefore each combination of a generic actor and a specific adaptor may result in a different sub-set of resulting capabilities. According to the resulting sub-set of capabilities the generic actor may publish and subscribe to a specific set of events in the event log and conduct actions accordingly.
[0067] If a human is one of the actors, the human may be integrated into the system via smart devices such as a smart phone, a smart watch, headphones, a pager, a laptop, a tablet computer, smart glasses or any other suitable device. The smart devices may be the physical interface between the human and the system / method. The human may also listen / scan / receive updates to / from the event log. The human may consume and parse the same events as the machine actors as the human is also just an instance of the generic actors. This may achieve a seamless integration of the human into the system and method, and the human can be used by the system as an integral part without corrupting the system.
[0068] Figure 1 shows a schematic diagram of a system according to some example implementations as described herein.
[0069] A generic flow diagram of a possible system 100 is depicted. The system 100 may comprise, in this example, up to 10 parts, but the skilled person understands that not all of these parts are necessary to the particular scenario the system 100 may be in.
[0070] The event log 101 may be an immutable append only event log. In contrast to a standard cell controller which uses a classical relational approach of representing the physical system state, an immutable append only event log 101 is used. The event log 101 may need an interface for generic actors (see figure 2). For decoupling purposes this interface may be needed to follow a publish / subscribe pattern. It may be ensured that the incoming events are appended to the event log 101 in a chronological order but also in a logical order. This logical order may be predetermined from real world processes. The event log 101 can be deployed centralized or distributed. The event log 101 may be at least partially stored in a storage medium and actuated by a processor. The storage medium may be physical and / or at least partially stored in the cloud.
[0071] The event log 101 may communicate with a job injection actor 102. The job injection actor 102 may input manufacturing jobs to the system 100 and / or processor and / or storage medium via the first and / or second signals. A job can consist of multiple process steps. The process steps may be divided into value adding steps that, for example, conduct geometrical transformation on workpieces, or of no-value adding steps which may be, for example, checking tasks, which may mean any kind of inspection, and measurement tasks, which may mean a measurement of geometrical aspects related to geometrical tolerance measures. The job injection node coupled to the job injection actor 102 can be a Graphical User Interface (for human-centric input) or an Application Programming Interface for interfacing with other computer systems such as ERP or MES systems or online platforms like cloud manufacturing services. It can also be a hybrid version out of GUI and API. The job injection node and the job injection actor 102 may be the same actor / node device.
[0072] The event log 101 may communicate with a process manager 103. The process manager 103 may manage process steps and task assignment. The process manager 103 may contain a cost function. Via the process manager 103, the weights of the cost function can be individually adapted. Prior to each announcement, a plurality of announcements, of a new process or tasks, i.e. first events, the process manager 103 may check if all required pre-conditions for the actors are met. The pre-conditions may be defined as a rule-set of the process manager 103. The rule-set could be individually adapted for each use case, i.e. for each type of task being carried out by the actor. The cost function component of the process manager 103 may be triggered when second events are published to the event log 101, due to the subscription of the process manager 103 and actors to these event types. The process manager 103 may then publish the result of the cost function process to the event log 101. This may then inform the generic actors which were involved if they have been given the task. This pattern of decoupled communication via publication and subscription to the event log 101 may ensure scalability of the method and system described herein.
[0073] The event log 101 may communicate with a generic geometry transformation actor 104 which may allow for geometrical transformation which can be subtractive (milling, lathing, sparking, sawing, etc.) and / or additive (welding, 3D printing, etc.). This actor 104 may represent the value adding entities on each shop floor. The generic geometry transformation actor 104 may subscribe to events on the event log 101 related to process steps and react with second signals and second events accordingly. During manufacturing, the generic transformation actors 104 may also publish status events to the event log 101. The generic transformation actor 104 may also interact, via the event log 101, with other generic actors. These interactions can be physical interactions, where physical objects such as workpieces or tools are exchanged, or virtual interactions, where data such as NC files, tool data or any other machine specific parameter are exchanged. The generic transport actors, as described below, can interact with the generic geometry transformation actors 104 for loading workpieces or tools or other end-effectors which can geometrical transform solid bodies.
[0074] A generic transport actor 105 may be responsible for conducting transport tasks of physical items. The transport task may be defined by actively changing the location of physical items on the shop floor, such as a workpiece or tools. These location changes may also be published to the event log 101 and can be subscribed to by other generic actors. A successful updated location may also trigger a certain information flow of defined properties of the to be transported physical item to the designated generic actor.
[0075] The event log 101 may communicate with a generic check actor 106 which may be responsible for conducting physical or virtual check tasks. A check task may be defined as comparing a given setpoint with an actual value. The result of the comparison (in some cases based on a customizable rule-set) may be published to the event log. The result can be of a type passed or failed. In case of a pass, the next process step is triggered. In case of a fail, the next action depends on the customizable rule-set. For example, the last process step could be triggered again or the process can interrupted. A check task may be defined as a workpiece / item check of the workpiece / item being worked on by the machine and / or a tool condition check. In a tool condition check, a condition and / or any suitable parameter of the tool may be checked, thereby leading to an estimation of the lifetime of the tool before it needs to be repaired or changed. The actor may send the new estimated lifetime of the tool as part of task to the event log 101, which may be read by the geometry transformation actor and may result in a value in a tool table being changed.
[0076] The event log 101 may communicate with a generic measurement actor 107 which may be responsible for conducting physical measurement tasks such as geometrical quality / tolerance features of workpieces, geometrical features of tools or indication of wear on tools or other end-effectors. The measurement results may be published to the event log 101 and can be consumed by other generic actors.
[0077] The event log 101 may communicate with a generic assembly actor 108 which may be responsible for conducting physical assembly tasks. An assembly task may be defined by creating a physical module out of physical items. Via the assembly process of a module a unique resource identifier may be assigned from the system, as will be described in more detail herein. The unique resource identifier of the module may describe the temporary existing physical item such as an assembly out of tool holder and tool. Each physical item of the assembly may keep its own unique resource identifier for ensuring independent life time tracking. The unique resource identifier of the assembly may be published to the event log 101 and can be consumed by other generic actors.
[0078] The event log 101 may communicate with a generic inventory / item manager 109 which may track the lifetime of items on the shop floor. Each physical item may have an assigned unique resource identifier by the item inventory / item manager 109. The inventory / item manager 109 may ensure that the physical items are tracked during the entire system runtime. The inventory / item manager 109 may publish each new onboarded physical item to the system 100. The physical items can be workpieces, tools or any other end-effector. Each physical item may have a defined set of properties which can be changed during the lifetime by any generic actor, via publishing an event to the event log 101. The actual, and any historical, status of each physical item can be derived out of the event log 101 by querying the event log 101. This could be done by each generic actor. The properties of each item may be consumed by different generic actors to ensure proper usage. For example, the generic geometry transformation actor 104 can use the geometrical dimension property of a tool.
[0079] The event log 101 may communicate with a generic information sink 110 which can derive any information via querying the event log 101. The information sink 110 may be a central software configured for tracking the event log 101 and / or any other suitable device and / or any actor within the system 100. Additionally or alternatively, the information sink 110 may be a process mining tool for processing the event log 101 and / or any other suitable software.
[0080] Figure 2 shows a schematic of actors according to some example implementations as described herein.
[0081] In figure 2, four transport actors 105 are shown in the form of a fixed robot, an AMR, a rail mounted robot and a human operator. The skilled person understands that other types of transport actors may be used, and indeed, any type of actor mentioned herein may be used as well as the transport actors 104 or instead of the transport actors 104.
[0082] A generic actor 200 may have a specific set of capabilities called X, also describable as a logical entity. During implementation, the generic actor 200 may be coupled to a physical entity via a specific adaptor. Resulting on this connection, an individual sub-set of capabilities called Y may be generated automatically during start-up. These capabilities are shown in figure 2 in the form of shapes assigned to each actor. A physical entity can overtake multiple generic actors 200. The generic actor 200 may be an entity that can communicate via publication and subscription to the event log 101. For interacting with physical devices, the generic connector may need to be combined with a “specific adaptor” which acts as an interface to the physical device. The specific adaptor may cause abstraction of the device proprietary communication interface and / or mapping of the proprietary commands to the capabilities of the generic actor 200. The specific adaptor may also technologically abstract the proprietary interfaces of the hardware devices via using standardized communication protocols such as websockets, etc. Not every physical device can support each capability of a generic actor 200, therefore each combination of a generic actor 200 and a specific adaptor may result in a different sub-set of resulting capabilities. According to the resulting sub-set of capabilities the generic actor 200 may publish and subscribe to a specific set of events in the event log 101 and conduct actions accordingly. As can be seen in figure 2, specific capabilities can overlap with each other, and it is presumed that in this scenario, the human operator can take over each task. In some examples, this may not be possible.
[0083] Figure 3 shows a schematic diagram of a system according to some example implementations as described herein.
[0084] The system 400 of figure 3 may be the same as the system 100 of figure 1. Here, the actors 200 of figure 2 are also shown.
[0085] Firstly, an instance of a generic measurement actor 107, 210 triggers a transport request of a tool that needs to be measured to the event log 101. A measurement actor 107 is mentioned here, but the skilled person understands that this may instead be any actor mentioned herein. The previous assignment of the measurement task of the certain tool has not yet been completed. The instance of the generic measurement actor 107, 210 publishes the transport task request including required properties such as item to be transported, pick-up location and destination. Here, the type of task is represented with a rectangle.
[0086] Secondly, all instances of the generic transport actors 200 are continuously subscribing to the event log 101. Depending on the required capabilities of the transport tasks, the actors 200 determine if they are suitable or not.
[0087] Thirdly, all instances of the generic transport actors 200 are continuously subscribing to the event log and only the instances with an individual sub-set of capabilities that fits the requested transport task publish an event to the event log 101 containing a second event depending on the actual status of the actor 200. It can be seen in figure 3 that only the actors 200 with the rectangle capabilities respond to the event being published to the event log 101. The actors 200 then subscribe to event log 101 to search for the output of the process manager 103.
[0088] Fourthly, the process manager 103 searches and consumes the second events written by the actors 200 on the event log 101 and the process manager keeps the search open for an adjustable period of time depending on the task.
[0089] Fifthly, after the search time window for the writing of second events to the event log 101 has expired, the actors 200 that wrote the second events are then fed into the cost function. Depending on the actual configuration of the weights of the cost function the most suitable candidate is elected. The process manager then publishes the result of the cost function to the event log 101.
[0090] Sixthly, all instances of the generic transport actor 200 are continuously subscribing to the event log. The involved instances receiving the result of the cost function and only the winner, i.e. the actor 200 to which the task has been assigned, will start the task while the loser, i.e. the actor(s) 200 to which the task has not been assigned, will start writing second events to the event log 101 to try and obtain a task. The actor 200 may not perform the task immediately should it be assigned the task, but may only start the task after a predetermined amount of time and / or after other more important tasks have been completed and / or when the machine has undergone maintenance.
[0091] Figures 4A-4C shows a flow diagram of a method according to some example implementations as described herein.
[0092] Figures 4A-4C shows a flow diagram of an example implementation of the system 100, 400 and method described herein. The columns of Figures 4A-4C are titled “Device”, “System”, “Operator A” and Operator B”, but the skilled person understands that these refer to the first machine, the processor and storage medium, and a first and a second actor 200, respectively. Throughout the following, the term “notification” may mean a push notification, an alarm, haptic feedback, audio feedback, visual feedback, or any other suitable type of feedback.
[0093] Firstly, a machine alarm occurs. This alarm may be a maintenance alarm, an error alarm, or any other suitable notification related to the running of the first machine. The first machine then translates this alarm to a check task, but this may additionally or alternatively be a maintenance task, a transport task, or any other suitable type of task.
[0094] The first machine then sends this task to the processor and storage medium, and the task is inserted into the event log 101 via writing an event onto the event log 101. This is equivalent to the first event. In some examples, the event log 101 may be immutable. In some examples, the task may be written onto a task list which may be immutable. In some examples, this task list is a global task list visible to each actor 200. Each actor 200 can then see this task and places a “bid” on the task. The skilled person understands that the “bid” may be an auction between the actors offering their services to undertake the task and / or an indication that the actors 200 are available to undertake the task, so that said actors can be used in the cost function mentioned herein. This is equivalent to the second event.
[0095] The “bid manager” in the figure, but the process manager 103 described herein, then validates the second events by double checking that the actors 200 which have written the second events onto the event log 101 are actually capable of undertaking the task, and then runs the cost function. The processor and storage medium then publish the “winner” of the cost function which, in this case, was the first actor 200. The first actor 200 can then begin to undertake the task at any suitable time (here by pressing a button), the second actor 200 then begins to write second events to undertake other tasks, and the task is removed from a first global task list visible to all of the actors 200 and placed on a second individual task list visible to only the first actor 200.
[0096] The processor and storage medium can track the progress of the task as the first actor 200 sends notifications if, in some example, each part of a task is successfully completed. In some examples, the first actor 200 may only send a notification when the entire task is completed. The first actor 200 follows instructions to complete the task, and updates of the completion of the task are tracked by the processor and storage medium.
[0097] In the case of this task, as it is a check task, the values of the checking are sent by the first actor 200 to the processor and storage medium, which in turn send this value to the first machine. This skilled person understands that this same process would occur in a maintenance task, and in a transport task, this step may be omitted. The first machine then sends feedback relating to the values to the processor and storage medium, which in turn updates the status of the machine in the storage medium and / or event log 101 accordingly. In some examples, an actor may not undertake the same task twice. For example, if the task relates to checking of a tolerance, the same actor may not be allowed to undertake the task twice within a predetermined time period. In this case, another actor would be assigned the task.
[0098] Once all of the instructions have been followed by the first actor 200, the first actor sends a notification to the processor and storage medium which check if the current first machine status allows for the closing of the task. If the task can be closed, the task is removed from the second individual task list and, in some examples, may be placed on a third list indicating which tasks have been completed. This third list may be visible to only the first actor 200, or to a subset of actors 200, or to all actors 200. If the task cannot be closed, a notification is sent to the first actor 200 indicating this.
[0099] In some examples, the first actor 200 may need to abandon a task halfway through due to more urgent needs, the end of a shift, maintenance reasons, errors, breakdown, or any other suitable reason.
[0100] In such a scenario, the task is reassigned to another actor 200, in this case, the second actor 200. The task is then transferred from the task list visible to only the first actor 200 to the task list visible to only the second actor 200. The second actor 200 then undertakes the remainder of the task, with the processor and storage medium tracking the status of the task, as was done with respect to the first actor 200. Alternatively, the task, via the writing of a further event onto the event log 101, may be re-written and re-published on the event log 101, thereby allowing for other actors 200 to send second signals and write second event onto the event log 101, thereby effectively restarting the method described herein.
[0101] In some examples, instead of the task being reassigned, the task is put back onto the first global task list, wherein the actors 200 are then allowed to “bid” on the completion of the rest of the task. In this scenario, the method essentially restarts, but with the successful actor 200 completing the remainder of the task.
[0102] Figure 5 shows a flow diagram of a method according to some example implementations as described herein.
[0103] The method comprises sending S300, by a first machine arranged on a shop floor, a first signal comprising data about a task related to running the first machine to a storage medium to write a first event on an event log stored on the storage medium, wherein the event log 101 is visible to each one of a plurality of actors 200 operating on the shop floor, wherein the first event corresponds to the task.
[0104] The event log 101 is then read S310 by each of the plurality of actors 200.
[0105] The method then comprises sending S320, by any of the plurality of actors 200 capable of performing the task, to the storage medium one or more second signals to write corresponding, respective one or more second events on the event log 101, wherein the one or more second signals comprise data about the respective actor or actors 200 being capable of performing the task.
[0106] The method then comprises determining S330, by a processor coupled to the storage medium, which of the plurality of actors 200 to assign the task to based on the one or more second events.
[0107] In case only a first actor 200 of the plurality of actors 200 sent the second signal to the storage medium, the method comprises sending S340, by the processor to the storage medium, a third signal comprising data to write a third event on the event log 101 indicating that the task has been assigned to the first actor and reading S345, by each of the plurality of actors 200, the event log 101, wherein, based on the reading of the event log 101 by the first actor 200, the first actor 200 is informed of the task having been assigned to the first actor 200.
[0108] In case two of the plurality of actors sent two respective second signals to the storage medium, the method comprises sending S350, by the processor to the storage medium, a fourth signal comprising data to write a fourth event on the event log 101 indicating that the task has been assigned to one of the two actors 200 and reading S355, by each of the plurality of actors 200, the event log 101, wherein, based on the reading of the event log 101 by the two actors 200, the one of the two actors 200 is informed of the task having been assigned to said actor 200.
[0109] No doubt many other effective alternatives will occur to the skilled person. It will be understood that the invention is not limited to the described embodiments and encompasses modifications apparent to those skilled in the art and lying within the scope of the claims appended hereto.
[0110] The following examples are also encompassed by the present disclosure and may fully or partly be incorporated into embodiments.
[0111] 1. A method comprising: sending, by a first machine arranged on a shop floor, a first signal comprising data about a task related to running the first machine to a storage medium to write a first event on an event log stored on the storage medium, wherein the event log is recognizable by each one of a plurality of actors operating on the shop floor, wherein the first event corresponds to the task; reading, by each of the plurality of actors, the event log; sending, by any of the plurality of actors capable of performing the task, to the storage medium one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task; determining, by a processor coupled to the storage medium, which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: sending, by the processor to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the first actor, the first actor is informed of the task having been assigned to the first actor; and b) in case at least two of the plurality of actors sent at least two respective second signals to the storage medium: sending, by the processor to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the at least two actors; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the at least two actors, the one of the at least two actors is informed of the task having been assigned to said actor.
[0112] The first event may relate to the information regarding a task needed to be completed being written onto the event log by a first machine. The second event may relate to the actors writing onto the event log information that they are capable of performing the task. The third and fourth events may relate to the processor writing onto the event log information about the actor being assigned the task. The first to fourth signals may relate to the data signals being sent by the various features mentioned herein in relation to the first to fourth events, respectively.
[0113] 2. The method of clause 1, wherein the determining of which of the plurality of actors to assign the task to based on the one or more second events is based on the processor reading the event log.
[0114] 3. The method of clause 1 or 2, wherein, once any event has been written on the event log, said event cannot be removed from the event log.
[0115] 4. The method of clause 3, wherein the event log is immutable, and said event is an immutable append to the event log.
[0116] 5. The method of any one of the preceding clauses, wherein at least one of the plurality of actors is a human.
[0117] 6. The method of any one of the preceding clauses, wherein, upon having been informed of having been assigned the task, updating or generating, by the actor which has been assigned to the task, a first task list visible only to the actor which has been assigned to the task, wherein the first task list comprises the task which the actor has been assigned to.
[0118] 7. The method of clause 6, further comprising, upon completion of a part of the task by the actor which the task was assigned to, sending, by the actor to the storage medium, data about the completion of the part of the task to write a fifth event on the event log.
[0119] The fifth event may relate to information about completion of part of a task being written onto the event log.
[0120] 8. The method of clause 6 or 7, further comprising, upon starting of the task by the actor which the task was assigned to, sending, by the actor to the storage medium, data about the starting of the task to write a sixth event on the event log.
[0121] The sixth event may relate to information about starting a task being written onto the event log.
[0122] 9. The method of any one of the preceding clauses, wherein, upon having been informed of having been assigned the task, updating or generating, by the actor which has been assigned to the task, a second task list visible to the plurality of actors, wherein the second task list comprises the task which the actor has been assigned to.
[0123] 10. The method of any one of clauses 6 to 9, wherein the actor can only begin the task once the first and / or second task list has been updated or generated.
[0124] 11. The method of any one of the preceding clauses, further comprising, upon completion of the task by the actor which the task was assigned to, sending, by the actor, data about the completion of the task to the storage medium to write a seventh event on the event log.
[0125] The seventh event may relate to information about the completion of the task being written onto the event log.
[0126] 12. The method of clause 11, further comprising blocking the sending of the data about the completion of the task, or completion of part of the task, if the task, or the part of the task, has not been completed.
[0127] 13. The method of any one of the preceding clauses, wherein the one or more second signals are sent automatically by an actor if the actor is a second machine capable of performing the task, and / or wherein the one or more second signals are sent manually by an actor if the actor is a human capable of performing the task.
[0128] 14. The method of any one of the preceding clauses, wherein, upon being informed that said actor has been assigned the task, if the actor is the second machine, the second machine then automatically starts that task, or the second machine rejects the task.
[0129] 15. The method of any one of the preceding clauses, when dependent on clause 5, wherein upon being informed that said actor has been assigned the task, if the actor is the human, the human can manually start or reject the task.
[0130] 16. The method of clause 14 or 15, wherein if the actor rejects the task, the method restarts by the first machine sending a fifth signal comprising data about the task related to running the first machine to the storage medium to write an eighth event on the event log stored on the storage medium, wherein the first and fifth signals relate to the same data.
[0131] The eighth event may relate to information about information about a task needed to be completed related to the running of the first machine being written onto the vent log, once the task has been rejected by an actor. The fifth signal may relate to the data signal being sent by the first machine which comprises data relating to the task.
[0132] 17. The method of any one of clauses 14 to 16, wherein the actor which has been assigned the task begins said task at a first time, wherein the first time is based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: - time taken to complete a task; - cost of completing a task; - urgency of a task; and - cost of not completing a task are considered in the priority weighting.
[0133] 18. The method of any one of the preceding clauses, wherein the determination step determines which of the plurality of actors to assign the task to based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: - time taken to complete a task; - cost of completing a task; - urgency of a task; and - cost of not completing a task are considered in the priority weighting.
[0134] 19. The method of any one of the preceding clauses, wherein upon the sending of the first signal comprising data about a task related to running the first machine to a storage medium to write a first event on the event log stored on the storage medium, the processor automatically assigns the task to an actor.
[0135] 20. The method of any one of the preceding clauses, wherein, if the first event relates to maintenance of the first machine, one or more sixth signals relating to the maintenance is sent, by the first machine to the storage medium, to write one or more ninth events on the event log stored on the storage medium at predetermined time intervals.
[0136] The ninth event may relate to information relating to the maintenance of the first machine being written onto the event log. The sixth signal may relate to the data signal being sent by the first machine comprising the information about the ninth event.
[0137] 21. The method of clause 20, the method further comprising: sending, by the actor assigned to the task to the storage medium, one or more seventh signals to write corresponding, respective one or more tenth events on the event log, wherein the one or more seventh signals comprise data about the maintenance; reading, by the first machine, the event log; and i) altering, by the first machine, the length of the predetermined time interval based on the maintenance; or ii) sending, by the first machine to a storage medium, an eighth signal comprising data about a task related to running the first machine to write an eleventh event on the event log stored on the storage medium, wherein the eleventh event corresponds to the maintenance.
[0138] The tenth and eleventh events may relate to information about the maintenance being written onto the event log and information about a task related to the running of the first machine based on the result of the maintenance, respectively. The seventh and eight signals may relate to the data signals being sent by the actor comprising the information about the tenth event and the data signals being sent by the first machine relating to the eleventh event, respectively.
[0139] 22. The method of any one of the preceding clauses, wherein a time gap between the sending of the one or more second signals and the determining step depends on the task.
[0140] 23. A system comprising: a first machine arranged on a shop floor comprising a first transmitter; a processor couplable to a storage medium, the storage medium storing an event log; and a plurality of actors operating on the shop floor each comprising a second transmitter, wherein the first transmitter is configured to send a first signal comprising data about a task related to running the first machine to the storage medium to write a first event on the event log, wherein the event log is visible to each one of the plurality of actors, wherein the first event corresponds to the task, wherein each of the plurality of actors is configured to read the event log, wherein a second transmitter of any of the plurality of actors capable of performing the task is configured to send, to the storage medium, one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task, wherein the processor is configured to determine which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: the processor is further configured to send, to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor, wherein each of the plurality of actors is further configured to read the event log, and wherein the first actor is informed of the task having been assigned to the first actor by the reading of the event log; and b) in case two of the plurality of actors sent two respective second signals to the storage medium: the processor is further configured to send, to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the two actors, wherein each of the plurality of actors is configured to read the event log, and wherein the one of the two actors is informed of the task having been assigned to said actor by the reading of the event log.
[0141] 24. The system according to clause 23, wherein the data comprised in the first signal comprises one or more of: a G-code file; tool table data; a simulation project; read / write offset data; read / write product lifecycle, PLC, and / or numerical control, NC, parameters; read servo data; a set curve; a path-dependent offset file; and an NC parameter file.
Claims
1. A method comprising: sending, by a first machine arranged on a shop floor, a first signal comprising data about a task related to running the first machine to a storage medium to write a first event on an event log stored on the storage medium, wherein the event log is recognizable by each one of a plurality of actors operating on the shop floor, wherein the first event corresponds to the task; reading, by each of the plurality of actors, the event log; sending, by any of the plurality of actors capable of performing the task, to the storage medium one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task; determining, by a processor coupled to the storage medium, which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: sending, by the processor to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the first actor, the first actor is informed of the task having been assigned to the first actor; and b) in case at least two of the plurality of actors sent at least two respective second signals to the storage medium: sending, by the processor to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the at least two actors; and reading, by each of the plurality of actors, the event log, wherein, based on the reading of the event log by the at least two actors, the one of the at least two actors is informed of the task having been assigned to said actor.
2. The method of claim 1, wherein the determining of which of the plurality of actors to assign the task to based on the one or more second events is based on the processor reading the event log.
3. The method of claim 1 or 2, wherein, once any event has been written on the event log, said event cannot be removed from the event log.
4. The method of claim 3, wherein the event log is immutable, and said event is an immutable append to the event log.
5. The method of any one of the preceding claims, wherein at least one of the plurality of actors is a human.
6. The method of any one of the preceding claims, wherein, upon having been informed of having been assigned the task, updating or generating, by the actor which has been assigned to the task, a first task list visible only to the actor which has been assigned to the task, wherein the first task list comprises the task which the actor has been assigned to.
7. The method of claim 6, further comprising, upon completion of a part of the task by the actor which the task was assigned to, sending, by the actor to the storage medium, data about the completion of the part of the task to write a fifth event on the event log.
8. The method of claim 6 or 7, further comprising, upon starting of the task by the actor which the task was assigned to, sending, by the actor to the storage medium, data about the starting of the task to write a sixth event on the event log.
9. The method of any one of the preceding claims, wherein, upon having been informed of having been assigned the task, updating or generating, by the actor which has been assigned to the task, a second task list visible to the plurality of actors, wherein the second task list comprises the task which the actor has been assigned to.
10. The method of any one of claims 6 to 9, wherein the actor can only begin the task once the first and / or second task list has been updated or generated.
11. The method of any one of the preceding claims, further comprising, upon completion of the task by the actor which the task was assigned to, sending, by the actor, data about the completion of the task to the storage medium to write a seventh event on the event log.
12. The method of claim 11, further comprising blocking the sending of the data about the completion of the task, or completion of part of the task, if the task, or the part of the task, has not been completed.
13. The method of any one of the preceding claims, wherein the one or more second signals are sent automatically by an actor if the actor is a second machine capable of performing the task, and / or wherein the one or more second signals are sent manually by an actor if the actor is a human capable of performing the task.
14. The method of any one of the preceding claims, wherein, upon being informed that said actor has been assigned the task, if the actor is the second machine, the second machine then automatically starts that task, or the second machine rejects the task.
15. The method of any one of the preceding claims, when dependent on claim 5, wherein upon being informed that said actor has been assigned the task, if the actor is the human, the human can manually start or reject the task.
16. The method of claim 14 or 15, wherein if the actor rejects the task, the method restarts by the first machine sending a fifth signal comprising data about the task related to running the first machine to the storage medium to write an eighth event on the event log stored on the storage medium, wherein the first and fifth signals relate to the same data.
17. The method of any one of claims 14 to 16, wherein the actor which has been assigned the task begins said task at a first time, wherein the first time is based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: - time taken to complete a task; - cost of completing a task; - urgency of a task; and - cost of not completing a task are considered in the priority weighting.
18. The method of any one of the preceding claims, wherein the determination step determines which of the plurality of actors to assign the task to based on a priority weighting of one or more first events on the event log by one or more first signals, wherein one of more of: - time taken to complete a task; - cost of completing a task; - urgency of a task; and - cost of not completing a task are considered in the priority weighting.
19. The method of any one of the preceding claims, wherein upon the sending of the first signal comprising data about a task related to running the first machine to a storage medium to write a first event on the event log stored on the storage medium, the processor automatically assigns the task to an actor.
20. The method of any one of the preceding claims, wherein, if the first event relates to maintenance of the first machine, one or more sixth signals relating to the maintenance is sent, by the first machine to the storage medium, to write one or more ninth events on the event log stored on the storage medium at predetermined time intervals.
21. The method of claim 20, the method further comprising: sending, by the actor assigned to the task to the storage medium, one or more seventh signals to write corresponding, respective one or more tenth events on the event log, wherein the one or more seventh signals comprise data about the maintenance; reading, by the first machine, the event log; and i) altering, by the first machine, the length of the predetermined time interval based on the maintenance; or ii) sending, by the first machine to a storage medium, an eighth signal comprising data about a task related to running the first machine to write an eleventh event on the event log stored on the storage medium, wherein the eleventh event corresponds to the maintenance.
22. The method of any one of the preceding claims, wherein a time gap between the sending of the one or more second signals and the determining step depends on the task.
23. A system comprising: a first machine arranged on a shop floor comprising a first transmitter; a processor couplable to a storage medium, the storage medium storing an event log; and a plurality of actors operating on the shop floor each comprising a second transmitter, wherein the first transmitter is configured to send a first signal comprising data about a task related to running the first machine to the storage medium to write a first event on the event log, wherein the event log is visible to each one of the plurality of actors, wherein the first event corresponds to the task, wherein each of the plurality of actors is configured to read the event log, wherein a second transmitter of any of the plurality of actors capable of performing the task is configured to send, to the storage medium, one or more second signals to write corresponding, respective one or more second events on the event log, wherein the one or more second signals comprise data about the respective actor or actors being capable of performing the task, wherein the processor is configured to determine which of the plurality of actors to assign the task to based on the one or more second events; and a) in case only a first actor of the plurality of actors sent the second signal to the storage medium: the processor is further configured to send, to the storage medium, a third signal comprising data to write a third event on the event log indicating that the task has been assigned to the first actor, wherein each of the plurality of actors is further configured to read the event log, and wherein the first actor is informed of the task having been assigned to the first actor by the reading of the event log; and b) in case two of the plurality of actors sent two respective second signals to the storage medium: the processor is further configured to send, to the storage medium, a fourth signal comprising data to write a fourth event on the event log indicating that the task has been assigned to one of the two actors, wherein each of the plurality of actors is configured to read the event log, and wherein the one of the two actors is informed of the task having been assigned to said actor by the reading of the event log.
24. The system according to claim 23, wherein the data comprised in the first signal comprises one or more of: a G-code file; tool table data; a simulation project; read / write offset data; read / write product lifecycle, PLC, and / or numerical control, NC, parameters; read servo data; a set curve; a path-dependent offset file; and an NC parameter file.
Citation Information
Patent Citations
Task allocation method and device, equipment and storage medium
CN113159592A
Job brokering apparatus and recording medium
US20020002476A1
Remote operation system, server, remotely operated device, remote operation service providing method
US20100241693A1
Task management system and method
US20140195290A1
Labor Distribution Management Using Dynamic State Indicators
US20150199641A1