Embodiments of the present invention relate generally to managing a manufacturing facility, and more particularly to facilitating user-specified configuration of scheduling services in a manufacturing facility.
In an industrial manufacturing environment, accurate control of the manufacturing process is important. Ineffective process control can lead to manufacture of products that fail to meet desired yield and quality levels, and can significantly increase costs due to increased raw material usage, labor costs and the like.
When managing a manufacturing facility, complicated decisions need to be made about what operations should be performed and the order of these operations. In order to generate a schedule for a manufacturing facility, significant amounts of data must be collected from one or more software systems in the facility. The data from the systems must be transformed and manipulated from the external system's format into a format suitable for use by the scheduling engine. Current Computer Integrated Manufacturing (CIM) systems perform these transformations and manipulations using a programming language, which makes designing these operations difficult and time-consuming and requires specialized programming knowledge.
The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
Methods and systems for facilitating user-specified configuration of scheduling services in a manufacturing facility are discussed. In one embodiment, a workflow user interface is presented to allow a user to specify a workflow for providing a schedule for a manufacturing facility. The workflow identifies a sequence of operations to be performed for providing the schedule. When the user selects the operations, they are displayed in the workflow user interface. In addition, the user can specify properties for each operation in the workflow user interface. The workflow with the properties are then stored in a repository for subsequent execution in response to a workflow trigger. The repository can represent any type of data storage, including, for example, relational or hierarchical databases (proprietary or commercial), flat files, application or shared memory, etc.
In the following description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes a machine readable storage medium (e.g., read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.), a machine readable transmission medium (electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.)), etc.
The scheduling system may include a configuration tool 102 and a run-time engine 104. The configuration tool 102 facilitates user-specified configuration of scheduling services in the manufacturing facility. In particular, the configuration tool 102 allows a user to customize scheduling services for the needs of a specific manufacturing facility. In one embodiment, the configuration tool 102 presents a workflow user interface that allows a user to specify a workflow for providing a schedule for the manufacturing facility. The workflow identifies a sequence of operations to be performed for providing the schedule. The workflow may be a full scheduling workflow or a schedule repair workflow. The operations included in the full scheduling workflow may include, for example, initiating the workflow, collecting data about the manufacturing facility, generating a schedule based on the collected data, and making the schedule available to requesters. The schedule repair workflow is intended for performing incremental updates to the scheduling data in-between full schedule generations. The operations included in the schedule repair workflow may include, for example, detecting a critical event, evaluating the impact of the critical event on the existing schedule, and updating the existing scheduling data according to the impact of the critical event. When the user selects the operations for a workflow, they are displayed in the workflow user interface. In addition, the user can specify properties for each operation in the workflow user interface. The workflow with the properties are then stored in a repository. The repository can represent any type of data storage, including, for example, relational or hierarchical databases (proprietary or commercial), flat files, application or shared memory, etc.
The run-time engine 104 retrieves the workflow from the repository and executes it. The operation of the run-time engine 104 may start in response to a workflow trigger. The workflow trigger, which may be specified as part of the workflow properties, can be, for example, a user request, a predefined event, or a specific time. Depending on the operations included in the workflow, the run-time engine 104 may provide the schedule by collecting information about the manufacturing facility, generating the schedule based on the collected information, and providing the schedule to one or more requestors. The information about the manufacturing facility may include, for example, description of equipment in the manufacturing facility, capability of different pieces of the equipment, current state of equipment, what product is being currently processed by equipment, the characteristics of this product, etc.
As discussed above, one of the operations included in the full scheduling workflow may pertain to data collection. For data collection operations, the configuration tool 200 provides a query builder UI 206 that allows a user to specify parameters for queries. For example, the query builder UI 206 may receive user selection of source systems to be queried for data, type of data to be collected, query filter information, etc. Exemplary source systems may include various systems of the manufacturing facility such as a manufacturing execution system (MES), a maintenance management system (MMS), a material control system (MCS), an equipment control system (ECS), an inventory control system (ICS), a prediction system, a computer integrated manufacturing system (CIM), various databases (including but not limited to flat-file storage systems such as Excel files), etc. In one embodiment, the query builder UI 206 provides template queries that can be modified by the user based on desired source systems and data to be collected from these source systems. The resulting queries can be stored in the scheduling repository 208 and can be retrieved every time the user wants to view them or modify them.
A schedule repair UI 204 allows a user to specify a schedule repair workflow for performing incremental updates to the schedule in-between full scheduling generations. The operations may be selected from a designated area in the schedule repair UI 204. Alternatively, the schedule repair UI 204 can display a template workflow that can be modified by the user. The resulting scheduling workflow is stored in the scheduling repository 208. The operations included in the scheduling repair workflow may include, for example, detecting a critical event, evaluating the impact of the critical event on the existing schedule, and updating the existing schedule according to the impact of the critical event on the scheduling data. The evaluation of the impact may include submitting a query to the source system for detailed information about the critical event. A user can specify parameters of such queries using the query builder UI 206 discussed above. The query builder UI 206 may assist the user in building the query from scratch or using a pre-generated template query.
In one embodiment, the scheduling generation UI 202 and the scheduling repair UI 204 allows a user to specify properties for each operation included in the workflow. In particular, upon a user request, the UI 202 or 204 may present a window with a form containing one or more property fields for a specific operation. The user request for a property form may be generated, for example, when the user double clicks the operation indicator in the UI, right clicks the operation indicator in the UI and selects a property option in the displayed list, etc. The properties may include, for example, a time horizon (e.g., a time interval for creating a schedule), a workflow trigger, data source systems, query parameters, facility areas for which a schedule is created, entities in the facility areas that are being scheduled, a schedule search time (a time interval during which the best scheduling solution should be found), a schedule optimization goal function (e.g., multiple factors of any factory performance metric such as least cycle time, most throughput, least work in progress, etc.), etc. The specified properties are stored in the scheduling repository 208, along with the corresponding workflow.
Referring to
At block 304, processing logic receives the workflow specified in the UI. The workflow may be a full scheduling workflow or a schedule repair workflow. The operations included in the full scheduling workflow may involve, for example, initiating the workflow, collecting data about the manufacturing facility, generating a scheduling based on the collected data, and making the schedule available to requestors. The operations included in the schedule repair workflow may involve, for example, detecting a critical event, evaluating the impact of the critical event on the existing schedule, and updating the existing scheduling data according to the impact of the critical event.
At block 306, processing logic receives properties specified in the UI for operations included in the workflow. The properties may include, for example, a time horizon (e.g., a time interval for creating a schedule), a workflow trigger, data source systems, query parameters, facility areas for which a schedule is created, entities in the facility areas that are being scheduled, a schedule search time (a time interval during which the best scheduling solution should be found), a schedule optimization goal function (e.g., multiple factors of any factory performance metric such as least cycle time, most throughput, least work in progress, etc.), etc. At block 306, processing logic stores the workflow with the properties in a repository.
Subsequently, at runtime, processing logic detects a predefined event (block 310) and executes the above workflow (block 312). A predefined event may be a user request (manual initiation) to execute the workflow, a specific time, a critical event occurred in the manufacturing facility (e.g., unexpected downtime of equipment), etc.
The working area 404 may display a sequence of operations selected by the user from the operation selection area 402. Alternatively, the working area 404 may display a template workflow provided as part of the workflow UI 400. The sequence of operations displayed in the working area 404 can be modified by deleting some of the operations and/or adding new operations selected from the operation selection area 402. The user can specify the order for executing the operations, or the workflow UI 400 can automatically generate the order (e.g., arrows) based on how operations are placed in the working area 404 (sequentially, paralleled to each other, etc.).
The workflow displayed in the working area 404 is a full scheduling workflow that includes operations 405 through 420. In particular, operation 406 defines the initiation of the workflow (e.g., based on a trigger). Operation 408 represents the creation of a scheduling data model, which defines a set of data needed for generating the schedule. Operations 410 represent run of queries to obtain data needed for the scheduling data model from source systems. Operations 412 modify the scheduling data model with results of individual queries 410. Operation 416 signifies the aggregation of different portions of the scheduling data model updated with results of individual queries. Operation 418 represents the generation of a schedule. The schedule generation operation 418 may be performed by running an optimization that finds the best scheduling solution during a predefined time interval (schedule search time). The schedule generation operation 418 may use a schedule optimization goal function that can be represented by multiple factors of any factory performance metric such as the least cycle time, most throughput, least work in progress, etc. The operation 420 represents schedule publication (e.g., making the schedule available to subscribers of scheduling services or any other qualified recipients of scheduling information).
The property form 608 corresponds to a run query operation 606. The property form 608 identifies a scheduling data model and query to be used for the operation 606. The property form 612 corresponds to an aggregation operation 610 and identifies the operations which results should be aggregated.
Exemplary forms for a create model operation 620, a modify model 607 and a run scheduling operation 624 are shown in
A property form 708 corresponds to the operation 702 and specifies which critical event should trigger the schedule repair workflow. As shown, a change in value of a lot hold flag constitutes a critical event. This event may be detected upon receiving a notification from a source system.
A property form 710 corresponds to the impact evaluation operation 704 and specifies what details should be obtained to evaluate the impact of the critical event on the existing schedule. For example, if processing of a lot of wafers in the MES is put on hold, a query may be sent to the MES to obtain all information about this lot. If the result of the query indicates that a problem which caused the interruption will be fixed during a specific time interval, then a complete regeneration of the existing schedule is not needed, and the schedule may be repaired by updating only the scheduling data affected by this event. A property form 712 corresponds to the schedule publication operation 706 and specifies the table in a scheduling database that should be updated as a result of the schedule repair.
The source systems 804 may include, for example, MES, MMS, MCS, ECS and ICS. In addition, one of the source systems 804 may be a prediction system that provides predictions about the future of the manufacturing facility. In particular the prediction system may predict a future state of the equipment in the manufacturing facility, the quantity and composition of the product that will be manufactured in the facility, the number of operators needed by the facility to manufacture this product, the estimated time a product will finish a given process operation and/or be available for processing at a given step, the estimated time a preventative maintenance operation should be performed on equipment, etc.
The recipient systems 806 may include some or all of the source systems 104, as well as some other systems such as a scheduler, a dispatcher, etc. The scheduling system 802 may be hosted by one or more computers with one or more internal or external storage devices.
The scheduling system 802 provides scheduling services in the manufacturing facility. A configuration tool of the scheduling system 802 allows users to customize the scheduling services for the needs of the specific manufacturing facility. The customized scheduling services build a schedule by collecting data from the source systems 804, using the collected data to generate the schedule, and providing the schedule to the recipient system 806. The schedule generated by the scheduling system 802 may specify, for example, what pieces of equipment should be used at specified times, the quantity and composition of the product that should be used by these pieces of equipment at the specified times, the number of operators needed by the facility at the specified times, etc.
The exemplary computer system 900 includes a processing device (processor) 902, a main memory 904 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory 906 (e.g., flash memory, static random access memory (SRAM), etc.), which may communicate with each other via a bus 930. Alternatively, the processing device 902 may be connected to memory 904 and/or 906 directly or via some other connectivity means.
Processing device 902 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 902 may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. The processing device 902 is configured to execute processing logic 926 for performing the operations and steps discussed herein.
The computer system 900 may further include a network interface device 908 and/or a signal generation device 916. It also may or may not include a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device (e.g., a keyboard), and/or a cursor control device (e.g., a mouse).
The computer system 900 may or may not include a secondary memory 918 (e.g., a data storage device) having a machine-accessible storage medium 931 on which is stored one or more sets of instructions (e.g., software 922) embodying any one or more of the methodologies or functions described herein. The software 922 may also reside, completely or at least partially, within the main memory 904 and/or within the processing device 902 during execution thereof by the computer system 900, the main memory 904 and the processing device 902 also constituting machine-accessible storage media. The software 922 may further be transmitted or received over a network 920 via the network interface device 908.
While the machine-accessible storage medium 931 is shown in an exemplary embodiment to be a single medium, the term “machine-accessible storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-accessible storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-accessible storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims which in themselves recite only those features regarded as essential to the invention.