Factory Operation

The method dynamically adjusts factory operations to real-time disruptions by iteratively calculating trends and reallocating resources, enhancing efficiency and safety in manufacturing processes.

JP7780312B2Active Publication Date: 2025-12-04DASSAULT SYSTEMES SA
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021197752
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-18
Filing Date
2021-12-06
Publication Date
2025-12-04
Estimated Expiration
2041-12-06

AI Technical Summary

Technical Problem

Existing methods for scheduling manufacturing processes in factories lack robustness and adaptability to unexpected disruptions, such as machine breakdowns or worker illness, leading to inefficiencies and safety risks.

Method used

A computer-implemented method that determines a factory's operating mode by iteratively calculating trends for manufacturing tasks, considering constraints and events, and dynamically reallocating resources and machines to adapt to real-time disruptions.

Benefits of technology

Enables factories to operate efficiently and safely by automatically adapting to unexpected events in real-time, optimizing resource allocation and ensuring product quality and safety.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007780312000023
    Figure 0007780312000023
  • Figure 0007780312000024
    Figure 0007780312000024
  • Figure 0007780312000025
    Figure 0007780312000025
Patent Text Reader

Abstract

To provide a computer-implemented method for operating a factory.SOLUTION: The method comprises providing one or more manufacturing tasks. Each manufacturing task is represented by an evolution law. The evolution low describes a manufacturing step of a product by a manageable machine using resources. The method further comprises providing one or more manufacturing constrains. The method further comprises providing one or more manufacturing events. The method further comprises determining an operating mode of the factory based on the one or more manufacturing constrains and on one or more constraints on a product to manufacture. The determining step includes one or more iterations. Each iteration comprises computing, for each manufacturing task, each tendency of the manufacturing task. The tendency represents a frequency with which the task is chosen for manufacturing the product given the constraints and / or a previous occurrence of one or more of the manufacturing events.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for operating a factory. [Background technology]

[0002] The market offers numerous systems and programs for designing, engineering, and manufacturing objects. CAD is an acronym for Computer-Aided Design, which refers to software solutions for, for example, designing objects. CAE is an acronym for Computer-Aided Engineering, which refers to software solutions for, for example, simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, which refers to software solutions for, for example, defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays a key role in the efficiency of the technology. These technologies can be incorporated into product lifecycle management (PLM) systems. PLM is a business strategy that helps companies share product data, apply common processes, and leverage corporate knowledge to develop products from concept to life across the extended enterprise. Dassault Systèmes' PLM solutions (under the trademarks CATIA, ENOVIA and DELMIA) provide an Engineering Hub that organizes product engineering knowledge, a Manufacturing Hub that manages manufacturing engineering knowledge, and an Enterprise Hub that enables enterprise integration and connectivity to the Engineering and Manufacturing Hubs. The combined system provides an open object model that links products, processes and resources to enable dynamic, knowledge-based product creation and decision support that drives the optimization of product definition, manufacturing preparation, production and service.

[0003] In these and other contexts, there is growing interest in determining factory operating modes. One goal of determining factory operating modes is to automatically operate an automated factory, which is achieved by providing a computer system that operates the factory with a set of instructions and settings that cause the factory to automatically perform one or more manufacturing processes to produce an object (e.g., a machine part). Another goal of determining factory operating modes (sometimes called "manufacturing scheduling") is to plan when specific production tasks must be performed on which machines in the factory, by which operators, and / or with which supplies, while optimizing predetermined outcomes such as production duration, energy consumption, product quality (e.g., manufacturing tasks must be performed in a specific order within a specific time, e.g., a demolding task must be performed after a molding task), or safety (e.g., by ensuring that there are always enough workers / employees available to monitor the factory). Summary of the Invention [Problem to be solved by the invention]

[0004] In an industrial context, existing methods for scheduling manufacturing processes to operate a plant use a two-stage optimization approach. In the first step, an optimization algorithm finds the optimal scheduling of machines. In the second step, based on the machine schedules, the optimization algorithm finds the optimal schedule of workers. In real industrial situations, such schedules are theoretical or ideal because unexpected problems always arise (machine breakdowns, worker illness, new urgent orders to respond to, safety issues / emergencies). When such disruptions occur, it is the workers' responsibility to find a solution (e.g., responding to a safety emergency themselves), or, if there is enough time, the algorithm can calculate a new solution and try to minimize the difference from the previous solution. Therefore, existing methods lack robustness and adaptability to the occurrence of manufacturing events.

[0005] In the academic field, many approaches have been considered, often inspired by game theory. Game theory-inspired solutions view machines and operators as entities with distinct goals that negotiate with each other to decide who has the right to perform a task.

[0006] However, there remains a need for improved methods for operating factories. [Means for solving the problem]

[0007] Accordingly, a computer-implemented method for operating a factory is provided. The method includes providing one or more manufacturing tasks. Each manufacturing task is represented by a development law. The development law describes steps for one or more manageable machines to manufacture a product using resources. The method further includes providing one or more manufacturing constraints. The method further includes providing one or more manufacturing events. The method further includes determining an operating mode for the factory based on the one or more manufacturing constraints and one or more constraints on the products to be manufactured. The determining step includes one or more iterations. Each iteration includes, for each manufacturing task, calculating a respective trend for the manufacturing task. The trend represents a frequency with which the task is selected to manufacture a product, taking into account past occurrences of one or more of the constraints and / or manufacturing events. The iteration further includes ranking the one or more manufacturing tasks according to descending order of their respective trends. The iteration further includes visiting the one or more manufacturing tasks according to the ranking, and, for each visited task, applying one or more manageable machines and resources to perform the task. The iteration may further include executing the one or more tasks until one or more of the manufacturing events occur.

[0008] The method may include one or more of the following features: For each manufacturing task, the trend is an increasing function of each of the following: A number of manageable machines greater than one; The quantity of the product before the manufacturing step; ·Indicators that show that the amount of resources exceeds the threshold of resources required to perform the manufacturing step; - for one or more production tasks, the function is also an increasing function of the number of operators of one or more manageable machines; -For one or more production tasks, the function is also an increasing function of terms that reward respect for at least one of the constraints; - for one or more manufacturing tasks, the function is also an increasing function of a parameter that promotes slow and / or economical operation of the factory; -A function is a product of its variables; the step of ranking comprises a step of attributing to each production task a rank given by a power law with a parameter equal to the trend; -The exponent law further depends on randomly generated numbers; The determining step may further comprise, at each iteration, after its execution: · Including the step of updating data about the products to be manufactured; The providing step comprises, for each manufacturing task, a step of defining a law of evolution by representing the manufacturing task by chemical reactions, where the chemical reactions are of the following types:

number

number

[0009] Additionally, a computer program comprising instructions for carrying out the method is provided.

[0010] Furthermore, a device is provided that includes a data storage medium having the computer program recorded thereon.

[0011] The device may form or function as a non-transitory computer-readable medium, for example, in a software as a service (SaaS) or other server or cloud-based platform. Alternatively, the device may include a processor coupled to a data storage medium. Thus, the device may form, in whole or in part, a computer system (e.g., the device is a subsystem of the overall system). The system may further include a graphical user interface coupled to the processor.

[0012] Further provided is a factory having at least one controllable machine operable according to an operating mode of the factory determined according to the method. Embodiments of the invention will now be described by way of non-limiting example with reference to the accompanying drawings, in which: [Brief explanation of the drawings]

[0013] [Figure 1] FIG. 1 shows a flow chart of an example of the method. [Figure 2] The method is illustrated below. [Figure 3] The method is illustrated below. [Figure 4] The method is illustrated below. [Figure 5] An example of a system is shown below. DETAILED DESCRIPTION OF THE INVENTION

