NUMERICAL CONTROL SYSTEM

Abstract: A numerical control system which cannot display or correct a user's program or subprogram unless a registered cryptograph is input and which includes a bubble memory (101) for storing in advance a cryptograph, a semiconductor memory (102) accessible at high speed to be transferred with a user's macro or subprogram from the memory (101) after a power source is applied, a processor (103), and MDI (105), a register (106) for storing a registered cryptograph stored in advance in the memory (101) after the power source is thrown, a register (107) for storing a cryptograph inputted from the MDI (105), a comparator (108) for discrimi­ nating whether or not the cryptographs stored in the regis­ ters (106), (107) are coincident, and a display unit (110). Thus, an end user employing this numerical control device cannot observe the content ot the user's macro or subpro­ gram; consequently, reuse by unauthorized personnel is prevented. The stored state of the user's macro and subpro­ gram can be protected from being destroyed, provided that the number which coincides with the registered number is not input.

Description: DESCRIPTION NUMERICAL CONTROL SYSTEM Technical Field This invention relates to a numerical control system and, more particularly, to a numerical control system well-suited for application to a numerical control device for performing machining or processing using a subprogram or a so-called "user macro". Background Art With the development and greater economy of microcomputers and minicomputers, it has become possible to make use of computer numerical control devices, or CNCs, in which a micro- or minicomputer is utilized as the operational control unit. These CNCs make it possible to change an NC function by changing the internal control program, and are advantageous in that they provide faster operation and high precision. A numerical control device (referred to as an NC) generally executes numerical control processing on the basis of a command program specified by a paper tape or the like, and causes machining to be performed as commanded by driving a machine tool in accordance with the results of processing. This is referred to as the tape mode. Recent NCs include a processor (CPU), a control program memory and a data memory, and thus have the construction of a computer. They are so adapted that the processor executes predetermined numerical control processing on the basis of a control program and NC program to effect the control of a machine tool. In an NC having the construction of a computer (referred to as a computer NC hereinafter), an operating method that has won popularity is a so-called memory mode method for facilitating editing such as NC program modification, addition and deletion, or for achieving processing at higher speeds. In the memory mode operating method, a variety of NC programs are stored beforehand in an internal memory and, in actual processing for machining control or the like, the processing is performed by reading predetermined NC programs out of the memory in successive fashion. In instances where there is a fixed machining sequence or a shape produced by repeating the same pattern when carrying out machining in the abovedescribed tape mode and memory mode operating methods, a system is available wherein the sequence or shape is stored in the memory beforehand as a subprogram, a call instruction for calling a predetermined subprogram is inserted in the NC program, and the predetermined subprogram is called when required to execute numerical control. Using the subprogram method is convenient since the NC program can be greatly simplified. A processing method employing a user macro also is available. A user macro allows the execution of predetermined processing that is based on the status of the machine tool or numerical control device. Specifi cally, the conventional command program is made up of move commands, speed commands, miscellaneous function instructions specifying predetermined machine actions for a machine tool, S-function instructions specifying spindle speed, T-function instructions specifying tool exchange, and preparatory function instructions. Instructions for executing processing based on the status of the machine tool or NC cannot be inserted in the conventional NC program. Recently, however, there is growing demand for improvement in NC function and a need for a capability wherein processing, in accordance with the status of the machine tool or NC, can be commanded from the NC program. In addition, though the software for a computer NC is designed for standard machine tool control, there are cases where special machine tool control is necessary depending upon the type of machine tool or upon the particular user, even for machine tools of the same kind. Thus there is requirement for allowing special processing, tailored to the user's needs, to be instructed by means of the NC program without effecting any change in software. For the foregoing reasons, a control system based on a user macro has become available for use. With a user macro, a certain function composed of a group of instructions is stored in memory beforehand in the manner of a subprogram, and a call instruction for calling the user macro from memory is inserted in the NC program, whereby a predetermined user macro may be called from memory when required to execute numerically ccntrolled processing. Thus, recent NCs usually rely upon a memory mode operating method, and those that possess subprogram and user macro functions are increasing in number. The subprograms and user macros are prepared by machine makers (intermediate users) and are then stored in the internal memory of the NC. The end user need not have detailed knowledge of the subprogram or user macro content, but need only know the method of putting it to use. The creation of subprograms and user macros requires considerable labor and depends largely on the know-how of the intermediate user. It is generally desirable, therefore, that the content of a subprogram or user macro not be disclosed publically. Another consideration is that an operating error on the part of the end user can destroy the subprogram or user macro. Since reproduction of the program or macro is extremely difficult, the stored data must be sufficiently protected against such destruction. Accordingly, an object of the present invention is to provide a numerical control system capable of preventing both the disclosure (display) of user macros and subprograms and the accidental destruction of previously stored user macros and subprograms. Disclosure of the Invention According to the present invention, in a numerical control system for performing machining or processing through use of a subprogram or user macro, a secret code is stored beforehand in a non-volatile memory within a numerical control device, with the arrangement being such that the user macro or subprogram cannot be displayed or revised barring the input of the secret code. Through such an arrangement, the end user is not capable of viewing the user macro or subprogram content without entering a code that agrees with the stored secret code, and therefore may not divulge such contents to other parties. Furthermore, so long as there is no entry of the code agreeing with the secret code, the state in which the user macro or subprogram is stored is protected so that the macro or program cannot be destroyed. Brief Description of the Drawings Fig. 1 is a block diagram of a computer numerical control device, or CNC, to which the present invention can be applied; Fig. 2 is an explanatory view of an NC program which includes a user macro call instruction; and Fig. 3 is a block diagram according to the present invention. Best Mode for Carrying Out the Invention Fig. 1 is a block diagram of a CNC to which the present invention can be applied. In Fig. 1, numeral 21 denotes an NC command tape bearing a punched NC command program, and 22 denotes a user macro command tape bearing one or a plurality of user macros. Each user macro consists of at least (1) a macro identification (09001, by way of example) and (2) an instruction using system variables, described below. Also, by way of example, M99 * (where * means "end of block" and M99 means the end of the macro) is programmed to follow the abovementioned instruction. The following is an example of a user macro, where #i (i = 3001, 20) represents a system variable: 09001 * &num;3001 = 0 * WHILE 1%3001 LE #201 DO1 END 1 * M99* The command tape 21, in addition to ordinary commands, is also programmed to include a user macro call instruction UMC, as shown in Fig. 2, wherein a predetermined user macro is called when required to permit processing in accordance with said user macro. The use macro call instruction includes, by way of example, at least G65 (a G-function instruction for calling the user macro), and Pun,..., (where P is a word address indicating that n...D is a macro identification, and ...n is the macro identification). Numeral 23 denotes a paper tape reader for reading the commands punched in the paper tapes 21, 22. A memory 24 stores the user macros and NC command program. This memory stores a plurality of user macros read from the user macro commanded tape 22, and the NC program read from the NC command tape 21. Numeral 25 denotes an input and discrimination circuit which, when the user macros and NC program are stored, is operable to transfer the information read in by the tape reader 23 to the memory 24 and to store the information there. When a command in the NC program read from the memory at the time of operation is an ordinary command, the circuit 25 sends this command to a subsequent unit for ordinary processing. When the command is a user macro call instruction, the circuit 24 reads the corresponding user macro out of the memory 24 and sends it to a subsequent unit for user macro processing. Numeral 26 designates an ordinary processing unit, and 27 a user macro processing unit, each of which units incorporate a processor, controller, memory and the like. It should be noted that these processing units may be constructed as one, common unit. Numeral 28 denotes a variable memory. When a plurality of system variables are prepared for converting the various states and status quantities of a machine or numerical control device into variable values, the variable values of the system variables are stored in memory 28. A system variable is represented by &num;i. It should be noted that i is a variable number by which various system variables may be distinguished. The variable memory 28 is so designed as to be capable of referring to both the ordinary processing unit 26 and user macro processing unit 27. It is also possible to change each of the variable values at will. Numeral 29 denotes an interface circuit for interfaciing inputs and outputs among a machine tool, display unit, taper puncher, etc. Numeral 30 denotes the machine tool, 31 a manual data input MDI, 32 the display unit, and 33 an operator's panel. Designated at 34 is an address conversion unit for converting a variable number i into an address for the variable memory 28. Let us assume that an NC command program and user macros have been stored in the memory 24. Predetermined NC processing is executed as each of the instructions making up the NC command program is read out of the memory 24 in successive fashion. When a command read in is an ordinary NC command, said NC command is applied as an input to the ordinary processing unit 26 whereby NC processing is executed in the same manner as the prior art. When the command is a macro call instruction, the input and discrimination circuit 25 calls the corresponding user macro from the memory 24 which stores the user macro and applies it as an input to the user macro processing unit 27 so that user macro processing may be performed. Fig. 3 is a block diagram illustrating an embodiment according to the present invention. In Fig. 3, numeral 101 denotes a bubble memory in which there are previously stored user macros, subprograms, an NC command program, such parameters as acceleration/deceleration time constants and rapid traverse speed, and a secret code described below. Numeral 102 denotes a quick-access semiconductor memory to which, e.g., user macros, subprograms, and an NC command program are transferred from the bubble memory following the introduction of electric power. Numeral 103 denotes a processor, 105 an MDI, and 106 a register for storing, following the introduction of electric power, a registered secret code stored previously in the bubble memory 101. Numeral 107 denotes a register for storing a secret code entered by the MDI, 108 a comparator for discriminating whether the secret codes stored in the registers 106, 1078 agree with each other, and 110 a display unit which includes a CRT 110a, a display memory 110b, a display control unit 110c, a character generator 110d, and a deflection control circuit 110e. Numeral 111 denotes an operator's panel on which there are mounted various control switches such as a mode selection switch, and various buttons such as a cycle start button. When electric power is introduced from the power supply, user macros, subprograms, an NC program, etc., are transferred to the semiconductor memory 102, while the stored secret code is transferred to the register 106. It should be noted that the intermediate user stores the secret code in the bubble memory 101 beforehand, and that the instructions in the user macros and subprograms will not be displayed by the display unit 110 as long as the code entered by the MDI 105 fails to agree with the stored secret code. It goes without saying that the secret code itself is not displayed by the display unit 110.. When the mode selection switch on the operator1 s panel 111 is switched to the memory operation mode and the cycle start button on the operator's panel is depressed, the instructions in the NC command program are read into the processor 103 successively from the semiconductor memory 102, and NC processing begins. If a program display button among function buttons (not shown) on the MDI is depressed at this time, then, from the NC command program, there will be a display of the block currently being processed, or of instructions in a block whose processing has been completed and in a block subsequent thereto, or of a plurality of blocks including the block currently being processed. When a user macro call instruction or subprogram call instruction is called from the semiconductor memory 102, therefore, the instruction will be displayed on the CRT 110a of the display unit 110. The content of the user macro or subprogram will not be displayed, however, as long as there is no coincidence between the stored secret code and the code from the MDI 105. Specifically, the comparator 108 compares the contents of registers 106, 107 at all times and applies the result of the comparison to the processor 103. When this input to the processor 103 is a non-coincidence signal, therefore, the processor does not deliver the instructions constituting the user macro or subprogram to the display unit 110, so that the content thereof cannot be displayed. Only when the input signal is a coincidence signal will the instruction codes be delivered to the display unit 110 to be displayed on the CRT 110a along with the NC command program. Because the secret code will be known only to the intermediate user (machine maker), the end user will not be capable of entering the registered code from the MDI. Accordingly, when an end user is having NC processing performed, the contents of the user macros and subprograms are never displayed and, hence, are never divulged to the end user or to anyone else. The foregoing deals with the memory operation mode. Control is performed in the same manner, however, even in a case where the NC command program is to be edited or changed. More specifically, when the mode selection switch on the operator's panel 111 is placed in the EDIT mode and the program display button on the MDI is depressed, several blocks, including the current command program instructions, are displayed. If an UP button or DOWN button on the MDI is depressed under these conditions, then the processor 103 looks at the NC program in either the positive or negative direction starting from the current location of the semiconductor memory 102, and displays the contents of the NC program on the CRT 110a in successive fashion. The contents of the user macros or subprograms are not displayed, however, barring coincidence between the registered secret code and the code which enters from the MDI 105. In the editing mode, instructions in the NC command program may be deleted or changed, or instructions may be added. As long as the comparator 108 fails to produce a coincidence signal, however, the processor 103 protects the contents of the storage areas containing the user macros and subprograms and does not write new data into these storage areas. In consequence, the user macros and subprograms cannot be destroyed by operator error. According to the present invention as described hereinabove, in the absense of an input code which agrees with a registered secret code, an end user cannot see the contents of a user macro or subprogram so that these contents cannot be divulged to other parties. Also, the status of a stored user macro or subprogram is protected and beyond destruction as long as there is no input of a code agreeing with the registered secret code. According to the foregoing description, a single secret code is stored in a non-volatile memory (bubble memory) for all the user macros and subprograms. However, an arrangement may be adopted wherein a separate secret code is stored for each user macro and subprogram. Further, it has been described that the secret code is stored beforehand in the non-volatile memory. This may be done at the same time that the user macros or subprograms are stored. In addition, the content of the secret code, the method of comparing the secret code, and the method of storing the same are capable of being modified in various ways. Industrial Applicability As set forth hereinabove, it is possible to prevent user macros and subprograms from being divulged to the end user, and to prevent the accidental destruction of previously stored user macros and subprograms, etc. The invention therefore has great industrial applicability as it allows numerical control devices of the above type to operate in a reliable manner.

Claims: CLAIM: A numerical control system in which subprograms or user macros for predetermined machining or processing are previously stored in memory, call instructions for calling said user macros or subprograms are previously inserted in an NC program, and a predetermined user macro or subprogram is called when required for performing numerical control processing, characterized in that a secret code is stored beforehand in a non-volatile memory within a numerical control device, with the arrangement being such that the user macros or subprograms cannot be displayed or revised barring the input of the secret code.

Inventors: KIYA, NOBUYUKI, NOZAWA, RYOICHIRO
Applicants: FANUC LTD
Application year: 1982
Main classification: G05B19
IPC codes: G05B19, G06F21