Patent Publication Number: US-2006009866-A1

Title: System for the generation of code

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
      This application is the US National Stage of International Application No. PCT/DE2003/003614, filed Oct. 30, 2003 and claims the benefit thereof. The International Application claims the benefits of German application No.  1 0257612.2 filed Dec. 9, 2002, both applications are incorporated by reference herein in their entirety. 
    
    
     FIELD OF THE INVENTION  
      The invention describes a system and a method for generating automation code from descriptions enriched with control-relevant information.  
     SUMMARY OF THE INVENTION  
      In developing an automation system for a manufacturing or processing plant the continuity of the data or information flow is a problem. An automation system is generally described today with the aid of drawings. For this purpose CAD or CAE tools, for example, are used. On the basis of plant layouts described with such systems, information relevant to control and operation, such as material flow information, can be inserted in the drawing already produced. However, this information contained in the layout, i.e. in the graphic description of the plant, is currently not used directly for engineering an automation system. Although as a rule automation code is produced on the basis of the plant layout, continuity of data flow is not ensured.  
      As a rule a developer of an automation code receives a description of the plant layout, for example, in the form of a drawing, and converts this description into automation code on the basis of experience and programming guidelines, and in some cases with the aid of additional documentation. In isolated cases code is already generated from layout, but the methods are based on special reproductions and therefore cannot be implemented in a product to be used as a basic tool.  
      The interconnection of automation-relevant elements is currently effected via special connection points, a specific data transfer semantics being used for implementing the automation. However, a large number of further variants are relevant to the elaboration or reproduction of a directed relationship between the elements.  
      It is the object of the invention to specify a system and a method by means of which simpler generation of automation code is made possible.  
      This object is achieved by a system for generating automation code from descriptions enriched with control-relevant information, comprising components described in the descriptions, the components having ports and being represented by at least one functional module in each case, having input/output information on the ports reproduced from directed relationships between the components contained in the descriptions, having signals associated with the functional modules, the signals being provided for transmission via the ports of the components, and having means for defining metainformation for the signals and a code generator for producing automation code through interconnection of the signals.  
      In addition, the object is achieved by a method for generating automation code from descriptions enriched with control-relevant information, whereby components described in the descriptions are represented by at least one functional module in each case, and via ports input/output information on the ports is reproduced from directed relationships between the components contained in the descriptions, signals associated with the functional modules are transmitted via ports of the components, metainformation for the signals is defined and automation code is generated through interconnection of the signals.  
      The invention is based on recognition of the fact that the existing control-relevant information present in descriptions of a manufacturing or processing plant can be used advantageously for generating automation code. In this connection it is important to ensure a continuous data information flow from the compiling of a description to the generation of the corresponding automation code. In this way information is always available and cannot be lost in the course of producing an automation system.  
      In the system according to the invention data continuity is achieved in that control-relevant information is already contained in a description. The description, for example, of a plant, is produced with the aid of components representing the elements of which the plant consists. Within the system the components are represented in each case by so-called functional modules. These functional modules are objects of a particular type having characteristics and functions. These objects are reusable within the system. The components have connection points, called ports, via which data transfer is implemented in the finished automation system. In the system according to the invention information on the predecessor-successor relationships of the components in the plant is allocated to these ports. Signals are transmitted between the components via the ports. So-called metainformation is assigned to the signals, or the information is defined for the signals. The interconnection of the signals is executed on the basis of rules. With the aid of the metainformation a large number of variants for possible automation systems can be described, which variants can finally be used on the basis of the layout and in conjunction with the directed relationships between the components to generate automation code.  
      The metainformation specifies the possible relationships which can be established between components of the automation system. A more clearly focused specification can therefore be achieved on the basis of the metainformation, and the description of defined relationships between the components concerned can lead to automatic generation of code.  
      A further advantageous embodiment of the invention is characterized in that the system for generating automation code for manufacturing and/or processing plants is provided. It is especially advantageous that the complex production of automation code, which becomes correspondingly more difficult and error-prone as an automation system becomes larger, can be used in particular for the safety-relevant area of plant automation. Especially complex automation systems are generated precisely in the context of the automation of manufacturing and/or processing plants. In this respect it is a major advantage if a continuous information flow is ensured and if the automation system is generated for the most part automatically.  
      A further advantageous embodiment of the invention is characterized in that a drawing with control-relevant information is provided for use as description. In this case it is especially advantageous that, as a rule, the first step of an automation system is conceived in the form of a drawing. Graphic descriptions, as are present, for example, in a CAD system, can therefore be used with the inventive system for generating automation code.  
      A further advantageous embodiment of the invention is characterized in that fourth means are provided for inputting control-relevant information to be used as description. A description need not necessarily be present in the form of a drawing for the automation system. Rather, it may be present, for example, in tabular form or in any other form. What is decisive for the usability of a description is that the control-relevant information is entered in the description. If this is the case any description can be used as the basis for the system according to the invention.  
      A further advantageous embodiment of the invention is characterized in that a flow of material and/or energy and/or information in a manufacturing and/or processing plant is provided as the basis for reproducing the directed relationships between the components. The use of a material flow for describing the relationships of automation-relevant elements of a plant is especially advantageous since the overall concept for the creation of the plant is generally produced on the basis of the material flow in any case. The way in which materials are moved or passed through the plant is always immediately clear to an automation engineer. If the solution is developed on the basis of the material flow, therefore, the directed relationship between the elements involved can be established in a simple way. There is no need for further levels of abstraction, which could give rise to errors since the relationship between the elements involved is not immediately clear. Use of the material flow directly facilitates the work of an automation system developer because the-directed relationships can be defined intuitively.  
      In addition to the material flow, there are further “flows”, such as energy and information, in a plant to be designed. These, too, can be used as a basis for reproducing the directed relationships because they, too, are directed. In the planning of a plant these or any other “flows” are defined in the same way as a material flow. The components are incorporated in these flows, and interconnections as a basis for code generation between the components can be derived therefrom.  
      A further advantageous embodiment of the invention is characterized in that the generation of automation code for central and/or distributed automation systems is provided. In this respect it is advantageous that the code generated with the aid of the system and the method does not have to run on one controller but that the solution generated, i.e. the automation code, can be implemented on a plurality of controllers. The component-oriented code generation on the basis of the interconnection of the signals with the metainformation also makes possible a simple distribution of code components to a plurality of controllers, since the data flow at the ports is ensured by the metainformation in any case. The development of transfer protocols for communication is superfluous. In this way, decentralization of the automation systems developed is possible in a simple manner. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
      The invention is described and elucidated in more detail below with reference to the Figures, in which:  
       FIG. 1  is a schematic representation of a system for generating automation code,  
       FIG. 2  is an exemplary representation of the structure of controllers in a distributed automation system, and  
       FIG. 3  is an exemplary representation of the automatic networking of components in a distributed automation system. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
      The system represented as an example in  FIG. 1  generates code, in particular automation code, from descriptions  1 . In the descriptions a complex structure, for example a plant, consists of individual components  2 . The components  2  are represented by functional modules  3  and have ports  6 . Signals  4  are sent via the ports  6 . Metainformation is defined for the signals  4  with the aid of definition means  5 . On the basis of the interconnection of the signals  4  code, in particular automation code, is generated by a code of generator  7 .  
      Within the system according to the invention continuity of data flow is achieved in the engineering of an automation system. The automation-relevant information contained in a description, for example, a CAD drawing, is automatically used for the generation of automation code. The parts of a plant to be automated are contained in the description  1  as components  2  and possess automation-relevant information that is stored in the layout. The components  2  are represented by functional modules  3 . As a rule one component  2  is represented by one functional module. In addition the components  2  include ports  6 , i.e. inputs and outputs for data or signals. In the plant, communication between the components takes place via these ports  6 . The information already contained in the description  1  is used to allocate input and output information to the ports. The predecessor-successor relationships between the components are governed by this information, i.e. who sends data to whom via which data input is defined thereby. The data is represented in the system by the signals  4 . Via the input means  5  metainformation can be defined for these signals  4 , which are transmitted via the ports  6  and are allocated to the respective functional modules  3  representing the corresponding components  2 . The metainformation may be configured purely as additional information or as information relevant to the generation of code.  
      On the basis of the metainformation, the components  2  are connected to one another by automated means. Particular connections between the components  2  can only be implemented if this is permitted by the constraints described in the metainformation. Automated “wiring” of the components  2 , and therefore automatic generation of automation code, are therefore effected.  
      The work of the development engineer is greatly facilitated thereby, since fewer degrees of freedom exist as a result of the definition of the metainformation, reducing the possibilities of error. In addition, a continuous information flow is ensured, reducing the loss of already established know-how during the development of the automation system.  
      Such descriptions may be, for example:  
      P7TE_OutputPS indicates that the parameter (valid only as an output value) must be connected to the input of a predecessor (a predecessor component) which has UDA P7TE_IPS with a value “S”.  
      On the basis of such stored rules the code is generated by means of an algorithm using a predecessor/successor principle, in particular when generating code for a central automation system.  
      The algorithm for connecting components on the basis of the predecessor/successor relationship may be, for example, as follows: 
          For all components (resources), the respective functional module is connected as follows: 
            for all inputs of the functional module     for all predecessors of the respective component 
                Search for the outputs of the functional module of the predecessor which have a P7TE_OPS with a value “S”.     Search for the inputs of the functional module of the current component which have a P7TE_IPS with a value “P”.     Connect them if P7TE-NO matches (or does not exist in either, or is occupied or is defined)    
               
               

       FIG. 2  shows the layout-oriented design of a structure of controllers with a communication network  10 . This structure is the basis for the code generation in a distributed automation system. In the illustration an exemplary structure is represented by two zones  13 , each of which must be controlled by a coordinating controller  11 . A plurality of controllers for  12  the respective components  2  are activated by a higher-level, coordinating controller  11  via-the network  10 , for example an Ethernet or PROFInet.  
      The code generator for a distributed system, for example for PROFInet, always starts from a structure in which at least one additional controller  11  is available for coordination. The allocation of the components  2  to this coordinating controller is effected graphically in the layout. In this case a network topology is designed.  
      Separate implementation of components responsible for correct data transmission or coordination between the coordinating controllers  12  is superfluous, since correct communication already exists as a result of the automation code generated automatically on the basis of the layout.  
       FIG. 3  shows the generation of automation code in a distributed automation system. The components  2  of a distributed automation system are connected, for example, according to the following algorithm or the following rules:  
      AutomaticMode/ManualMode  
      For these parameters the coordinating controller  11  has one output per operation area, which is assigned to this control field. The corresponding outputs are connected to the respective inputs.  
      ManualKeyInput/Interlock/ManualInterlock/AutomaticInter Lock  
      For this parameter the coordinating controller  11  has an individual output for each component  2 , which output is connected to the respective input of the component  2 .  
      P7TE_OPS/P7TE_IPS  
      The outputs of the components  2  are in each case connected to the corresponding inputs.  
      To sum up, the invention relates to a system and a method whereby automation code is generated on the basis of existing descriptions  1  of a plant structure. The components  2  of the plant are represented by functional modules  3  and have ports  6  for data transmission. Signals  4 , allocated to the functional modules  3 , are transmitted via the ports. A signal  4  may be allocated to more than one port, for example, because it identifies the currently active port  6 . Metainformation is assigned to the signals  4 . Automation code is automatically generated on the basis of the interconnection of the signals.