[0014] Referring to the flowchart of FIG. 1 , a computer-implemented method for operating a factory is proposed. The method includes a step S10 of providing one or more manufacturing tasks. Each manufacturing task is represented by a development law. The development law describes steps for manufacturing a product by one or more manageable machines using resources. The method further includes a step S11 of providing one or more manufacturing constraints. The method further includes a step S12 of providing one or more manufacturing events. The method further includes a step S20 of determining an operating mode for the factory based on the one or more manufacturing constraints and one or more constraints on the products to be manufactured. The determining step S20 includes one or more iterations S250. Each iteration includes a step S210 of calculating, for each manufacturing task, a respective tendency of the manufacturing task. The tendency represents the frequency with which the task is selected to manufacture a product, taking into account past occurrences of one or more of the constraints and / or manufacturing events. The iteration further includes a step S220 of ranking the one or more manufacturing tasks according to descending order of their respective tendencies. The iteration further includes a step S230 of visiting one or more manufacturing tasks according to the ranking and, for each visited task, subjecting the task to one or more manageable machines and resources for performing the task. The iteration further includes a step S240 of performing the one or more tasks until one or more of the manufacturing events occurs.

[0015] This constitutes an improved way of operating a factory.

[0016] In particular, the method enables operating a factory by determining an operating mode for the factory. The operating mode refers to a set of instructions and settings that are executed for the factory to function, i.e., to perform appropriate manufacturing tasks in the appropriate order to manufacture a product, taking into account constraints and the occurrence of events. The determined operating mode may be used specifically to automatically operate an automated factory. The determined operating mode may be output by the method as a computer-implemented data structure (e.g., a file). The determined operating mode may then be input to a computer system that operates the automated factory. The computer system may then read the operating mode and execute its instructions, thereby causing the automated factory to function in accordance with the operating mode. That is, the operating mode may be directly implemented by the automated factory.

[0017] Alternatively, each run of the method performed on a computer may correspond to a stage in a production schedule, with each run resulting in a determined mode of operation that is then given to a physical operator. If multiple runs are performed (which is possible because the method is fast), the best one can be selected according to certain criteria.

[0018] As noted above, the method is fast, meaning that the method determines the operating mode very quickly, e.g., in seconds or minutes, and each iteration within the step of determining the operating mode is performed very quickly, thereby allowing the factory operation to adapt in real time to events occurring in real time, thereby providing a significant improvement over the prior art optimization methods described above.

[0019] Whether the factory is automated or not, the operating mode may include or consist of a schedule for performing one or more manufacturing tasks, along with instructions for performing each task and / or an assignment of resources and / or operators (e.g., workers or computer systems operating machines) and / or machines to a given manufacturing task. In other words, the schedule may describe which tasks need to be performed by which operators on which machines, along with the start and end times of those tasks. Thus, the operating mode may be used to assign manageable machines, operators (if present, since manageable machines may be operated by automation and computer systems), and resources to each manufacturing task. The factory may then be operated according to the determined operating mode, e.g., by implementing the instructions and assignments. Because the method handles multiple manufacturing tasks involving multiple machines, operators, etc., running simultaneously (which is exactly what happens in real industry), the operating modes that the method yields (e.g., in the form of schedules) are feasible, achievable, and realistic.

[0020] The method determines an operating mode based on several inputs. The inputs include factory-related inputs: one or more manufacturing tasks, each represented (i.e., modeled) by an evolution law involving one or more controllable machines and resources and one or more operators (if any, as described above), one or more manufacturing constraints, and one or more manufacturing events. The inputs may further include factory-related inputs, such as a list of factory machines and a list of factory operators (i.e., workers and / or computer systems, as described above). The inputs further include inputs related to the product to be manufactured, i.e., one or more constraints on the product. Based on these inputs, the method determines an operating mode by considering the manufacturing tasks for the product's production as an evolution law that evolves over time given the inputs, where the temporal evolution represents the evolution of the product's production. Specifically, the method ranks the manufacturing tasks according to trends, which are the frequency with which the tasks are selected in the product's production process, based on the constraints. Therefore, these trends prioritize some tasks and not others. The method then executes the tasks in descending order of trends, i.e., higher priority tasks are executed first. In other words, the method performs tasks that can be viewed as a set of systems that evolve according to laws of evolution that have priority over one another.

[0021] Sequential execution of production tasks in this manner allows for particularly efficient and robust determination of the operating mode, in particular because a production event that should halt the execution of a task is considered as a disruption of various development laws that develop with priority over one another. Specifically, when a production event occurs (e.g., resource shortage, mechanical failure, electrical failure, reaching a product quantity threshold, or the end of task execution), the method returns to calculating the trend and re-executes the task according to the newly calculated trend. In other words, the method considers the factory / production system (i.e., a series of tasks) as an autonomous system that can be simulated in real time. In fact, the method simulates the evolution of this autonomous system over time. As simulated by the method, the autonomous system develops according to development laws that develop with priority over one another, and the occurrence of a production event is considered as a disruption of the evolution of the series of systems over time, which leads to a recalculation of the priorities. This allows the occurrence of a production event to be taken into account in real time when determining the operating mode, and each time a production event occurs, the execution of the series of tasks is adapted until the next occurrence. In other words, the method determines an operating mode by adapting the organization of manufacturing tasks to the occurrence of manufacturing events in real time. As a result, when used to operate a factory, implementing this operating mode enables the factory's operation to be highly robust to (unexpected or sudden) events and adapt to these events in real time. The autonomous system simulated by this method is robust and constantly reacts to unpredictable external disruptions, without the need to recalculate / reset the system when a disruption occurs.

[0022] The operational mode provided by the method may, for example, enable a factory to adapt (e.g., automatically) to safety emergencies, or more generally, events that threaten the safety of the factory's functions. In other words, the operational mode may improve factory safety. For example, the operational mode may enable an automated factory to automatically shut down and automatically initiate safety emergency procedures when a safety event occurs. Additionally or alternatively, the operational mode may include improved safety emergency procedures that enable operators to respond quickly to the occurrence of a safety event. In yet another example, the method may ensure that a sufficient number of workers or employees are simultaneously present in the factory to monitor the factory for safety reasons. Additionally or alternatively, the speed of response of the method may enable assurance of the quality of the products being manufactured. In practice, the production of products may be constrained by the need to perform manufacturing tasks sequentially and within a specific time frame. For example, this may be the case when the production of a product requires the performance of molding and demolding operations, with the demolding operation occurring after the molding operation. The method may adapt the factory's operations to occurring events to reduce the impact of these events on the sequential and specific execution of tasks. In other cases, for example, in a process-type industry context (discussed below), the products or intermediate states thereof produced by a factory may be characterized by expiration date constraints. For example, the products or intermediate states thereof (such as chemical components) may not be stored at the factory for long periods of time, or their quality may deteriorate. The present method, as discussed further below, can handle such constraints and maintain the quality of such products.

[0023] Furthermore, the method does not require prior input of a schedule for the execution of manufacturing tasks. The series of manufacturing tasks evolves itself during the iterations performed by the method, constantly adapting to the occurrence of events in real time. This allows an automated factory to automatically operate using an operating mode determined by the method, as described above. An automated factory executing an operating mode constantly adapts to the occurrence of events in real time. Because it can adapt to the occurrence of events, the method results in an operating mode determined when an event occurs that tends to optimize the allocation of machines, operators (if any), and resources within the process of manufacturing a product. Operating the factory in the determined operating mode allows for resource conservation, energy conservation, increased production rates, and optimal use of machines and operators.

[0024] Surprisingly, the law of evolution of a manufacturing task can be well modeled as a chemical reaction. Indeed, the inventors have discovered that the time evolution of a manufacturing task can be well modeled as a chemical reaction, with the resources, the machines and operators involved in the task (if any, as described above), and the current state of the product being manufactured playing the role of reactants in the chemical reaction, and the machines and operators involved in the task (if any, as described above), and the next state of the product being manufactured playing the role of results in the chemical reaction. In particular, the inventors have established a striking similarity between the production of proteins in living cells and real manufacturing processes.

[0025] Thus, the method may determine the factory's operating mode by viewing the factory / manufacturing system as an autonomous biochemical process, where the method views each task as a chemical reaction involving machines, operators (if any), produced objects, and resources. Because task trends correspond to the starting trends / rates of chemical reactions, and these trends constantly adapt to the occurrence of events, the set of manufacturing tasks constantly adapts to the factory's current situation, just as a set of chemical reactions (also called "reactors") constantly adapts to disruptive events. In other words, unlike prior art optimization techniques, the factory evolves by itself.

[0026] The method is a method for operating a factory.

