Abstract:
A method for examining an interface to a plurality of peripheral units of a numeric control system includes, firstly, an initialization step in which an unequivocal identification character is written into an identification character register of each peripheral unit, the register functioning in response to an address bus. The identification character register is read out in an examination step and is -compared with an expected value. If an identification character does not tally with the corresponding expected value, an error message is produced, and if all of the identification characters tally with the corresponding expected values, the addressing of all of the peripheral units by the address bus is deemed successful.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to a method for checking the interface between a numerical control system and several peripheral units. Such interfaces are made up of an address bus and a data bus, via which the peripheral units are connected to the numerical control system. The peripheral units and registers included in them are able to be selected via the address bus. Data may then be written via the data bus into the selected register or read from the selected register of the respective peripheral unit.  
       BACKGROUND INFORMATION  
       [0002]     The numerical control system of a machine tool must, on the one hand, read out numerous sensors (e.g., position measurement units) and, on the other hand be able to supply actuators (such as axial drives) with commands. If the sensors and actuators are addressed via a common interface, a large number of such peripheral units can become established. In this context, various registers may occur within one peripheral unit. Thus, the most various different data are offered by one position measuring unit, such as various voltage levels of the position sensors (e.g., for the phase-shifted scanning of a grating structure) or information on the type of the position sensor.  
         [0003]     German Patent No. 43 42 052 describes a control computer which is connected to several peripheral units via an address bus. In order to be able to address the peripheral units, a device is described using which the peripheral units are able to be assigned an address, simply and free of error.  
         [0004]     The problem may arise that, for safety-directed applications, which occur ever more frequently in the field of numerical control of machine tools, correct functioning of the interface between the numerical control system and the peripheral units must be assured. It may be important that the peripheral units should not be mixed up. If several peripheral units of the same construction are present, the reading out of a register having identifications specific to type of construction is not sufficient, because these identifications are the same for all peripheral units of the same construction. However, if a wrong peripheral unit is addressed, which is, however, of the same construction as the one that was actually intended, a position value is, for example, read out of a register which is not able to be at once recognized by the control as being nonsensical, since it does correspond to a position value, however, as it happens, of the wrong peripheral unit. Such a mistake may take place if the address bus of the interface between the numerical control system and the peripheral unit works faultily.  
         [0005]     Thus, in the case of a defect of the interface between control and peripheral unit, even given error-free specification of the addresses in the peripheral units, according to German Patent No. 43 42 052, exchange mistakes may be made with respect to the peripheral units.  
         [0006]     In safety-directed numerical control systems, it is also conventional to record critical parameters (such as position values) with the aid of sensors designed in duplicate, which are scanned via two separate interfaces. However, it may be very expensive to implement such interfaces in duplicate. It may be more favorable to secure the function of a single interface such that both sensors may be scanned without there being a danger of mixing up the two sensors.  
         [0007]     It is an aspect of the present invention to provide a method with the use of which the interface between a numerical control system and its peripheral units may be checked in a simple manner.  
       SUMMARY  
       [0008]     For checking the interface of a numerical control system to several peripheral units, it may be provided that, in an initialization step, unique identifications are written into an identification register of each peripheral unit addressed via the address bus. In a checking step, the identification registers of all peripheral units are read out. In this context, the value read out is compared to the unique identifications of each peripheral unit as the expected value. If all the values read agree with the expected values, it may be concluded that all peripheral units are being successfully addressed, otherwise an error message may be generated, to which an appropriate reaction may take place.  
         [0009]     Upon regular repetition of this method, an error appearing in the interface between numerical control system and peripheral units may be detected and appropriately reacted to.  
         [0010]     According to an example embodiment of the present invention, a method for checking an interface to a plurality of peripheral units of a numerical control system includes: an initialization step including writing unique identification data into an identification register of each peripheral unit addressed via an address bus; and a first checking step. The first checking step includes: reading identification data from the identification registers; comparing the identification data read in the reading step to expected values that correspond to the unique identification data written in the initialization step; generating an error message in response to non-agreement of identification data with a corresponding expected value; and detecting a successful addressing of all peripheral units via the address bus in response to agreement of all identification data with respective expected values.  
         [0011]     According to an example embodiment of the present invention, a device for checking an interface to a plurality of peripheral units of a numerical control system includes: means for writing unique identification data into an identification register of each peripheral unit addressed via an address bus; means for reading identification data from the identification registers; means for comparing the identification data read by the reading means to expected values that correspond to the unique identification data written by the writing means; means for generating an error message in response to non-agreement of identification data with a corresponding expected value; and means for detecting a successful addressing of all peripheral units via the address bus in response to agreement of all identification data with respective expected values.  
         [0012]     Further aspects of the present invention and details pertaining thereto are derived from the following description of an example embodiment with reference to the appended Figures. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]      FIG. 1  illustrates the interface of a numerical control system with several peripheral units.  
         [0014]      FIG. 2  illustrates a method for checking the interface between the numerical control system and the peripheral units. 
     
    
     DETAILED DESCRIPTION  
       [0015]      FIG. 1  shows a numerical control system  7  which is connected via an interface  1 ,  2  to several peripheral units  3 . Inside each peripheral unit  3  there are several registers (memory locations)  4 ,  5 . In each peripheral unit  3  there exists an identification register  4  and at least one additional register  5  in which various data may be stored, depending on the kind of the peripheral units  3 .  
         [0016]     Numerical control system  7 , for instance, controls a machine tool on which the most varied sensors (e.g., position measuring devices) and actuators (axial drives, spindle drives) are mounted. These sensors and actuators correspond to peripheral units  3  shown in  FIG. 1 , which are connected via interface  1 ,  2  to numerical control system  7 .  
         [0017]     In this context, interface  1 ,  2  is made up of an address bus  1  and a data bus  2 . Both address bus  1  and data bus  2  have a bit width which, in the case of address bus  1  limits the number of addressable registers  4 ,  5 , or, in the case of data bus  2 , the bit width of a transmitted data word. In addition to address bus  1  and data bus  2 , control lines may be required which may determine, for instance, whether access to a register  4 ,  5  shall take place by reading or writing.  
         [0018]     In addressing a certain register  4 ,  5 , a part of the width of address bus  1  is used for addressing respective peripheral unit  3 , and an additional part for addressing register  4 ,  5  within peripheral unit  3 . Numerical control system  7  is able to notify peripheral units  3  via a signal line  6  whether the addressing via address bus  1  is inverted or not inverted. Thus, for example, the address “0101” in a non-inverted addressing is interpreted by peripheral units  3  exactly the same as the address “1010” in inverted addressing.  
         [0019]     A possible error in address bus  1 , which may absolutely be avoided or rapidly detected, is false addressing of each of the peripheral units  3 . Because if, for example, on account of a short circuit to ground of a bit for addressing a peripheral unit  3 , the wrong peripheral unit  3  is addressed, quite meaningful values may be written into the addressed register  4 ,  5  or read therefrom if, in the case of the wrongly addressed peripheral unit  3  a peripheral unit  3  is involved that is identical to the peripheral unit  3  that was actually intended. Thus, for example, an axle drive may receive a command for a movement which was actually intended for another axle of the machine tool, and thus uncontrolled movements may be carried out.  
         [0020]     With reference to  FIG. 2 , a method is explained using which such mixups of peripheral units  3  are avoided, or such errors in address bus  1  are rapidly detected.  
         [0021]     In an initialization step  100 , numerical control system  7  first addresses the identification register  4  of each peripheral unit  3  via address bus  1 , and describes it via data bus  2  using a unique identification. This may be a number from a sequence for each peripheral unit  3 .  
         [0022]     In a checking step  200 , identification register  4  of each peripheral unit  3  is read out by numerical control system  7 , and the read-out identification is compared in each case to the expected value. In this context, the expected value is equal to the unique identification, written in step  100 , of peripheral unit  3 . If an identification that was read does not agree with the expected value, then an error has occurred. An error message is then generated and a reaction to it, in that, for instance, the machine tool is put into a safe condition. If all the values that are read agree with their respective expected values, correct addressing of all peripheral units  3  may be ensured.  
         [0023]     In order to check further interface  1 ,  2  between numerical control system  7  and peripheral units  3 , or, in an additional super-checking step  300 , identification register  4  (or one of the several other registers  5 , if they are available) may be used, one after another, to write several bit patterns and to read them again. Thus an 8-bit data bus  2  is able to be checked completely, by writing and reading back the four bit patterns:  
                                                                                                                 D0   D1   D2   D3   D4   D5   D6   D7                                    M1   0   1   0   1   0   1   0   1       M2   0   0   1   1   0   0   1   1       M3   0   0   0   0   1   1   1   1       M4   1   0   0   0   0   0   0   0                  
 
         [0024]     for short circuits or shunts. D 0  to D 7  here signify the eight data lines of data bus  2 , and M 1  to M 4  signify the bit patterns. The sequence of the bit patterns does not matter in this context, as will be explained below. Similarly, a 16-bit data bus  2  is able to be checked completely, by writing and reading back the five bit patterns:  
                                                                                                                             D0   . . .   D15                                    M1   0   1   0   1   0   1   0   1   0   1   0   1   0   1   0   1       M2   0   0   1   1   0   0   1   1   0   0   1   1   0   0   1   1       M3   0   0   0   0   1   1   1   1   0   0   0   0   1   1   1   1       M4   0   0   0   0   0   0   0   0   1   1   1   1   1   1   1   1       M5   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0                  
 
 for short circuits and shunts, the sequence of the bit patterns once again being arbitrary. 
 
         [0026]     In the light of 8-bit data bus  2 , let us here briefly explain the principle by which bit patterns M 1  to M 4  are selected. In order to detect short circuits, i.e., the getting stuck of one of the lines of data bus  2  on logical “0” or logical “1”, it is sufficient if each of data lines D 0  to D 7  was successfully tested at least once on logical “1” and at least once on logical “0”. It is more trouble to test for shunts. It has to be tested whether each data line D 0  to D 7  is able to be switched independently of each of the other data lines D 0  to D 7 . For a 2 N -bit-wide data bus  2 , this may be accomplished using N bit patterns, thus, in the example of the 8-bit-wide data bus  2  using three bit patterns M 1  to M 3 . In this context, every possible bit sequence ( 0-0-0 , 1-0-0, 0-1-0, . . . 1-1-1 ) has to appear if one regards the data lines D 0  to D 7  in each case separate for each bit pattern M 1  to M 3 .  
         [0027]     Since in these 2 N  N-bit sequences two N-bit sequences (in the example, on D 0  and on D 7 ) are made up only of logical “0” and logical “1”, an additional bit pattern M 4  may be needed for switching the two data lines D 0  and D 7  to the respective inverse level. This is achieved in the above example of an 8-bit-wide data bus  2  in that M 4  has a logical “1” on D 0  and a logical “0” on D 7 . The logical levels of data lines D 1  to D 6  are arbitrary for M 4  in this example, since they already had a logical “0” and a logical “1”. The interruption of one of data lines D 0  to D 7  may also lead to a failure of the test, since all logical levels may no longer be set on this data line.  
         [0028]     Thus, for the complete checking of a 2 N -bit wide data bus  2 , only N+1 bit patterns M 1 , M 2 , M 3 , M 4  are required (for N≧2). Compared to the test of all possible bit patterns of a 2 N -bit-wide data bus  2  (2 to the power of 2 N , i.e., 256 for an 8-bit-wide data bus  2 ), this may yield a considerable time saving.  
         [0029]     Step  400  describes a further possibility for checking interface  2 . This additional checking step  400  includes inverting the type of addressing of address bus  1 , as was described further above. The selection of the type of addressing, may, in this context, take place via signal line  6 . After the inverting of the type of addressing, steps  200  and  300  may be repeated. Individual bits of address bus  1 , which get stuck on one potential, are detected as such, even if they would never have to change potential at a fixed type of addressing (either not inverted or inverted).  
         [0030]     Additional checking step  400  may be dovetailed with the two checking possibilities described before, in that, for testing address bus  1 , the identification registers  4  are written (step  100 ) using non-inverted addressing, and read (step  200 ) using inverted addressing.  
         [0031]     In the test of data bus  2  with the aid of written and read-back bit patterns M 1 , M 2 , M 3 , M 4  (step  300 ), the type of addressing may also be changed (inverted) as described, between reading and writing of bit patterns M 1 , M 2 , M 3 , M 4 . During the operation of numerical control system  7 , steps  100 ,  200 ,  300 ,  400  described above may be repeated at regular intervals for checking interface  1 ,  2 . The intervals of this checking, in this context, take a cue from the time the system of machine tool and numerical control system  7  may be safely operated, even using an erroneous interface  1 ,  2 . In this context, it may be that repeating only a part of steps  100 ,  200 ,  300 ,  400  will suffice if, for instance, the unique identifications written in initialization step  100  will not be overwritten any more.  
         [0032]     The sequence of steps  100  to  400 , as was already described, is not fixed to the order shown in  FIG. 2 . Thus, step  400  may be dovetailed with steps  100 ,  200 ,  300 . Step  300  may also be carried out before step  200 . Additional changes in the order are also possible.  
         [0033]     The steps for checking interface  1 ,  2  may not be executed successfully without functioning control lines, so that their functions may also be tested using the method described.