Next Patent: Computer-based optimization system for financial performance management
Next Patent: Computer-based optimization system for financial performance management
[0001] This application claims the priority of U.S. Provisional Application Serial No. 60/372,896, attorney docket number 13907-013P01, filed Apr. 15, 2002 and entitled “RECIPE MANAGEMENT,” which is hereby incorporated by reference in its entirety.
[0002] This invention relates to change management of recipes and other sets of processing information that describe a process flow.
[0003] Recipes include a hierarchical description of a process flow. A process flow is a sequence of chemical, physical, or biological activities for the conversion, transport, or storage of material or energy. For example, process flows are used for the production of specialty chemical products, pharmaceutical products, fuels, cosmetics, and foodstuffs. Recipes can also include definitions of resources such as equipment that is deployed to perform the process flow, as well as materials input to perform the process flow and output materials resulting from performance of the process flow.
[0004] Recipes often include several different classes of process elements that are arranged in the recipe hierarchy and describe the process flow at various levels of detail. Recipes can also include definitions of resource, input, and output requirements for the process flow.
[0005] There are different classes of recipes. General recipes (“GR”) include information related to the process flow independent of specific production resources. General recipes identify raw materials, relative quantities, and required processing, but lack specific information regarding a particular site or the resources available at that site. Site recipes (“SR”) include site-specific information related to the local constraints, such as language and available raw materials at a particular production locale. Master recipes (“MR”) include resource capabilities such as equipment deployable to perform a process flow, and describe activities for a specific production on a specific line. Master recipes can also include information that is specific to a process cell.
[0006] One use of recipes and process flows is in the manufacture and the production of products. In this case, a process flow typically represents some manufacturing or production operation. The information included with the process flow in the recipe describes, e.g., the manufacturing or production process, raw materials, and available equipment.
[0007] The present invention provides methods and apparatus, including computer program products, for managing change of recipes and other sets of processing information that describe a process flow.
[0008] In general, in one aspect, a computer-implemented method for managing change of sets of processing information that describe a process flow includes receiving a first activity description describing a first activity for performing a process flow, receiving a first formula description describing a first input and an output of the process flow, receiving a second formula description describing a second input and the same output of the process flow, and associating the first activity description with one of the first formula description and the second formula description.
[0009] The invention can be implemented to include one or more of the following advantageous features. The method for managing change can include determining whether to associate the first activity description with the first formula description or the second formula description. This can be done, e.g., by executing a rule to make the determination, or receiving input from a user, the input identifying one of the first formula description and the second formula description for storage in association with the first activity description.
[0010] Associating the first activity description can include providing the first activity description with a new key for identifying the first activity description, or copying the first activity description from a second activity description. Copying the first activity description can include identifying a relationship such as, e.g., a predecessor/successor relationship, between the first activity description and the second activity description. Identifying the relationship can include linking the first activity description and the second activity description.
[0011] Associating the first activity description can include linking the first activity description to the one of the first formula description and the second formula description, or adding the one of the first formula description and the second formula description to the first activity description. Receiving the first activity description can include receiving an element hierarchy. Each element can describe an activity for performing the process flow. Receiving the first formula description can include receiving a first lifespan of the first formula and receiving the second formula description can include receiving a second lifespan of the second formula. The first lifespan and the second lifespan can overlap. The first formula description and the second formula description can be linked based on the first lifespan and the second lifespan. The second formula description can be an alternative formula to the first formula description. Receiving the first activity description can include receiving the first activity description describing the first activity for the conversion of material.
[0012] In another general aspect, a computer program product for managing change of a set of processing information that describe process flows can include instructions to cause a processor to receive a draft set of processing information that describes a process flow, update the draft set of processing information to reflect an approach to improving the process flow or other portion of the processing information, receive a copy command, and copy, in response to receipt of the copy command, the updated draft set of processing information to create a set of processing information that includes the approach. The product can be tangibly stored on machine readable media.
[0013] The invention can be implemented to include one or more of the following advantageous features. The instructions can also cause the processor to update the draft set of processing information to reflect an approach to improving an activity in the process flow. The draft set of processing information can be updated to reflect an approach to improving an input to the process flow.
[0014] The instructions can also cause the processor to identify a relationship between the set of processing information and a second set of processing information that does not include the approach. A lifespan of the set of processing information can be received and the relationship can be identified based upon the received lifespan. A predecessor/successor relationship between the set of processing information and the second set of processing information can also be identified. The set of processing information and the second set of processing information can be linked to indicate the predecessor/successor relationship. The set of processing information and the second set of processing information can be identified as alternatives with a same output. The draft set of processing information can be updated to reflect a second approach to improving the process flow or other portion of the processing information. The updated set of processing information can be copied to create a second set of processing information that includes the second approach.
[0015] The instructions can also cause the processor to receive a first lifespan of the set of processing information and receive a second lifespan of the second set of processing information. The first lifespan and the second lifespan can overlap in time. A key for identifying the set of processing information can be specified. At least a portion of the key can be the same as a portion of a draft key for identifying the draft set of processing information. The draft set of processing information can be updated without creating a new key for identifying the draft set of processing information. The draft set of processing information can describe a conversion of material.
[0016] The invention can be implemented to realize one or any combination of the following advantages. The conditions under which products are manufactured or produced are always changing, e.g., suppliers change, the materials and equipment used for production change, the regulatory environment changes, consumer requirements change, and technology progresses to develop improved manufacturing or production procedures. The net effect of change in the commercial, regulatory, and technical environment is the constant creation and alteration of recipes and other descriptions of process flows.
[0017] Recipes, and other descriptions of process flows, can be managed and classified using the methods and apparatus, including computer program products, of the present invention. In particular, the production of new recipes can be facilitated, the classification of existing recipes can occur quickly, and existing recipes can be rapidly and easily identified when needed. These capabilities allows recipe developers and manufacturers to keep pace with process changes, while manufacturing products quickly and efficiently, which is beneficial since the ability to rapidly change production of a product at a particular site is often instrumental in determining the profitability of the product. For example, if a memory chip manufacturer requires a long time to bring a new memory chip to market, then rapid changes in the semiconductor industry may, over time, decrease the desirability of the new memory chip and erode the profit that can be reaped by producing the new memory chip. As another example, unexpectedly high or seasonal increases in demand for a particular food product may be met by a producer that rapidly scales up production volume at several different sites, and then lowers production once the high or seasonal demand has been met. Without the ability to rapidly classify, locate, and create diverse recipes, the opportunity to maximize profits from a product can be lost.
[0018] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034] Like reference symbols in the various drawings indicate like elements.
[0035]
[0036] At least two of the received recipes are variants within a single variant class. Variants are recipes that describe similar process flows but produce slightly different outputs. For example, one recipe can describe a process for producing a polymer with a certain average molecular weight, while a second, variant recipe can describe a similar process for producing the same polymer with a larger average molecular weight.
[0037] Variants can describe different activities, different formulae, or both. A formula is a list of inputs and outputs of a recipe. For example, two different variants can describe two different catalysts that can be input into a single process to achieve two different average molecular weights of a polymer. As another example, two different variants can describe two different reaction temperatures that can be used with a single formula to achieve two different average molecular weights of the polymer.
[0038] The system also receives a characteristic of a variant class for use in classifying the variants (step
[0039] The system groups the variants of the recipe into variant classes based on the received characteristic of the variant class (step
[0040] The system then identifies the variants according to variant class (step
[0041] Alternatively, the class of the variants can be identified within the semantic key. For example, the semantic key may include a prefix that identifies the class of the recipe.
[0042] In addition to the semantic key, recipes and recipe variants can have several different identifiers for different contexts. For example, recipes can be identified by the physical properties of the products of the recipe, the by-products of the recipe, and the formula of a recipe. By using several different identifiers, the identification of recipes in different business contexts is hastened.
[0043]
[0044] Table
[0045] The classification and management of recipe variants and variants of other sets of processing information that describe a process flow speeds the identification of existing recipes. In particular, since recipes can be classified according to generic characteristics of the outputs of the recipes, a user who is interested in obtaining a product with a particular characteristic can rapidly sort through large numbers of recipes.
[0046] Moreover, the classification of recipes can be performed according to a user's understanding of the distinguishing characteristics of the variant classes. For example, recipes for the production of polymers can be classified according to, e.g., a characteristic of the activities that produce the polymer (e.g., a free-radical reaction vs. a condensation reaction); a characteristic of equipment that performs the activities (e.g., a plug-flow reactor vs. a batch reactor), a characteristic of the formula that produces the polymer (e.g., a glycolic acid reactant vs. a lactic acid reactant) or any other distinguishing characteristic that the user understands as distinguishing the variant classes.
[0047] One particular type of variant is the internal variant. Internal variants are recipes that produce a wide spectrum of outputs based on parameters that are received from a producer during production.
[0048]
[0049] To achieve the same output, alternatives can describe different activities, different formulae, or both. For example, two different alternatives can describe that different amounts of two different catalysts can be used in two different processes to achieve the same average molecular weight of a polymer. Two alternatives can exist in parallel and can be valid simultaneously.
[0050] The system identifies the received recipes that have the same output (step
[0051] The system can also mark a recipe as the default or favored alternative for achieving an output (step
[0052] Furthermore, alternatives can be ranked on a scale according to appeal. For example, one alternative can be flagged as first choice for a specific output, while a second alternative can be flagged as the second choice, and a third alternative can be flagged as the third choice
[0053]
[0054] Recipe records
[0055]
[0056] The management and ranking of recipe alternatives and other process flow alternatives speeds the identification of existing recipes. In particular, since recipes can be associated and ranked with other recipes that have the same output, a user who is interested in obtaining a particular output can rapidly sort through large numbers of recipes and easily compare the recipe alternatives to identify the recipe with the most favorable characteristics.
[0057]
[0058] The system also receives a second version of the recipe (step
[0059] The second version of the recipe can be received by copying the recipe and using the copy as a template for receiving alterations from a user. Alternatively, a user can input the second version from scratch. The name of the original recipe can be maintained, e.g., if a version is created by copying the recipe.
[0060] The system also identifies the recipe and the second version of the recipe according to their predecessor/successor relationship (step
[0061] The system can identify the predecessor/successor relationship, e.g., by storing a link from the successor to the predecessor. In this case, versions can also be identified using a customer-specific indicator or a completely different name, since different versions can also be identified by the predecessor/successor link.
[0062] To identify the predecessor/successor relationship, a suffix for the version can also be added to the recipe ID. The version suffix of the new recipe ID can be automatically increased each time a new version is created.
[0063]
[0064] Recipes
[0065] Recipe records
[0066]
[0067] The system can receive a draft recipe that is generated from scratch by a user, or the system can receive identification of a recipe or recipe version that is to be copied and used as a template for the draft. The system can identify the received draft recipe by, e.g., adding an additional suffix to the recipe ID to identify the draft. The identifying suffix can be changed, e.g., by a user-exit. If a recipe version is copied to create a new draft, the version identification need not be changed. Instead, an additional draft index can be added so that the version identification still refers to the source version.
[0068] The system also receives changes to the draft (step
[0069] At some point the user can indicate to the system that further improvement or development of the draft recipe is no longer desired (decision
[0070]
[0071] Draft recipe
[0072] Draft recipe
[0073]
[0074] At times t
[0075] The sequence of the life spans, and the predecessor/successor relationship, can be identified using the semantic key of versions
[0076] The system can also link versions
[0077] Versions
[0078] As shown in
[0079] A formula table
[0080] Table
[0081] The versions of formula records
[0082]
[0083] A system performing the method
[0084] The system also receives a recipe (step
[0085]
[0086] The system performing method
[0087] The system automatically links recipe versions
[0088] Rules for establishing linkages to independent formulae can also be used to manage versioning of the recipes themselves. For example, when the system links recipe
[0089]
[0090] A system performing the method
[0091] Rather than automatically linking the recipe to a formula, the system queries a user to identify if a formula version is to be linked to a recipe (step
[0092]
[0093] The system performing method
[0094] The system can link recipe
[0095] Method
[0096] The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The invention can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
[0097] Method steps of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0098] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
[0099] To provide for interaction with a user, the invention can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0100] The invention can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or an Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
[0101] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0102] A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the method described herein can be combined into a single method and performed on a single system. Accordingly, other embodiments are within the scope of the following claims.