[0027] By "operating a factory" it is meant that the method results in an operating mode of the factory. The method may result in multiple such operating modes, for example, if the method is repeated with different inputs and / or for the production of different products. Thus, the method may include a step S260 of outputting the operating mode of the factory determined by the method. In this disclosure, an operating mode refers to a set of instructions and settings for operating (i.e., to be executed) the factory to manufacture products based on constraints. The operating mode may include, for example, one or any combination of the following: <Factory scheduling to manufacture products based on constraints> The schedule may include a schedule indicating the availability of controllable machines in a factory. The schedule may include an operator schedule, for example, a schedule indicating the availability of workers and / or computer systems that operate the machines. The schedule may include delivery schedules of resources to manufacture products. The schedule may include the occurrence of manufacturing events.

[0028] <Assignment> The allocation may include allocating manageable machines to manufacturing tasks, for example, based on a schedule. The allocation may include allocating operators to manageable machines for performing manufacturing tasks, for example, based on a schedule. The allocation may include allocating resources to manufacturing tasks, for example, based on a schedule; <Production Order> The production instructions may include general production instructions for producing a product, e.g., instructions regarding the quantity, quality, and / or type of product to produce. The production instructions may also include specific production instructions for producing a product, i.e., production instructions given to specific operators and / or machines to perform specific tasks.

[0029] The operating mode may form a computer-implemented data structure (e.g., a file). The operating mode may be used to operate a factory. For example, using the operating mode determined by the method, the method may further include assigning manageable machines and resources to respective manufacturing tasks, i.e., in a real-world factory. The method may also include assigning operators to respective manufacturing tasks using the determined operating mode. The method may then include operating the factory using the determined operating mode, i.e., in accordance with the determined operating mode, e.g., by following its schedule, assignments, and / or instructions. The factory may be an automated factory. In such a case, step S260 of outputting the determined operating mode may include automatically transmitting the determined operating mode to a computer system that operates the automated factory. Upon receiving the transmitted operating mode, the computer system may store the operating mode and / or (e.g., later) read the operating mode, which leads to the assignment of automated machines and resources to manufacturing tasks and the automated operation of the factory using the operating mode. The computer system may, for example, cause automated factory machines to automatically perform manufacturing tasks necessary to manufacture the product by following schedules, assignments, and / or instructions contained in the determined operating modes.

[0030] A factory may be any type of factory. A factory is a building or set of buildings where goods (e.g., of various types) are manufactured (e.g., in large quantities) using machines operated by operators (e.g., humans and / or computer systems). A factory may also be called a "plant." A factory may be a "workshop" or a "warehouse." A factory may be a production chain. A factory may be an automated factory, such as an automated production chain. A factory may be configured to produce any type of manufactured product, such as a (e.g., machine) part or an assembly of parts (an assembly of parts may be considered a part itself from the perspective of the method, and therefore a part and an assembly of parts are equivalent), or more generally, an assembly of any rigid bodies (e.g., moving mechanisms). A factory may be configured to manufacture products in various industries, such as, without limitation, aerospace, building, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine, and / or offshore oil and gas production or transportation. The products manufactured in the factory may be any mechanical parts, such as, for example, land vehicle parts (including, for example, automobile and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains, etc.), air vehicle parts (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment, etc.), marine vehicle parts (including, for example, naval equipment, commercial vessels, offshore equipment, yachts and workboats, marine equipment, etc.), general mechanical parts (including, for example, industrial manufacturing machinery, heavy machinery or equipment, installation equipment, industrial machinery products, metal fabrication products, tire manufacturing products, etc.), electric mechanical or electronic parts (including, for example, consumer electronics appliances, security and / or control and / or measurement products, computing and communications equipment, semiconductors, medical devices and equipment, etc.), consumer goods (including, for example, furniture, home and garden products, leisure goods, fashion products, durable goods retailer products, textile retailer products, etc.), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household goods packaging, etc.).A product manufactured in a factory may be one or more of the following, or may include one or more (e.g., as a component of the product): a formed part (i.e., a part manufactured by a forming process), a machined part (i.e., a part manufactured by a machining process), a drilled part (i.e., a part manufactured by a drilling process), a turned part (i.e., a part manufactured by a turning process), a forged part (i.e., a part manufactured by a forging process), a stamped part (i.e., a part manufactured by a stamping process), and / or a folded part (i.e., a part manufactured by a folding process).

[0031] The factory may also be a factory in a processing type industry, i.e., an industry in which products may undergo chemical changes, such as the paper, chemical, cosmetic, pharmaceutical, or agri-food industries. Thus, the products manufactured in the factory may be products of these industries, such as chemical products, pharmaceuticals, cosmetics, agricultural products, paper products, etc. Such products may be characterized by expiration date constraints, e.g., finished products or intermediate products cannot be stored in the factory for long periods of time, otherwise their quality may be compromised.

[0032] In one example of this method, the factory is a factory that specializes in manufacturing automotive parts, i.e., mechanical parts for automobiles. The factory in this example specializes in manufacturing brake assemblies for automobiles, for example, each brake assembly includes a brake caliper, brake pads, and a rotor / spinning disc. The brake calipers are fitted with brake pads to grip the rotor. The brake calipers are attached to the vehicle along with brackets to fit the rotors. The calipers include brake pads, which are metal plates bonded with a material that provides friction for stopping. The factory in this example is automated.

[0033] A factory comprises manageable machines, each configured to perform at least a portion of a manufacturing task, which performs a part of a manufacturing process, also referred to as a "manufacturing step." A machine is a device or set of devices that can perform a manufacturing task through computer-assisted or autonomous operation. A manageable machine is a machine that can be managed, i.e., its settings and parameters can be changed. A machine may be managed by one or more operators. For example, a machine may be managed by an operator who manually changes the machine's settings and parameters (e.g., remotely using a computer), or it may be operated manually (at least in part) by an operator to perform a manufacturing task. Alternatively, a machine may be partially automated. For example, a machine's settings and parameters may be changed by an operator remotely, e.g., using a computer, but the machine may automatically perform at least a portion of the manufacturing task itself when the operator starts the machine. However, a machine may include control commands (e.g., an emergency stop command) that can be executed by a human operator (i.e., an operator) of the machine. In yet another alternative example, the machine may be a fully automated machine, i.e., the machine is fully automatically monitored by a computer system that sets the machine parameters, starts the machine, and controls the machine (e.g., the computer system may automatically initiate an emergency shutdown procedure).

[0034] Each machine herein performs a manufacturing task, i.e., by itself or together with other machines: a machine (e.g., possibly managed and operated by one or more operators) takes the state of the product it produces (i.e., a part of the product or a separated part of the product, or the unfinished product itself) and resources to transform the product into another state (e.g., a part of the product is modified or assembled with other parts, or the unfinished product itself is modified). Any machine herein may perform a manufacturing task centrally, i.e., sequentially, product by product. Alternatively, any machine herein may perform a manufacturing task on a batch of products simultaneously. Resources may include one or more of the following materials (e.g., in a raw state or a transformed state): - organic materials or organic polymers, that is, materials formed by long carbon chains, such as wood, cotton, wool, paper, cardboard, plastic, rubber, leather, etc.; - metallic materials, i.e. materials containing metallic bonds, i.e. metals and metal alloys containing or consisting of iron, aluminum, steel, copper, bronze, gold, silver, and / or cast iron; composite materials, for example plastics reinforced with glass fibre, carbon fibre or Kevlar fibre, concrete, reinforced concrete, plywood; and / or Mineral or ceramic materials, for example, rocks, natural stone, ceramics, plaster, bricks, glass and minerals.

[0035] Resources may also include a water supply, a gas supply, an electricity supply, and / or one or more chemical products (such as paints or stains). Resources may further include prefabricated components of a product, such as prefabricated electrical or electronic components (such as circuits).

