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 .
Claim(s) 1-20 is/are pending.
Claim(s) 1 and 16 is/are independent.
Priority
Applicant’s claim for the benefit of a prior-filed application under 35 U.S.C. 120 is acknowledged. The prior-filed application is U.S. Application No. 17/897,024 (filed on 8/26/2022).
Information Disclosure Statement
The references cited in the information disclosure statement(s) (IDS) submitted on 11/16/2023 and 1/3/2025 have been considered by the examiner.
Specification
The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant's cooperation is requested in correcting any errors of which applicant may become aware in the specification.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(d):
(d) REFERENCE IN DEPENDENT FORMS.—Subject to subsection (e), a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), fourth paragraph:
Subject to the [fifth paragraph of 35 U.S.C. 112 (pre-AIA )], a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
Claim(s) 13 is/are rejected under 35 U.S.C. 112(d) or pre-AIA 35 U.S.C. 112, 4th paragraph, as being of improper dependent form for failing to further limit the subject matter of the claim upon which it depends, or for failing to include all the limitations of the claim upon which it depends.
This is because claim 13 recites that the add-on function is a user-defined function, which has already been recited in claim 1 on which claim 13 depends.
Applicant may cancel the claim(s), amend the claim(s) to place the claim(s) in proper dependent form, rewrite the claim(s) in independent form, or present a sufficient showing that the dependent claim(s) complies with the statutory requirements.
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 of this title, 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.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Jarrett et al. (U.S. Pub. No. 2013/0198493) (hereinafter “Jarrett”) in view of Lopez et al. (U.S. Pub. No. 2010/0324956) (hereinafter “Lopez”).
Regarding claim 1 and corresponding claim 16, Jarrett teaches a system for facilitating add-on functions for industrial devices, (Para. 25 - - add-on instructions can be used in an industrial environment)
the system comprising: one or more electronic processors configured (Para. 24, Claim 1 - - processor is used)
to: receive, via a user interface, a user input defining an add-on function, wherein the user input includes a function name for the add-on function; (Para. 34 - - user inputs information defining add-on instructions; Para. 42 - - add-on instruction has a name, i.e. function name)
…, based on the user input, an object file for the add-on function; (Para. 29 - - object file is for add-on function/instruction)
control access to the object file for executing the add-on function; (Para. 39 - - access to instructions is controlled using encryption, passwords, etc.)
receive, from an industrial device of an industrial system, a request for the object file; (Para. 25 - - instruction is called, i.e. request for object file is received)
and transmit, to the industrial device of the industrial system, the object file for executing the add-on function. (Para. 43 - - instructions/functions can be located within a network or web server, where the function is transmitted over the network; Para. 54 - - industrial device executes the add-on function)
But Jarrett does not explicitly teach compile
However, Lopez teaches compile (Para. 401 - - code is compiled)
Jarrett and Lopez are analogous art because they are from the same field of endeavor and contain overlapping structural and/or functional similarities. They both contain computer code used in an industrial environment.
Therefore, before the effective filing date of the claimed invention (AIA ), it would have been obvious to a person of ordinary skill in the art to modify the above limitation(s) as taught by Jarrett, by incorporating the above limitation(s) as taught by Lopez.
One of ordinary skill in the art would have been motivated to do this modification in order to execute source code via an executable file, as suggested by Lopez (Para. 401).
Regarding claim 2, Jarrett further teaches wherein the user input further includes at least one of a parameter or a return type for the add-on function. (Para. 25 - - user can edit/input parameter for add-on instruction/function)
Regarding claim 3, Jarrett further teaches the industrial device, the industrial device is configured to: store the object file in a memory of the industrial device; (Para. 54 - - industrial device executes the add-on function; Fig. 9 - - instruction is stored in memory of industrial device 900)
and execute object code included in the object file to perform the add-on function. (Para. 54 - - add-on instructions are executed)
Regarding claim 4, Jarrett further teaches wherein execution of the object code included in the object file generates an output of the add-on function, wherein the industrial device is configured to utilize the output of the add-on function as an operand for a subsequent operation. (Fig. 6 - - object file generates add-on instructions; Fig. 9, Para. 54 - - industrial device utilizes add-on instruction output for a subsequent operation, i.e. operation is performed after add-on instruction output is generated)
Regarding claim 5 and corresponding claim 17, Jarrett further teaches a second industrial device of a second industrial system, the second industrial system different from the industrial system, (Para. 34 - - add-on instruction calls can be from multiple locations, i.e. including a second industrial device of a different second industrial system)
and wherein the one or more electronic processors are configured to: receive, from the second industrial device of the second industrial system, a second request for the object file; (Para. 25 - - instruction is called, i.e. request for object file is received)
and transmit, to the second industrial device of the second industrial system, the object file for executing the add-on function. (Para. 43 - - instructions/functions can be located within a network or web server, where the function is transmitted over the network; Para. 54 - - industrial device executes the add-on function)
Regarding claim 6, Jarrett further teaches wherein the add-on function is configured to perform an OR operation on at least three inputs. (Para. 27 - - logical elements are used, where logical elements include OR operation; Para. 54 - - input channel allows multiple inputs through channel in the industrial device)
Regarding claim 7, Jarrett further teaches wherein the add-on function is configured to perform a data type conversion, wherein the data type conversion includes converting a numeric data type to a string data type. (Para. 30 - - any object/data type can be supported, i.e. data conversion is performed from one type to another)
Regarding claim 8, Jarrett further teaches to: store, in a database, the object file for the add-on function in a function library; (Para. 39 - - add-on instructions are assembled in a library)
and responsive to receiving the request for the object file, access, from the database, the object file for the add-on function from the function library; and transmit the object file to the industrial device. (Para. 43 - - instructions/functions can be located within a network or web server, where the function is transmitted over the network; Para. 54 - - industrial device executes the add-on function)
Regarding claim 9, Lopez further teaches wherein the one or more electronic processors are configured to: determine a domain of the add-on function; (Para. 309 - - domain of application/function is known/determined)
and Jarrett further teaches store, based on the domain, the object file in a function library specific to the domain. (Para. 39 - - add-on instructions are assembled in a library)
One of ordinary skill in the art would have been motivated to do this modification in order to execute source code via an executable file, as suggested by Lopez (Para. 401).
Regarding claim 10, Jarrett further teaches to: determine, for the add-on function, a namespace prefix specific to a domain relevant to the add-on function; and augment a function name of the add-on function with the namespace prefix. (Para. 42, 52 - - name of add-on instruction can be updated using tags, where updates function as prefix)
Regarding claim 11, Jarrett further teaches wherein execution of the add-on function using an expression as an input that triggers an event in the industrial system. (Para. 54, Claim 10, 19 - - execution of add-on function triggers industrial device, where such trigger creates an event in the industrial system)
Regarding claim 12, Jarrett further teaches wherein the add-on function stops or resumes execution of at least one task associated with a user program of the industrial system. (Para. 29 - - add-on instruction can stop or resume states of the industrial device in the industrial system)
Regarding claim 13, Jarrett further teaches wherein the add-on function is a user-defined function. (Para. 34 - - user inputs information defining add-on instructions)
Regarding claim 14, Lopez further teaches wherein the add-on function is configured to measure a performance metric associated with a routine associated with a user program of the industrial system. (Para. 335 - - performance characteristics/metrics are associated with software/routine in industrial system)
One of ordinary skill in the art would have been motivated to do this modification in order to manage enterprise software, as suggested by Lopez (Para. 335).
Regarding claim 15, Jarrett further teaches to generate an annotated call graph based on the performance metric. (Para. 35 - - graphic boxes can be used, where performance metric has already been taught by Lopez (see above))
Regarding claim 18, Jarrett further teaches transmitting, to the first industrial device, a second object file included in the set of object files, wherein the second object file includes object code for performing a second add-on function of the plurality of add-on functions, wherein the second add-on function is configured to identify an error associated with a user program of the first industrial device. (Fig. 9, Para. 54 - - instruction bank includes multiple add-on instructions, where multiple add-ons include a first and a second object file containing a first and a second add-on function; Para. 27 - - errors are mitigated, i.e. errors are identified)
Regarding claim 19, Jarrett further teaches transmitting, to the first industrial device, a second object file including object code that, when executed, performs a second add-on function of the plurality of add-on functions, wherein the first add-on function is a user defined function and the second add-on function is a pre-existing function. (Fig. 9, Para. 54 - - instruction bank includes multiple add-on instructions, where multiple add-ons include a first and a second object file containing a first and a second add-on function; Para. 34 - - user inputs information defining add-on instructions; Para. 42 - - instruction can include existing instructions/functions)
Regarding claim 20, Lopez further teaches controlling, with the one or more electronic processors, access to the set of object files pursuant to a license model. (Para. 310 - - licensed software is used)
One of ordinary skill in the art would have been motivated to do this modification in order to execute source code via an executable file, as suggested by Lopez (Para. 401).
It is noted that any citations to specific, pages, columns, lines, or figures in the prior art references and any interpretation of the reference should not be considered to be limiting in any way. A reference is relevant for all it contains and may be relied upon for all that it would have reasonably suggested to one having ordinary skill in the art. See MPEP 2123.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Saad M. Kabir whose telephone number is 571-270-0608 (direct fax number is 571-270-9933). The examiner can normally be reached on Mondays to Fridays 9am to 5pm EST.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Mohammad Ali can be reached on 571-272-4105. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/SAAD M KABIR/
Examiner, Art Unit 2119
/MOHAMMAD ALI/Supervisory Patent Examiner, Art Unit 2119