Not applicable.
The present invention relates to systems for designing and generating control code for automated manufacturing systems and more specifically to a system for synchronizing design efforts among various designers using different software programs that specify different parts of the manufacturing system.
The process of completely designing all aspects of a manufacturing process is extremely complex and requires input from many different people that have varying skill sets. To this end, an exemplary design process often starts with a mechanical engineer using a CAD software program at one workstation to design a product to be manufactured.
Once the product is completely specified, a second mechanical engineer that specializes in designing mechanical systems for manufacturing products receives the product design and uses a second CAD program at a second workstation to design a manufacturing cell or multiple cells required to manufacture the product. Here the cell designing process typically includes selecting devices or assemblies to be added to one or more cells to perform manufacturing processes, placing the devices in the cells, specifying actions or processes to be performed by the devices in the cells, specifying limitations or characteristics of the processes and sequencing the device actions to perform the overall manufacturing process. In at least some cases device object type libraries have been developed that help the mechanical engineer perform the cell specifying process.
After or during the manufacturing cell specifying process, a person (e.g., an ERP expert) responsible for enterprise resource planning (ERP) for a facility may start designing an ERP system using ERP software on another workstation. As the label implies, an ERP expert uses the ERP software to plan use of facility resources including cost to construct manufacturing cells, cost to run the cells, cost to maintain the cells, requirements for delivery of materials to cells for feeding the manufacturing process, training requirements for employees needed to support the manufacturing process, etc.
In addition, after the mechanical cell specifying process, a control engineer receives parts or all of the cell specifications and uses a programming workstation to generate programming code for controlling the cell devices to perform the specified sequence of processes. Programming is a sophisticated skill and often is performed in the Relay Ladder Logic (RLL language) that can be run by a programmable logic controller (PLC) or some other controller type.
Moreover, after the mechanical cell specifying process and after or during the control code specifying process, an electrical engineer receives parts or all of the cell specifications and uses a an electrical layout software package to generate electrical layouts for delivering power to the devices within the cells.
During the overall design process, when a first of the engineers or experts involved in the process specifies information for a manufacturing system that is inconsistent with information previously specified by another or a subset of the other engineers or experts, the first engineer needs to notify the other engineers or experts of the inconsistency so that the others can take steps to synchronize the design process. Thus, for instance, where a control engineer adds logic or code to a PLC program to support an emergency stop for a clamp in a first cell where there is no control panel in the first cell (here it is assumed that a control panel is required to provide an emergency stop), the inconsistency must be recognized by the control engineer and must be manually communicated to the mechanical engineer so that a control panel can be added to the cell.
While the manufacturing line design process described above is becoming ubiquitous, unfortunately identification of inconsistencies between different information types and communication of those inconsistencies to others working on designing and instantiating a manufacturing process is flawed for at least two reasons. First, an engineer or expert working in a first system may not recognize when information specified using the first system is inconsistent with information specified using one or more of the other systems. Here, all of the engineers and experts may simply miss an inconsistency between the specified information of different types and the error may only be able to be recognized far down the design line at a time when it is far more complex and expensive to eliminate the inconsistency from the system.
Second, even when an engineer or expert recognizes an inconsistency, the engineer may fail to provide notice to all of the others working on the system that have a need to know about the inconsistency or one or more of the others that receive notice may not address the inconsistency when the notice is received. Here note that current systems rely on manual notice to identify inconsistencies when moving up stream in the design process.
The two flaws with the system described above are exacerbated in cases where the different specifying systems are used in parallel so that different engineers and experts are specifying information simultaneously in many cases that can lead to inconsistencies. In addition, the flaws are further exacerbated in cases where more than one engineer or expert may be working on a single system type to specify required information during a complex or large design case. For instance, in some cases two or more mechanical engineers may work simultaneously or in series to design a cell or related cells and one engineer may be unaware of what the other is doing so that inconsistencies cannot be easily identified.
It has been recognized that where different systems are used to specify different information types needed to together define a manufacturing system, inconsistencies between specified information of the different types can be automatically identified and notice of the inconsistencies can be provided so that the inconsistencies can be eliminated. Moreover, it has been recognized that where inconsistencies occur between different information types, a system can automatically identify possible solutions for eliminating the inconsistencies and those solutions can either be suggested to engineers or experts or may be implemented automatically, in at least some embodiments.
To facilitate the process of recognizing information inconsistencies, information in the different systems is stored as objects and the objects or information in the objects specified using the different systems can be compared to identify inconsistencies. For instance, in the case of a mechanical specifying system and a control specifying system, the mechanical system may include a library of mechanical device objects that can be used to define a manufacturing cell and the control system may include a separate set of add on instructions (AOI) for each of the device objects that specifies actions that each device can perform along with code or information useable to generate code for controlling the associated device. Here, where an AOI is used to specify logic and there is no associated device in a specified cell or where an AOI action is specified and associated code is provided where the action is not specified for a corresponding cell, an inconsistency can readily be identified and communicated to a mechanical engineer so that the inconsistency can be eliminated.
Consistent with the above, at least some embodiments of the invention include a method for synchronizing an automation cell definition and a control logic definition during design of an industrial automation system. The method comprises the steps of: adding a description of a subassembly to the automation cell definition, the automation cell definition being stored in a first database; the subassembly being a component used in the industrial automation system; adding a description of an object to the control logic definition, the control logic definition being stored in a second database, the object providing logic to control the subassembly; comparing the automation cell definition and the control logic definition, the comparing identifying any inconsistencies between the automation cell definition and the control logic definition; presenting the any inconsistencies to a user; accepting instructions from the user that indicate which of the any inconsistencies are to be eliminated; and eliminating the indicated inconsistencies by modifying one of the description of the subassembly and the description of the object to synchronize the automation cell definition and the control logic definition.
At least some embodiments of the invention include an apparatus for synchronizing an automation cell definition and a control logic definition during design of an industrial automation system. The apparatus comprises at least one processor programmed to perform the steps of: receiving a description of a subassembly from a user, and adding the description of the subassembly to the automation cell definition, the subassembly being a component used in the industrial automation system; receiving a description of an object from the user or a new user, and adding the description of the object to the control logic definition, the object providing logic to control the subassembly; comparing the automation cell definition and the control logic definition, the comparing identifying any inconsistencies between the automation cell definition and the control logic definition; presenting the any inconsistencies to the user; receiving instructions from the user that indicate which of the any inconsistencies are to be eliminated; and eliminating the indicated inconsistencies by modifying one of the description of the subassembly and the description of the object to synchronize the automation cell definition and the control logic definition.
At least some embodiments of the invention include a system for synchronizing an automation cell definition and a control logic definition during design of an industrial automation system. The system comprises a first database to store the automation cell definition; a second database to store the control logic definition; a first processor running a computer aided design (CAD) software program usable by a first user to specify a description of a subassembly and add the description of the subassembly to the automation cell definition in the first database, the subassembly being a component used in the industrial automation system; a second processor running a control logic software program usable by a second user to specify a description of an object and to add the description of the object to the control logic definition in the second database, the object providing logic to control the subassembly with at least one of a programmable logic controller and a programmable automation controller; one of the first processor and the second processor being programmed to compare the automation cell definition and the control logic definition to identify any inconsistencies between the automation cell definition and the control logic definition; one of the first processor and the second processor being programmed to generate an actionable list of the any inconsistencies for a user; one of the first processor and the second processor usable by either of the first user and the second user to specify an actionable instruction, the actionable instruction to indicate which of the any inconsistencies are to be eliminated; one of the first processor and the second processor being programmed to eliminate the indicated inconsistencies by modifying one of the description of the subassembly and the description of the object to synchronize the automation cell definition and the control logic definition; and one of the first processor and the second processor being programmed to provide a notice that the indicated inconsistencies have been eliminated.
At least some embodiments of the invention include a method for synchronizing activities during design of an industrial automated system wherein the automated system includes a plurality of different features and the design of the automated system requires at least first and second different information types, the method comprising the steps of using a first software program to specify a first type system definition including a set of first information type instances corresponding to the automated system, after the first type system definition has been specified, using a second software program to specify a second type system definition including a set of second information type instances corresponding to the automated system, after the second type system definition has been specified, comparing the first and second system definitions to identify system features supported by only one of the first and second type system definitions and where only one of the first and second type system definitions supports a system feature, the second software program providing notice to the first software program indicating that the first and second type system definitions are imperfectly correlated.
In at least some embodiments the first and second information types each includes a different one of mechanical and control logic information types. In at least some embodiments the first and second information types each includes a different one of enterprise resource planning, mechanical, control logic and electrical layout information types.
Some cases further include the steps of, prior to the step of using the first software program to specify a first type system definition providing a first information type library including first type information instances for each of the different feature types that may be included in the automated system and providing a second information type library including second type information instances for each of the first type information instances, the step of using the first software program to specify a first type system definition including using the first software program to select first type information instances from the first type information library to provide the first type system definition for the automated system and the step of using a second software program to specify a second type system definition including using the second software program to select second type information instances from the second type information library to provide a second type system definition for the automated system.
In at least some embodiments the first type information library includes a device library including device instances corresponding to devices that may be used during an automated system design process and actions that each device may perform and the second type information library includes an add on instruction (AOI) library including an AOI for each of the devices in the device library wherein each AOI includes logic for controlling an associated device during each of the actions that the device may perform. In at least some embodiments each device instance includes a device software object and each AOI includes an AOI software object. Some cases further include the steps of, after the second type system definition has been specified, using the first software program to alter the first type system definition so that the first and second type system definitions are perfectly correlated.
Some cases further include the steps of, after the second type system definition has been specified, using the first software program to alter the first type system definition by adding an additional instance of the first information type that is unsupported by the second type system definition, the first software program providing notice to the second software program indicating that the additional instance of the first information type has been added to the first type system definition. Some cases further include the steps of, after the second type system definition has been specified, using the first software program to alter the first type system definition by deleting at least one of the specified first information type instances from the first type system definition, the first software program providing notice to the second software program indicating that the at least one of the first information type instance has been removed from the first type system definition.
In at least some embodiments the notice indicates the system feature that is only supported by one of the first and second type system definitions, when the notice is received, the method further including the step of, when only the first system definition supports the system feature, running the first program to identify the first information type instance in the first type system definition that supports the system feature and, when only the second system definition supports the system feature, running the first program to identify a first information type instance that supports the system feature.
Some cases further include the step of, when the first program identifies the first information type instance in the first type system definition that supports the system feature, running the first program to delete the first information type instance from the first type system definition. Some cases further include the step of, when the first program identifies the first information type instance that supports the system feature, running the first program to add the first information type instance to the first type system definition.
Some cases further include the steps of, when only the first system definition supports the system feature, presenting the identified first information type instance in the first type system definition that supports the system feature and, when only the second system definition supports the system feature, presenting the identified first information type instance that supports the system feature. In at least some embodiments the notice is provided via an extensible markup language.
A method for synchronizing activities during design of an industrial automated system wherein the automated system includes a plurality of different features and the design of the automated system requires a plurality of different information types, the method comprising the steps of (i) using different software programs to specify a plurality of different type system definitions for the automated system, each program used to specify a different one of the system definitions, each type system definition including a set of different information type instances corresponding to the automated system, (ii) comparing the different type system definitions to identify system features supported by less than all of the different type system definitions, (iii) where less than all of the different type system definitions supports a system feature and a subset of the software programs were used to specify the different type system definitions that do support the system feature, automatically providing notice to the software programs other than the subset of the software programs used to specify the different type system definitions that do support the system feature indicating that the different type system definitions are imperfectly correlated.
In at least some embodiments the step of comparing includes comparing to identify system features supported by only one of the different type system definitions. In at least some embodiments at least a subset of the plurality of information types each includes a different one of mechanical and control logic information types. In at least some embodiments at least a subset of the plurality of information types each includes a different one of enterprise resource planning, mechanical, control logic and electrical layout information types.
Some cases further include the steps of using any of the software programs to make changes to associated system definitions and repeating steps (ii) and (iii) to identify system features that are not completely supported and provide notice of imperfectly correlated system definitions to software programs. In at least some embodiments each information type instance is a software object and wherein each information type includes objects of a type that are different than objects of the other information types.
A method for synchronizing activities during design of an industrial automated system, the method comprising the steps of providing a device library including instances of devices that may be used during the design process and actions that each device may perform, creating an add on instruction (AOI) library including an AOI for each of the devices in the device library wherein each AOI includes logic for controlling an associated device during each of the actions that the device may perform, using a first software program to specify a cell definition for the automated system, the cell definition including a set of devices and at least one action for each instance of a devices in the set, after the cell definition is specified, using the second software program to select AOIs from the AOI library to provide a logic specification for controlling the automated system, after the logic specification has been specified, where at least one of (i) at least one AOI in the logic specification specifies logic for a device other than the devices in the cell definition and (ii) at least one of the devices in the cell definition specifies a device that is unsupported by the logic specification, the second software program providing notice to the first software program that the cell definition imperfectly correlates with the logic specification.
In at least some embodiments the step of providing notice includes, where at least one AOI in the logic specification specifies logic for a device other than the devices in the cell definition, indicating that at least one AOI in the logic specification that specifies logic for a device other than the devices in the cell definition and, where at least one of the devices in the cell definition specifies a device that is unsupported by the logic specification, indicating that at least one of the devices in the cell definition that specifies a device that is unsupported by the logic specification.
Some cases further include the step of, where at least one of the devices in the cell definition specifies a device that is unsupported by the logic specification, running the first program to delete the one of the devices from the cell definition. Some cases further include the step of, where at least one AOI in the logic specification specifies logic for a device other than the devices in the cell definition, running the first program to identify a device associated with the at least one AOI in the logic specification. Some cases further include indicating the identified device to a first program user.
Some embodiments include an apparatus for synchronizing activities during design of an industrial automated system wherein the automated system includes a plurality of different features and the design of the automated system requires at least first and second different information types, the apparatus comprising at least one processor programmed to perform the steps of receiving information from a user specifying a first type system definition including a set of first information type instances corresponding to the automated system, after the first type system definition has been specified, receiving information from a user specifying a second type system definition including a set of second information type instances corresponding to the automated system, after the second type system definition has been specified, comparing the first and second system definitions to identify system features supported by only one of the first and second type system definitions and where only one of the first and second type system definitions supports a system feature, providing notice to the user that specified the first type system definition indicating that the first and second type system definitions are imperfectly correlated.
Other embodiments include a design system for synchronizing activities during design of an industrial automated system, the design system comprising a first database storing a device library including instances of devices that may be used during the design process and actions that each device may perform a second database storing an add on instruction (AOI) library including an AOI for each of the devices in the device library wherein each AOI includes logic for controlling an associated device during each of the actions that the device may perform, a first processor running a first software program usable by a first user to specify a cell definition for the automated system, the cell definition including a set of devices and at least one action for each instance of a devices in the set, after the cell definition is specified, a second processor running a second software program usable by a second user to select AOIs from the AOI library to provide a logic specification for controlling the automated system, after the logic specification has been specified, the second processor further programmed to perform the steps of comparing the logic specification to the cell definition and, where at least one of (i) at least one AOI in the logic specification specifies logic for a device other than the devices in the cell definition and (ii) at least one of the devices in the cell definition specifies a device that is unsupported by the logic specification, providing notice to the first software program that the cell definition imperfectly correlates with the logic specification.
To the accomplishment of the foregoing and related ends, the invention, then, comprises the features hereinafter fully described. The following description and the annexed drawings set forth in detail certain illustrative aspects of the invention. However, these aspects are indicative of but a few of the various ways in which the principles of the invention can be employed. Other aspects, advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
Referring now to the drawings wherein like reference numerals correspond to similar elements throughout several views and, more specifically, referring to
Referring still to
Referring still to
Hereafter it should be appreciated that exemplary data construct SD1 and other data constructs explained hereafter (e.g., the underlying cell definition 26, the AOI data constructs 82 in
Referring still to
Referring still to
Referring yet again to
Referring again to
Referring now to
Referring once again to
Referring to
Address column 177 lists a logical network/communication address for each device instance specified by columns 170 and 172. For instance, address Add1 in column 177 may include a Media Access Control (MAC) address for the first instance 11 of device type SD1 in the cell. Other network address types are contemplated. The logical addresses are assigned, at least provisionally, by server 20 or some other clearinghouse server (not illustrated) that is attached to network 16 during the cell specifying process.
Referring still to
Referring still to
Referring once again to
Control code database 42 includes control design software programs 44, an add on instructions (AOIs) library 46 and a control specification sub-database 48. In at least some embodiments, database 42 also includes a copy 36′ of the underlying cell definitions stored in the mechanical database 22. Design software 44 includes software run by server 40 that enables a workstation user to generate control code for a manufacturing cell. In addition, software 44 includes code used to perform the processes that are consistent with the present invention and that are described below.
Referring still to
Referring still to
Referring still to
Referring yet again to
Referring yet again to
Referring now to
Referring once again to
Referring once again to
Referring still to
Referring now to
Referring once again to
After an underlying cell definition has been completely specified and transferred to server 40 for use by a control engineer, the control engineer may either inadvertently or purposefully specify a control definition 54 that is not completely consistent with the cell definition 36. For example, the control engineer may fail to specify an AOI instance and corresponding process for one of the device instances and corresponding processes in cell definition 36. As another example, a control engineer may specify one or more AOI instances or instance and process combinations that do not correspond to device instances or device instance and process combinations in the cell definition 36.
Where cell and control definitions are inconsistent, in the past, it was necessary for a control engineer to recognize the inconsistencies and provide a manual notice to the mechanical engineer indicating that the mechanical engineer should modify the cell definition accordingly. Clearly this manual notice process is fraught with problems.
According to at least one aspect of the present invention, after cell and control definitions have been completed, server 40 may be programmed to, either automatically or upon command from the control engineer, compare the two definitions and identify inconsistencies. Where inconsistencies occur, in at least some embodiments, those inconsistencies may be brought to the attention to the control engineer so that, if the control engineer desires, the control engineer can correct the inconsistencies using the control workstation 38. In other cases where the control engineer intended for the inconsistencies to occur, those inconsistencies could be electronically transmitted to the mechanical engineer and notice could be given via workstation 18 thereby prompting the mechanical engineer to either eliminate the inconsistencies or follow up with the control engineer. In other embodiments where inconsistencies occur between the control and cell definitions, those inconsistencies can automatically be communicated to the mechanical engineer for subsequent analysis and consideration.
Referring now to
Continuing, at block 108, a mechanical engineer uses workstation 18 to define a project cell including devices, actions, process characteristics and sequences of the device actions. At block 110, an underlying cell definition 36 (see also
At block 114, a control engineer uses workstation 38 to select add-on instructions that support the imported cell definition. Here, selection includes selecting AOIs for each device in the cell, selecting specific processes to be performed by each AOI, specifying process characteristics and sequencing the processes. At block 116, the control and cell definitions are compared. Where there is no inconsistency between the control and cell definitions, control passes back up to block 114. Where at least one inconsistency exists between the control and cell definitions at block 116, control passes to block 120 where notice of the inconsistency is presented to the mechanical engineer at workstation 18. Here, in at least some embodiments, the inconsistencies may be transmitted as XML packets and server 20 may unpack the packets and use the received information to formulate final notices. At block 124 the mechanical engineer uses workstation 18 to eliminate the inconsistency.
Referring now to
Referring once again to
Where a cell definition change has occurred at block 130, control passes to block 132 where server 20 exports the cell definition modification to server 40. Continuing, at block 136, server 40 compares the modified cell definition with the corresponding control definition and identifies any inconsistencies. Where there are no inconsistencies, control passes back up to blocks 114 and 126 where the process continues. Where an inconsistency exists, control passes to block 134.
Referring still to
In at least some embodiments it is contemplated that, after a first engineer performs some activity that results in one or more inconsistencies between the cell and control definitions, when a second engineer eliminates the inconsistencies, a notice may be provided to the first engineer confirming that the control and cell definitions have been synchronized and are consistent. To this end, referring to
Referring also to
Similarly,
While the system 10 described above and illustrated in
Consistent with the above, referring now to
Referring still to
Referring yet again to
In at least some embodiments it is contemplated that, in addition to identifying inconsistencies between underlying definitions, a system may be programmed to identify ways to eliminate those inconsistencies and to either to automatically adopt definition changes that eliminate the inconsistencies or provide suggest best practice options to systems users for eliminating those inconsistencies. Thus, for example, where a control engineer recognizes that an emergency stop has to be added to a cell for locally controlling a clamp device that already exists in the cell and where the cell does not initially include a local control panel for the clamp, when the control engineer uses the AOI library and workstation 38 (see again
In most cases, while likely or best practice suggestions may be helpful to the control and mechanical engineers, the engineers typically will prefer that cells and control specifications not update automatically. This is because the overall design process is typically a give and take process between all engineers involved and there will inevitably be instances where one engineer may instantiate an AOI or device not knowing that the selection cannot or should not be employed for some reason.
Referring now to
One or more specific embodiments of the present invention have been described above. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
Thus, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the following appended claims. For example, while the system 10 is described above (see
In addition, while the system described above includes control specifying server 40 that operates as a clearing house type server for identifying definition inconsistencies, in other embodiments that process may be distributed among various system servers. For instance, in the
To apprise the public of the scope of this invention, the following claims are made:
This application is a continuation of pending U.S. patent application Ser. No. 12/020,254, filed Jan. 25, 2008, and entitled “Product Lifecycle Management Method and Apparatus,” which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 12020254 | Jan 2008 | US |
Child | 13870373 | US |