[0036] Any machine herein may be either: -machining tools (i.e. tools that perform at least part of a machining process), for example, broaching machines, drill presses, gear shapers, hobbing machines, grinding wheels, lathes, screw cutting machines, milling machines, sheet metal shears, shapers, saws, planers, Stewart platform mills, grinding machines, multitasking machining tools (e.g. with many axes that combine turning, milling, grinding and / or material processing into one highly automated machining tool); - a compression molding machine (i.e. a machine that performs at least part of the compression molding process), which typically comprises at least a mold or molding matrix, such as a flush plunger mold, a straight plunger mold or a land plunger mold; injection molding machines (i.e. machines that perform at least part of the injection molding process), such as die-casting machines, metal injection molding machines, plastic injection molding machines, liquid silicone injection molding machines or reaction injection molding machines; - rotary cutting tools (e.g., for performing at least part of the drilling process), such as drill bits, countersinks, counterbores, taps, dies, milling cutters, reamers, or cold saw blades; - non-rotating cutting tools (for example, for performing at least part of the turning process), such as tipped or formed tools; - a forging machine (i.e., performing at least part of the forging process), such as a mechanical forging press (usually comprising at least one forging die), a hydraulic forging press (usually comprising at least one forging die), a compressed air-powered forging hammer, an electrically powered forging hammer, a hydraulically powered forging hammer, or a steam-powered forging hammer; stamping machines (i.e., for carrying out at least part of the stamping process), such as stamping presses, mechanical presses, punching machines, blanking machines, embossing machines, bending machines, flanging machines or coining machines; - bending or folding machines (i.e., performing at least part of the bending or folding process), for example, box and pan brakes, press brakes, folders, panel benders, or mechanical presses; -Spot welding robot; or Electric painting tools (i.e., performing at least part of the painting process on a product), for example (electric or other) automotive painting robots.

[0037] In the aforementioned example of a factory producing brake assemblies, the machines each include a metal forming machine for forming the rotors. The machines also include a metal forming machine for forming the brake calipers. The machines also include a metal forming machine for forming the brake pads. The machines also include an injection molding machine for molding rubber to be bonded to the brake pads. The machines also include a drilling machine for drilling circular holes in the rotors, each configured to receive a wheel stud when the brake assembly is attached to a wheel. The machines also include an assembly chain along which the pads, calipers, and rotors are assembled to form a brake assembly suitable for attachment to a wheel. Thus, the factory's resources include the metal, e.g., cast iron, that makes up the rotors, brake calipers, and brake pads. The factory's resources also include the rubber to be bonded to the brake pads. The resources also include water and electricity necessary for the machines to function. The machines in this example factory together form a production chain that takes metal, such as cast iron, and rubber and transforms them into brake assemblies.

[0038] Referring again to FIG. 1, as mentioned above, the method includes a step S10 of providing inputs for determining the operating mode before a step S20 of determining the operating mode of the factory.

[0039] The input includes one or more manufacturing constraints. A manufacturing constraint is a constraint related to a manufacturing operation performed in a factory. Step S10 of providing the one or more manufacturing constraints may be performed by a user, for example, the user defining data describing the constraint. The one or more manufacturing constraints may be provided as a list, where each item in the list is a constraint, for example associated with data describing the constraint. The one or more manufacturing constraints may include one or more of the following: -Maximum number of operators in the factory; - the time required between the execution of two production tasks, for example, a short time to prevent the product or its components from expiring; -Ensuring that a specific operator is present for one or more production tasks; - Ensuring that two tasks are not performed at the same time (e.g. to avoid the risk of explosion); -Ensuring that two tasks are performed simultaneously; -The priority given to speed of production or cost economy; - Maximum consumption of electricity, water, and / or gas in a given time frame; -Minimum supply of electricity, water and / or gas for the correct functioning of the factory; - The maximum amount of resources that can be stored at the factory at the same time; - the minimum amount of space that must be left clear around one or more machines; and / or -The maximum amount of finished products and / or intermediate product states that can be stored at the factory at the same time.

[0040] In the aforementioned example of a factory that manufactures brake assemblies, a manufacturing constraint may include a maximum quantity of brake pads, calipers, and / or rotors that can be stored at the factory at the same time. Specifically, because the factory's machines form an automated production chain, it is necessary to avoid storing too many separate components of a brake assembly at the same time to avoid disrupting the production chain. Similarly, a constraint may include a maximum quantity of finished brake assemblies that can be stored at the factory.

[0041] The input also includes one or more production events. A production event is an event that occurs during the production of a product and affects the production of the product. Step S10 of providing one or more production events may be performed by a user, who may for example define data describing the event. An event may be an unexpected event such as: - One or more mechanical failures: - Electricity, gas, and / or water cuts; -Unexpected absence of one or more workers; -Production orders (e.g., due to customer demand), e.g., unexpected orders that take priority over products currently being produced. Orders may include the number and due dates of products to be produced and the tasks that must be performed to produce those products.

[0042] -Network failure (for example, in automated factories), fire emergencies; -Gas explosion; -Changes in the atmosphere in factories, for example, changes in temperature and humidity measurements in the context of pharmaceuticals or agricultural products; - Unplanned safety checks; and / or - Health problems and / or injuries of workers and / or lack of resources (e.g. due to failed deliveries).

[0043] In the aforementioned example of a factory that manufactures brake assemblies, an unexpected event may include a failure in the assembly chain on which the brake components are ultimately assembled and / or a fire caused by one of the metal forming machines.

[0044] The events may be expected events or events that should occur during the production of the product, for example: -One or more production tasks are fully executed; -The product is manufactured in sufficient / desired quantities; - Planned shift changes for operators; - Planned shift changes for machines (e.g. machine maintenance); -Planned safety checks; - Arrival of a new machine operator; - Arrival of new machines; - maintenance work, resulting in the withdrawal of one or more machines; -Safety management; and / or -At least some breaks for workers (lunch breaks, holidays, etc.).

[0045] In the above example of a factory that manufactures brake assemblies, anticipated events may include safety controls on factory machines, maintenance work, and / or the completion of certain tasks.

[0046] The one or more manufacturing events may be provided as a list, where each item in the list is an event and is associated with data that describes the event, for example.

[0047] The input also includes one or more manufacturing tasks. A manufacturing task is part of a manufacturing process; that is, a manufacturing task may correspond to a portion / step of a manufacturing process, or may be the manufacturing process itself from end to end. The production of a product may include one or more manufacturing processes (e.g., multiple parts of a product may be produced by multiple different manufacturing processes, and there may be one or more manufacturing processes to assemble the parts), and each manufacturing process is a sequence of one or more manufacturing tasks. The one or more manufacturing tasks may be provided as a list, with each item in the list being a task and associated with data describing the task, for example. The data describing the task may include characteristics of the task, such as the duration of the task, the energy consumption of the task, the resources required to perform the task, the labor qualifications required to perform the task, and / or the time to reconfigure previously used machinery so that it can be used again to perform the task.

[0048] Each manufacturing task is represented by a development law that describes the steps to manufacture a product by one or more controllable machines using resources. Thus, a manufacturing task may be provided in S10 by data that describes a development law. A development law is a transformation that receives inputs and generates at least one output based on the inputs, and a development law receives as inputs: - the current state of the product, i.e. the state of the product before the manufacturing task is performed and the state of the product that will be consumed by the manufacturing task. The current state can consist of several parts / components of the product that are assembled together and / or the product in an unfinished state; -One or more manageable machines for performing a task, where one or more machines together transform the current state of the product into the next state; - one or more operators (if any) who operate the non-automated machine; and -The resources (also called supplies) required to perform the task, i.e. the resources consumed by the task and used by the machine to transform the current state of the product into the next state.

[0049] The evolution law outputs the next state of the product, the machine, and the operator (if any).

[0050] In the factory example above, one or more manufacturing tasks may include: -Rotor forming, where a metal forming machine uses the resources (such as electricity) and metal (such as cast iron) required to function to form the rotor; -Caliper molding, where a metal forming machine uses the resources (such as electricity) and metal (such as cast iron) required to function to form the caliper; - Pad forming, where a metal forming machine uses the resources (such as electricity) and metal (such as cast iron) required to function to form the pad; - rotor drilling, in which a drilling machine is used to drill circular holes in each rotor so that the holes receive the wheel studs, the drilling machine requiring electricity to function to drill the rotors; - Rubber injection molding, where a rubber injection molding machine uses resources (such as electricity) and rubber (such as cast iron) required to function to mold the rubber part that will bond with the pad; - Final assembly, where the assembly chain glues the rubber parts to the pads (for example, one on each side of each pad in the friction area between the pad and the caliper) and assembles two rubber-bonded pads and one caliper together with each drilled rotor.

