Abstract:
A numerical controller which enables stroke limit check during a program check performed in a machine lock state and which can shorten the time required for the program check. The numerical controller has the function of checking a program while keeping a machine motion axis as a controlled object in an immovable state, and includes motion amount calculating means for analyzing the program to calculate an amount of movement of the machine motion axis, and updater means for updating machine coordinates by the motion amount of the machine motion axis calculated by the motion amount calculating means and storing the updated machine coordinates, wherein a motion area is checked based on the stored machine coordinates. Thus, even in the machine lock state, the machine coordinates are calculated, thereby permitting the stroke limit check to be performed during the program check.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a numerical controller, and more particularly to a numerical controller for carrying out machining program checks and stroke limit checks. 
   2. Description of Related Art 
   Numerical controllers having a program check function are known in the art. When carrying out machining with this type of numerical controller, the format of the machining program and stroke limits are checked before actual machining, to ensure that the program works properly, and then the machining is actually performed. 
     FIG. 7  is a flowchart exemplifying a machining simulation check executed by a controller of a numerical controller. 
   An MPU, which is provided in the controller, analyzes a read program (Step S 100 ), then performs an acceleration/deceleration process before interpolation by means of a specified time constant, as well as a velocity process by means of a specified velocity (Step S 101 ), and performs an interpolation process (Step S 102 ). 
   It is then determined whether or not machine lock is specified. A machine lock state can be discriminated, for example, by determining whether or not a machine lock command is included in the NC data (Step S 103 ). The machine lock denotes an operation wherein the programmed operation is continued while nullifying the axis movement resulting from the interpolation process, thereby retaining machine motion axes as controlled objects in immovable state. 
   In the case of non-machine lock, machine coordinates are updated using the axis motion amount obtained by the interpolation (Step S 105 ), and based on the updated machine coordinates, stroke limit check is performed (Step S 106 ). 
   In the case of the machine lock, the axis motion amount obtained by the interpolation is nullified and the programmed operation alone is continued, so that the machine motion axis as the controlled object does not move (Step S 104 ). Specifically, in this case, movable parts of a machine tool are stopped and brought into a machine lock state by nullifying the axis motion amount obtained by the interpolation and outputting pulses of zero to a servo control section. While in the machine lock state, program coordinates are updated (Step S 105 ′). The program coordinates are coordinates whose origin is defined by the machining program. In the machine lock state, machining is simulated based on the program coordinates (Step S 106 ′). Then, acceleration/deceleration after interpolation is performed according to a specified time constant (Step S 107 ). 
   A numerical controller for simulating machining is disclosed, for example, in JP07-49709A. 
   There has also been proposed a numerical controller for drawing a tool path to permit a program executed by the numerical controller to be checked before machining. As such numerical controller, a device disclosed in JP10-124124A, for example, is known. 
     FIG. 8  exemplifies the configuration of a numerical controller with a drawing function whereby a tool path is drawn at display means to permit program check. 
   The numerical controller  200  comprises a machining program analyzing section  201  for analyzing a machining program, a block processing section  202  for executing individual blocks of the analyzed machining program, and a servo control section  204  for controlling the operation of a servomotor  206  through a driving section (servo amplifier)  205  in accordance with motion command data from the block processing section  202 . The numerical controller further comprises a display control section  208  for reading coordinates, which are position data, from the servo control section  204  to draw a tool path at a display device  209 . 
   By inputting a machine lock command or a dry run command to the servo control section  204 , it is possible to enable a machine lock function which allows the controlled axis to run idle without moving, or a dry run function which permits the feed rate to be set manually without regard to the programmed velocity. Owing to these functions, a tool path can be drawn without entailing movement of the controlled axis or movable parts of the numerical controller, in disregard of the programmed velocity. 
   The program is checked in the machine lock state at a dry run velocity, without accompanying axis movement. Usually, for such program check, the dry run velocity is set at a low velocity. The program check is also performed with respect to acceleration/deceleration control by executing same. Thus, since the program is run at a low dry run velocity while executing the acceleration/deceleration control, a problem arises in that the program check requires a long time. 
   Also, in the machine lock state, the controlled axis is not moved and only the position display thereof is changed, so that the machine coordinates are not updated. A problem therefore arises in that the stroke limit check (stored stroke check) cannot be performed. 
   The stroke limit check is a function whereby, if a tool enters a tool entry forbidden area set with respect to the numerical controller, the tool is decelerated and stopped and an alarm is displayed. In the machine lock state, however, since the controlled axis is not moved, it is not possible to determine whether a tool attached to the controlled axis has entered the entry forbidden area or not. 
   SUMMARY OF THE INVENTION 
   The present invention provides a numerical controller which enables stroke limit check during a program check performed in a machine lock state and which can shorten the time required for the program check. 
   Also, according to the present invention, machine coordinates are calculated even in the machine lock state, thereby permitting the stroke limit check to be performed during the program check. Further, in the present invention, the feed rate is set to the system&#39;s maximum velocity during the program check whereas acceleration/deceleration control is not performed, thereby shortening the time required for the program check. 
   A numerical controller of the present invention has a function of checking a program while retaining motion axes of a machine as controlled objects in immovable state. 
   To permit the stroke limit check to be performed during a program check by calculating machine coordinates even in a machine lock state, the numerical controller of the present invention comprises motion amount calculating means for analyzing the program to calculate motion amounts of the motion axes, and updating means for updating the machine coordinates by the motion amounts of the motion axes calculated by the motion amount calculating means and storing the updated machine coordinates, and checking means for checking a motion area of the machine based on the stored machine coordinates. 
   Thus, the motion amount calculating means calculates the motion amounts of the motion axes based on the machining program, and the updating means updates the machine coordinates by the motion amounts calculated by the motion amount calculating means. Accordingly, even in the machine lock state in which the motion axes as the controlled objects are not moved, the machine coordinates can be derived based on the machining program, permitting the stroke limit check to be performed based on the machine coordinates. 
   To shorten the time required for the program check, the numerical controller of the present invention comprises motion velocity commanding means for outputting a command to set maximum velocities of the motion axes, and/or acceleration/deceleration process nullifying means for nullifying acceleration/deceleration means for performing acceleration/deceleration process according to a set time constant. 
   The motion velocity commanding means sets the velocities of the motion axes to system&#39;s maximum values to thereby shorten the program check execution time. In the machine lock state, the motion axes are not moved, and therefore, entry into an entry forbidden area cannot be checked based on the actual position. By using position coordinates derived based on the machining program, however, it is possible to check entry into such an entry forbidden area. The position coordinates based on the program can be calculated without regard to the actual motion velocity of the motion axes, so that the velocities of the motion axes can be set to the system&#39;s maximum values. 
   The acceleration/deceleration process nullifying means nullifies the acceleration/deceleration means for performing an acceleration/deceleration process according to the set time constant to thereby shorten the program check execution time. A time period for performing an actual movement of the machine motion axis is elongated by a time period required for the acceleration/deceleration. The nullification of the acceleration/deceleration processing means causes a mechanical shock. However, since, in the machine lock state, the motion axes are not moved, the motion axes need not be subjected to the acceleration/deceleration process from the outset and no inconveniences arise if the acceleration/deceleration process is not performed. It is therefore possible to shorten the program check time by saving the processing time needed for the acceleration/deceleration process. 
   The numerical controller may be provided with both or either of the motion velocity commanding means and the acceleration/deceleration process nullifying means. 
   The motion amount calculating means may include a machining program analyzing section for analyzing a machining program, a block processing section for executing individual blocks of the analyzed machining program, and an interpolation processing section for performing interpolation based on motion commands in the machining program to calculate the motion amounts, and the interpolation processing section may calculate the motion amounts based on the maximum velocities commanded by the motion velocity commanding means. This configuration makes it possible to shorten the program check time. 
   The updating means may include a first storage section for storing machine coordinates updated with actual motions of the motion axes by feedback amounts of the motion axes and the motion amounts calculated by the interpolation processing section, and a second storage section for storing provisional machine coordinates updated without actual motion of the motion axes only by the motion amounts calculated by the interpolation processing section, and the checking means may check the motion area based on at least the provisional machine coordinates stored in the second storage section. 
   Also, the updating means may stop the updating of the machine coordinates by the first storage section and start the updating of the provisional machine coordinates by the second storage section in response to a command from the acceleration/deceleration process nullifying means. 
   According to the present invention, the stroke limit check can be carried out during the program check performed in the machine lock state and also the time required for the program check can be shortened. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram exemplifying the hardware configuration of a numerical controller according to the present invention; 
       FIG. 2  is a functional block diagram illustrating processing of a machining program by the NC device and machining program check function; 
       FIG. 3  is a flowchart illustrating the operation of a controller according to the present invention; 
       FIG. 4  is a diagram exemplifying the configuration of an updating section according to the present invention; 
       FIG. 5  is a diagram illustrating an operating state of the updating section during normal machining; 
       FIG. 6  is a diagram illustrating an operating state of the updating section in program check mode; 
       FIG. 7  is a flowchart exemplifying a machining simulation check performed by a controller of a numerical controller; and 
       FIG. 8  is a diagram showing an exemplary configuration of a numerical controller with a drawing function whereby a tool path is drawn at display means to permit program check. 
   

   DETAILED DESCRIPTION 
     FIG. 1  is a block diagram showing the hardware configuration of a numerical controller (hereinafter referred to as NC device)  1  according to one embodiment of the invention. A processor (hereinafter referred to as CPU)  11 , which is a processor for globally controlling the NC device  1 , reads out via a bus  21  system programs stored in a ROM  12 , and globally controls the NC device  1  in accordance with the system programs. A RAM  13  temporarily stores calculation data and display data, as well as various data etc. input by the operator through a CRT/MDI unit  70 . 
   A CMOS memory  14  is a nonvolatile memory which is backed up by a battery, not shown, and thus is capable of retaining the stored data even if the power supply to the NC device  1  is cut off. The CMOS memory stores an NC machining program read in via an interface  15  and an NC machining program etc. input through the CRT/MDI unit  70 . In the ROM  12  are written in advance various system programs for performing an edit mode process necessary for the creation and editing of NC machining programs, a playback mode process for automatic operation, and a process necessary for program check, stroke limit check, tool moving path check, etc. 
   The interface  15  is provided for external equipment connectable to the NC device  1  and is connected, for example, with an external device  72  such as a paper tape reader, a paper tape puncher or an external storage device. An NC machining program and the like are read from the paper tape reader or the external storage device, and the NC machining program edited in the NC device  1  can be output to the paper tape puncher or the external storage device. 
   A PC (programmable controller)  16  controls auxiliary equipment of an NC machine tool, for example, actuators such as a tool changing robot hand, in accordance with sequence programs built into the NC device  1 . Specifically, according to M function, S function and T function specified by the NC machining program, the PC converts commands into signals necessary for actuating the auxiliary equipment by the sequence programs and outputs the resultant signals to the auxiliary equipment through an input/output unit  17 . The auxiliary equipment such as various actuators operates in accordance with the output signals. Also, the PC is supplied with signals from limit switches arranged in the body of the NC machine tool and in the auxiliary equipment, as well as signals from various switches of the operator&#39;s panel associated with the body of the NC machine tool, performs necessary processing on the received signals, and transfers the processed signals to the CPU  11 . 
   Image signals indicative of current positions of individual axes of the NC machine tool, alarms, parameters, image data, etc. are sent to the CRT/MDI unit  70  and displayed on a graphic display thereof. The CRT/MDI unit  70  is a manual data input device equipped with a graphic display, a keyboard, various soft keys, etc., and an interface  18  transfers data received from the keyboard of the CRT/MDI unit  70  to the CPU  11 . Also, where a system program for automatic programming stored in the ROM  12  is started, an interactive screen is displayed on the graphic display of the CRT/MDI unit  70 , so that an NC machining program can be created in an interactive manner by inputting simple data relating to a product shape etc., that is, so-called automatic programming can be performed. An interface  19  is connected to a manual pulse generator  71  and supplied with pulses therefrom. The manual pulse generator  71  is incorporated in the operator&#39;s panel of the NC machine tool and is used to precisely position the movable parts of the NC machine tool through control of the individual axes by means of distribution pulses generated by manual operation. 
   Axis control circuits  30  to  32  are supplied with motion commands for the respective axes from the CPU  11  and output the commands to respective servo amplifiers  40  to  42 . On receiving the commands, the servo amplifiers  40  to  42  drive respective servomotors  50  to  52  associated with the respective axes of the NC machine tool. The servomotors  50  to  52  associated with the respective axes each have a pulse coder built therein for position detection, and a position signal is fed back from each pulse coder as a pulse train. When necessary, linear scales are used as the position detectors. By subjecting each pulse train to F/V (frequency/velocity) conversion, it is possible to generate a velocity signal. The feedback of the position signals and velocity feedback are not illustrated in  FIG. 1 . 
   A spindle control circuit  60  is supplied with a spindle rotation command for the NC machine tool and outputs a spindle velocity signal to a spindle amplifier  61 . On receiving the spindle velocity signal, the spindle amplifier  61  rotates a spindle motor  62  of the NC machine tool at the rotational velocity as instructed. A position coder  63  is coupled to the spindle motor  62  through gears, a belt or the like and outputs a feedback pulse in synchronism with rotation of the spindle, the feedback pulse being read by the CPU  11  via an interface  20 . In the case of positioning the spindle at a predetermined rotational position specified by the NC machining program etc. to carry out C axis control, a one-rotation signal from the position coder  63  is detected and the spindle position is controlled by the processing of the CPU  11 . 
   Processing of a machining program by the NC device  1  and machining program check function will be now described with reference to the functional block diagram of  FIG. 2 . As shown in  FIG. 2 , the NC device  1  includes, in addition to elements usually provided to drive a machine motion axis, that is, a controller  100 , a driving section (servo amplifier)  105  and a motor (servomotor)  106 , a program check mode processing section  110  and a motion area checking section  107  for performing program check, a machine lock commanding section  113  for causing a machine lock state, and a display control section  108  and a display device  109  for displaying program check results etc. 
   The controller  100  includes a machining program analyzing section  101 , an interpolation processing section  102 , an updating section  103 , and an acceleration/deceleration processing section  104 . The machining program analyzing section  101  analyzes a machining program. The machining program may be input to the analyzer via communication means or may be read from a buffer or a memory. 
   The machining program analyzing section  101  outputs a command based on the description in each block of the analyzed machining program. For example, if a motion command is included in the block, the analyzer sends motion command data to the interpolation processing section  102 . If, on the other hand, M code, S code, T code or the like is included, the analyzer sends command data to the programmable controller etc. In accordance with the motion command, the interpolation processing section  102  performs interpolation, and in accordance with the result of interpolation, the updating section  103  updates machine coordinates. Based on the machine coordinates updated by the updating section  103 , the acceleration/deceleration processing section  104  performs an acceleration/deceleration process and controls the operation of the motor  106  through the driving section  105 . During normal driving control, the motor is controlled in this manner in accordance with the machining program, so that the machine motion axis is moved to carry out machining. 
   The program check mode processing section  110  and the motion area checking section  107 , on the other hand, constitute a mechanism for performing the function of carrying out the format check of a machining program as well as the stroke limit check, prior to actual machining, to ensure that the program works properly. 
   The program check mode processing section  110  includes a motion velocity commanding section  111  and an acceleration/deceleration process nullifying section  112 . The program check mode processing section  110  is set in program check mode by an input signal, not shown, whereupon the processor  110  instructs the controller  100  to perform process in the program check mode. During the program check mode, the motion velocity commanding section  111  sends a motion velocity command to, for example, the interpolation processing section  102  in the controller  100 , so that the interpolation processing section performs interpolation based on the instructed motion velocity and generates interpolated motion amount data. The motion velocity to be instructed can be set to a maximum velocity of the system, whereby the program can be checked at an increased processing velocity. 
   Also, during the program check mode, the acceleration/deceleration process nullifying section  112  nullifies an axis motion command supplied from the interpolation processing section  102  to the acceleration/deceleration processing section  104  of the controller  100 . Accordingly, a state equivalent to the machine lock state is created, whereby the processing time for the acceleration/deceleration control is saved and thus the time required for the program check is shortened. 
   In  FIG. 2 , the updating section  103  is arranged between the interpolation processing section  102  and the acceleration/deceleration processing section  104 , and because of this configuration, the acceleration/deceleration process nullifying section  112  is adapted to input a command to the updating section  103  to nullify the axis motion command supplied from the interpolation processing section  102  to the acceleration/deceleration processing section  104 . 
   In the machine lock state, the programmed operation is continued while the axis movement resulting from the interpolation is nullified, and the machine lock is often carried out also in operation modes other than the program check mode. The machine lock commanding section  113  causes the machine lock to take place in the other operation modes than the program check mode. 
   The motion area checking section  107  acquires the machine coordinates updated by the updating section  103 , then determines whether the position of the machine motion axis is within a motion area or an entry forbidden area, and displays the determination result on the display device  109  via the display control section  108 . 
   Operation of the controller  100  will be now described with reference to the flowchart of  FIG. 3 . 
   The machining program analyzing section  101  analyzes a machining program input thereto via communication means, not shown, or read from memory (Step S 1 ), and determines whether or not the program check mode is set in the machining program (Step S 2 ). 
   If the program check mode is not set (Step S 2 ), an acceleration/deceleration process before interpolation is performed using the specified time constant (Step S 3 ), a velocity process is performed using the specified velocity (Step S 4 ), and then interpolation is performed in the interpolation processing section  102  to calculate an amount of movement of the machine motion axis (Step S 5 ). 
   Subsequently, if the machine lock is not specified (Step S 6 ), normal machining operation is carried out in the following manner: The updating section  103  acquires the amount of movement of the machine motion axis calculated by the interpolation processing section  102 , to update the machine coordinates (Step S 8 ). Then, the stroke limit check is performed based on the updated machine coordinates, and if it is ascertained that the machine coordinates do not fall within a forbidden area (Step S 9 ), an acceleration/deceleration process after interpolation is performed using the specified time constant (Step S 20 ), to drive the motor  106  through the driving section  105 . If, in Step S 9 , the machine coordinates are found to fall within a forbidden area, the machine motion axis is decelerated and stopped and an alarm or the like is displayed, for example. 
   If, after the interpolation in Step S 5 , the machine lock is specified by a command from the machine lock commanding section  113  (Step S 6 ), the axis motion amount obtained by the interpolation is nullified (Step S 7 ) since the axis should not be moved in the machine lock state. Also, in the machine lock state, since the machine coordinates do not change while the program is run, the stroke limit check is not effective but it is still useful to perform the stroke limit check in an initial state of machine lock. Accordingly, the machine coordinates are changed using the axis motion amount (Step S 8 ) and the stroke limit check is performed based on the machine coordinates (Step S 9 ), whereby the initial state of machine lock can be confirmed. 
   On the other hand, if the program check mode is set (Step S 2 ), the acceleration/deceleration before interpolation is not carried out, and after the velocity process is performed based on a maximum velocity command from the motion velocity commanding section  111  (Step S 10 ), interpolation is performed in the interpolation processing section  102  to calculate an amount of movement of the machine motion axis (Step S 11 ). 
   Subsequently, the machine coordinates and provisional machine coordinates are updated in the updating section (Steps S 12  to S 17 ) and the stroke limit check is performed (Steps S 18  and S 19 ). 
   Specifically, first, a provisional axis motion amount is set (Step S 12 ), and after the axis motion amount obtained by the interpolation in Step S 11  is saved as the provisional axis motion amount (Step S 13 ), the axis motion amount is nullified. Thus, the acceleration/deceleration processing is not performed (Step S 14 ) in accordance with a nullifying command from the acceleration/deceleration process nullifying section  112 . 
   Ordinary machine coordinates are updated using the axis motion amount sent to the acceleration/deceleration processing section  104 , and since the axis motion amount is nullified in Step S 14 , the machine coordinates fail to be updated. Accordingly, to permit the stroke limit check to be performed based on the machine coordinates, the machine coordinates are updated using the axis motion amount (Step S 15 ). 
   Then, provisional machine coordinates are set (Step S 16 ) and are updated by accumulating the provisional axis motion amount saved in Step S 13 . It is therefore possible to derive provisional machine coordinates based on the program (Step S 17 ) though, in the program check mode, the machine coordinates based on an actual movement of the machine motion axis cannot be obtained. 
   The motion area checking section  107  performs the stroke limit check based on the machine coordinates updated using the provisional machine coordinates in the updating section  103 , and displays the check result. In this case, the acceleration/deceleration after interpolation is not carried out (Step S 19 ). 
   Since the ordinary machine coordinates are not updated, it is not useful to perform the stroke limit check based on the machine coordinates; however, safety can be ensured by performing the stroke limit check based on the machine coordinates updated in Step S 15  (Step S 18 ). 
   Referring now to  FIGS. 4 to 6 , exemplary configuration and operation of the updating section will be described. 
     FIG. 4  shows the configuration of the updating section by way of example. As shown in  FIG. 4 , the updating section  103  comprises a first storage section  103   a  for storing the ordinary machine coordinates, a second storage section  103   b  for storing the provisional machine coordinates, and a switching section  103   c.    
   The first storage section  103   a  is supplied from the interpolation processing section  102  with the axis motion amount calculated thereby, holds the axis motion amount, and sends same to the acceleration/deceleration processing section  104 . Also, the first storage section  103   a  is fed with the position feedback amount back from the machine motion axis side, and the axis motion amount as well as the position of the machine motion axis are updated. 
   During the program check mode, a command is applied from the acceleration/deceleration process nullifying section  112  to the switching section  103   c  to cut off the connection between the first storage section  103   a  and the acceleration/deceleration processing section  104  and between the machine motion axis side and the first storage section  103   a.  When the connection between the first storage section  103   a  and the acceleration/deceleration processing section  104  is cut off by the switching section  103   c,  the first and second memories  103   a  and  103   b  are connected to each other and the axis motion amount held by the first storage section  103   a  is stored in the second storage section  103   b.  Accordingly, the axis motion amount calculated by the interpolation processing section  102  is thereafter also saved in the second storage section  103   b  and updated. The feedback amount is not fed back to the second storage section  103   b,  and therefore, the coordinates stored in the second storage section represent the provisional machine coordinates derived based on the program. 
   The motion area checking section  107  performs the stroke limit check based on the coordinates stored in the first and second memories  103   a  and  103   b  of the updating section  103 . 
     FIG. 5  illustrates an operating state during normal machining. In this operating state, the first storage section  103   a  updates the machine coordinates, which are the ordinary machine coordinates, based on the axis motion amount calculated by the interpolation processing section  102  and the feedback amount, and sends the updated machine coordinates, or the axis motion amount, to the acceleration/deceleration processing section  104 . 
     FIG. 6  illustrates an operating state in the program check mode. In this operation mode, the first storage section  103   a  does not update the machine coordinates stored therein. Instead, the first storage section sends the axis motion amount calculated by the interpolation processing section  102  to the second storage section  103   b,  which then updates the machine coordinates stored therein.