The invention relates to a method for checking a control program for controlling an industrial system.
Industrial systems, such as power plants or industrial production systems, have complex process control systems, which control the individual system elements of the industrial system and the interaction thereof during operation of the industrial system. Such a process control system provides an operator or user of the industrial system with a large degree of freedom in terms of configuring and parameterizing the process control system in order to fulfill the project-specific task.
In parallel with these degrees of freedom, the possibility of generating unwanted control sequences as a result of incorrect programming of individual system elements or the interaction thereof increases, thereby challenging the guarantee of a fault-free operation of the industrial system. To find programming faults in a process control system, numerous possible statuses of the industrial system are run through within the scope of system tests or during the commissioning of an industrial system and faults are detected by manual searches and are subsequently eliminated.
It is an object of the invention to specify a method for checking a control program for controlling an industrial system, with which programming faults in the control program can be reliably found.
This object is achieved by a method of the type cited in the introduction, in which in accordance with the invention data relating to the control program is read into a database and, on the basis of the data, a test routine checks the control program for compliance with defined rules and outputs rule infringements. Programming faults can be uncovered, which cannot be easily found by means of system tests, e.g. if they only occur in a very special parameter interaction. The control of the industrial system can be improved and the operation can be implemented more reliably.
An industrial system can be any system in which an industrial process is controlled electronically. The control program may be a process control system for controlling some or all processes of a part of or the entire industrial system. It may include a plurality of subprograms, which can interact with one another. Reading the data of the control program into the database can take place with the aid of a read-in routine of the testing apparatus. The database may be part of a database management system for managing data in one or several databases. The test routine may be a computer program or part of a computer program, in which the defined rules can be stored.
The output of rule infringements can take place in the form of one or several lists, which are expediently visualized, in other words can be output or displayed on a monitor. The check can take place in that the test routine checks the selected control sequences of the control program, with the aid of a checklist, for compliance with the defined rules. Selection of the control sequences can take place by means of an operator, who selects individual control sequences or a category of control sequences for checking purposes. Control sequences may be circuitry between system elements and/or an interaction of system elements. A system element can be a component of the industrial system, such as a sensor, a valve or a motor, or a system element in the form of a software unit, e.g. a module driver, which can be related to a component, in other words hardware, and can also be stored in the component. The checklist can contain individual parameters of the test, for instance level values, sequencers, special circuitry and such-like. The checklists are expediently created according to defined test criteria which can be selected by an operator of the testing apparatus.
To be able to check a series of different control programs of different industrial systems, it is advantageous to implement the method for checking by means of a testing apparatus which is independent of the industrial system. Here the data is advantageously read into the testing apparatus by a control server in the industrial system for instance, said testing apparatus containing the test routine. The testing apparatus can now test the control program or parts thereof with the aid of the test routine and output rule infringements, without being dependent on an operation of the industrial system or influencing an operation of the control server, e.g. the performance thereof.
In an advantageous embodiment of the invention, the test routine tests the control program for correct parameterization and circuitry of system elements in the industrial system. A parameter can be a changeable element of a subprogram, which is set to a concrete value in the case of the subprogram being called up herefor in each instance. A parameter may also be an argument, which is transferred to a subprogram of the control program. A switch, which controls the procedures in the subprogram, is likewise possible.
The rules are advantageously plausibility rules and the rule infringements are implausibilities. Program-specific tests are herewith not detected, and the test routine can be used universally.
The test routine further advantageously tests whether values assigned to system elements are plausible in respect of system element data. Level values for a system element which lie outside an output value range of the system element and can thus never be exceeded or undershot can therefore be detected. A level value is used to trigger a control process, this control process can therefore never be triggered. A test can also be carried out to determine whether an output value range of a system element exceeds or falls short of a correspondingly wired input value range of another system element, so that processes can if necessary not be detected.
The test routine expediently checks several system elements of the industrial system which emit the same signal to determine whether they are adequately separated from one another in terms of a defined property. A circuitry of several system elements, also past system boundaries and/or boundaries of functional areas, can be checked in this way by several system elements. The property can be a property of the industrial system, e.g. the independency of an energy supply of the same system elements or their connection to alarms which are independent of one another. If two or more system elements, which are redundant for safety reasons, are arranged on a printed circuit board, an interruption in the power supply to this printed circuit board results in all system elements failing and thus in reduced reliability against interferences. If on the other hand three evaluation elements are supplied with an input signal by only one sensor, the failure of this one sensor results in all three evaluation elements failing. System elements emitting the same signal are expediently elements, which emit their signal to a shared signal receiver. Furthermore, it is possible to check whether activatable level values are actually activated, in particular all activatable level values of the control program or a part of the control program, for instance a functional area. If the activation of a level value was forgotten upon creation of the control program, this can be detected.
It may however ensue that some unnecessary level values cannot be deactivated in a hardware or software-related fashion or that level values, which are not necessary for the operation of the industrial system, do not develop as a result of the programming history. In order not to check too many unnecessary level values, it is advantageous for the test routine to check system elements to determine whether level values are activated at signal outputs of system elements in the industrial system, which are connected to a signal input of another system element in the industrial system.
The number of level values to be checked can also be reduced, if the test routine checks level values at signal outputs of system elements, which were set to another value from a preset value, to determine whether the level values are activated. The adjustment of a level value from a preset value and/or default value also indicates that this level value is determined for a use. Checking the activation of this level value is thus particularly meaningful.
It is also proposed that the test routine compares documented specifications relating to output signals of system elements with level values, which are assigned to these output signals. A volatile faulty programming, which is described relative to a system element, may infer that said system element is to be activated, switched or is to implement a process in the case of a certain value of a physical parameter. A corresponding level value for activating this process is however set to a different value. Such a fault can be easily found by comparing the stored specifications with the level values.
An operating fault during operation of the industrial system is usually signaled to an operator and/or control center of the industrial system. The operator thereupon checks the severity of the fault by attempting to find out, on the basis of graphic displays, the system element or process which is interrupted. If a corresponding graphic display is missing for an alarm message, the operator is in some instances not able to localize the fault and ignores said fault. In order to prevent this, it is advantageous for alarm messages relating to operating faults in the industrial system, for instance a system element or a process, which are provided by the control program for output to an operator, to be checked to determine whether a graphic display for visualizing a localization of the fault and/or the relevant system element and/or a process is stored in the control program in respect of alarm messages, in particular any possible alarm message.
An operating fault is frequently sought in accordance with the cause of this fault. To this end, signals and physical parameters of the industrial system in an archive are sought through for a possible fault cause. If signals of system elements of the industrial system, which could lead to operating faults, in particular those assigned level values, are not archived, it may be that a corresponding fault cannot be found. To avoid this, it is advantageous if the test routine checks the control program to determine whether an archiving routine of the control program is prepared to archive values of such output signals of system elements in the industrial system, which are assigned level values. The archiving can take place permanently, regularly or in another predetermined manner.
It is also proposed to eliminate rule infringements in a control-based manner with the aid of a repair routine and the data is changed accordingly. In this way, simple programming faults can be eliminated in a standardized fashion and a revision of the control program can be simplified. The data is expediently read into the control server from a control server of the industrial system, corrected in a control-based fashion and input back into the control server in a corrected form.
An external check of the control program enables several different control programs of different industrial systems to be checked according to the same rules. A control program for controlling a first industrial system and then a control program for controlling a second industrial system which differs from the first industrial system is advantageously initially checked with the aid of the test routine, for compliance with the same defined rules. The different industrial systems focus here on different working objectives.
The invention also focuses on a testing apparatus for checking a control program for controlling an industrial system. It is proposed in accordance with the invention for the testing apparatus to include a database and a check routine, which, in conjunction with a processor-controlled computing means is provided in order to check the control program, with the aid of the data, for compliance with defined rules and to output rule infringements. In particular, the testing apparatus includes a reading-in routine for reading in the data of the control program. It can look for faults in a standardized fashion and standardized protocols with alarm messages can be output as quality records and/or correction specifications.
The test routine is expediently used to execute one or several of the afore-cited method steps.
The invention is described in more detail with reference to exemplary embodiments, which are shown in the drawings, in which;
A testing apparatus 14 in the form of a portable computer is connected via an interface 16 to the server 10 in order to check the control program 12. Control program 12 data is read into a database 20 of the testing apparatus 14 with the aid of a reading-in routine 18. This data forms a part of the control program, which includes for instance four larger files which interact in order to control the industrial system 2, one file of which is read into the database 20. This file includes a list of all controlled system elements 4, 6, 8 of the industrial system 2, its ports, its connections to other ports and graphic displays and control elements for an operator in the control center of the industrial system 2.
The industrial system is divided into twenty-two functional areas, includes around 110,000 system elements, 1.2 million ports and around 6 million signal connections between the ports or parameterizable information. With the aid of a computing means 22 in the form of a processor and a test routine 24 in the form of a computer program, the testing apparatus 14 checks the data listed in tables in the revised file for compliance with defined rules, which are stored in the test routine 24. Discovered rule infringements are output in tables onto an output means 26, for instance a monitor or a printer, for visualization purposes. A further function of the testing apparatus 14 consists in the automatic correction of data and thus the control program 12 in accordance with preset rules. The corrected data is given back to the server 10 via the interface 16, so that the control program 12 is now modified.
When testing the data and/or control program 12 of the industrial system 2, the same are checked for defined rules. Such rules are explained by way of example on the basis of
In the case of the data tested by way of example in
The rule checked in this situation means that the set, in other words activated level value, has to be switchable. The test routine here has found the fault such that the considered level value cannot be switched and has described this fault with the aid of a first text:
In this situation, the signal value has to drop below the value of −3 kg/sec, in order to switch the level value of 0 kg/sec., including its hysteresis of 3 kg/sec. As a negative condensate flow is not possible, and the sensors 6 are also not able to identify such a negative flow, the level value cannot be switched. An operator of the testing apparatus 14 or a programmer of the control program 12 or another person is able to localize the sought fault with the aid of the functional plans and provide the data and/or the control program 12 with a corrected level value. The fault is herewith eliminated and the industrial system 2 can be controlled more reliably.
In the second column of the list of faults found in
A further fault is listed in the last column of the list in
If this is actually a fault, it can be eliminated by an operator. If the level value is however set correctly to 102%, a corresponding comment can be inserted into an input field 32, for instance that the level value is correct and wanted.
A further rule is shown with the aid of
The rule to be checked is a rule for complying with the method-specific redundancies within control technology. It means that each sensor 6 and each input driver 34 is to be arranged on its own module 36, 38, with each module 36, 38 being supplied with the necessary operating voltage by means of its own power supply. By checking the rule, the data determines that both input drivers 34 shown in the upper section of
In this way, circuitry is checked in accordance with defined rules. The combination of system elements 6, 8, 34, is also tested across a system boundary, e.g. in accordance with its arrangement within the industrial system 2.
Further rules are explained by way of example on the basis of
The fourth text reads accordingly:
In a further rule, it is possible to check whether level values, which are connected to a further system element, are activated. If a port Q1, Q2, . . . , Qn outputting a level value is connected to a further port and/or system element of the industrial system 2 and the corresponding level value is not activated, the corresponding module and level value can be shown in a list in a similar fashion to
In a further rule, the data and/or facts in the control program 12 are checked to determine whether a documented setting of a system element conforms to a set level value. If a process is switched for instance at a speed N from 900 U/min, the correspondingly set level value lies at 700 U/min for instance, so a process is switched at a lower speed, which is only to occur with the higher speed. A corresponding fifth text may read:
When checking the rule, which is shown on the basis of the indicated list in
A further rule, the checking of which is meaningful, is the checking of all alarms, which are displayed to an operator, for certain properties. Such a property may be whether it provides a graphic display in the control program and/or in a file of the control program for this alarm, that can call up an operator, e.g. a master display of the industrial system 2, in order to be able to link the corresponding alarm with a system element of the industrial system 2. If an alarm is assigned to a system element, which cannot be found in any operator display, a corresponding fault and/or rule infringement is displayed, in a similar manner to that described in
A further function of the testing apparatus 14 is the automated correction of faults. The lack of archive entries of driver signals can be automatically eliminated for instance and the control program 12 and/or its data can be changed such that each level value-related signal triggers archive entries in a preset fashion. Such a fault can initially be listed and an operator can call up a corresponding repair routine and first of all eliminate these faults and/or all listed faults by means of a corresponding command.
It is likewise possible for preset faults to be eliminated upon their discovery without an operator request. Smaller, non-critical faults can be automatically eliminated in this way, without an operator having to look over a series of faults and having to come to a decision on said faults.
Number | Date | Country | Kind |
---|---|---|---|
09152650.9 | Feb 2009 | EP | regional |