[0051] In this example, the factory is automated, so a computer system monitors all manufacturing tasks (and the entire production chain) and operates each machine, so there are no operators involved in tasks other than the computer system.

[0052] A user may provide manufacturing tasks (S10), for example by providing coded rules of evolution. In an example, providing one or more manufacturing tasks S10 includes, for each manufacturing task, defining a rule of evolution by representing the manufacturing task as a chemical reaction. The chemical reaction may be of the following type:

number

[0053] In the factory example above, this would look like this: -For the rotor forming task, M represents the metal forming machine, R represents the metal and the resources (e.g., electricity) required for the forming machine to function, and S n represents the metal before forming (e.g., raw cast iron piece), and S n+1 represents the formed rotor; -For the caliper forming task, M represents the metal forming machine, R represents the metal and the resources (e.g. electricity) required for the forming machine to function, and S n represents the metal before forming (e.g., raw cast iron piece), and S n+1 represents the molded caliper; -For the pad forming task, M represents the metal forming machine, R represents the metal and the resources (e.g. electricity) required for the forming machine to function, and S n represents the metal before forming (e.g., raw cast iron piece), and S n+1 represents the molded pad; -For the rotor drilling task, M represents the drill press, R represents the resources (e.g. electricity) required for the forming machine to function, and S n represents the formed rotor before drilling, and S n+1 represents a perforated rotor; -For the rubber injection molding task, M represents the rubber injection molding machine, R represents the rubber and the resources (e.g. electricity) required for the molding machine to function, and S n represents rubber before molding (e.g., raw rubber pieces), and S n+1 represents a molded rubber part that adheres to the pad; and - In the final assembly task, M represents the machines in the assembly chain, R represents the resources (e.g. electricity) required for these machines to function, and S n represents all drilled rotors, molded pads, molded rubber parts, and molded calipers, while S n+1 represents the final brake assembly.

[0054] Where a manufacturing task involves one or more operators operating one or more controllable machines, the chemical reactions may be of the following types:

number

[0055] Figure 2 shows a schematic diagram of a manufacturing task represented as a chemical reaction: O (operator), M (machine), R (resource), S n (current state of products) play the role of reactants. RP1, RP2, and RP3 (constraints) are external constraints on the chemical reaction (such as temperature and pressure).

[0056] In a real-world manufacturing process for an actual product, two tasks may need to be synchronized: a second task T2 must start immediately after the end of a first task T1 (e.g., within a timeframe shorter than a predefined threshold), or immediately after the start of task T1 (e.g., within a timeframe shorter than a predefined threshold), or at the start of task T1. The method may integrate such synchronized tasks by representing the two tasks as a single manufacturing task using a single evolution law that represents the execution of the two tasks together. The single evolution law may be a concatenation of the evolution laws of the two tasks. The single task may start only if all resources required for the two tasks are available. The method also handles cases where there are more than two tasks that need to be synchronized. For example, task T3 may need to start after (e.g., immediately after) another task T2, and task T2 itself may need to start after (e.g., immediately after) another task T1. In yet another example, T3 and T2 must be executed simultaneously, after (e.g., immediately after) the execution of T1. The method integrates these three or more synchronized tasks by representing them as a single task with a single evolution law. In the case of two synchronized tasks, the single evolution law is a concatenation of the evolution laws of the three or more tasks. The concatenation allows for the reservation and preservation of the resources, machines and operators (if any) required to execute the synchronized tasks, preventing their attribution to other tasks during the execution of the synchronized task.

[0057] The chemistry of synchronization tasks works as follows: Let T1 and T2 be two tasks that need to be synchronized.

number

number

number

[0058] The input provided in S10 may further include a list of manageable machines for the factory, where each item in the list is a machine for the factory and is, for example, associated with data describing the machine. The data may include a type of machine and an associated list of manufacturing tasks the machine can perform. The input provided in S10 may further include a list of operators for the factory, where each item in the list is an operator and is, for example, associated with data describing the operator. The data may include a list of manufacturing tasks the operator can perform and / or a list of manageable machines the operator can operate and manage. For example, a young apprentice will have less knowledge and be able to use fewer machines than an experienced worker. The input provided in S10 may further include a list of resources / supplies for the factory, where each item in the list is a resource / supply and is, for example, associated with data describing the resource / supply.

[0059] Referring again to FIG. 1 , after step S10 of providing inputs, the method determines (S20) an operating mode for the factory based on (i.e., using) the inputs. The determining step is also based on (i.e., using) one or more constraints on the products to be manufactured. Thus, the one or more constraints may form parameters for the determining step S20. The parameters may be fixed (i.e., the factory always has the same constraints on the products to be manufactured) or may be configurable, for example, by a user. For example, a user may provide or set one or more constraints prior to the determining step S20. The one or more constraints on the products to be manufactured may include one or more of the following: - the number of copies of the product to be produced; -The deadline / maximum period for manufacturing all copies of the product; and / or -Product specifications, including deviations from the factory's standard specifications (such as special coatings, special mechanical properties, special electronic properties, or special physical performance).

[0060] The one or more constraints may be in the form of a work order that describes which products need to be produced in what quantities by what date. The work order may be in the form of a hypergraph of products that the factory plans to produce when executing the work order. The hypergraph may include first nodes, each representing a state of a product, and second nodes, each representing a task that transforms the product state to a new state.

[0061] Figure 3 shows a schematic diagram of a hypergraph for manufacturing brake assemblies in the aforementioned example factory that manufactures brake assemblies. A work order includes a quantity of brake assemblies, represented by node E9, to be produced by a specific date based on the initial state of the brake assemblies, E1 and E3. The initial state corresponds to the amount of raw metal pieces (such as cast iron) E1 for forming rotors, brake pads, and brake calipers, and the amount of raw rubber pieces E3 for forming rubber components.

[0062] Node T1 represents the forming tasks for forming the rotor, brake pad, and brake caliper. Although the forming tasks for these three machine parts are distinct because they are performed by different metal forming machines, they are represented in Figure 3 as a single task T1 for simplicity. Node T1 therefore corresponds to the series of forming tasks that transform raw metal piece E1 into formed brake pads, brake calipers, and rotors. Node E2 represents intermediate states of the brake assembly corresponding to the separate formed brake pads, formed brake calipers, and formed rotors.

[0063] Node T2 represents a rotor drilling task in which a drilling machine drills holes in the rotor (corresponding to node E2), resulting in a rotor with holes. Node E5 represents an intermediate state of the brake assembly corresponding to the separate molded brake pads, molded brake caliper, and molded rotor with holes.

[0064] Node T3 represents a rubber injection molding task, in which raw rubber piece E3 is injection molded into a rubber part that adheres to a brake pad. Node E4 corresponds to the molded rubber part. It should be understood that task T3 may be performed independently of tasks T1 and T2, for example, during, before, or after these tasks are performed.

[0065] Node T4 corresponds to any task of painting a component of a brake assembly whose current state is E4 and E5 if the work order includes an instruction to paint the component. Nodes E6 and E8 correspond to (e.g., painted) brake pads and rubber parts, and (e.g., painted) calipers and drilled rotors, respectively.

[0066] Nodes T5 and T6 correspond to the final assembly task, which has two synchronized assembly subtasks T5 and T6, i.e., T5 and T6 start at the same time. Node T5 represents the first assembly task in which the brake pad and rubber part E6 are assembled. Node T6 represents the second assembly task in which the brake pad and rubber part E6 assembly is assembled with the caliper and perforated rotor E8. Node E9 represents the final brake assembly.

[0067] It should be understood that the sequence of tasks in the brake assembly plant discussed with reference to Figure 3 corresponds to a given work order. Different work orders may have produced different arrangements of task execution.

