DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant's arguments regarding claims 1, 7 and 13 filed 12/16/2025 have been fully considered but they are not persuasive. As detailed in the rejections below, the breadth of the claim does not preclude the robot from having any program whatsoever while in standby state, and the claim language does not place any meaningful limitation on the term "standby state." The broadest reasonable interpretation of the claim encompasses a robot operating under some "standby" condition while waiting for further instructions. Sagasaki teaches these aspects.
Applicant’s arguments with respect to claim 6 have been considered but are moot due to the change in scope of the claim as a result of applicant’s amendments. As will be shown in the rejection to follow, Koyama teaches the newly claimed limitations.
Applicant’s amendments have overcome the rejections under 112(b). Additionally, Examiner withdraws the previous claim interpretation associated with the invocation of 112(f).
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claim(s) 1-3, 5, 7, 12, and 13 is/are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Sagasaki (US-20220011754-A1).
Claim 1
Sagasaki teaches
a server interface configured to communicate with at least one robot controller using wired or wireless communication;
(Sagasaki - [0060] … The input control unit 32 receives information input from the input operation unit 3X. The data setting unit 33 stores information received by the input control unit 32 into the storage unit 34. Thus, input information received by the input operation unit 3X is written into the storage unit 34 via the input control unit 32 and the data setting unit 33.)
EXAMINER NOTE: See fig. 2. The data setting unit (server interface) is connected to the robot controller and analysis processing unit (programmable logic controller) via the storage unit. See also figure 1. Wires are shown for communication paths.
a storage storing a plurality of first programs for controlling an operation of a robot, the plurality of first programs being executed by the at least one robot controller;
(Sagasaki - [0007] … The control computation unit includes a storage unit that stores the numerical control program including a first command, which is a command for the machine tool described in a first programming language, and a second command, which is a command for the robot described in the first programming language, and a conversion unit that converts the second command into a third command, which is a robot program used for controlling the robot.
[0077] … FIG. 3 illustrates the robot command list information 101, which is the information on the list of commands used in NC robot programs. In the robot command list information 101, G codes, which are commands used in NC robot programs, are associated with functions. The robot command list information 101 may be stored in the storage unit 34, or may be stored in a storage area other than the storage unit 34 in the numerical control device 1X.)
EXAMINER NOTE: The command list information stored in the storage unit comprises a plurality of robot programs (first programs)
and a server processor that outputs at least one of the plurality of first programs to a specific robot controller of the at least one robot controller,
(Sagasaki - [0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X. The NC program number is written into the shared area 345 via the input control unit 32 and the data setting unit 33. Being triggered by a cycle start of the machine control panel or the like, upon reading the selected NC program number from the shared area 345, the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program. )
EXAMINER NOTE: The NC program (comprising a robot program and a machine tool program - i.e., first and second programs) selected by the user is sent to the analysis processing unit (programmable logic controller).
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of robot commands will be described later.)
EXAMINER NOTE: The analysis processing unit 37 (programmable logic controller) includes a robot command analyzing unit which sends commands to the robot control unit (robot controller).
the at least one of the plurality of first programs selected based on a request from a programmable logic controller capable of operating together with the specific robot controller
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. )
[0073] The program converting unit 414, which is a conversion unit, generates a robot program to be used for controlling the robot 60 by converting a command (a second command) defined in the coordinate system of the machine tool 70 into a command (a third command) defined in the coordinate system of the robot 60. The program converting unit 414 converts a program for the robot 60 in the NC programs into a robot program that can be interpreted by the robot controller 50X … The program converting unit 414 sends the robot program to the robot controller 50X.)
EXAMINER NOTE: The analysis processing unit (programmable logic controller) analyzes the NC program and sends the included robot commands to the robot controller.
Wherein the at least one of the plurality of first programs is output to the specific robot controller only when the specific robot controller is in a standby state awaiting program download
(Sagasaki - [0072] When performing a waiting process between the robot 60 and the machine tool 70, the NC command waiting unit 413 keeps commands for the robot 60 on standby until specific timing.
[0162] In addition, when a command (!1Ln: second standby command) to wait for the operation of the machine tool 70 appears in a command for the robot 60 during execution of the command for the robot 60, the NC command waiting unit 413 waits for the operation of the machine tool 70. In other words, the NC command waiting unit 413 keeps the operation of the robot 60 on standby until the operation (!2Ln) of the machine tool 70 associated with the second standby command is completed. As described above, when such a wait command as “!1Ln” and “!2Ln” is present, the control computation unit 2X synchronizes the machine tool 70 and the robot 60 with each other.)
EXAMINER NOTE: The robot is in a standby state while waiting for the command from the NC command waiting unit. Note that the breadth of the claim does not preclude the robot from having any program whatsoever while in standby state, and the claim language does not place any meaningful limitation on the term "standby state." The broadest reasonable interpretation of the claim encompasses a robot operating under some "standby" condition while waiting for further instructions.
Claim 2
Sagasaki teaches the limitations of claim 1 as outlined above. Sagasaki further teaches
wherein the server processor generates, based on the at least one of the plurality of first programs, a second program to be executed by the programmable logic controller so that the programmable logic controller operates together with the specific robot controller.
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
EXAMINER NOTE: The NC program includes both robot and machine commands which are coordinated (correspond to one another). As stated above in the rejection of the independent claim, the user selects the NC program, so the second program is generated as a result of that selection, which includes the first program. Therefore, the second program is generated based on the selection of the first program.
Claim 3
Sagasaki teaches the limitations of claim 2 as outlined above. Sagasaki further teaches
wherein the server processor generates the second program such that the second program includes a command for controlling at least a device or a jig that operates together with the robot.
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
Claim 5
Sagasaki teaches the limitations of claim 2 as outlined above. Sagasaki further teaches
wherein the programmable logic controller installs the second program on the programmable logic controller at a certain time so that the certain at least one robot controller on which the at least one first program is installed and the programmable logic controller operate together.
(Sagasaki - [0187] … In addition, because robot programs are described in NC programs, synchronous operations of the machine tool 70 and the robot 60 at specific timings (at activation of the robot 60, during the operation of the robot 60, and at completion of the operation of the robot 60) can be easily programmed, which improves the work efficiency such as setups.
[0189] As described above, according to the first embodiment, commands for the robot 60 in NC programs are converted into robot programs on the basis of the association information 102, which is the association between NC programs and robot programs, and this enables control of the robot 60 by using NC programs.
[0190] In addition, because the numerical control device 1X includes the robot command waiting unit 381 and the NC command waiting unit 413, the machine tool 70 and the robot 60 can be synchronized with each other even when both of an NC program and a robot program are executed at the same time.)
Claim 7
Sagasaki teaches
A user interface that receives a user input;
(Sagasaki - [0043] The input operation unit 3X is a device with which a user operates the CNC unit 6 and the robot controller 50X. The input operation unit 3X includes an input/output unit 51, an emergency stop button 52, and a control panel 53. The input operation unit 3X operates the CNC unit 6 and the robot controller 50X by sending a signal associated with a user operation to the CNC unit 6 and the robot controller 50X.
[0056] The input operation unit 3X is means for inputting information to the control computation unit 2X. The input operation unit 3X is constituted by input means such as a keyboard, a button, or a mouse, to receive an input of a command or the like for the numerical control device 1X from a user, an NC program, a parameter, or the like, and inputs the received command, NC program, parameter, or the like to the control computation unit 2X.)
a server interface configured to communicate with at least one robot controller capable of controlling at least one robot and at least one programmable logic controller capable of operating together with the at least one robot controller;
(Sagasaki - [0060] … The input control unit 32 receives information input from the input operation unit 3X. The data setting unit 33 stores information received by the input control unit 32 into the storage unit 34. Thus, input information received by the input operation unit 3X is written into the storage unit 34 via the input control unit 32 and the data setting unit 33.)
EXAMINER NOTE: See fig. 2. The data setting unit (server interface) is connected to the robot controller and analysis processing unit (programmable logic controller) via the storage unit.
a storage storing at least one first program executable by the at least one robot controller and at least one second program executable by the at least one programmable logic controller;
(Sagasaki - [0007] … The control computation unit includes a storage unit that stores the numerical control program including a first command, which is a command for the machine tool described in a first programming language, and a second command, which is a command for the robot described in the first programming language, and a conversion unit that converts the second command into a third command, which is a robot program used for controlling the robot.
[0077] … FIG. 3 illustrates the robot command list information 101, which is the information on the list of commands used in NC robot programs. In the robot command list information 101, G codes, which are commands used in NC robot programs, are associated with functions. The robot command list information 101 may be stored in the storage unit 34, or may be stored in a storage area other than the storage unit 34 in the numerical control device 1X.)
EXAMINER NOTE: The NC program contains robot commands (first program) and machine tool commands (second program).
and a server processor connected to the user interface, the server interface, and the storage,
(Sagasaki - [0056] The input operation unit 3X is means for inputting information to the control computation unit 2X. The input operation unit 3X is constituted by input means such as a keyboard, a button, or a mouse, to receive an input of a command or the like for the numerical control device 1X from a user, an NC program, a parameter, or the like, and inputs the received command, NC program, parameter, or the like to the control computation unit 2X.
[0060] … The input control unit 32 receives information input from the input operation unit 3X. The data setting unit 33 stores information received by the input control unit 32 into the storage unit 34. Thus, input information received by the input operation unit 3X is written into the storage unit 34 via the input control unit 32 and the data setting unit 33.)
EXAMINER NOTE: See fig. 2. The input control unit 32 (server processor) is connected the storage unit (storage), data setting unit (server interface), and the input operation unit (user interface).
wherein the server processor outputs a first program of the at least one first program to a robot controller of the at least one robot controller,
(Sagasaki - [0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X. The NC program number is written into the shared area 345 via the input control unit 32 and the data setting unit 33. Being triggered by a cycle start of the machine control panel or the like, upon reading the selected NC program number from the shared area 345, the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program. )
EXAMINER NOTE: The NC program (comprising a robot program and a machine tool program - i.e., first and second programs) selected by the user is sent to the analysis processing unit (programmable logic controller).
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of robot commands will be described later.)
EXAMINER NOTE: The analysis processing unit 37 (programmable logic controller) includes a robot command analyzing unit which sends commands to the robot control unit (robot controller).
the first program of the at least one first program corresponding to a second program of the at least one second program selected based on the user input,
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
EXAMINER NOTE: The NC program includes both robot and machine commands which are coordinated (correspond to one another).
(Sagasaki - [0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X.)
EXAMINER NOTE: Programs are selected by a user (based on user input)
the robot controller of the at least one robot controller being operable together with a programmable logic controller of the at least one programmable logic controller that is to execute the second program.
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of robot commands will be described later.)
EXAMINER NOTE: The analysis processing unit 37 (programmable logic controller) includes a robot command analyzing unit which sends commands to the robot control unit (robot controller).
(Sagasaki - [0064] … the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program.
[0065] When an M code or a T code is included in the analyzed line, the analysis processing unit 37 sends the analysis result to the PLC 36 … The PLC 36 executes machine control associated with the M code. When the execution is completed, a result indicating completion of the M code is written into the storage unit 34 via the control signal processing unit 35X. The interpolation processing unit 38 refers to the execution result written in the storage unit 34.)
EXAMINER NOTE: The PLC and analysis processing unit together fulfil the role of the programmable logic controller by analyzing and executing the machine commands.
Wherein the first program is output to the robot controller only when the robot controller is in a standby state awaiting program download
(Sagasaki - [0072] When performing a waiting process between the robot 60 and the machine tool 70, the NC command waiting unit 413 keeps commands for the robot 60 on standby until specific timing.
[0162] In addition, when a command (!1Ln: second standby command) to wait for the operation of the machine tool 70 appears in a command for the robot 60 during execution of the command for the robot 60, the NC command waiting unit 413 waits for the operation of the machine tool 70. In other words, the NC command waiting unit 413 keeps the operation of the robot 60 on standby until the operation (!2Ln) of the machine tool 70 associated with the second standby command is completed. As described above, when such a wait command as “!1Ln” and “!2Ln” is present, the control computation unit 2X synchronizes the machine tool 70 and the robot 60 with each other.)
EXAMINER NOTE: The robot is in a standby state while waiting for the command from the NC command waiting unit. Note that the breadth of the claim does not preclude the robot from having any program whatsoever while in standby state, and the claim language does not place any meaningful limitation on the term "standby state." The broadest reasonable interpretation of the claim encompasses a robot operating under some "standby" condition while waiting for further instructions.
Claim 12
Sagasaki teaches the limitations of claim 1 as outlined above. Sagasaki further teaches
the program management apparatus according to claim 1; the robot controller; and the programmable logic controller.
(Sagasaki - [0039] The control system 100A includes the machine tool 70, a numerical control device 1X, a robot controller 50X, and the robot 60. The numerical control device 1X includes a computer numerical control (CNC) unit 6, and an input operation unit 3X.)
EXAMINER NOTE: See rejection of claim 1 regarding the program management apparatus.
Claim 13
Sagasaki teaches
storing a plurality of first programs to be executed by at least one robot controller that controls an operation of a robot;
(Sagasaki - [0007] … The control computation unit includes a storage unit that stores the numerical control program including a first command, which is a command for the machine tool described in a first programming language, and a second command, which is a command for the robot described in the first programming language, and a conversion unit that converts the second command into a third command, which is a robot program used for controlling the robot.
[0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X. The NC program number is written into the shared area 345 via the input control unit 32 and the data setting unit 33. Being triggered by a cycle start of the machine control panel or the like, upon reading the selected NC program number from the shared area 345, the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program.)
EXAMINER NOTE: The NC program (comprising a robot program and a machine tool program - i.e., first and second programs) selected by the user is sent to the analysis processing unit (programmable logic controller).
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of robot commands will be described later.)
EXAMINER NOTE: The analysis processing unit 37 (programmable logic controller) includes a robot command analyzing unit which sends commands to the robot control unit (robot controller).
and outputting at least one of the plurality of first programs selected by a programmable logic controller … to one of the at least one robot controller selected by the programmable logic controller.
(Sagasaki - [0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X. The NC program number is written into the shared area 345 via the input control unit 32 and the data setting unit 33. Being triggered by a cycle start of the machine control panel or the like, upon reading the selected NC program number from the shared area 345, the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program.)
EXAMINER NOTE: The NC program (comprising a robot program and a machine tool program - i.e., first and second programs) selected by the user is sent to the analysis processing unit (programmable logic controller).
… programmable logic controller capable of cooperating with the at least one robot controller
EXAMINER NOTE: See above. Analysis processing unit sends commands to the robot controller (cooperates with the robot controller)
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 4, 6, and 8-11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Sagasaki in view of Koyama (US-5555179-A).
Claim 4
Sagasaki teaches the limitations of claim 2 as outlined above. Sagasaki may not explicitly teach the following limitations in combination. However, Koyama teaches
wherein the programmable logic controller obtains, from a terminal apparatus, a correspondence between an input/output port of the certain programmable logic controller and an input/output port of the certain at least one robot controller
(Koyama - [col 4, ln 40-47] (3) FIG. 1 shows an embodiment of a control apparatus for an FA system according to the present invention. In FIG. 1, numeral 10 denotes a cell including a robot 8 and various peripheral machines (or devices) 9a and 9b to form an FA system. Numeral 1 denotes a cell control program editing unit. The cell control program editing unit 1 is used by the operator on the screen of a display device to edit a cell control program 2 in a diagrammatic form using a Petri net.
[col 4, ln 63 thru col 5, ln 12] (5) The computing unit 3c first stores the cell control program 2 in the cell control program storage 3a. Then in accordance with a conversion procedure stored in the conversion procedure storage 3b, the computing unit 3c separates and extracts sequence control data and an I/O control instructions from the cell control program 2 and stores them in the sequence control data storage 3d and the I/O control instruction storage 3e, respectively. On the basis of these types of extracted information, the computing unit 3c monitors I/O states of the robot 8 and the peripheral machines 9a and 9b. Concurrently, the computing unit 3c generates a sequence control program 4 which describes processing for performing control of operation sequence of machines included in the cell 10, i.e., the robot 8 and the peripheral machines 9a and 9b, and for controlling the I/O connected to these machines and processing for managing transition of the operation mode of entire cell 10.
[col 14, ln 58-59] (72) Peripheral machines or devices (I/O) 65 and 66 connected to individual robot controllers 63 and 64 are controlled by I/O control commands in the robot control program 5 interpreted and executed in individual robot controllers 63 and 64.)
EXAMINER NOTE: Cell control editing unit corresponds to a terminal apparatus. The cell control editing unit is used to edit the program, which is used by the computing unit to obtain I/O control instructions (correspondence between input/output ports of the components)
and generates the second program on a basis of the correspondence.
(Koyama - [col 2, ln 51-61] (12) The cell control program has information about a working sequence of a plurality of working machines, information about control of inputs and outputs of a plurality of working machines, information about operation control of the automated machine, and information about synchronization of operations of the working machines. On the basis of the extracted information, a sequence control program, in which control of the working sequence of a plurality of working machines and control of inputs and outputs of a plurality of working machines are described, is generated by the computer. )
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify Sagasaki’s programming system with Koyama’s suggestion to obtain correspondence between I/O ports of the various controllers and generate programs based on this correspondence in order to increase efficiency and decrease effort on the part of the user.
(Koyama - [col 2, ln 21-35] (9) An object of the present invention is to provide a control method, and apparatus, whereby when a unit element (hereafter referred to as cell) including one set of a plurality of working machines is to be constructed to form an FA system, programs for controlling some works including synchronization of operations of the working machines included in the cell are unified as a cell control program, the user can describe directly the work specifications of the cell as a whole without being conscious of the configuration of the control device and without the necessity of producing separate programs by using different programming languages for respective control devices and learning several programming languages, and hence reduction of development man-hour and improvement of development efficiency can be achieved.)
Claim 6
Sagasaki teaches
A user interface that receives a user input;
(Sagasaki - [0043] The input operation unit 3X is a device with which a user operates the CNC unit 6 and the robot controller 50X. The input operation unit 3X includes an input/output unit 51, an emergency stop button 52, and a control panel 53. The input operation unit 3X operates the CNC unit 6 and the robot controller 50X by sending a signal associated with a user operation to the CNC unit 6 and the robot controller 50X.
[0056] The input operation unit 3X is means for inputting information to the control computation unit 2X. The input operation unit 3X is constituted by input means such as a keyboard, a button, or a mouse, to receive an input of a command or the like for the numerical control device 1X from a user, an NC program, a parameter, or the like, and inputs the received command, NC program, parameter, or the like to the control computation unit 2X.)
a server interface configured to communicate with at least one robot controller capable of controlling at least one robot and at least one programmable logic controller capable of operating together with the at least one robot controller;
(Sagasaki - [0060] … The input control unit 32 receives information input from the input operation unit 3X. The data setting unit 33 stores information received by the input control unit 32 into the storage unit 34. Thus, input information received by the input operation unit 3X is written into the storage unit 34 via the input control unit 32 and the data setting unit 33.)
EXAMINER NOTE: See fig. 2. The data setting unit (communicator) is connected to the robot controller and analysis processing unit (programmable logic controller) via the storage unit.
a storage storing at least one first program executable by the at least one robot controller and at least one second program executable by the at least one programmable logic controller;
(Sagasaki - [0007] … The control computation unit includes a storage unit that stores the numerical control program including a first command, which is a command for the machine tool described in a first programming language, and a second command, which is a command for the robot described in the first programming language, and a conversion unit that converts the second command into a third command, which is a robot program used for controlling the robot.
[0077] … FIG. 3 illustrates the robot command list information 101, which is the information on the list of commands used in NC robot programs. In the robot command list information 101, G codes, which are commands used in NC robot programs, are associated with functions. The robot command list information 101 may be stored in the storage unit 34, or may be stored in a storage area other than the storage unit 34 in the numerical control device 1X.)
EXAMINER NOTE: The NC program contains robot commands (first program) and machine too commands (second program).
(Sagasaki - [0064] … the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program.
[0065] When an M code or a T code is included in the analyzed line, the analysis processing unit 37 sends the analysis result to the PLC 36 … The PLC 36 executes machine control associated with the M code. When the execution is completed, a result indicating completion of the M code is written into the storage unit 34 via the control signal processing unit 35X. The interpolation processing unit 38 refers to the execution result written in the storage unit 34.)
EXAMINER NOTE: The PLC and analysis processing unit together fulfil the role of the cooperation controller by analyzing and executing the machine commands.
and a server processor connected to the user interface, the server interface, and the storage,
(Sagasaki - [0056] The input operation unit 3X is means for inputting information to the control computation unit 2X. The input operation unit 3X is constituted by input means such as a keyboard, a button, or a mouse, to receive an input of a command or the like for the numerical control device 1X from a user, an NC program, a parameter, or the like, and inputs the received command, NC program, parameter, or the like to the control computation unit 2X.
[0060] … The input control unit 32 receives information input from the input operation unit 3X. The data setting unit 33 stores information received by the input control unit 32 into the storage unit 34. Thus, input information received by the input operation unit 3X is written into the storage unit 34 via the input control unit 32 and the data setting unit 33.)
EXAMINER NOTE: See fig. 2. The input control unit 32 (server processor) is connected the storage unit (storage), data setting unit (server interface), and the input operation unit (user interface).
wherein the server processor outputs a specific second program of the at least one second program to a specific programmable logic controller of the at least one programmable logic controller,
(Sagasaki - [0064] An NC program is selected by a user by inputting an NC program number with the input operation unit 3X. The NC program number is written into the shared area 345 via the input control unit 32 and the data setting unit 33. Being triggered by a cycle start of the machine control panel or the like, upon reading the selected NC program number from the shared area 345, the analysis processing unit 37 reads the selected NC program from the NC program storage area 343 and performs an analysis process on each block (each line) of the NC program. )
EXAMINER NOTE: The NC program (comprising a robot program and a machine tool program - i.e., first and second programs) selected by the user is sent to the analysis processing unit (cooperation controller).
the specific second program corresponding to a specific first program of the at least one first program selected based on the user input
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
EXAMINER NOTE: The NC program includes both robot and machine commands which are coordinated (correspond to one another).
and the specific programmable logic controller being operable together with a specific robot controller of the at least one robot controller that is to execute the specific first program.
(Sagasaki - [0067] In addition, the analysis processing unit 37 includes a robot command analyzing unit 371. The robot command analyzing unit 371 is means for analyzing the operation of the connected robot 60. The robot command analyzing unit 371 analyzes a robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of robot commands will be described later.)
EXAMINER NOTE: The analysis processing unit 37 (cooperation controller) includes a robot command analyzing unit which sends commands to the robot control unit (robot controller).
Sagasaki alone may not explicitly teach the following limitations in combination. However, Koyama teaches
Wherein the server processor automatically generates the specific second program as a ladder program based on the specific first program,
(Koyama - [col 2, ln 46-61] (12) … From a cell control program, in which specifications of the work of the cell as a whole is described, input to the computer, information relating to working sequence of a plurality of working machines and information about control of inputs and outputs of a plurality of working machines are extracted by the computer. The cell control program has information about a working sequence of a plurality of working machines, information about control of inputs and outputs of a plurality of working machines, information about operation control of the automated machine, and information about synchronization of operations of the working machines. On the basis of the extracted information, a sequence control program, in which control of the working sequence of a plurality of working machines and control of inputs and outputs of a plurality of working machines are described, is generated by the computer. )
EXAMINER NOTE: The sequence control program (second program) is generated from the cell control program (first program).
(Koyama - [col 4, ln 20-24] FIG. 25 is a diagram showing an example of a sequence control program using a ladder diagram converted from the cell control program of FIG. 10 so as to correspond to the control apparatus of FIG. 24 according to the present invention;
EXAMINER NOTE: The sequence control program is generated as a ladder program.
wherein a relationship between transmitting and receiving of a signal in the ladder program is reversed from a corresponding relationship between transmitting and receiving of the signal in the specific first program.
(Koyama - [col 7, ln 66 thru col 8, ln 15] (23) FIG. 9 is a diagram showing the outline of a method for generating the cell control program 2 by using the data base of modules of an operation sequence. In a data base 101 of operation sequence modules, modules of operation sequences of general purpose devices are stored. By inputting cell configuration data 102, such as kinds of units forming the cell (ARM 001, ARM 002, UNIT 001) and information (for example, the local argument xlO0 in the module corresponds to the actual port XlO0) of assignment of control signals of actuators and sensor signals of the units to I/O ports, necessary modules are automatically called from the data base 101. Called modules 103a and 103b are displayed on the screen of the cell control program editing unit 1 in a diagrammatic form of a Petri net. By connecting state places to be synchronized via a synchronizing place 103c, the modules 103a and 103b are linked and a cell control program 103 according to the cell configuration data 102 can be generated.)
PNG
media_image1.png
773
521
media_image1.png
Greyscale
(Koyama - [col 14, ln 63 thru col 15, ln 9] - (73) FIG. 25 shows the sequence control program 4 using a ladder diagram obtained by converting the cell control program 2 of FIG. 10 so as to correspond to the control apparatus of FIG. 24. FIGS. 26 and 27 show the robot control program 5.
(74) Input contacts X001 and X011 of the ladder diagram of FIG. 25 correspond to output No. 1 (O1) of the controller 63 for robot No. 1 and output No. 1 (O1) of the controller 64 for robot No. 2, respectively.
(75) As for output contacts of FIG. 25, Y000 and Y001 correspond to input No. 0 (I0) and No. 1 (I1) of the controller for robot No. 1, respectively. Y011 and Y012 correspond to input No. 0 (I0) and No. 1 (I1) of the controller for robot No. 2, respectively.)
PNG
media_image2.png
716
502
media_image2.png
Greyscale
EXAMINER NOTE: See Figs. 9 and 25. The module associates commands of inputs (outputs) with ports such that a command in the first program corresponds to a port associated with outputs (inputs) in the ladder program.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify Sagasaki’s programming system with Koyama’s suggestion to obtain correspondence between I/O ports of the various controllers and generate programs based on this correspondence in order to increase efficiency and decrease effort on the part of the user.
(Koyama - [col 2, ln 21-35] (9) An object of the present invention is to provide a control method, and apparatus, whereby when a unit element (hereafter referred to as cell) including one set of a plurality of working machines is to be constructed to form an FA system, programs for controlling some works including synchronization of operations of the working machines included in the cell are unified as a cell control program, the user can describe directly the work specifications of the cell as a whole without being conscious of the configuration of the control device and without the necessity of producing separate programs by using different programming languages for respective control devices and learning several programming languages, and hence reduction of development man-hour and improvement of development efficiency can be achieved.)
Claim 8
The combination of Sagasaki and Koyama teaches the limitations of claim 6 as outlined above. Sagasaki further teaches
wherein the server processor generates, based on the specific first program, a second program to be executed by the specific programmable logic controller so that the specific programmable logic controller operates together with the specific robot controller.
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
EXAMINER NOTE: The NC program includes both robot and machine commands which are coordinated (correspond to one another). As stated above in the rejection of the independent claim, the user selects the NC program, so the second program is generated as a result of that selection, which includes the first program. Therefore, the second program is generated based on the selection of the first program.
Claim 9
The combination of Sagasaki and Koyama teaches the limitations of claim 8 as outlined above. Sagasaki further teaches
wherein the controller generates the second program such that the second program includes a command for controlling at least a device or a jig that operates together with the at least one robot.
(Sagasaki - [0148] A first system of the NC program 501 is an NC program describing the operation of the machine tool 70, and includes commands for causing the machine tool 70 to operate. A second system of the NC program 501 is an NC program (NC robot program) describing the operation of the robot 60, and includes robot commands for causing the robot 60 to operate. The first system and the second system can make the machine tool 70 and the robot 60 operate while providing coordination (synchronization) between the operation of the machine tool 70 and the operation of the robot 60.)
Claim 10
The combination of Sagasaki and Koyama teaches the limitations of claim 8 as outlined above. Sagasaki alone may not explicitly teach the following limitations in combination. However, Koyama teaches
wherein the server processor obtains, from a terminal apparatus, a correspondence between an input/output port of the specific programmable logic controller and an input/output port of the specific robot controller
(Koyama - [col 4, ln 40-47] (3) FIG. 1 shows an embodiment of a control apparatus for an FA system according to the present invention. In FIG. 1, numeral 10 denotes a cell including a robot 8 and various peripheral machines (or devices) 9a and 9b to form an FA system. Numeral 1 denotes a cell control program editing unit. The cell control program editing unit 1 is used by the operator on the screen of a display device to edit a cell control program 2 in a diagrammatic form using a Petri net.
[col 4, ln 63 thru col 5, ln 12] (5) The computing unit 3c first stores the cell control program 2 in the cell control program storage 3a. Then in accordance with a conversion procedure stored in the conversion procedure storage 3b, the computing unit 3c separates and extracts sequence control data and an I/O control instructions from the cell control program 2 and stores them in the sequence control data storage 3d and the I/O control instruction storage 3e, respectively. On the basis of these types of extracted information, the computing unit 3c monitors I/O states of the robot 8 and the peripheral machines 9a and 9b. Concurrently, the computing unit 3c generates a sequence control program 4 which describes processing for performing control of operation sequence of machines included in the cell 10, i.e., the robot 8 and the peripheral machines 9a and 9b, and for controlling the I/O connected to these machines and processing for managing transition of the operation mode of entire cell 10.
[col 14, ln 58-59] (72) Peripheral machines or devices (I/O) 65 and 66 connected to individual robot controllers 63 and 64 are controlled by I/O control commands in the robot control program 5 interpreted and executed in individual robot controllers 63 and 64.)
EXAMINER NOTE: Cell control editing unit corresponds to a terminal apparatus. The cell control editing unit is used to edit the program, which is used by the computing unit to obtain I/O control instructions (correspondence between input/output ports of the components)
and generates the second program based on the correspondence.
(Koyama - [col 2, ln 51-61] (12) The cell control program has information about a working sequence of a plurality of working machines, information about control of inputs and outputs of a plurality of working machines, information about operation control of the automated machine, and information about synchronization of operations of the working machines. On the basis of the extracted information, a sequence control program, in which control of the working sequence of a plurality of working machines and control of inputs and outputs of a plurality of working machines are described, is generated by the computer. )
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify Sagasaki’s programming system with Koyama’s suggestion to obtain correspondence between I/O ports of the various controllers and generate programs based on this correspondence in order to increase efficiency and decrease effort on the part of the user.
(Koyama - [col 2, ln 21-35] (9) An object of the present invention is to provide a control method, and apparatus, whereby when a unit element (hereafter referred to as cell) including one set of a plurality of working machines is to be constructed to form an FA system, programs for controlling some works including synchronization of operations of the working machines included in the cell are unified as a cell control program, the user can describe directly the work specifications of the cell as a whole without being conscious of the configuration of the control device and without the necessity of producing separate programs by using different programming languages for respective control devices and learning several programming languages, and hence reduction of development man-hour and improvement of development efficiency can be achieved.)
Claim 11
The combination of Sagasaki and Koyama teaches the limitations of claim 8 as outlined above. Sagasaki further teaches
wherein the controller installs the second program on the specific programmable logic controller at a certain time so that specific robot controller on which the at least one first program is installed and the specific programmable logic controller operate together.
(Sagasaki - [0187] … In addition, because robot programs are described in NC programs, synchronous operations of the machine tool 70 and the robot 60 at specific timings (at activation of the robot 60, during the operation of the robot 60, and at completion of the operation of the robot 60) can be easily programmed, which improves the work efficiency such as setups.
[0189] As described above, according to the first embodiment, commands for the robot 60 in NC programs are converted into robot programs on the basis of the association information 102, which is the association between NC programs and robot programs, and this enables control of the robot 60 by using NC programs.
[0190] In addition, because the numerical control device 1X includes the robot command waiting unit 381 and the NC command waiting unit 413, the machine tool 70 and the robot 60 can be synchronized with each other even when both of an NC program and a robot program are executed at the same time.)
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAMES MILLER WATTS whose telephone number is (703)756-1249. The examiner can normally be reached 7:30-5:30 M-TH.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Adam Mott can be reached at 571-270-5376. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JAMES MILLER WATTS III/Examiner, Art Unit 3657
/ADAM R MOTT/Supervisory Patent Examiner, Art Unit 3657