The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It may be evident, however, that such matter can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the invention.
It is noted that as used in this application, terms such as “component,” “module,” “model,” and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution as applied to an automation system for industrial control. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program and a computer. By way of illustration, both an application running on a server and the server can be components. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers, industrial controllers, and/or modules communicating therewith.
Now turning to the figures,
The system 100 can provide a controller-based structure for executing a flexible control recipe and structure of the MES data interface and transport mechanism (e.g., the MES interface component 102) used to interface an MES system (e.g., the MES layer 104) to the controller-based recipe execution system (e.g., the automation layer 106). The MES interface component 102 can be utilized in connection with communicating and executing a control recipe for discrete manufacturing in a standardized manner. The system 100 can utilize a modular programming technique and/or concept in order to achieve such standardization. In general, the MES interface component 102 can allow a control recipe from the MES layer 104 to be executed within the automation layer 106 in a uniform manner by utilizing at least one of a technique, a method, or a mechanism associated with S88 and S95 standards.
In addition, the MES layer 104 can be any suitable MES that can include at least one control recipe in connection with a discrete manufacturer, company, enterprise, and the like. For instance, the MES layer 104 can be a shop floor control system which includes either manual or automatic labor and production reporting as well as on-line inquiries and links to tasks that take place on the production floor. Furthermore, the MES layer 104 can include links to work orders, receipt of goods, shipping, quality control, maintenance, scheduling, and other related tasks. Moreover, it is to be appreciated and understood that the automation layer 106 can be any suitable controller-based automation environment, controller-based automation manufacturer, automation factory, automation enterprise, controller-based recipe execution system, and the like.
The system 100 can implement the MES interface component 102 for diverse manufacturing sectors by enforcing modular programming principals. For example, the modular programming principals can be related to at least one of Object Oriented Programming, S95 standards, or S88 standards. For instance, the following principals or concepts can be utilized by the system 100, and in particular, the MES interface component 102: 1) Encapsulation—Encapsulation can dictate that an object's data can be accessed/modified by the object's methods, and can not be accessed/modified directly by the object's client; 2) Polymorphism—Polymorphism can be the ability of multiple Objects to be treated the same by their clients, although they may behave quite differently; and/or 3) Inheritance—Inheritance can refer to a Class of Objects or Sub-Class, which may automatically inherit the specific characteristics from an existing Class.
By treating each work cell (e.g., dissimilar machines grouped to produce a family of parts having similar manufacturing requirements, a unit within S88 standards, etc.), within the automation solution, as similar objects with a predefined interface and made up of a known hierarchy of equipment phases, equipment modules, and control modules, the techniques of interfacing with the automation layer 106 from the MES layer 104 (e.g., the information layer) are standardized. With such techniques, the system 100 builds the MES interface component 102 as a standard interface that increases the flexibility of a control system in comparison to monolithic programming techniques.
The system 100 can provide at least one of the following: 1) Data Structure and Transportation Mechanism (discussed in more detail in
The various embodiments associated with the system 100, and in particular, the MES interface component 102 can operate separately or in conjunction with various systems including Advanced Process control, various business systems, machine or manufacturing execution systems (MES), an MES Appliances, and so forth. A MES system (e.g., the MES layer 104) can include an Enterprise business system, Quality system, Warehouse and supply chain systems, and so forth. An MES system, such as the MES layer 104, can include key functions, such as detailed scheduling, work order execution and dispatching, definition management, resource management, data collection, and order management. An MES Appliance can perform processing related to various aspects (e.g., business logic, data storage, and so on), can be incorporated on software modules that can operate various aspects of a business, manufacturing environment and the like and can operate and be serviced utilizing various information technology resources. The system 100 can directly or indirectly derive their value out of configuration and interaction with Manufacturing/Automation systems and/or other MES type systems. Additionally, the various aspects can be employed in an industrial automation environment and/or in other environments in which such aspects are deemed appropriate.
It is to be appreciated that module components and/or phase components associated with the MES interface component 102, the MES layer 104, the automation layer 106, a Manufacturing Execution System (MES), an automation system, an automation environment, a controller-based execution system, a system that utilizes a S88 standard, a system that utilizes a S95 standard, a discrete manufacturing environment, etc. can be an association of logic with one or more resources. The logic includes program code that can alter the state of a resource for example, ladder code, function chart, script, JAVA, C code, and so forth. The resources are those components or elements that perform an activity in a system including equipment and personnel that perform work in a system. Other examples of types of resources include Equipment, Material, Personnel, Segments and Storage. Personnel and equipment (machines) can perform activities in a system. Resources that can perform work can be classified as active resources (e.g., CNC machine, Injection molding machine), whereas other equipment resources can be considered passive resources (e.g., sensor, material). In general, the modules hide the user from internal interfaces, messages, and logic specific to the resources yet provide standard or generic interfaces to external systems or between components.
Modules may include other modules including nested modules where standard module behaviors and attribute patterns can be represented using common data model representations for module classes, module templates and module inheritance. Module classes and templates can be maintained in libraries which facilitate access to desired system functionality and further promote system integration. Resources can have various states associated therewith such as common S88 state classifications including idle, hold, abort, run, reset, stop, restart, and so forth where the module can present logic to represent state machines that manage the state of the resource. During application, resource modules (described below) can take on the name of the resource that is the primary focus on the module. For example, an Equipment module is primarily focused on coordination of equipment but may involve personnel in the process. Similarly, a Personnel module is focused on coordination of personnel but may involve other resources in the process. A Control Module that manages a material may be referred to as a Material Control Module and so forth.
It is noted that components associated with the system 100 can include various computer or network components such as servers, clients, programmable logic controllers (PLCs), communications modules, mobile computers, wireless components, control components and so forth which are capable of interacting across a network. Similarly, the term PLC as used herein can include functionality that can be shared across multiple components, systems, and/or networks. For example, one or more PLCs can communicate and cooperate with various network devices across the network. This can include substantially any type of control, communications module, computer, I/O device, sensor, Human Machine Interface (HMI) that communicate via the network which includes control, automation, and/or public networks. The PLC can also communicate to and control various other devices such as Input/Output modules including Analog, Digital, Programmed/Intelligent I/O modules, other programmable controllers, communications modules, sensors, output devices, and the like.
The network can include public networks such as the Internet, Intranets, and automation networks such as Control and Information Protocol (CIP) networks including DeviceNet and ControlNet. Other networks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus, Profibus, wireless networks, serial protocols, and so forth. In addition, the network devices can include various possibilities (hardware and/or software components). These include components such as switches with virtual local area network (VLAN) capability, LANs, WANs, proxies, gateways, routers, firewalls, virtual private network (VPN) devices, servers, clients, computers, configuration tools, monitoring tools, and/or other devices.
The hierarchy 200 can include a control recipe that can be defined as a component of a work order within the MES layer (e.g., a MES system, etc.). A control recipe procedure can include a recipe procedure 202. An equipment control can include an equipment procedure 204 that is referenced by the recipe procedure 202. It is to be appreciated that the equipment procedure 204 can be a procedure that is part of equipment control. The equipment procedure 204 can be an ordered set of an equipment unit procedure 206 (e.g., a unit procedure can be a part of equipment control). The unit procedure can be a strategy for carrying out contiguous process (e.g., work) within a unit (e.g., a work cell). The equipment unit procedure 206 can be an ordered set of an equipment operation 208, wherein the equipment operation 208 can be an operation that is part of equipment control. Moreover, an operation can be a procedural element defining an independent processing activity including an algorithm related to at least one of initiation, organization, or a control of a phase. The equipment operation 208 can be an ordered set of an equipment phase 210. The equipment phase 210 can be a phase that is part of equipment control, wherein a phase can be the lowest level of procedural in the procedural control model.
By utilizing the hierarchy 200, each equipment operation 208 or equipment phase 210 that supports a control recipe can be organized according to an equipment control hierarchy (e.g., the hierarchy 200). For example, the equipment control hierarchy can be the following: 1) production line (e.g., equipment procedure 204); 2) work cell (e.g., equipment unit procedure 206); 3) work cell relationship (e.g., in certain cases work cells can act in groups). As data is moved utilizing a defined transport mechanism utilized by the MES interface component, the control system (e.g., the automation layer, etc.) can translate the data for each equipment operation 208 or equipment phase 210 and place such data into the predefined equipment control data structure. For instance, the data can be stored within one or more production line (e.g., a series of pieces of equipment dedicated to the manufacture of a specific number of products or families, etc.) controllers in the form of an equipment procedure 204.
As illustrated, the MES interface component 102 can interface any suitable automation layer 106 via a personal computer (PC) to access a line 302 within the controller-based automation environment (e.g., the automation layer 106). The system 300 can support list (e.g., an array) of control recipes comprised of equipment procedures (e.g., one per assembly). As a new control recipe is received via the transport mechanism (e.g., the MES interface component 102), such control recipe can be placed into an order list 304. In one example, the transport mechanism (e.g., the MES interface component 102) can group a control recipe according to manufacturing rules. In another example, the control recipe can be placed into the order list 304 in the order received.
As a given assembly is placed on an assembly line, the physical assembly can be compared to the respective control recipe within a verification list 306. As the assembly is matched to the respective control recipe, the control recipe can move from the verification list 306 into a line list 308 (e.g., a line list work cell 1), as the physical assembly moves into the first work cell.
Each position in the line list 308 can represent a pitch position on the production line. A pitch position may be a work cell or conveyor buffer. The control recipe (e.g., contained in the line list) can continue to flow through the line list 308 as the physical assembly moves through each pitch position on the production line. It is to be appreciated that the line pitch can be a specific, unique and measurable point within the production line. The automation control system (e.g., the automation layer 106) can receive the control recipe via the standard MES data structure and transport mechanism implemented by the MES interface component 102, which can act on the embedded equipment procedure (e.g., or equipment procedures in the case of multiple lines) of the production line.
Discrete manufacturing can depend on a sequential performance of work at each work cell on the production line 402. However, it is to be appreciated that work cells can work and/or act in parallel. An equipment procedure can be executed in accordance to the physical layout of the production line 402. In other words, an equipment unit procedure can be executed sequentially as an assembly moves through the production line 402. The equipment procedure can rely on line pitch within the production line 402 to invoke the execution of equipment unit procedures. As an assembly moves through the production line 402, the control recipe (stored within the line list parameterizes) is executed within the equipment unit procedure and respective subordinate procedural elements. Thus, the above discussed technique can be utilized to execute the equipment procedure.
The MES interface component 12 can include various job execution instructions. In other words, the MES interface component 102 can be utilized to define at least one equipment operation that can be performed for a certain work order. The following table can outline a defined equipment operation supported by the claimed subject innovation, and more particularly, the MES interface component 102. It is to be appreciated and understood that the MES interface component 102 can support collapsibility; therefore operations can be replaced with equipment phases where operations are inapplicable.
The following table can describe the data elements of each equipment operation within the MES interface component 102 and specifies the mapping to various MES objects.
The following table illustrates numerous examples in accordance with the subject innovation. It is to be appreciated that the below examples are solely for illustration and are not to be limiting on the claimed subject matter and/or the scope of the MES interface component 102. For instance, the below examples are implemented within the design for automotive discrete manufacturing. However, such examples can be applied to any suitable industry with substantially similar requirements and/or any suitable discrete manufacturing environment/system. Moreover, the MES Interface Component 102 is abbreviated as MIC within the below tables of examples.
The user can also interact with the regions to select and provide information via various devices such as a mouse, a roller ball, a keypad, a keyboard, a pen and/or voice activation, for example. Typically, a mechanism such as a push button or the enter key on the keyboard can be employed subsequent entering the information in order to initiate the search. However, it is to be appreciated that the claimed subject matter is not so limited. For example, merely highlighting a check box can initiate information conveyance. In another example, a command line interface can be employed. For example, the command line interface can prompt (e.g., via a text message on a display and an audio tone) the user for information via providing a text message. The user can than provide suitable information, such as alpha-numeric input corresponding to an option provided in the interface prompt or an answer to a question posed in the prompt. It is to be appreciated that the command line interface can be employed in connection with a GUI and/or API. In addition, the command line interface can be employed in connection with hardware (e.g., video cards) and/or displays (e.g., black and white, and EGA) with limited graphic support, and/or low bandwidth communication channels.
Referring to
At reference numeral 604, a predefined data structure can be enforced for the portion of data, wherein the data structure can correspond to a standard S88 principal. For example, the principal can relate to Object Oriented Programming and/or any other suitable modular programming techniques. For instance, the following principals or concepts can be utilized: 1) Encapsulation—Encapsulation can dictate that an object's data can be accessed/modified by the object's methods, and can not be accessed/modified directly by the object's client; 2) Polymorphism—Polymorphism can be the ability of multiple Objects to be treated the same by their clients, although they may behave quite differently; and/or 3) Inheritance—Inheritance can refer to a Class of Objects or Sub-Class, which may automatically inherit the specific characteristics from an existing Class.
At reference numeral 606, the portion of data can be utilized within an automation layer (e.g., an automation environment, an automation system, a controller-based environment, a controller-based system, a control recipe execution system, etc.). The portion of data can be seamlessly communicated from the MES to the automation layer based at least in part upon the standardized techniques and/or the predefined data structure for the portion of data. Thus, in general, the methodology 600 provides a standardized and universal predefined data structure that transports data between an MES and an automation environment/layer. It is to be appreciated and understood that the automation layer can be any suitable controller-based automation environment, controller-based automation manufacturer, automation factory, automation enterprise, controller-based recipe execution system, and the like.
At reference numeral 706, a standardized interface can be employed based at least in part upon the hierarchy, wherein the standardized interface can transport the organized control recipe to an automation environment. It is to be appreciated that the automation environment can be any suitable controller-based environment that can implement a portion of discrete manufacturing. At reference numeral 708, the control recipe can be executed within the controller-based automation environment. Thus, a standardized and universal technique to transport and execute a control recipe from an MES to an automation environment can be utilized.
Turning now to
Attributes presented below are represented as associations from the module to objects which may be internal in a common data model or elsewhere (e.g., CAD Files). At 820, standard public interfaces can be provided. These interfaces 820 publish verbs 824 that are available to external systems and are documented activities that hide the complexity of the underlying code used to implement the interface. Interfaces 820 can be associated with various common usage scenarios. For example, interfaces 820 can be used as access points that can hook in real time diagnostics, security and so forth.
Public verbs 824 initiate an action within the module. The activity is described to clients of the interface 820. The implementation is considered private and is not presented to clients. Examples can include Open, Stop, Abort, Shut, and so forth. A data value property 810 provides public access to information that is used by the module during its operation and can be provided by request values and/or internal values (or an equivalent). The association of logic to transfer request values to internal values and vice versa are referred to as get and set logic for the value. It is noted that in a controller, if there is not a set routine to transfer request values to internal values, the internal value can overwrite the request value on the next scan providing read only capability.
In general, the properties 810 can be considered in at least two classifications. States have special significance for production systems and can have a specific set of values that can be represented by range or enumeration. A state can represent the current status of the primary resource being encapsulated by the module e.g., Percent open, Mode, Service (in, out), and so forth. Information that is used by the module during its operation includes access to data that is provided by interfaces 820, e.g., Conversion Map, Name, Description, expiry date, personnel contact information. Some properties 810 can be common to all instances of resource modules (e.g., scanned copy of resource specification documents), whereas other properties 810 are specific to each module instance (e.g., Status, percent open).
At 830, internal resource interfaces include interfaces from logic 840 in the module to the resource being managed at 850, where the logic includes code and/or configuration(s) that process a command and/or update state and data properties. In some cases, this can be hardware such as I/O interfaces, or in other cases it is to subordinate resource control modules that have direct interfaces. Some examples include I/O mapping, material management logic routines, and so forth. These interfaces 830 are internal to the module and can enable the public interfaces 820 and properties 810 to be the boundary to other system components. Modules that wrap different resources but support the same public properties/interfaces can be exchanged without disrupting interfaces to other components. Generally, I/O mapping and system messaging interfaces are exposed during deployment bind processes. When bound, external interfaces 820 to runtime systems may then consider these interfaces as internal.
At 860, alarm and event messages can be provided which include messages that can be exposed as runtime messages visible to external systems during the execution of the module. This includes alarms and events explicitly coded by the developer and system messages promoted to be visible by external systems. At 870, one or more artifacts include information that document the operation and structure of the resource such as, for example, wiring diagrams, warranties, payroll, parts supplier information, and so forth. Visualization aspects include associated graphics that present the resource state and properties to applications interacting with the resource. For example, the artifacts can include faceplates, icons, state overlays, edit dialogs, help files, etc. At 880, system messages allow modules to listen for and publish data model messages to external components. Inbound messages are typically used to manage modules (configure, initialize, propagate properties, and so forth) and publish messages on module activity (resource state, data model messages, and so forth).
Turning to
At 910, an Equipment Control Module (Common name=“Control Module”) CM can be provided, which can be the simplest form of basic regulatory control of equipment. The equipment control module 910 can encapsulate the equipment and its control such as control of values, drives, and so forth. At 920, a Material Control Module (MCM) can be provided. Management of material resource instances which are represented as sub-lots including change in location, quality status, availability, order status, logic that can be performed on material sub-lots, generation of material events such as consumed, produced and moved events, sub-lot combination, expiry dates, and so forth.
At 930, a Personnel Control Module (PCM) is provided. This includes management of individual people such as Active, Idle, Break states directly or via shift schedules. This also includes data associated with people such as shift time patterns, for example. Other attributes that may be managed by PCM 930 are a person's location in a plant (GPS), qualification checks, or current assignment, for example. At 940, a Segment Control Module (SCM) includes manipulation of simple segment tasks such as piping paths, AGV paths, device state machines, robotic sequences and so forth. The SCM 940 typically performs an action on one segment such as next step to execute after the current step. At 950, a Storage Control Module (STGCM) includes manipulation of simple storage logic such as buffer capacity and ordering into and out of a queue for the respective storage unit or requirement.
Before proceeding it is noted that other types of modules are possible other than those shown. For instance, a configuration module may include management definitions and configuration of resources—personnel, material, equipment, segments, storage, and so forth. Another type of module includes nested modules where a module references other modules. These modules may be children of a parent module or shared from one module to another. Resource modules may include resource control modules; however, resource control modules should not include resource modules. Modules can include modules focused on other resource types; for example, an equipment module may include equipment modules and material modules.
At 1140, a Segment Module provides coordination of segment modules and segment control modules to execute sequences of tasks represented by segments. Segments define resource requirements and ordering that can represent most production and process activities. This module provides access to more complex tasks that require specific sequences to be followed e.g., Process Analytics Technology (PAT) integration, electronic signatures collection, defect, process deviation and fault recovery processing. The segment module 1140 may also construct a sequence to be followed that can be applied as manual, automatic or semi automatic sequences (e.g., route, recipe execution) At 1150, a Storage Module provides coordination of storage related activities, allocation of storage to requestors, modeling of inventory calculations and so forth. This also includes interaction with higher-level systems that manage storage and inventory information.
Resource capabilities 1210 include the resource 1220 required to perform work in a production system. Consequently, resources 1220 are at the center of efficiency, capacity, scheduling and arbitration considerations. A resource's ability to work or be available to allow work to commence is represented as resource capability at 1230. The existence of capability 1230 associated with a resource 1220 does not make the resource available for production; the resource's capability 1230 is associated with organizational units 1240 that can support the respective resource capability. For example, an operator (personnel resource) may have qualifications for a Mixer in line 1, where this qualification capability is only in effect with that specific mixer unless explicitly directed. Resource arbitration algorithms can search for resource capabilities 1230 in the scope of organizational units 1240 they are to be executed within.
Resources 1220 publish capabilities to organizational units 1240 for use by system processes in a given scope. Modules are a type of resource and can be accessed directly by published capabilities 1210. However, a more common interface to Resource Modules is via verbs that are supported by the Resource Module noted above. These verbs are Resource Control elements (phases, operations, procedures . . . ) which are segments. A published capability of a resource module is typically one of the phases supported the module. Resource control interfaces are published (made available) to the outside world as capabilities 1210. Resource modules provide the ability to promote a command to become a resource control interface.
Some process control systems are built using only Resource control modules (especially control modules). Examples of this are continuous processes such as petrochemical and heavy chemical plants. In order to initiate, the process takes a plant up to its running state or makes a change to the state of a series of commands that are initiated and coordinated to achieve the new state. It is also possible to promote commands from resource control modules to appear as capabilities that can be accessed as “tuning knobs” for tweaking the system between system states. As shown in the model 1200, the resource 1220 and capability can be associated with a higher-level class or abstraction 1250.
What has been described above includes examples of the subject innovation. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the claimed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject innovation are possible. Accordingly, the claimed subject matter is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter. Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the claimed subject matter. In this regard, it will also be recognized that the innovation includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the claimed subject matter.
In addition, while a particular feature of the subject innovation may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.”
This application claims the benefit of U.S. Provisional Patent Application No. 60/862,403, entitled “MODULE CONTROL AND STATE PROPAGATION,” filed on Oct. 20, 2006, and U.S. Provisional Patent Application No. 60/890,973, entitled “MODULE CONTROL AND STATE PROPAGATION,” filed on Feb. 21, 2007, the entireties of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60862403 | Oct 2006 | US | |
60890973 | Feb 2007 | US |