[0068] FIG. 4 shows a schematic diagram of a manufacturing process executing an order formed by the hypergraph of FIG. 3 at a given moment, where the manufacturing process is represented as an autonomous system of chemical reactions, each representing a task. The manufacturing floor 40 plays the role of a chemical reactor. FIG. 4 shows, for example, molding machine M2 using raw metal strip E1 and supply S1 to mold brake calipers, brake pads, and rotors E2. Because this is the point in the manufacturing process where only machine M2 is operational, machines M1 and M3 correspond to machines that are not currently in use. Similarly, supplies S2 and S6 are not currently in use. Also shown in FIG. 4 are intermediate stocks E2, E7, and E5, which are not in use while machine M2 is operational.

[0069] 1, the determining step S20 proceeds through iterations S250, hereinafter sometimes referred to as "iterations S250 of the determining step S20." Each iteration corresponds to a time interval in the manufacturing process. This time interval has a start time (sometimes referred to as an "instant" in the determining step S20) and ends when a manufacturing event occurs or when all tasks required to manufacture the product have been performed.

[0070] Continuing to refer to FIG. 1 , in the first iteration, the determining step S20 calculates the propensity of manufacturing tasks based on the constraints (S200), i.e., the determining step calculates the frequency with which tasks are selected to manufacture products based on the constraints. In other words, at each moment (i.e., each iteration), the determining step S20 checks the list of tasks that may occur and calculates their propensities. Next, the determining step S20 ranks the tasks according to descending propensity (S210), i.e., the task with the highest propensity tends to be ranked first, the task with the second highest propensity tends to be ranked second, and so on. Thus, the ranking step S210 forms a stack of tasks. Next, the determining step visits the tasks in this order (S220) and assigns machines and resources for execution to the tasks, i.e., machines and resources are assigned first to tasks with high propensity. Next, the determining step executes the tasks (S230), i.e., each task in the stack is started. The step S230 of executing a task is performed until a production event occurs, such as an expected / planned event (e.g., the task ends) or an unexpected event (e.g., a power outage or worker injury). The step S230 of executing may continue until there are no more tasks to perform, if not interrupted / stopped by the occurrence of a production event.

[0071] Continuing with reference to FIG. 1 , upon the occurrence of an event, the executing step S230 stops and the determining step S20 executes the next iteration S250. In other words, the determining step S20 loops back to the trend calculating step S210. As shown in FIG. 1 , the next iteration S250 may follow step S230 or S240, depending on whether step S240 occurs. The determining step then re-ranks the tasks according to descending order of the recalculated trend (S210), revisits the tasks according to the ranking and applies machines and resources to the tasks (S220), and re-executes the tasks (S230) until the occurrence of a manufacturing event, at which point the determining step S20 loops back to the next iteration S250, and so on. In other words, each iteration S250 of the determining step S20 corresponds to the factory functioning during two manufacturing event occurrences; that is, each iteration as of the second iteration (if any) represents an adaptation to the occurrence of the manufacturing event in the previous iteration. Thereby, the determining step S20 always adapts the operating mode to the occurrence of an event, regardless of whether the event is an expected event or not. In other words, the determining step S20 follows a time calendar / schedule that includes the event, and each time the determining step S20 proceeds to the next event, the determining step S20 loops back (S250) and re-executes the step until all events in the calendar / schedule have been fulfilled. The determined operating mode can then be output (S260).

[0072] Each iteration S250 may be associated with data generated in step S240, e.g., generated as a result of a previous iteration, as described below. The data may include a start time of the iteration. The time may represent a point in time in the manufacturing process of a product. The data may also include manageable machines available at the start of the iteration, with each machine associated with, e.g., an available time slot. The data may also include operators available at the start of the iteration, with each operator associated with, e.g., an available time slot. The data may also include resources available at the start of the iteration, with each resource (e.g., each component or raw or converted piece of material) associated with, e.g., an available time slot and an available quantity per time slot. The data may also include the current state of the product, e.g., as updated (S240) and generated by a previous iteration. In other words, upon the occurrence of an event, the method may update the status of resources, machines, and operators affected by the occurrence of the event and, accordingly, their quantities in the factory before proceeding to another calculation of the trend (i.e., in the next iteration).

[0073] For example, in the brake assembly manufacturing plant example mentioned above, during step S230 of performing a task, a fire caused by one molding machine may render this machine and possibly adjacent machines unavailable for the next molding task (e.g., as a safety precaution). Thus, in the next iteration 250, e.g., as a result of the update performed in step S240, the data associated with the iteration may include a list of machines that have become unavailable due to the fire. Production may then continue without these machines.

[0074] Prior to one or more iterations S250, determining S20 may include adapting one or more manufacturing tasks to constraints for the product to be manufactured. This may include translating a production order (also called a work order) for an object into code that integrates one or more manufacturing tasks. For example, a production order for an object may have a series of manufacturing steps for manufacturing the object, and translating the production order may include assigning a factory manufacturing task to each manufacturing step along with data indicating the resources, machines, and operators (if any) required to perform the task to perform the manufacturing step. Translating the production order may further include determining constraints, if any, to consider for calculating trends using the production order.

[0075] Continuing with reference to Figure 1, iteration S250 of determining step S20 will now be described and discussed, with it being understood that this description applies to the other iterations S250 as well.

[0076] Continuing with reference to FIG. 1 , iteration S250 includes step S200 of calculating, for each manufacturing task, the respective propensity of the manufacturing task. The propensity represents the frequency with which the task will be selected to manufacture a product given past occurrences (i.e., occurrences in previous iterations) of one or more constraints and / or manufacturing events. The propensity is a value that represents frequency. In other words, the propensity represents the likelihood (e.g., eligibility, popularity, or expectation) of the manufacturing task being selected to manufacture a product given the constraints and / or past occurrences. Thus, the higher the propensity of a manufacturing task, the more likely the manufacturing task will be selected.

[0077] The trend may be an increasing function of each of the following for each manufacturing task: - the number of one or more manageable machines available for the execution of the task (i.e., available before the execution step S230 and during the duration of all tasks); - the quantity of the product in the state before the production step (for example, the number of copies of the product in the current state, i.e., the number of copies of the product before the production step corresponding to the production task); - an indicator that the amount of resources (i.e., the resources required to perform the manufacturing step) exceeds the threshold of the resources required to perform the manufacturing step.

[0078] Therefore, the more machines performing the task, the higher the trend value. Similarly, the higher the amount of product in the previous state of the manufacturing step, the higher the trend value. The indicator may be an indicator function, i.e., a function that is equal to 1 if the amount of resources exceeds the resource threshold required to perform the manufacturing step, and 0 otherwise. Therefore, if there are not enough resources, the trend is zero and the task cannot be performed.

[0079] For example, in the brake assembly plant described above: -For each metal forming task, the trend is an increasing function of the number of forming machines performing the task, the amount of raw metal available before forming, and an indicator that the amount of raw metal is greater than a threshold (i.e., an indicator that there is a sufficient amount of raw metal to perform forming); For an injection molding task, the trend is an increasing function of the number of molding machines performing the task, the amount of rubber available before molding, and an indicator that the amount of rubber is above a threshold (i.e., an indicator that there is enough rubber to perform molding); and For the final assembly task, the trend is an increasing function of the number of machines performing the task, the quantity of each component of the brake assembly before assembly, and an indicator that the quantity of each component is greater than a threshold (i.e., an indicator that there is a sufficient quantity of each component to perform assembly; for example, assembly cannot begin without a rotor).

[0080] For each of one or more (e.g., all) manufacturing tasks, each of which involves one or more operators, the function may also be an increasing function of the number of operators available to perform the task (i.e., available before performing step S230 and for the duration of all tasks) on one or more manageable machines. Thus, the greater the number of operators available to operate the machines performing a task, the greater the propensity value for this task.

[0081] For each of one or more (e.g., all) production tasks, the function may also be an increasing function of a term that rewards respect for at least one of the constraints, i.e., a term that tends to have a high value when respecting at least one constraint, such that the propensity value of the production task increases when the execution of the production task respects, i.e., complies with, at least one constraint.

