Abstract:
A method for programming a programmable logic controller for controlling at least one energy consumer of a machine, includes providing at least one energy consumer functional module and at least one energy control functional module in a programming device for selection by a programmer in order to program an energy management program configured to provide at least one energy management functionality for the machine. The at least one energy consumer functional module containing data specific to the at least one energy consumer. The at least one energy control functional module containing data specific to the at least one energy management functionality.

Description:
[0001]    This application claims priority under 35 U.S.C. §119 to patent application no. DE 10 2013 002 085.9, filed on Feb. 6, 2013 in Germany, the disclosure of which is incorporated herein by reference in its entirety. 
       BACKGROUND 
       [0002]    The present disclosure relates to a method for programming a programmable logic controller for controlling at least one energy consumer of a machine. 
         [0003]    The disclosure deals with the simplified implementation of energy management in machines with programmable logic controllers (PLC), in particular with possibilities for the simpler programming of a PLC. 
         [0004]    In systems which are intended to be optimized with respect to the energy consumption using energy management, there is at least one energy consumer which consumes a different amount of energy in different energy modes, the energy modes being able to be specified. Examples of these are blowers whose speed can be controlled and which are switched off in operating pauses, servo drives whose power supply is switched off during standstill, or heating systems which are operated with a lower desired temperature value in operating pauses. Energy modes are characterized by many characteristic numbers. These are, for example, energy consumption in the respective mode, time needed to change between the modes, energy consumption during the transition operation, minimum/maximum residence times. In addition, there are so-called energy profiles in communication systems, that is to say agreements relating to specified data and their formats. Examples which may be mentioned here are “sercos Energy” or “PROFIEnergy”. 
         [0005]    Inside the controllers which manage energy, these states are handled in the energy management entity (program part). For this purpose, there are two fundamental energy management functionalities, energy monitoring (energy consumption determination) and energy mode specification. These functionalities can be modeled, for example, in PLCs using functional modules which are processed in the context of the PLC (PLC program). Functional modules usually each contain one or more technologically or functionally associated program instructions. A complete PLC program is generally composed of a plurality of functional modules, in which case the individual modules can be input in different languages based on the PLC application. Functional modules can be supplied with different data with each call (so-called entities) using associated entity data modules. 
         [0006]    The entire energy management can be implemented as a program or functional module in conjunction with a declared data structure containing all required energy management data. In this case, the data may be declared in a global list of variables, that is to say they are visible to and can be changed for all PLC program parts. 
         [0007]    A suitable data structure may comprise configuration data for the machine (for example list of all energy modes of the machine), configuration data for the energy consumers (so-called devices) (for example list of all energy modes of the devices with their energy consumptions and transition times), HMI data (for example actual energy consumption of the devices), energy management control data (for example desired energy mode, pause time), energy management status data (for example actual energy mode of the machine or of all devices). 
         [0008]    The interface to the (higher-level) application program or logic of the energy mode management etc. may be handled using the data structure in this case. The interface to the (lower-level) devices with respect to the control status of the device states can likewise be handled using the data structure (for example using a device application program). The interface to the HMI can also be handled using the data structure. 
         [0009]    In this case, the data structure may comprise all data for all energy modes or devices such that the data structure comprises the entire volume of data for maximum expansion from the start, that is to say the storage requirement is tied to the maximum expansion defined. 
         [0010]    The disadvantage of such a solution is, in particular, a lack of scalability. In most cases, the data structure is also much too large since the machine being operated usually has not been expanded to the maximum extent. It is particularly disadvantageous that there is a huge and vast pool of variables in which the programmer easily loses track and is undecided as regards which variables he can write or read and which variables are used only internally. The implementation of additional functionalities is very complicated. 
         [0011]    It is therefore desirable to simplify the programming of the energy management of a machine. 
       SUMMARY 
       [0012]    The disclosure proposes a method for programming a programmable logic controller for controlling at least one energy consumer of a machine having the features described herein. The subclaims and the following description relate to advantageous refinements. 
         [0013]    The disclosure proposes the practice of implementing an energy management program for providing at least one energy management functionality by means of a plurality of different functional modules. At least one energy consumer functional module (so-called device functional module) and one energy control functional module are provided and can be used by a programmer when programming the energy management program. In this case, data which are specific to the energy consumer and are implemented in the device functional modules and data which are specific to the energy functionality (that is to say are independent of the energy consumer) and are implemented in the energy control functional modules are separated. This significantly simplifies programming and makes finished programs, in particular, clearer and easier to understand. 
         [0014]    The disclosure facilitates the programming of the energy management of a machine with at least one PLC since the program can be composed from predefined functional modules by the programmer to form a functional module structure. The program can be scaled in any desired manner by adding and interconnecting functional modules. The structure of the energy management is flexible as a result of expandable hierarchical or structuring levels. 
         [0015]    Provision is made for a device functional module to be set up, in terms of programming, to control one or more energy consumers, that is to say to trigger the output of corresponding control commands or control signals by the PLC. An energy consumer can preferably be controlled in two ways. According to a first variant, the device functional module internally already comprises the direct control of the energy consumer. This solution is very convenient, but the functionality of the energy consumer must be known in detail to the device functional module for this purpose. This is enabled, for example, using so-called energy profiles in field bus systems (for example sercos Energy, PROFIenergy or CIPenergy) in which the energy consumers have standardized energy modes. It is likewise advantageous if the device functional module can retrieve all information (data, parameters etc.) needed for control from the energy consumer. For this purpose, the latter is provided, in particular, with a storage device which stores the data. 
         [0016]    If this possibility of the generic handling of energy consumers is not possible, a second variant is advantageous in which the device functional module has interfaces containing data which must be controlled by the programmer. In this case, the connection between the energy consumer and the device functional module needs to be fully programmed by the programmer. 
         [0017]    A device functional module is preferably set up, in terms of programming, to receive or read an item of status information (for example feedback with regard to the energy mode of the energy consumer) from a controlled energy consumer and to provide this status information (or an item of status information generated therefrom) in a readable manner or to transmit it further, with the result that it can be processed further as part of energy management. 
         [0018]    Provision is also made for the energy control functional modules to be set up, in terms of programming, to control energy management. The practice of controlling energy management preferably involves coordinating or controlling the device functional modules, in particular with respect to the physical process, on the output side. This preferably involves determining and specifying the respective (individual) energy modes, which are intended to be assumed by the energy consumers, for the associated device functional modules. 
         [0019]    An energy control functional module preferably has at least one interface which is used to receive commands on the input side, in particular for specifying an energy mode of the machine or of one or more energy consumers. 
         [0020]    Corresponding interfaces (in particular methods) are preferably predefined for interchanging data between the functional modules. This is explained in detail at the end of the description of the figures. 
         [0021]    Command functional modules are preferably additionally provided and are set up, in terms of programming, to output operating commands to the energy control functional modules and/or device functional modules. For example, such operating commands comprise the general specification of energy modes (for example, type, times such as duration, start, end, etc.). 
         [0022]    Furthermore, such operating commands also preferably comprise the specification of boundary conditions for interruptions (for example length of the pause, minimum pause duration, reliable reactivation times etc.) instead of a specific energy mode. With regard to further details, reference is made to the post-published DE 10 2012 025 194.7, the disclosure of which is included here. These operating commands are particularly advantageous for unplanned pauses. The energy control functional modules are preferably set up, in terms of programming, to receive these operating commands, to use them to generate operating commands for the energy consumers and to transmit said commands to the device functional modules which finally accordingly control the energy consumers. For example, the operating commands for the energy consumers are generated in such a manner that the latter are changed to an energy mode which meets the boundary conditions. 
         [0023]    Input/output functional modules (HMI functional modules) are preferably additionally provided and contain the man-machine interface for controlling and operating the machine. Said functional modules are expediently set up, in terms of programming, to collect and group data relevant to energy management for visualization purposes and/or to receive user inputs and to forward them to the command functional modules, for example. Data, for example current energy mode of the overall machine, energy modes of the individual consumers, current transition state (“target energy mode reached” or else “in the transition state”), current target energy mode, active (remaining) pause time and error states or information, are typically provided for input/output purposes. 
         [0024]    The implementation of the disclosure in the form of software is particularly advantageous since this enables particularly low costs, in particular if an executing computation unit is also used for other tasks and is therefore present anyway. Suitable data storage media for providing the computer program are, in particular, floppy disks, hard disks, flash memories, EEPROMs, CD-ROMS, DVDs and many more. It is also possible to download a program using computer networks (Internet, intranet etc.). PLCs are usually programmed using corresponding software on a programming device (for example an application under Microsoft Windows or Linux on a PC, or a tailored programming system). A computation unit according to the disclosure, for example a programming device for a PLC, is set up, in particular in terms of programming, to carry out a method according to the disclosure. 
         [0025]    Further advantages and refinements of the disclosure emerge from the description and the accompanying drawing. 
         [0026]    It goes without saying that the features mentioned above and the features yet to be explained below can be used not only in the respectively stated combination but also in other combinations or alone without departing from the scope of the present disclosure. 
         [0027]    The disclosure is schematically illustrated in the drawing using exemplary embodiments and is described in detail below with reference to the drawing. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0028]      FIG. 1  shows a preferred embodiment of a PLC programming device according to the disclosure in a roughly schematic manner. 
           [0029]      FIG. 2  shows a program scheme of an energy management program which is composed of a plurality of different functional modules. 
           [0030]      FIG. 3  shows a simple program scheme of an energy management program which is composed of three different functional modules. 
           [0031]      FIG. 4  shows an extended program scheme of an energy management program which has, inter alia, two energy control functional modules. 
       
    
    
     DETAILED DESCRIPTION 
       [0032]      FIG. 1  illustrates a preferred embodiment of a PLC programming device  10  in a roughly schematic manner, which device is set up, in terms of programming, to carry out a method according to the disclosure. The PLC programming device  10  may be, for example, a conventional computer on which PLC programming software is executed and which provides a programming environment  20 . 
         [0033]    The figure shows the operation of programming a PLC  40  by a programmer using the PLC programming device  10 . 
         [0034]    The PLC programming device  10  is connected to the PLC  40  to be programmed via a corresponding connection  30 , for example an Ethernet connection or a serial connection. The PLC  40  at least has a storage device  41  for accommodating the PLC application program produced and a CPU  42  for executing the stored PLC application program. The PLC  40  is also connected to sensors  43  and actuators  44 , for example by means of a field bus connection, in particular an Ethernet field bus connection, for example SERCOS III, in order to control a machine (not shown) according to the PLC application program. A sensor is, for example, a temperature, pressure, speed, position sensor etc., but also a switch, rotary knob etc., and is provided for the purpose of recording input variables (for example temperature, pressure, speed, position, position of a switch or a rotary knob). Output variables (for example temperature, pressure, speed, current intensity, voltage, injection quantity, position etc.) are calculated from the input variables by the PLC application program and are set using the actuators (for example electronic switch, relay, valve etc.). The sensors and actuators are usually part of the machine. The actuators are used, in particular, to control energy consumers. 
         [0035]    The programming environment  20  is a programming solution which provides the programmer with a user interface for creating the application program, here with an energy management functionality, in particular. In this case, the programmer defines the application program, for example, by adding program code, functional modules, documentation data and configuration data. The program is displayed on a screen  11  of the programming device  10 . Preferred embodiments of energy management programs are illustrated in  FIGS. 2 to 4 . 
         [0036]      FIG. 2  schematically shows an excerpt  100  of an energy management program for managing the energy of a machine comprising a plurality of energy consumers, as can be represented, in particular, in a programming environment for a PLC. A number of command functional modules designated “C”, an energy control functional module designated “EC”, a number of device functional modules designated “D” and an HMI functional module designated “HMI” are illustrated. The functional modules are linked to other parts of the PLC program which are designated “PRG”. 
         [0037]    The central part of the energy management is the energy control functional module EC which is set up, in terms of programming, to control the entire sequences of the energy management specification. On the lower level are the device functional modules which are the interface to the energy consumers. The energy consumers are controlled and managed by the energy control functional module, that is to say the energy control functional module gives the desired energy mode to a device functional module, for example, which then implements this mode for the devices associated with it. 
         [0038]    The command functional modules, on the one hand, may give specifications for the entire machine at the level of the energy control functional module or optionally may also give direct specifications for the energy mode of a device functional module at the device level. 
         [0039]    The HMI functional module is set up, in terms of programming, to output visualizations designated “VIS”, for example on a screen for a user. The HMI functional module is used to collect data for (different) HMI purposes and to provide said data in a grouped manner. In this case, the required data are contained inside the declared data in the respective functional modules in the case of the object-oriented programming concept (every functional module entity brings its own data along in this case). Just like a control system functional module (not illustrated in  FIG. 2 ), a HMI functional module is therefore used to present these distributed data for the machine operator. This is particularly advantageous in the case of an object-oriented programming concept since these data which are contained inside the respective functional modules are not intended to be able to be accessed from the outside in this case. In this case, the data are preferably provided only using so-called methods (encapsulation of the data). A separate HMI functional module is expediently used for each group of data. For example, the energy control functional module is set up, in terms of programming, to output data to the HMI functional module, which data are generated by the energy control functional module, for example, from status messages received by the energy control functional module from the device functional modules. 
         [0040]    The disclosure results in a flexible program architecture which can be scaled in any desired manner since as many functional modules as required can be respectively used, in particular. In particular, one or more device functional modules, one or more command functional modules, none, one or more HMI functional modules and one or more (cf.  FIG. 4 ) energy control functional modules can therefore be used and interconnected. At the same time, it is possible to implement a hierarchy by arranging the functional modules on different levels. 
         [0041]    An example of energy management for a machine comprising a consumer is now intended to be explained below with reference to  FIG. 3  which shows a simple embodiment  200  of an energy management program having only one command functional module “C”, an energy control functional module “EC” and a device functional module “D”. 
         [0042]    As an example, the command functional module “C” specifies a length of an imminent operating pause (pause time). The energy control functional module “EC” is set up, in terms of programming, to use its internal database to select an appropriate consumer energy mode. In this case, the optimum consumer energy mode in each case is expediently selected using energy-saving attributes (for example minimum pause time, energy consumption of an energy mode, etc.) in order to minimize, for example, the no-load losses in the pause times. The energy control functional module “EC” is set up, in terms of programming, to output the selected consumer energy mode to the device functional module which in turn is set up, in terms of programming, to accordingly control the consumer, with the result that it assumes the desired consumer energy mode. 
         [0043]    According to another example, the command functional module “C” specifies a machine energy mode for the machine. The energy control functional module “EC” is set up, in terms of programming, to use its internal database to select an appropriate consumer energy mode. For example, the database of the energy control functional module already comprises a link between the machine energy mode and the consumer energy mode. The energy control functional module is set up, in terms of programming, to output the selected consumer energy mode to the device functional module which in turn is set up, in terms of programming, to accordingly control the consumer, with the result that it assumes the desired consumer energy mode. 
         [0044]    The connection of the functional modules is used to link the respective functional modules to their cooperating functional modules. As a result, the interchange of data between the cooperating functional modules can also be automated, in particular. In this case, the functional modules can be connected, for example, by virtue of the functional modules being set up, in terms of programming, to inform each other, at the inputs, of which lower-level or higher-level functional modules are present. An alternative type of connection comprises stating the respectively lower-level functional module in the declaration of a superordinate functional module. This makes it possible for the functional modules to report to each other, for example during an initialization phase of the finished PLC program, and as a result to know their respective entities in order to then interchange data therewith. Said embodiments provide the advantage that the programmer need not program any connection in the PLC program code. 
         [0045]    An example of the use of a plurality of energy control functional modules for managing the energy of a machine shall now be explained below with reference to  FIG. 4  which shows an embodiment  300  of an energy management program having a plurality of command functional modules “C”, two energy control functional modules “EC1” and “EC2” and a plurality of device functional modules “D”. The two energy control functional modules “EC1” and “EC2” are hierarchically interconnected, in which case the subordinate energy control functional module “EC2” is set up, in terms of programming, to group a plurality of device functional modules D and to present them to the superordinate energy control functional module “EC1” as a shared resource, such as a single device functional module, that is to say to simulate a device functional module. Further energy control functional modules and/or device functional modules may additionally (not shown) be subordinate to the superordinate energy control functional module “EC1”. The grouping using subordinate energy control functional modules can be used in a particularly advantageous manner to structure machine units, in which case each machine unit comprises a plurality of energy consumers and the superordinate energy control functional module only has a view of machine units. 
         [0046]    According to one preferred refinement of the disclosure, the functional modules are set up, in terms of programming, to know their respective connected (lower-level or higher-level) functional modules. As a result, they can directly interchange data with these functional modules without an additional application program. This spares the programmer from implementing a program code for copying over the data from the respective functional modules themselves between the functional modules. Otherwise, functional module outputs (status messages) from a device functional module would have to be copied over by the programmer to inputs of an energy control functional module, for example. 
         [0047]    In the case of object-oriented programming with the above-described definition of the connection structure in the functional module declaration, the functional modules log onto one another according to the declaration and as a result know the respective corresponding functional modules. This is explained using an example: fmBasicDevice: IL — 4EE_BasicDeviceType01(fmEnergyControl). 
         [0048]    As a result of the declaration, the device functional module “fmBasicDevice” knows which entity of the energy control functional module it is associated with, namely “fmEnergyControl”. 
         [0049]    This provides a unidirectional association. 
         [0050]    The device functional module logs onto the superordinate energy control functional module during its initialization phase, with the result that the lower-level device functional module is therefore in turn known to the energy control functional module. This logging-on is expediently carried out using object-oriented methods. For this purpose, the energy control functional module preferably comprises a method (that is to say a call interface) which is called by the device functional module during the initialization phase. This is particularly advantageous since the methods need not be known to the programmer since they are used only by the functional modules for internal communication. Alternatively or additionally, the data of the cyclical transmission are advantageously also transmitted using methods (in particular methods which are not publicly known). 
         [0051]    Overall, any data interchange within energy management can therefore be carried out in a concealed manner. Only the interfaces to the application program (cf. PRG in  FIG. 2 ) must be known to the programmer since he must control them in his application program. 
         [0052]    Alternatively or additionally, a functional module may have non-documented internal variables, that is to say data which are not applied to the functional module as an input or output. These variables are written and read for communication between functional modules. This is possible, in particular, as a result of the fact that the variable names are known to the other functional modules. In this respect, method calls and data interchange can fundamentally be carried out in an equivalent manner using variables.