DETAILED ACTION
This is the initial office action based on the application submitted on August 26, 2024.
Claims 1-6 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Claim Objections
Claim 5 is objected to because of the following informality:
“wherein the compiler comprising an optimization unit” should read “wherein the compiler comprises an optimization unit”.
Appropriate correction is required.
Specification
The title of the invention is not descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed.
The following title is suggested: SYSTEM PROGRAM OPTIMIZATION FOR NUMERICAL CONTROLLERS USING EXTERNAL INPUT CONSTANTS.
The disclosure is objected to because of the following informalities:
In paragraph [0011], “Figure 8 shows a configuration of a complier” should read “Figure 8 shows a configuration of a compiler”.
In paragraph [0024], “The lexical analyzation unit 15 is configured to breaks a source code string” should read “The lexical analyzation unit 15 is configured to break a source code string”.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitations use a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitations include:
“a constant value acquisition unit” in Claims 1, 2, and 5.
“a system program management unit” in Claim 3.
“a system program output unit” in Claim 3.
“a constant value setting unit” in Claim 5.
“a constant value output unit” in Claim 5.
Because these claim limitations are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, they are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have these limitations interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitations to avoid them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitations recite sufficient structure to perform the claimed function so as to avoid them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim 6 is rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claim 6 is directed to a storage medium. The broadest reasonable interpretation of a claim drawn to a storage medium typically covers forms of non-transitory tangible media and transitory propagating signals per se in view of the ordinary and customary meaning of a storage medium, particularly when the specification is silent. See MPEP § 2111.01. When the broadest reasonable interpretation of a claim covers a signal per se, the claim must be rejected under 35 US.C. § 101 as covering non-statutory subject matter. See In re Nuijten, 500 F.3d 1346, 1356-57 (Fed. Cir. 2007) (transitory embodiments are not directed to statutory subject matter) and Interim Examination Instructions for Evaluating Subject Matter Eligibility Under 35 U.S.C. § 101, Aug. 24, 2009; p. 2. Therefore, the claimed storage medium is ineligible subject matter under §101.
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.
Claims 1, 5, and 6 are rejected under 35 U.S.C. 103 as being unpatentable over Ookaze (US Patent Application Publication No. US 2016/0209835 A1) in view of Ji (US Patent Application Publication No. US 2015/0052507 A1).
Regarding Claim 1, Ookaze teaches:
A system program optimization device for managing a system program for a numerical controller, comprising (Ookaze, Claim 1, "A control system including an execution environment of control software … [system program]" Ookaze, Paragraph [0012], "Accordingly, an object of the present invention is to provide a control system having a function for optimizing control software of a numerical controller in accordance with a machining program [optimization device for managing a system program for a numerical controller]."):
[…] which is connected to the numerical controller; and (Ookaze, Paragraph [0036], "The control system in the present embodiment is configured of a server 100 in which the optimized application is provided, a numerical controller 200, a computer 300 equipped with CAD/CAM, and a server 400 that is an execution environment of the control software, which are connected to each other via the network (emphasis added).")
a compiler that translates source code of the system program into an object program that can be executed by the numerical controller (Ookaze, Paragraph [0041-0042], "The compiler 140 [a compiler] compiles the optimized source code 172 generated by the source code optimization unit 130 to generate an object file 174, and the linker 150 links the generated object file 174 to generate an optimized control software 176 [translates source code of the system program into an object program] (emphasis added). Then, the control software transfer unit 160 transfers the generated optimized control software 176 to the execution environment of the control software. The execution environment to be the destination of the control software, in accordance with a method of use of the control software 176, is the numerical controller 200 of the machine tool when the control software is directly executed by the numerical controller 200 [can be executed by the numerical controller], and is the server 400 in a case of a method for executing the control software 176 is on the network (emphasis added)."),
wherein the compiler comprises an optimization unit that optimizes the system program [...] (Ookaze, Paragraph [0040], "The source code optimization unit 130 reads a source code 170 of the control software stored in a memory (not illustrated), and applies the optimization processing described above to the source code to generate an optimized source code 172...")
Ookaze fails to teach:
a constant value acquisition unit that acquires a constant value set for an external input signal input from an external device [...]
[...] by using the constant value of the external input signal.
However, Ji teaches:
a constant value acquisition unit that acquires a constant value set for an external input signal input from an external device [...] (Ji, Paragraph [0053], "As shown in FIG. 4, the compiler 400 of the present embodiment can include: a could-be-constant variable determination means 401, which is configured to determine the could-be-constant variables in the application's source code; a constant variable obtaining means 402 [a constant value acquisition unit], which is configured to obtain the constant variables designated as final constant variables and values of the constant variables [that acquires a constant value set] using the could-be-constant variables determined in the could-be-constant variable determination means 401; and a compiling means 403, which is configured compile the application using the constant variables and their values (emphasis added)." Ji, Claim 8, "The method according to claim 1, wherein the obtaining of the constant variables designated as final constant variables and values of the constant variables using the could-be-constant variables comprises: reading an external configuration file describing the variables to be constant and their values [for an external input signal input from an external device] (emphasis added);" Ji, Paragraph [0003], "The external information may include, but is not limited to, execution environment variables (e.g., variables representing operation system level, etc.), command-line input from a user, an external configuration file of the application, etc.").
[...] by using the constant value of the external input signal (Ji, Paragraph [0063], "After the constant variable obtaining means 402 obtains the constant variables and their values, the compiling means 403 compiles the application using the obtained constant variables and their values (emphasis added)." Ji, Paragraph [0050], "Then, in step S230, the application is compiled using the constant variables and their values obtained in step S220. Since which variables in the application's source code are the constants have been already known, existing optimization methods such as constant folding, dead code elimination, etc. may be used during the compiling to remove the redundant branches of the branch selection statements (emphasis added).").
Ookaze and Ji are considered to be analogous to the claimed invention because they are in the same field of compiler optimization of software programs. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Ookaze to incorporate the teachings of Ji to have:
a constant value acquisition unit that acquires a constant value set for an external input signal input from an external device [...]
[...] by using the constant value of the external input signal.
The modification would have been obvious because Ji teaches obtaining constant variables and their corresponding values prior to compilation and compiling the application using those constant variables and values, thereby enabling compiler optimization such as constant folding and dead code elimination (Ji, Paragraph [0062-0063]). Thus, one of ordinary skill in the art would have been motivated to incorporate the constant-value compiler optimization of Ji into the source-code optimization and compilation process of Ookaze to optimize numerical-controller control software using known constants values before compilation, thereby decreasing the size of the executable file and increasing the overall performance of the application. (Ji, Paragraph [0005]).
Claim 6 is a storage medium claim corresponding to the system program optimization device claim hereinabove (Claim 1). Therefore, Claim 6 is rejected for the same reasons set forth in the rejection of Claim 1.
Regarding Claim 5, Ookaze teaches:
A system program optimization system, comprising (Ookaze, Paragraph [0036], "The control system in the present embodiment is configured of a server 100 in which the optimized application is provided, a numerical controller 200, a computer 300 equipped with CAD/CAM, and a server 400 that is an execution environment of the control software, which are connected to each other via the network."):
an information processing device, comprising (Ookaze, Paragraph [0025], "The optimized application can be in a server on a network as illustrated in FIG. 1, and also can be in a computer [an information processing device] connected to a numerical controller or a computer integrated with the numerical controller as illustrated in FIG. 2 (emphasis added).")
[...] which is connected to a numerical controller, and (Ookaze, Paragraph [0036], "The control system in the present embodiment is configured of a server 100 in which the optimized application is provided, a numerical controller 200, a computer 300 equipped with CAD/CAM, and a server 400 that is an execution environment of the control software, which are connected to each other via the network.")
a system program optimization device for managing a system program of a numerical controller, comprising (Ookaze, Paragraph [0037], “The server 100 includes a machining program reception unit 110, a use frequency calculation unit 120, a source code optimization unit 130 [system program optimization device], a compiler 140, a linker 150, and a control software transfer unit 160 (emphasis added).” Ookaze, Paragraph [0040], “The source code optimization unit 130 reads a source code 170 of the control software stored in a memory (not illustrated), and applies the optimization processing described above to the source code to generate an optimized source code 172… [managing a system program]” Ookaze, Paragraph [0042]. “The execution environment to be the destination of the control software, in accordance with a method of use of the control software 176, is the numerical controller 200 of the machine tool when the control software is directly executed by the numerical controller 200, and is the server 400 in a case of a method for executing the control software 176 is on the network [of a numerical controller].”)
a compiler that translates source code of the system program into an object program that can be executed by the numerical controller (Ookaze, Paragraph [0041-0042], "The compiler 140 [a compiler] compiles the optimized source code 172 generated by the source code optimization unit 130 to generate an object file 174, and the linker 150 links the generated object file 174 to generate an optimized control software 176 [translates source code of the system program into an object program] (emphasis added). Then, the control software transfer unit 160 transfers the generated optimized control software 176 to the execution environment of the control software. The execution environment to be the destination of the control software, in accordance with a method of use of the control software 176, is the numerical controller 200 of the machine tool when the control software is directly executed by the numerical controller 200 [can be executed by the numerical controller], and is the server 400 in a case of a method for executing the control software 176 is on the network (emphasis added)."),
wherein the compiler comprising an optimization unit that optimizes the system program [...] (Ookaze, Paragraph [0040], "The source code optimization unit 130 reads a source code 170 of the control software stored in a memory (not illustrated), and applies the optimization processing described above to the source code to generate an optimized source code 172...")
Ookaze fails to teach:
a constant value setting unit that accepts setting of a constant value for an external input signal input from an external device [...]
a constant value output unit that outputs the constant value to a system program optimization device; and
a constant value acquisition unit that acquires a constant value set for an external input signal input from the external device connected to the numerical controller, and
[…] by using the constant value of the external input signal.
However, Ji teaches:
a constant value setting unit that accepts setting of a constant value for an external input signal input from an external device [...] (Ji, Paragraph [0061], "In one embodiment, in the constant variable obtaining means 402, a presentation module 4021 [constant value setting unit] presents the determined could-be-constant variables to the developer of the application, for example, and an accepting module 4022 accepts the designation of the constant variables and their values in the could-be-constant variables [accepts setting of a constant value] (emphasis added)." Ji, Claim 8, "The method according to claim 1, wherein the obtaining of the constant variables designated as final constant variables and values of the constant variables using the could-be-constant variables comprises: reading an external configuration file describing the variables to be constant and their values [of a constant value for an external input signal input from an external device] (emphasis added);" Ji, Paragraph [0003], "The external information may include, but is not limited to, execution environment variables (e.g., variables representing operation system level, etc.), command-line input from a user, an external configuration file of the application, etc. (emphasis added)")
a constant value output unit that outputs the constant value to a system program optimization device; and (Ji, Paragraph [0060], "The could-be-constant variables determined by the could-be-constant variable determination means 401 are provided to the constant variable obtaining means 402." Ji, Paragraph [0063], "After the constant variable obtaining means 402 obtains the constant variables and their values, the compiling means 403 compiles the application using the obtained constant variables and their values. Since the compiling means 403 has already known which variables become the constants and the values of these constants, the compiling means 403 may use optimization methods such as constant folding, dead code elimination, etc. for compiling optimization.")
a constant value acquisition unit that acquires a constant value set for an external input signal input from the external device connected to the numerical controller, and (Ji, Paragraph [0053], "As shown in FIG. 4, the compiler 400 of the present embodiment can include: a could-be-constant variable determination means 401, which is configured to determine the could-be-constant variables in the application's source code; a constant variable obtaining means 402 [a constant value acquisition unit], which is configured to obtain the constant variables designated as final constant variables and values of the constant variables [that acquires a constant value set] using the could-be-constant variables determined in the could-be-constant variable determination means 401; and a compiling means 403, which is configured compile the application using the constant variables and their values (emphasis added)." Ji, Claim 8, "The method according to claim 1, wherein the obtaining of the constant variables designated as final constant variables and values of the constant variables using the could-be-constant variables comprises: reading an external configuration file describing the variables to be constant and their values [for an external input signal input from an external device] (emphasis added);" Ji, Paragraph [0003], "The external information may include, but is not limited to, execution environment variables (e.g., variables representing operation system level, etc.), command-line input from a user, an external configuration file of the application, etc.")
[…] by using the constant value of the external input signal (Ji, Paragraph [0063], "After the constant variable obtaining means 402 obtains the constant variables and their values, the compiling means 403 compiles the application using the obtained constant variables and their values (emphasis added)." Ji, Paragraph [0050], "Then, in step S230, the application is compiled using the constant variables and their values obtained in step S220. Since which variables in the application's source code are the constants have been already known, existing optimization methods such as constant folding, dead code elimination, etc. may be used during the compiling to remove the redundant branches of the branch selection statements (emphasis added).").
Ookaze and Ji are considered to be analogous to the claimed invention because they are in the same field of compiler optimization of software programs. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teachings of Ookaze to incorporate the teachings of Ji to have:
a constant value setting unit that accepts setting of a constant value for an external input signal input from an external device [...]
a constant value output unit that outputs the constant value to a system program optimization device; and
a constant value acquisition unit that acquires a constant value set for an external input signal input from the external device connected to the numerical controller, and
[…] by using the constant value of the external input signal.
The modification would have been obvious because Ji teaches obtaining constant variables and their corresponding values prior to compilation, including by reading an external configuration file describing variable to be constant and their values, and compiling the application using those obtained constant variables and values. Ji further teaches that, because the compiler already knows which variables become constants and their values, the compiler may perform optimization methods such as constant folding and dead code elimination during compilation (Ji, Paragraph [0062-0063]). Thus, one of ordinary skill in the art would have been motivated to incorporate Ji’s externally supplied constant-value acquisition and compiler optimization techniques into the distributed optimization system of Ookaze so that externally provided constant values received by an information processing device are supplied to the numerical-controller software optimization device for compile-time optimization, thereby decreasing the size of the executable file and increasing the overall performance of the application. (Ji, Paragraph [0005]).
Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Ookaze (US Patent Application Publication No. US 2016/0209835 A1) in view of Ji (US Patent Application Publication No. US 2015/0052507 A1) and further in view of Fukatsu (US Patent Application Publication No. US 2013/0006397 A1).
Regarding Claim 2, the rejection of claim 1 is incorporated. Ookaze teaches the claimed “numerical controller”. Ji teaches the claimed “constant value acquisition unit”. The combination of Ookaze and Ji fails to teach:
wherein the […] unit acquires an index that is associated with an address of the external input signal in a memory of the […] controller,
and determines variables in the system program based on the index.
However, Fukatsu teaches:
wherein the […] unit acquires an index that is associated with an address of the external input signal in a memory of the […] controller (Fukatsu, Paragraph [0014], "Further, an exemplary method of communication between a peripheral equipment and a programmable logic controller executing high-level language program is also provided. The method comprises receiving a request for reading or writing to a device controlled by the programmable logic controller, the request received from the peripheral equipment; reading a symbol table to determine a physical address in a memory of the programmable logic controller for the device; and reading from or writing to the determined physical address (emphasis added)." Fukatsu, Claim 4, "The method of claim 2, wherein: the request includes a name of the device, and the symbol table defines a relationship between the name of the device, a variable name corresponding to the device and used in the high-level language program, and a physical address in the memory of the programmable logic controller corresponding to the variable name (emphasis added)."),
and determines variables in the system program based on the index (Fukatsu, Paragraph [0012], "An exemplary method of generating a symbol table for a programmable logic controller which executes high-level language programs is provided. The method includes reading the high-level language program and an association table specifying relationships between devices controlled by the programmable logic controller and variable names in the high-level language program; compiling and linking the high level language program and the association table for determining a physical address for each of the variable names and the corresponding devices; generating the symbol table by the compiling and linking, the symbol table defining the determined physical address for each of the devices; and storing the symbol table in the memory of the programmable logic controller (emphasis added).").
Ookaze, Ji, and Fukatsu are considered to be analogous to the claimed invention because they are in the same field of compile-time processing and management of software executed by industrial controllers. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Ookaze and Ji to incorporate the teachings of Fukatsu to have:
wherein the […] unit acquires an index that is associated with an address of the external input signal in a memory of the […] controller,
and determines variables in the system program based on the index.
The modification would have been obvious because Fukatsu teaches generating a symbol table that defines relationships among device names, variable names used in a high-level language program, and corresponding physical memory addresses, and using the symbol table to determine the physical memory address corresponding to a requested device (Fukatsu, Paragraph [0002-0006]). Thus, one of ordinary skill in the art would have been motivated to incorporate the symbol-table lookup techniques of Fukatsu into the compiler optimization system of Ookaze and Ji, thereby enabling communication between existing peripheral devices and a controller executing a high-level language program (Fukatsu, Paragraph [0002-0006]).
Claims 3 and 4 are rejected under 35 U.S.C. 103 as being unpatentable over Ookaze (US Patent Application Publication No. US 2016/0209835 A1) in view of Ji (US Patent Application Publication No. US 2015/0052507 A1) and further in view of Uchida (US Patent Application No. US 2020/0409330 A1).
Regarding Claim 3, the rejection of claim 1 is incorporated. Ookaze teaches:
a system program output unit that outputs the system program optimized [...] (Ookaze, Paragraph [0042], "Then, the control software transfer unit 160 transfers the generated optimized control software 176 to the execution environment of the control software.")
[…] an information processing device […] (Ookaze, Paragraph [0025], "The optimized application can be in a server on a network as illustrated in FIG. 1, and also can be in a computer [an information processing device] connected to a numerical controller or a computer integrated with the numerical controller as illustrated in FIG. 2 (emphasis added).")
Ookaze fails to teach:
[...] by using the constant value to an […] device of a user.
However, Ji teaches:
[...] by using the constant value to an […] device of a user (Ji, Paragraph [0063], "After the constant variable obtaining means 402 obtains the constant variables and their values, the compiling means 403 compiles the application using the obtained constant variables and their values (emphasis added)." Ji, Paragraph [0050], "Then, in step S230, the application is compiled using the constant variables and their values obtained in step S220. Since which variables in the application's source code are the constants have been already known, existing optimization methods such as constant folding, dead code elimination, etc. may be used during the compiling to remove the redundant branches of the branch selection statements (emphasis added).
The combination of Ookaze and Ji fails to teach:
comprising a system program management unit that manages system programs of a plurality of numerical controllers, and
However, Uchida teaches:
comprising a system program management unit that manages system programs of a plurality of numerical controllers, and (Uchida, Fig. 6; Paragraph [0018], "FIG. 6 is a functional block diagram of a personal computer (PC) that manages parameters of a plurality of numerical controllers connected to a network;")
Ookaze, Ji, and Uchida are considered to be analogous to the claimed invention because they are in the same field of software management and optimization for numerical controllers. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Ookaze and Ji to incorporate the teachings of Fukatsu to have:
comprising a system program management unit that manages system programs of a plurality of numerical controllers, and
The modification would have been obvious because Uchida teaches that a personal computer manages parameters of a plurality of numerical controllers connected to a network (Fukatsu, Fig. 6). Thus, one of ordinary skill in the art would have been motivated to incorporate the centralized multi-controller management techniques of Uchida into the compiler optimization system of Ookaze and Ji, thereby making facilitating the management of numerical controllers less cumbersome (Uchida, Paragraph [0004, 0008]).
Regarding Claim 4, the rejection of claim 1 is incorporated. Ookaze teaches:
wherein an original system program is a general-purpose program [...] (Ookaze, Paragraph [0040], "The source code optimization unit 130 reads a source code 170 of the control software stored in a memory (not illustrated), and applies the optimization processing described above to the source code to generate an optimized source code 172..." Ookaze, Paragraph [0041-0042], "The compiler 140 compiles the optimized source code 172 generated by the source code optimization unit 130 to generate an object file 174, and the linker 150 links the generated object file 174 to generate an optimized control software 176. Then, the control software transfer unit 160 transfers the generated optimized control software 176 to the execution environment of the control software. The execution environment to be the destination of the control software, in accordance with a method of use of the control software 176, is the numerical controller 200 of the machine tool when the control software is directly executed by the numerical controller 200, and is the server 400 in a case of a method for executing the control software 176 is on the network.")
the optimization unit optimizes the original system program for a numerical controller of the user (Ookaze, Paragraph [0040] "The source code optimization unit 130 reads a source code 170 of the control software stored in a memory (not illustrated), and applies the optimization processing described above to the source code to generate an optimized source code 172... (emphasis added)." Ookaze, Paragraph [0042], "Then, the control software transfer unit 160 transfers the generated optimized control software 176 to the execution environment of the control software (emphasis added). The execution environment to be the destination of the control software, in accordance with a method of use of the control software 176, is the numerical controller 200 of the machine tool when the control software is directly executed by the numerical controller 200, and is the server 400 in a case of a method for executing the control software 176 is on the network (emphasis added).").
The combination of Ookaze and Ji fails to teach:
[...] that can be adapted to the plurality of numerical controllers, and
However, Uchida teaches:
[...] that can be adapted to the plurality of numerical controllers, and (Uchida, Fig. 6; Paragraph [0018], "FIG. 6 is a functional block diagram of a personal computer (PC) that manages parameters of a plurality of numerical controllers connected to a network;")
Ookaze, Ji, and Uchida are considered to be analogous to the claimed invention because they are in the same field of software management and optimization for numerical controllers. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combined teachings of Ookaze and Ji to incorporate the teachings of Fukatsu to have:
[...] that can be adapted to the plurality of numerical controllers, and
The modification would have been obvious because Uchida teaches that a personal computer manages parameters of a plurality of numerical controllers connected to a network (Fukatsu, Fig. 6). Thus, one of ordinary skill in the art would have been motivated to incorporate the centralized multi-controller management techniques of Uchida into the compiler optimization system of Ookaze and Ji, thereby making facilitating the management of numerical controllers less cumbersome (Uchida, Paragraph [0004, 0008]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant’s
disclosure. They are as follows:
Canedo (WO 2017/123367 A1) discloses a method for programmable logic controller (PLC) program randomization, the method comprising an engineering system computer receiving source code corresponding to a PLC program and compiling the source code into a plurality of functionally equivalent intermediate representations of the PLC program.
Georges (US 2002/0161558 A1) discloses a transformer management system and method involves using sensors to sense physical quantities associated with the operation of a transformer. Processing circuitry uses the sensed physical quantities to calculate values from mathematical models for representing behavior of the transformer.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MD KAMRUZZAMAN whose telephone number is (571) 272-8415. The examiner can normally be reached Monday-Friday 9:00 am - 5:00 pm.
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, Wei Mui can be reached at (571) 272-3708. 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.
/M.K./Examiner, Art Unit 2191
/WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191