[0082] The function may also be an increasing function of a parameter that promotes (e.g., promotes, prioritizes, encourages, supports, or encourages) slow and / or economical factory operation for one or more manufacturing tasks (e.g., each manufacturing task or at least a portion thereof). In other words, for a given task, if the task corresponds to a slow and / or economical factory operating mode, the parameter may be set to have a high value. Conversely, for a given task, if the task corresponds to a fast and / or costly factory operating mode, the parameter may be set to have a low value. "Slow" means that slow machines are preferred in factory operation. "Economic" means that economical machines, e.g., resource-economical machines, are preferred in factory operation. The parameter may be user-configurable (e.g., for each task, the user may select whether this parameter should be included in the trend and set a value for this parameter). Tasks with a high value for this parameter are more likely to be trended than tasks with a low value for this parameter and therefore will be promoted over other tasks unless a low value for the parameter is offset by another factor in the trend (e.g., a higher number of available operators). For example, a task performed on a slow and / or economical machine may have a large value for this parameter to prioritize (i.e., select frequently) this task, favoring a slow and / or economical operating mode of the factory.

[0083] For each task, the function may be a product of its variables, namely the number of one or more manageable machines, the amount of product in its state before the step to be produced, an indicator indicating that the amount of resources exceeds the threshold of resources required to perform the step to be produced, optionally the number of operators of one or more manageable machines, optionally a term that rewards the respect of at least one of the constraints, and optionally a parameter that promotes slow and / or economical operation of the factory.

[0084] For example, if the law of evolution is the following type of chemical reaction:

number

number

[0085] When a manufacturing task is performed by one or more operators operating one or more controllable machines (i.e., the task is not automated), the chemical reactions are of the following types:

number

number

[0086] If, for one or more manufacturing tasks, the trend is an increasing function of a parameter that promotes slow and / or economical factory operation, then, as described above, the trend (i.e., the trend given by one of the above equations) may be multiplied by a parameter k that promotes slow and / or economical factory operation. In other words, parameter k may be a trend variable for one or more tasks (e.g., some or all of them), so that assigning different values ​​to k for different tasks allows the values ​​of those trends to be changed relative to one another. This allows, for example, assigning a higher value of parameter k to slow and / or economical tasks to promote slow and / or economical factory operation. Parameter k may be user-configurable (e.g., for each task, the user may select whether parameter k should be included in the trend and set the value of k).

[0087] In the example, for some or all manufacturing tasks, [RP] is the formula:

number

[0088] In the example, for some or all manufacturing tasks, [RP] or one of [RPi] is the formula:

number

number

number

[0089] For example, in the brake assembly factory example above, the final assembly task may include such a constraint to limit the number of outstanding copies of the final brake assembly during the execution of the assembly task. Thus, the trend of the assembly task may include a term [RP] given by one of the three equations above.

[0090] In the example, for some or all manufacturing tasks, one of [RP] or [RPi] is Formula:

number

number

number

[0091] In the example, for some or all manufacturing tasks, one of [RP] or [RPi] is the differential equation:

number

[0092] Referring back to FIG. 1 , the propensity calculating step S200 results in a set (e.g., a list) of propensities for each task. Next, an iteration S250 of the determining step S20 ranks one or more manufacturing tasks (step S210) according to descending order of their respective propensities. In other words, the ranking step S210 establishes an order within the manufacturing tasks by assigning ranks to the manufacturing tasks, such that a manufacturing task with the greatest propensity tends to have (e.g., has) the first rank, a manufacturing task with the second greatest propensity tends to have (e.g., has) the second rank, and so on, with a manufacturing task with the least propensity tending to have (e.g., has) the last rank. The ranks represent the time at which the manufacturing tasks start, with the first rank representing a task that starts soon and the next rank representing a task that starts later.

[0093] The ranking step S210 may include a step of assigning to each manufacturing task a rank given by a power law with a parameter equal to the trend. In other words, the rank of a task may be assigned by a power law with the task's trend as a parameter, such that tasks with a high trend have the first rank and tasks with a low trend have the last rank. The ranking step S210 may include a step of calculating each rank and then assigning them.

[0094] For example, in the brake assembly factory example above, unless the molding task is in progress, the final assembly task, which requires molded rubber parts, molded calipers, perforated rotors, and pads, cannot start and therefore has a small propensity (e.g., equal to zero). Therefore, this task is ranked last. Conversely, because the molding task must start first, it has a large propensity and is therefore ranked earlier. In the next iteration, once there are enough molded rotors, priority will shift to drilling holes in the molded rotors, so the drilling task may have the greatest propensity and therefore be ranked first. In the next iteration, once there are enough perforated rotors, molded rubber parts, molded calipers, and pads, priority will shift to assembling the parts into brake assemblies, so the assembly task may have the greatest propensity and therefore be ranked first.

[0095] The power law may further rely on randomly generated numbers, for example, which may be the same for each task or may vary for each task. This recognizes that factory operation is not necessarily deterministic and statistical fluctuations may occur within the factory. Thus, the power law does not necessarily rely entirely on trends; random statistical fluctuations exist and the randomly generated numbers represent them. The ranking step S210 may, for example, generate the same random number for all tasks (e.g., according to a uniform random number law) or may generate a respective random number for each task (e.g., according to a uniform random number law), and then calculate the respective rank of each task by calculating the power law for each task. For each manufacturing task, the rank of the task may be given by the following formula (power law):

number

[0096] Returning to FIG. 1 , iteration S250 of determining step S20 then includes step S220 of visiting one or more manufacturing tasks according to their ranking. That is, the first (i.e., lowest) ranked task is visited first, then the second ranked task, and so on until all tasks have been visited. For each task visited, iteration S250 then subjects the task to one or more manageable machines and resources for performing the task, and optionally, one or more operators if the task requires an operator to be performed. In other words, iteration S250 provides the ranked tasks, in ascending order of rank, with inputs of evolutionary rules (e.g., chemical reactions) representing the tasks.

[0097] Returning to FIG. 1 , each iteration S250 of the determining step S20 then executes one or more tasks (S230). Each task has a respective rank that represents the start time of the task. That is, the performing step S230 follows a timeline that may be implemented as a time loop, and at each time corresponding to the start time of a task, the performing step S230 executes the task. The timeline may be included in a time calendar that the determining step S20 follows, as described above; for example, the timeline of the performing step S230 is part of the time calendar of the determining step S20 for each iteration. "Executing a task" means that the execution executes the evolution law of the task, thereby transforming the inputs of the evolution law (i.e., the current states of the machine, resource, operator, and product, as described above) into outputs (i.e., the next states of the machine, operator, and product, as described above). While the executing step S230 follows the timeline, multiple tasks may be executed together (e.g., as a group or batch, e.g., to produce 100 objects at a time), and multiple tasks may start and other tasks may finish while the executing step S230 follows the timeline. During the execution of a task, the machines, resources, or operators involved in the task are unavailable for other tasks. The executing step S230 follows the timeline (e.g., the time loop is executed) until one or more of the manufacturing events associated with a point in time in the timeline occur (e.g., a stop condition for the time loop). At this point, the executing step S230 stops following the timeline (e.g., exits the time loop), and the determining step S20 proceeds to the next iteration S250. Thus, the executing step S230 does not necessarily execute all manufacturing tasks. The executing step S230 may, for example, execute only a portion of all manufacturing tasks, and may then be interrupted by the occurrence of an unexpected event, for example. Alternatively, the performing step S230 may perform all manufacturing tasks.

[0098] For example, in the case of the brake assembly plant mentioned above, all molding tasks may be performed together, i.e., in the same run of performing step S230, as discussed above with particular reference to Figure 3. The production of a sufficient quantity of molded rubber parts, rotors, calipers, and / or pads may constitute an event occurrence that stops performing step S230. One such event may be a fire caused by one of the molding machines, creating a safety hazard.

[0099] Continuing with FIG. 1 , before proceeding to the next iteration S250, the iteration S250 of the determining step S20 may include a step S240 of updating data related to the products to be manufactured. Updating data related to the products to be manufactured may include updating each state of the product. Specifically, before the executing step S230 of the manufacturing task, for each manufacturing task, the product is in a current state relative to the manufacturing task. For example, the current state may consist of one or more (e.g., unfinished) components of the product or the unfinished product itself. Next, by the executing step S230, the manufacturing task transforms the current state of the product to a next state of the product. For example, the components of the product may be assembled and / or transformed (e.g., completed) to constitute the next state, or the product itself may be completed to constitute the next state of the product, which becomes the current state for the next iteration (if any). Thus, the updating step S240 may include changing the current states of the products to their next states, as necessary, in the data related to the next iteration S250 (if any).

[0100] For example, in the case of the brake assembly plant mentioned above, if the occurrence of the event that stops performing step S230 is the production of a sufficient quantity of molded rubber parts, rotors, calipers and / or pads, then updating step S240 includes updating the number of molded rubber parts, rotors, calipers and / or pads.

[0101] The updating step S240 may also include updating data related to the next iteration in addition to updating data related to the products to be manufactured. The updates may include, for example: - updating the start time of the iteration, for example by making it the same as the end time of the executing step S230; Update the available manageable machines at the start of the next iteration, for example, if one or more machines become unavailable due to the occurrence of a manufacturing event. For example, in the case of the brake assembly factory mentioned above, if the occurrence of the event is a fire caused by a machine, the update would include updating the available machines by discarding (e.g., marking as unavailable) the machines that became unavailable due to the fire.

[0102] - updating the available operators at the start of an iteration, for example, if one or more operators become unavailable due to the occurrence of a production event; and / or - Updating the available resources at the start of an iteration, for example by taking into account the resources consumed by the executing step S230 and / or the resources consumed or wasted due to the occurrence of a production event and / or the increase in resources due to the occurrence of a production event (e.g. for delivery).

[0103] The iteration S250 may stop when there are no more occurrences of the production event in the time calendar of the determining step.

[0104] The method S20 may be performed once or may be performed several times, each time including one or more iterations S250. Each run of the method may correspond to the production of a single product, e.g., in accordance with a unique production order. Thus, each run may correspond, e.g., to the production of the same product produced in multiple copies, and multiple runs may correspond, e.g., to the serial production of different products. Alternatively, the method may be performed once but correspond to the production of multiple different products, e.g., each in multiple copies. In this case, the "products to be produced" in the method refers to multiple products. That is, one run of the method (also called a "run") may correspond to the production of one or more copies of the same product, or the production of multiple different products, each in one or more copies. In either case, a run of the method corresponds to a time frame during which a certain number of orders are filled, which typically results in the production of multiple products or multiple copies of the same product.

[0105] Further provided is a factory having at least one controllable machine operable according to a factory operating mode determined according to the method. Thus, each machine of the at least one controllable machine may be operated remotely by a factory computer system implementing the operating mode or by workers and employees implementing the operating mode (e.g., according to instructions, assignments, and schedules therein). The factory may be an automated factory, such as a production chain.

[0106] The method is computer-implemented, meaning that the steps (or substantially all steps) of the method are performed by at least one computer or any similar system. Thus, the steps of the method are performed by the computer, possibly fully automatically or semi-automatically. In an example, initiation of at least some steps of the method may be performed via user-computer interaction. The level of user-computer interaction required depends on the expected level of automation and may be balanced against the need to implement user wishes. In an example, this level may be user-defined and / or pre-defined.

[0107] A typical example of a computer implementation of the method is running the method on a system adapted for this purpose. The system may include a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program including instructions for carrying out the method. The memory may also store a database. The memory is any hardware adapted for such storage, possibly including multiple physically distinct parts (e.g., one for the program and optionally one for the database).

[0108] FIG. 5 shows an example of a system, where the system is a client computer system, for example a user's workstation.

[0109] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication BUS 1000 and a random access memory (RAM) 1070 also connected to the BUS. The client computer further includes a graphics processing unit (GPU) 1110 and associated video random access memory 1100 connected to the BUS. The video RAM 1100 is also known in the art as a frame buffer. A mass storage controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disk 1040. Any of the foregoing may be supplemented by, or incorporated in, specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090, such as a cursor control device, a keyboard, and the like. A cursor control device is used on the client computer to allow a user to selectively position a cursor at any desired location on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a number of signal generating devices for inputting control signals into the system. Typically, the cursor control device may be a mouse, with the buttons on the mouse being used to generate the signals. Alternatively or additionally, the client computer system may include a pressure-sensitive pad and / or a pressure-sensitive screen.

[0110] A computer program may include computer-executable instructions, including means for causing the system to perform the method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuitry, or computer hardware, firmware, software, or a combination thereof. The program may also be implemented as an apparatus, such as an article of manufacture tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the method may be performed by a programmable processor executing a program of instructions to operate on input data and generate output to perform the functions of the method. Thus, the processor may be programmable or coupled to receive and transmit data and instructions from and to a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language, as appropriate. In either case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. In either case, application of the program on the system provides instructions for performing the method.

Claims

1. 1. A computer-implemented method for operating a factory, comprising: - as shown below, one or more manufacturing tasks, each of which is represented by a law of evolution describing the steps of manufacturing a product by one or more manageable machines using resources, - one or more manufacturing constraints, and - one or more production events; Step (S10): - determining (S20) an operating mode of the factory based on the one or more manufacturing constraints and one or more constraints on the products to be manufactured, said determining (S20) comprising: - for each production task, calculating (S200) a respective trend of the production task, said trend representing the frequency with which a task is selected to produce said product, taking into account past occurrences of one or more of said constraints and / or said production events; - ranking the one or more manufacturing tasks according to a descending order of their respective tendencies (S210); - visiting said one or more manufacturing tasks according to said ranking and, for each visited task, applying to said task one or more manageable machines and resources for performing the task (S220); - executing one or more tasks until one or more of said production events occurs (S230); the determining step (S20) including one or more iterations (S250) of 11. A computer-implemented method comprising:

2. For each manufacturing task, the tendency is: the number of said one or more manageable machines, - the quantity of the product before the manufacturing step; - an indication that the amount of the resource exceeds a threshold of the resource required to perform the manufacturing step; 2. The method of claim 1, wherein the function is an increasing function of each of

3. The method of claim 2 , wherein for one or more manufacturing tasks, the increasing function is also an increasing function of the number of operators of the one or more manageable machines.

4. 4. The method of claim 2 or 3, wherein, for one or more production tasks, the increasing function is also an increasing function of a term that rewards respect for at least one of the constraints.

5. 5. The method of claim 2, wherein for one or more manufacturing tasks, the increasing function is also an increasing function of a parameter that promotes slow and / or economical operation of the factory.

6. The method of claim 1 , wherein the increasing function is a product of variables.

7. 7. The method according to claim 1, wherein the step of ranking (S210) comprises the step of attributing to each manufacturing task a rank given by a power law of parameters equal to the trend.

8. The method of claim 7 , wherein the power law further depends on randomly generated numbers.

9. The determining step (S20) may, in each iteration, after the performing step (S230): - Updating data related to the manufactured product (S240) 9. The method of claim 1, further comprising:

10. The providing step (S10) includes, for each manufacturing task, a step of defining the law of evolution by representing the manufacturing task by a chemical reaction, where the chemical reaction is of the following type: [Equation 1] where M represents said one or more manageable machines, R represents said resource, and S n represents the state of the product before the manufacturing task is executed, IS represents the product in the process of being transformed by the manufacturing task, and S n+1 represents the state of the product after the execution of the manufacturing tasks, where the tendency of each manufacturing task is given by: [Equation 2] where P is the trend, [M] is the number of the one or more manageable machines, and [S n ] is the amount of product in a state before the manufacturing step, {[R] ≧ c} is an indicator that the amount of the resource exceeds a threshold of the resource required to execute the manufacturing step, c is the threshold, and [RP] is a term that rewards respecting at least one of the constraints.

11. 11. The method of claim 1, further comprising the step of allocating manageable machines and resources to respective manufacturing tasks based on the determined operating mode, and operating the factory after the allocation.

12. A computer program comprising instructions for carrying out the method according to any one of claims 1 to 11.

13. A device comprising a computer-readable data storage medium having recorded thereon the computer program of claim 12.

14. The device of claim 13 , further comprising a processor coupled to the computer-readable data storage medium.

15. 12. A factory comprising at least one controllable machine operable with a factory operating mode determined according to a method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Method and system for management and control

    EP3477560A1

  • Operation support device for plant equipment

    JP2004094631A

  • Planning device, planning method and program

    JP2021196989A

  • Production planning device and production planning method

    JP2022090201A

  • JPP6892704B