DETAILED ACTION
Claims 1-20 are presented for examination.
Claims 1, 4, 12-14, and 18-19 have been amended.
This office action is in response to the amendment submitted on 03-MAR-2026.
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 .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 02/20/2026is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Examiner’s Note (EN)
The prior art rejections below cite particular paragraphs, columns, and/or line numbers in the references for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art.
Response to Arguments- Double Patenting
The applicant indicates they reserve the right to file a TD if needed when the application is in condition for allowance.
Response to Arguments – 35 USC 101
On pgs. 10-11 of the Applicant/Arguments Remarks, Applicant argues the amended claims have overcome the rejection under 35 USC 101. The applicant argues the invention provides significantly more than the abstract idea. The invention provides an improvement to the technical field. Additionally, the integration into a control program is effectively integrating the abstract idea into significantly more.
Examiner respectfully disagrees. The integration into a control program is recited at a high level of generality that it amounts to no more than merely apply it. The applicant is encouraged to amend the claims to include more specific control mechanics of the control devices.
Limitations that invoke a computer as a tool to perform an abstract idea fall within the “apply it” category. See MPEP 2106.04(d) referencing MPEP 2106.05(f)(2) — example (i) A commonplace business method or mathematical algorithm being applied on a general purpose computer. Similar to applying a mathematical algorithm on a general purpose computer, performing specific mathematical calculations or mental processes on a general purpose computer is using a computer as a tool to perform an abstract idea. As noted in the cases referenced by MPEP 2106.05(f), when the additional elements are mere instructions to apply the abstract idea on a general purpose computer, the additional elements do not integrate the judicial exception into a practical application. If the claim as a whole integrates the recited judicial exception into a practical application, then it would be patent eligible. Here, the claim is generally linked to the technology of predicting aircraft movement and actions based on predicted movements, but, as drafted, the claim only refers to using machine learning to perform the actions, which is generally linking the use of the judicial exception to a particular field of use. See MPEP 2106.04(d) referencing 2106.05(h).
Additionally as recited in the MPEP 2106.05(f): Another consideration when determining whether a claim integrates a judicial exception into a practical application in Step 2A Prong Two or recites significantly more than a judicial exception in Step 2B is whether the additional elements amount to more than a recitation of the words "apply it" (or an equivalent) or are more than mere instructions to implement an abstract idea or other exception on a computer. As explained by the Supreme Court, in order to make a claim directed to a judicial exception patent-eligible, the additional element or combination of elements must do "‘more than simply stat[e] the [judicial exception] while adding the words ‘apply it’". Alice Corp. v. CLS Bank, 573 U.S. 208, 221, 110 USPQ2d 1976, 1982-83 (2014) (quoting Mayo Collaborative Servs. V. Prometheus Labs., Inc., 566 U.S. 66, 72, 101 USPQ2d 1961, 1965). Thus, for example, claims that amount to nothing more than an instruction to apply the abstract idea using a generic computer do not render an abstract idea eligible. Alice Corp., 573 U.S. at 223, 110 USPQ2d at 1983. See also 573 U.S. at 224, 110 USPQ2d at 1984 (warning against a § 101 analysis that turns on "the draftsman’s art").
Moreover, The examiner disagrees that the improvement is to a technological field. A proper statement of the rule as given by Enfish: For that reason, the first step in the Alice inquiry in this case asks whether the focus of the claims is on the specific asserted improvement or, instead, on a process that qualifies as an "abstract idea" for which computers are invoked merely as a tool. (see Enfish, LLC v. Microsoft Corp., 822 F.3d 1327, 1336 (Fed. Cir. 2016)). The Court’s analysis of the claim hinged on the “self-referential table” limitation being an improvement over the conventional technology and not invoking the computer as a tool. In instant claim 1, the limitations are directed to generating code based on requirement information. The generation of code based on requirement information can be performed mentally by a human. The claimed improvement is an improvement on the mental process, but invokes a computer as a tool to perform the mental process. It is important to note, the judicial exception alone cannot provide the improvement (see MPEP 2106.05(a) paragraph 6).
The Court’s analysis of the claim hinged on the “self-referential table” limitation being an improvement over the conventional technology and not invoking the computer as a tool.
In our instant application, the limitations are directed to generating control code based on specifics of industry vertical standards. The claimed improvement is an improvement on the mental process, but invokes a computer as a tool to perform the mental process. It is important to note, the judicial exception alone cannot provide the improvement (see MPEP 2106.05(a) paragraph 6).
MPEP 2106.05(a) further states: To show that the involvement of a computer assists in improving the technology, the claims must recite the details regarding how a computer aids the method, the extent to which the computer aids the method, or the significance of a computer to the performance of the method. Merely adding generic computer components to perform the method is not sufficient. Thus, the claim must include more than mere instructions to perform the method on a generic component or machinery to qualify as an improvement to an existing technology. See MPEP § 2106.05(f) for more information about mere instructions to apply an exception.
Response to Arguments – 35 USC 103
On pgs. 12-19 of the Applicant/Arguments Remarks, Applicant argues the amended claims have overcome the rejection under 35 USC 101. Examiner respectfully disagrees.
On pg 15, the applicant argues that Stump does not teach the newly modified limitations, reciting vertical specific standards as a basis for the code generation.
However, as shown below, the new amended limitations are taught by the combination of Taorui and Stump. For example, Stump explicitly teaches: [0066] “During development, project generation component 206 can select and apply a subset of guardrail templates 506 determined to be relevant to the project currently being developed, based on a determination of such aspects as the industrial vertical to which the project relates, the type of industrial application being programmed (e.g., flow control, web tension control, a certain batch process, etc.), or other such aspects. Project generation component 206 can leverage guardrail templates 506 to implement rules-based programming, whereby programming feedback (a subset of design feedback 518) such as dynamic intelligent autocorrection, type-aheads, or coding suggestions are rendered based on encoded industry expertise and best practices (e.g., identifying inefficiencies in code being developed and recommending appropriate corrections).”
Moreover, the examiner would like to point to the IDS reference, Kozilok et al. (ChatGPT for PLC/DCS Control Logic Generation) where the LLM is encoded with industry and vertical specific information. “Process Control prompts involve different kinds of analog control, often involving PI or PID controllers. They cover different process control aspects, such as feedforward, cascade and ratio control. Prompts in the category Sequential Control test an LLM’s ability to generate code for startup/shutdown sequences and batch applications, which involve an number of different steps. The correct sequence of steps for an abstractly formulated task requires specific application domain knowledge encoded in LLMs.” (Pg. 3)
The applicant further argues that the dependent claims should be allowed by virtue of depending on claim 1, which is not taught by the references of record. However, as discussed, the combination of Taorui and Stump does teach the new elements of Claim 1.
The rejection under 35 USC 103 is maintained.
Claim Objections
Claim 1 recites “based on based on” twice. Appropriate correction is requested.
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.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim 1
Step 1: Statutory class – machine.
Step 2A Prong One: Does the claim recite an abstract idea, law of nature or natural phenomenon?
Yes
“3) Mental processes – concepts performed in the human mind (including an observation, evaluation, judgment, opinion) (see MPEP § 2106.04(a)(2), subsection III).” MPEP § 2106.04(a).
The claims are directed to an abstract idea of data processing and analysis. The claim recites:
a natural language request to generate new control code for inclusion in an industrial control program, wherein the natural language request describes one or more requirements of the new control code;
in response to receipt of the natural language request, infer an industrial vertical for which the industrial control project is being developed based on contextual analysis performed on the industrial control program and generate control code inferred to satisfy the one or more requirements based on based on the industrial vertical and analysis of the natural language request, industry-specific information encoded in the one or more custom models
to integrate the control code into the industrial control program
The natural language request, generating control code and integrating control code into the program are limitations of mental processes of evaluation, judgement and mathematical calculations. By way of example, one can mentally/with the aid of a pen and paper read a required functional specification, describe it in natural language, analyze industry specific information, and proceed to compose the code, verifying against industry specifications where required. Finally, one can integrate the composed code into an industrial control program. The additional prompts described in the claim are similarly the result of mental steps of analysis of the initial requirements and the industry specifications.
Step 2A Prong Two: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The additional elements are:
a memory that stores executable components and one or more custom models; and
a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising:
a user interface component configured to receive, via an integrated development environment (IDE) interface,
using the IDE interface as part of an industrial control project
a generative artificial intelligence (AI) component
a response prompted from a generative AI model wherein the industry- specific information comprises at least vertical-specific design standards for respective different industrial verticals, and the generative Al component generates the control code to conform to a vertical-specific design standard for the industrial vertical defined by the industry-specific information;
a project generation component is further configured to translate the industrial control program to an executable control program file
a project deployment component configured to send the executable control program file to an industrial controller, wherein sending the executable control program file to the industrial controller configures the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program
The system, memory, processor, UI component, generative AI component, project generation and project deployment component are generic computer components used as a tool. They provide nothing more than mere instructions to implement an abstract idea on a generic computer. See MPEP 2106.05(f). MPEP 2106.05(f) provides the following considerations for determining whether a claim simply recites a judicial exception with the words “apply it” (or an equivalent), such as mere instructions to implement an abstract idea on a computer.
Additionally, the generative AI component is merely indicating a field of use or technological environment in which the judicial exception is performed. This type of limitation merely confines the use of the abstract idea to a particular technological environment (neural networks/LLMs) and thus fails to add an inventive concept to the claims. MPEP § 2106.05(h).
Step 2B: Does the claim recite additional elements that amount to significantly more than judicial exception?
No, as discussed with respect to Step 2A, the additional limitation are data gathering, mere instructions to apply an exception on a generic computer and a general purpose computer. See MPEP 2106.05(f). MPEP 2106.05(f) provides the following considerations for determining whether a claim simply recites a judicial exception with the words “apply it” (or an equivalent), such as mere instructions to implement an abstract idea on a computer.
Additionally, the limitations do not impose any meaningful limits on practicing the abstract idea and therefore the claim does not provide an inventive concept in Step 2B. Further, in regards to step 2B and as cited above in step 2A, MPEP 2106.05(g) “Obtaining information about transactions using the Internet to verify credit card transactions, CyberSource v. Retail Decisions, Inc., 654 F.3d 1366, 1375, 99 USPQ2d 1690, 1694 (Fed. Cir.2011)” is merely data gathering. The additional elements have been considered both individually and as an ordered combination in the significantly more consideration. This claim is ineligible.
Claim 2 recites the generative AI component is configured to, in response to the receipt of the natural language request, generate a prompt directed to the generative AI model and designed to obtain the response from the generative AI model, and the response comprises information used by the generative AI component to generate the control code inferred to satisfy the one or more requirements, which is a mental process under Step 2A Prong One, while the generative AI component is mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101.
Claim 3 recites the generative AI component is configured to generate the prompt based on analysis of the natural language request and selected subsets of the industry-specific information determined to be relevant to the natural language request, which is a mental process under Step 2A Prong One, while the generative AI component is mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 4 recites the industry-specific information encoded in the custom models comprises at least one of libraries of control code instructions, libraries of add-on instructions, libraries of control code samples, libraries of user-defined data types (UDTs), libraries of product manuals for industrial devices or software platforms, specification data for industrial devices, training data, information defining industrial standards, design standards for respective different types of industrial control applications, design standards for respective different industrial verticals, knowledge of industrial best practices, control design rules, or industrial domain-specific language (DSL) syntax data, which is further specification to mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The encoding of industry specific information limitation whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the limitation merely applies the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 5 recites the response from the generative AI model is a first response, and the generative AI component is further configured to: generate natural language documentation for the control code based on a second response prompted from the generative AI model by the generative AI component and embed the natural language documentation into the control code, which is a mental process under Step 2A Prong One, while the generative AI component is mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 6 recites the natural language documentation comprises at least one of descriptions of functions of respective portions of the control code or names of variables used in the control code, which is further specification to a mental process under Step 2A Prong One.
The additional abstract idea whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception. Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 7 recites the natural language request specifies at least one of a control function to be performed by the control code, a type of equipment to be controlled by the control code, or a format for the control code, which is a mental process under Step 2A Prong One.
The additional abstract idea whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception. Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 8 recites the natural language request is a first natural language request, the user interface component configured to receive, via the IDE interface, a second natural language request to add one or more instances of a specified project element to the industrial control project, the specified project element comprising at least one of a control code instruction, an add-on instruction, a data tag, or a device definition, and the generative AI component is further configured to, in response to receipt of the second natural language request, add the one or more instances of the specified project element to the industrial control project, which is a mental process under Step 2A Prong One, while the generative AI, the UI component and IDE components are mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 9 recites the generative AI component is further configured to infer, based on analysis performed on the industrial control program, test scenarios for validating the industrial control program, and to generate test scripts configured to execute the test scenarios, and the executable component further comprise a project testing component configured to execute the test scripts against the industrial control program to facilitate validation of the industrial control program, which is a mental process under Step 2A Prong One, while the generative AI and executable components are mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 10 recites the response prompted from the generative AI model is a first response, and the generative AI component is configured to at least one of infer the test scenarios or generate test scripts based on the industry-specific information encoded in the one or more custom models and a second response prompted from the generative AI model, which is a mental process under Step 2A Prong One, while the generative AI component is mere instructions to apply an exception on a generic computer under Step 2A Prong Two and 2B.
The additional abstract idea and identified elements whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer and therefore the identified claim does not amount to significantly more. See MPEP 2106.05(f). Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claim 11 recites a test script, of the test scripts, defines a sequence of simulated inputs to be injected into the industrial control program by the project testing component and an expected response of the industrial control program to the simulated inputs, which is a mental process under Step 2A Prong One.
The additional abstract idea whether considered individually or in a combination with the parent claims further do not amount to significantly more than the judicial exception. Therefore, the claim is considered ineligible under 35 USC 101. Therefore, the claim is considered ineligible under 35 USC 101.
Claims 12-18 are method claims reciting limitations similar to claims 1, 2, 4-6, and 9-10 respectively and are rejected under the same rationale.
Claims 19-20 are medium claims reciting limitations similar to claims 1 and 5 respectively and are rejected under the same rationale.
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-4, 12-14, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Taorui et al. (IDS Reference: CN116719520B) in view of Stump et al. (US20230058094A1)
Regarding Claim 1. Taorui teaches A system, comprising: a memory that stores executable components and one or more custom models; and a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising: ([n0016] “there is provided a computing device comprising a memory having executable code stored therein and a processor which, when executing the executable code, implements the method of the first aspect”).
a natural language request to generate new control code for inclusion in an industrial control program being developed ([n0006] “Obtain the user's query text, which at least indicates the functionality implemented in the code”).
wherein the natural language request describes one or more requirements of the new control code ([n0006] “which at least indicates the functionality implemented in the code.” [n0002] “Machine learning-based code generation mainly uses machine learning or deep learning techniques to learn the structure and function of code and automatically generate corresponding code based on input instructions or requirements.” And [n0026] “This generation method can automatically generate program code by learning a large number of code snippets and syntax structures. It can adaptively handle various business scenarios and requirements, and generate more personalized and highquality code”).
a generative artificial intelligence (AI) component configured to, in response to receipt of the natural language request, generate control code inferred to satisfy the one or more requirements based on based on the industrial vertical and analysis of the natural language request,([n0014] “’The input unit is used to input the first prompt text into a pre-trained generative large model to obtain target code generated for the query text.” [n0002] “Machine learning-based code generation mainly uses machine learning or deep learning techniques to learn the structure and function of code and automatically generate corresponding code based on input instructions or requirements.” And [n0026] “This generation method can automatically generate program code by learning a large number of code snippets and syntax structures. It can adaptively handle various business scenarios and requirements, and generate more personalized and highquality code”).
industry-specific information encoded in the one or more custom models, ([n0063-n0064] "The target code library contains multiple program code segments corresponding to different code functions … In addition, the target code library can also record the representation vectors of each of these multiple program code segments.” [n0017] "The code generation method provided in one or more embodiments of this specification first queries a target code library based on the user's query text describing the code function, in order to obtain several reference code segments that match the query text. Next, the query text and several pieces of reference code are input into the generative large model to obtain the target code generated for the query text”).
a response prompted from a generative AI model; ([n0017] "The code generation method provided in one or more embodiments of this specification first queries a target code library based on the user's query text describing the code function, in order to obtain several reference code segments that match the query text. Next, the query text and several pieces of reference code are input into the generative large model to obtain the target code generated for the query text” EN: The response is prompted by the generative AI model, where the first user query is augmented to include identified relevant code forming a second query to the LLM to produce the code response).
However Taorui doesn’t appear to explicitly teach:
a user interface component configured to receive, via an integrated development environment (IDE) interface,
using the IDE interface as part of an industrial control project
infer an industrial vertical for which the industrial control project is being developed based on contextual analysis performed on the industrial control program
wherein the industry- specific information comprises at least vertical-specific design standards for respective different industrial verticals,
the generative Al component generates the control code to conform to a vertical-specific design standard for the industrial vertical defined by the industry-specific information
a project generation component is further configured to integrate the control code into the industrial control program to translate the industrial control program to an executable control program file
a project deployment component configured to send the executable control program file to an industrial controller, wherein sending the executable control program file to the industrial controller configures the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program
Stump teaches a user interface component configured to receive, via an integrated development environment (IDE) interface ([0003] “a user interface component configured to render integrated development environment (IDE) interfaces and to receive, via interaction with the IDE interfaces, design input that defines aspects of an industrial automation project” and [0042] “one or more embodiments described herein provide an integrated development environment (IDE) for designing, programming, and configuring multiple aspects of an industrial automation system using a common design environment and data model. Embodiments of the industrial IDE can be used to configure and manage automation system devices in a common way, facilitating integrated, multi-discipline programming of control, visualization, and other aspects of the control system”).
using the IDE interface as part of an industrial control project ([0043] “In general, the industrial IDE supports features that span the full automation lifecycle, including design (e.g., device selection and sizing, controller programming, visualization development, device configuration, testing, etc.); installation, configuration and commissioning; operation, improvement, and administration; and troubleshooting, expanding, and upgrading”).
infer an industrial vertical for which the industrial control project is being developed based on contextual analysis performed on the industrial control program ([0066] “During development, project generation component 206 can select and apply a subset of guardrail templates 506 determined to be relevant to the project currently being developed, based on a determination of such aspects as the industrial vertical to which the project relates, the type of industrial application being programmed (e.g., flow control, web tension control, a certain batch process, etc.), or other such aspects. Project generation component 206 can leverage guardrail templates 506 to implement rules-based programming, whereby programming feedback (a subset of design feedback 518) such as dynamic intelligent autocorrection, type-aheads, or coding suggestions are rendered based on encoded industry expertise and best practices (e.g., identifying inefficiencies in code being developed and recommending appropriate corrections).” [0069] “In some embodiments, project generation component 206 can infer a programmer's current programming task or design goal based on programmatic input being provided by the programmer (as a subset of design input 512), and determine, based on this task or goal, whether one of the pre-defined code modules 508 or automation objects 222 may be appropriately added to the control program being developed to achieve the inferred task or goal. For example, project generation component 206 may infer, based on analysis of design input 512, that the programmer is currently developing control code for transferring material from a first tank to another tank, and in response, recommend inclusion of a predefined code module 508 comprising standardized or frequently utilized code for controlling the valves, pumps, or other assets necessary to achieve the material transfer. Similarly, the project generation component 206 may recommend inclusion of an automation object 222 representing one of the tanks, or one of the other industrial assets involved in transferring the material (e.g., a valve, a pump, etc.), where the recommended automation object 222 includes associated control code for controlling its associated asset as well as a visualization object that can be used to visualize the asset on an HMI application or another visualization application.” [0072] “In some embodiments, project generation component 206 can also determine whether some or all existing equipment can be repurposed for the new control system being designed. For example, if a new bottling line is to be added to a production area, there may be an opportunity to leverage existing equipment since some bottling lines already exist. The decision as to which devices and equipment can be reused will affect the design of the new control system. Accordingly, some of the design input 512 provided to the IDE system 202 can include specifics of the customer's existing systems within or near the installation site. In some embodiments, project generation component 206 can apply artificial intelligence (AI) or traditional analytic approaches to this information to determine whether existing equipment specified in design in put 512 can be repurposed or leveraged. Based on results of this analysis, project generation component 206 can generate, as design feedback 518, a list of any new equipment that may need to be purchased based on these decisions.” Also see [0071] )
wherein the industry- specific information comprises at least vertical-specific design standards for respective different industrial verticals ([0065-0066] “In some embodiments, IDE system 202 can also store and implement guardrail templates 506 that define design guardrails intended to ensure the project's compliance with internal or external design standards. Based on design parameters defined by one or more selected guardrail templates 506, user interface component 204 can provide, as a subset of design feedback 518, dynamic recommendations or other types of feedback designed to guide the developer in a manner that ensures compliance of the system project 302 with internal or external requirements or standards (e.g., certifications such as TUV certification, in-house design standards, industry-specific or vertical-specific design standards, etc.)… Guardrail templates 506 can also be designed to maintain compliance with global best practices applicable to control programming or other aspects of project development. ... Since different verticals (e.g., automotive, pharmaceutical, oil and gas, food and drug, marine, etc.) must adhere to different standards and certifications, the IDE system 202 can maintain a library of guardrail templates 506 for different internal and external standards and certifications, including customized user-specific guardrail templates 506. These guardrail templates 506 can be classified according to industrial vertical, type of industrial application, plant facility (in the case of custom in-house guardrail templates 506) or other such categories. During development, project generation component 206 can select and apply a subset of guardrail templates 506 determined to be relevant to the project currently being developed, based on a determination of such aspects as the industrial vertical to which the project relates, the type of industrial application being programmed (e.g., flow control, web tension control, a certain batch process, etc.), or other such aspects. Project generation component 206 can leverage guardrail templates 506 to implement rules-based programming, whereby programming feedback (a subset of design feedback 518) such as dynamic intelligent autocorrection, type-aheads, or coding suggestions are rendered based on encoded industry expertise and best practices (e.g., identifying inefficiencies in code being developed and recommending appropriate corrections).”)
the generative Al component generates the control code to conform to a vertical-specific design standard for the industrial vertical defined by the industry-specific information ([0065-0066] “user interface component 204 can provide, as a subset of design feedback 518, dynamic recommendations or other types of feedback designed to guide the developer in a manner that ensures compliance of the system project 302 with internal or external requirements or standards (e.g., certifications such as TUV certification, in-house design standards, industry-specific or vertical-specific design standards, etc.). This feedback 518 can take the form of text-based recommendations (e.g., recommendations to rewrite an indicated portion of control code to comply with a defined programming standard), syntax highlighting, error highlighting, auto-completion of code snippets, or other such formats. In this way, IDE system 202 can customize design feedback 518—including programming recommendations, recommendations of predefined code modules 508 or visualizations 510, error and syntax highlighting, etc.—in accordance with the type of industrial system being developed and any applicable in-house design standards.”)
a project generation component is further configured to integrate the control code into the industrial control program to translate the industrial control program to an executable control program file ([0044-0045] “Embodiments of the industrial IDE can include a library of modular code and visualizations … These code and visualization modules can simplify development and shorten the development cycle, while also supporting consistency and reuse across an industrial enterprise. To support enhance development capabilities, projects creating using embodiments of the IDE system can be built on an object-based model rather than, or in addition to, a tag-based architecture. To this end, the IDE system can support the use of automation objects that serve as building blocks for this object-based development structure. To ensure consistency within and between projects, as well as to ensure that a given industrial project is dynamically updated to reflect changes to an industrial asset's attributes (e.g., control code, visualization definitions, testing scripts, analytic code, etc.), embodiments of the IDE system can use automation object inheritance features to propagate changes made to an automation object definition to all instances of the automation object used throughout a control project” and [0078] “Project deployment component 208 can compile or otherwise translate a completed system project 302 into one or more executable files”).
a project deployment component configured to send the executable control program file to an industrial controller, wherein sending the executable control program file to the industrial controller configures the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program ([0078] "Project deployment component 208 can compile or otherwise translate a completed system project 302 into one or more executable files or configuration files that can be stored and executed on respective target industrial devices of the automation system (e.g., industrial controllers 118, HMI terminals 114 or other types of visualization systems, motor drives 710, telemetry devices, vision systems, safety relays, etc.)").
Taorui and Stump are analogous art because they are from the same field of endeavor in enhancing code generation and accuracy. While Taorui focuses on AI code generation in general, Stump provides an IDE, execution environment specifically for industrial PLC code along with industry standard guiderails, error correction and code recommendations. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, to combine Taorui, and Stump to apply Taorui’s code generation methodology to industry specific PLC code conforming to industry specific standards and test its anticipated executable results by deploying it in industrial components. “the IDE system can support the use of automation objects that serve as building blocks for this object-based development structure. These automation objects represent corresponding physical industrial assets and have associated programmatic attributes relating to those assets. Automation objects can be maintained in shared libraries that can be referenced by system projects. The IDE system can notify projects that reference these automation objects of updates to the object libraries, including edits to existing objects or addition of new objects.” (Stump, Abstract).
Regarding Claim 2, Taorui in view of Stump teaches the system of claim 1. Taorui further teaches the generative AI component is configured to, in response to the receipt of the natural language request, generate a prompt directed to the generative AI model and designed to obtain the response from the generative AI model, ([n0006-n0009] "The acquisition unit is used for acquiring query text of a user and at least indicates the function realized by the code; the query unit is used for querying an object code library according to the query text to obtain a plurality of sections of reference codes matched with the query text; the construction unit is used for constructing a first prompt text based on the query text … and the input unit is used for inputting the first prompt text into a pre-trained generation type large model to obtain an object code generated for the query text").
the response comprises information used by the generative AI component to generate the control code inferred to satisfy the one or more requirements ([n0006-n0009] "the construction unit is used for constructing a first prompt text based on the query text and the plurality of reference codes, the first prompt text indicates, and program codes corresponding to the query text are generated based on the plurality of reference codes; and the input unit is used for inputting the first prompt text into a pre-trained generation type large model to obtain an object code generated for the query text").
Regarding Claim 3, Taorui in view of Stump teaches the system of claim 2. Taorui further teaches the generative AI component is configured to generate the prompt based on analysis of the natural language request and selected subsets of the industry-specific information determined to be relevant to the natural language request ([n0006-n0009] "constructing a first prompt text based on the query text and the plurality of reference codes, the first prompt text indicates, and program codes corresponding to the query text are generated based on the plurality of reference codes" EN: The reference codes are a form of industry specific information).
Regarding Claim 4, Taorui in view of Stump teaches the system of claim 1. Taorui further teaches the industry-specific information encoded in the custom models further comprises at least one of libraries of control code instructions, libraries of add-on instructions, libraries of control code samples, libraries of user-defined data types (UDTs), libraries of product manuals for industrial devices or software platforms, specification data for industrial devices, training data, information defining industrial standards, design standards for respective different types of industrial control applications, knowledge of industrial best practices, control design rules, or industrial domain-specific language (DSL) syntax data ([n0063-n0065] "The object code library has recorded therein a plurality of pieces of program code corresponding to different code functions. The pieces of program code may be high-annotation-rate, high-collection program code collected from a target website (e.g., gitub) or code hosting network (e.g., gitlab). In addition, the object code library can also record the respective characterization vectors of the multiple sections of program codes. The method of determining the characterization vector is described later herein. Of course, in practical application, other description information of the program code may also be recorded in the object code library. The other descriptive information may include, but is not limited to, source address, source website type, comment section, natural language text corresponding to the code section, praise amount and collection amount, and so forth." EN: GitHub includes PLC code prior to the filing date. A sample library is attached in the prior art documents)
Claims 12-14 are method claims reciting limitations similar to claims 1, 2, and 4 respectively and are rejected under the same rationale.
Claims 19 is a medium claims reciting limitations similar to claim 1 and is rejected under the same rationale.
Claims 5-8, 15-16, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Taorui et al. (IDS Reference: CN116719520B) in view of Stump (US20230058094A1) and further in view of Hayat (IDS Reference: GPT-4: AI Co-piloting for PLC Programming (IEC 61131-3 Languages))
Regarding Claim 5, Taorui in view of Stump teaches the system of claim 1. Hayat further teaches the response from the generative AI model is a first response, and the generative AI component is further configured to: generate natural language documentation for the control code based on a second response prompted from the generative AI model by the generative AI component and embed the natural language documentation into the control code (Pgs. 1-2, “… GitHub Copilot is an AI-powered programming assistant that enables quicker and more efficient coding by suggesting individual lines and complete functions based on context derived from comments and code … To determine GPT-4's proficiency in PLC programming, I posed the following question to GPT-4: "Are you able to program in all IEC 61131-3 languages, SFC, LD, ST, IL and FBD?" … To put GPT-4 to the test, I gave it a task to program a PLC based on different prompts and observed how well it understood them.” Please refer to the screenshots on pgs. 3-11 for the multiple responses. The screenshot copied below shows the comments embedded into the control code)
PNG
media_image1.png
620
701
media_image1.png
Greyscale
Taorui, Stump, and Hayat are analogous art because they are from the same field of endeavor in enhancing code generation efficiency and accuracy. Hayat further illustrates live examples of using LLM for generation of PLC code including comment/documentation embedding. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, to combine Taorui, Stump and Hayat to gain a wider understanding for more efficient usage of LLMs in PLC code generation. “Given that PLCs play a critical role in industrial automation, AI can be well versed in the IEC 61131-3 standard languages - Sequential Function Chart (SFC), Ladder Diagram (LD), Structured Text (ST), Instruction List (IL), and Function Block Diagram (FBD)” (Pg. 1, Hayat)
Regarding Claim 6, Taorui in view of Stump teaches the system of claim 5. Hayat further teaches the natural language documentation comprises at least one of descriptions of functions of respective portions of the control code or names of variables used in the control code (Please see the screenshot; the comments describe functions of the control code. For example, // Digital input Function Block ZSC2011 is a comment used to describe function. Additionally, the ACSI table describes the variables. For example, ZIC1011 is of type Boolean ).
PNG
media_image1.png
620
701
media_image1.png
Greyscale
Regarding Claim 7, Taorui in view of Stump teaches the system of claim 1. Hayat further teaches the natural language request specifies at least one of a control function to be performed by the control code, a type of equipment to be controlled by the control code, or a format for the control code (Please refer to the following two screenshots for control function and format respectively. For motivation to combine please refer to claim 5 ).
PNG
media_image2.png
474
739
media_image2.png
Greyscale
PNG
media_image3.png
76
734
media_image3.png
Greyscale
Regarding Claim 8, Taorui in view of Stump teaches the system of claim 1. Hayat further teaches the natural language request is a first natural language request, the user interface component configured to receive, via the IDE interface, a second natural language request to add one or more instances of a specified project element to the industrial control project, the specified project element comprising at least one of a control code instruction, an add-on instruction, a data tag, or a device definition (The following screenshots show additional requests in natural language for code instruction, add-on instruction and device definition. For motivation to combine please refer to claim 5).
PNG
media_image4.png
324
732
media_image4.png
Greyscale
PNG
media_image5.png
266
701
media_image5.png
Greyscale
PNG
media_image6.png
449
710
media_image6.png
Greyscale
the generative AI component is further configured to, in response to receipt of the second natural language request, add the one or more instances of the specified project element to the industrial control project (The conversation with ChatGPT shows each function, add on instruction and device definition being added and incorporated in the overall program. Stump teaches the IDE where the chat component would be integrated. For motivation to combine please refer to claim 5).
`
Claims 15-16 are method claims reciting limitations similar to claims 5-6 respectively and are rejected under the same rationale.
Claim 20 is a medium claims reciting limitations similar to claim 5 and is rejected under the same rationale.
Claims 9-11, and 17-18 are rejected under 35 U.S.C. 103 as being unpatentable over Taorui et al. (IDS Reference: CN116719520B) in view of Stump (US20230058094A1), further in view of Hashtroudi et al. (Automated Test Case Generation Using Code Models and Domain Adaptation)
Regarding Claim 9, Taorui in view of Stump teaches the system of claim 1. Stump further teaches the executable component further comprise a project testing component configured to execute the test scripts against the industrial control program to facilitate validation of the industrial control program ([0095-0096] “ Automation objects 222 can be provided with pre-bundled test scripts 1002 and/or definitions of test scenarios 1004 that are specific to the type of industrial asset represented by the automation object 222. During or after development of system project 302 as described above, the IDE system's project testing component 210 can execute test scripts 1002 associated with one or more selected automation objects 222 as appropriate to verify proper responses of the system project 302, thereby validating the project. To this end, test scripts 1002 can define simulated test inputs 1012 to be provided to the automation object 222 and/or associated project code in which the object 222 is used, as well as expected responses of the automation object 222 and its associated project code to the simulated inputs 1012. According to an example testing procedure, project testing component 210 can execute one or more test scripts 1002 associated with respective one or more automation objects 222 against system project 302. Execution of the test scripts 1002 can involve, for example, feeding simulated test inputs 1012 to control code or other elements of system project 302 according to a sequence defined by the test scripts 1002, setting values of digital or analog program variables defined by the system project 302 according to a defined sequence, initiating control routines of the system project 302 according to a defined sequence, testing animation objects or other visualization elements defined by the system project 302, verifying data linkages between control routines, verifying relationships between program elements and drawing elements, confirming that device configuration settings or parameter values are appropriate for a given industrial application being carried out by the system project 302, or otherwise interacting with system project 302 according to testing procedures defined by the test scripts 1002. During testing, the project testing component 210 can monitor test results 1006 or responses of the system project 302 to the test interactions defined by the test scripts 1002 and determine whether these test results 1006 match expected results defined by the test scripts 1002. In this way, proper operation of the system project 302 can be verified prior to deployment without the need to develop custom test scripts to debug the system project code”).
However, Taorui and Stump don’t teach the generative AI component is further configured to infer, based on analysis performed on the industrial control program, test scenarios for validating the industrial control program, and to generate test scripts configured to execute the test scenarios
Hashtroudi teaches the generative AI component is further configured to infer, based on analysis performed on the industrial control program, test scenarios for validating the industrial control program, and to generate test scripts configured to execute the test scenarios (Pg. 1, Introduction, “Properly evaluating the generated test cases requires executing the generated tests to calculate test adequacy metrics, which is time-consuming and typically requires non-trivial manual labor, e.g., resolving dependencies. (c) Domain shift problem [46] occurs when the pre-trained models cannot transfer their code knowledge to a new target project due to different code distributions in various domains of projects. Despite these shortcomings, test case generation based on deep neural code models has advantages. The generated tests from neural models are similar since the models are trained on human-written code. Therefore, they are more readable and maintainable than the alternative automatically generated test cases ... They also target different faults (the same as those targeted by the developer-written tests) compared to tests generated by, e.g., search-based approaches, which usually focus on maximizing code coverage … In our approach, first, we fine-tune the CodeT5 pre-trained model with a task-specific dataset to customize the model for generating unit test cases, given a method under test. Then, we apply domain adaptation with the project-specific dataset to learn the proper code knowledge and create higher-quality test cases for mitigating the impact of the domain shift problem. We also conduct a more thorough investigation by evaluating test adequacy and textual similarity metrics to address the insufficient evaluation problem” Pg. 2, Introduction, “In summary, our main contributions are as follows: (1) We propose a line-level neural test case generation framework leveraging domain adaptation, which creates high quality unit test cases (compilable, similar to human-written, and test-adequate). (2) We conducted an empirical study on Defects4j benchmark dataset [16], which shows our approach improves the performance of the most related work AthenaTest, A3Test, and GPT-4) from the literature. (3) We also show that our approach can cover lines that neither developer-written tests nor a baseline search-based testing tool can cover. We also showed that we can kill new mutants compared to the search-based tools. (4) Unlike most related work, we execute the generated test cases and evaluate them with proper test adequacy metrics (i.e., code coverage and mutation score), which require much more effort to calculate compared to BLEU/CodeBLEU. We also report the BLEU and CodeBLEU scores, which are much used in the literature for automated evaluation metrics.” Pg. 3, 3.1 Fine Tuning on Test Case Generation Task, “Our framework assumes the project under test has an initial test suite. We aim to improve the project by generating new tests using code models. Although we use developer-written test suites as our initial set, they can also be automatically generated (e.g., using ChatGPT). We explain each option’s limitation in the threats to the validity section. The first step is to create a coverage database from the existing test suite. We use the line-level coverage in our framework and evaluation for simplicity. However, this can be extended to other code metrics or mutation scores. The coverage database keeps the information on which unit test covers which lines of source code. In the next step, our line2test mapping approach converts the coverage data to map each line in the source code to its covering tests. Line2test mapping extracts the classpath of all test cases”).
Taorui, Stump, and Hashtroudi are analogous art because they are from the same field of endeavor in enhancing code generation efficiency and accuracy. Hashtroudi further uses custom LLMs to generate automated test case scenarios for a given code set. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, to combine Taorui, Stump and Hashtroudi to provide a more complete suite of tools that optimize the entire cycle of code development including testing and validation. “We can also use our framework as a complementary solution alongside common search-based methods to increase the overall coverage with mean and median of 25.3% and 6.3%. It can also increase the mutation score of search-based methods by killing extra mutants (up to 64 new mutants were killed per project in our experiments).” (Pg. 1, Hashtroudi)
Regarding Claim 10, Taorui in view of Stump and further in view of Hashtroudi teaches the system of claim 9. Hashtroudi further teaches the response prompted from the generative AI model is a first response, and the generative AI component is configured to at least one of infer the test scenarios or generate test scripts based on the industry-specific information encoded in the one or more custom models and a second response prompted from the generative AI model (Pg. 3, III Approach, “To fine-tune the code model to the test generation downstream task, we use an existing dataset (let’s call it test generation data), which consists of tuples of source code method, associated test code method, plus the source code method’s context (class name, signatures of the constructor methods, public variables and fields, and all other methods’ signatures in the class). The choice of the exact test generation dataset a user wants to use for fine-tuning is up to the user” and Pg. 4, “Then we use the fine-tuned code model and apply Domain adaptation on it using the project-specific dataset that we generated. In this way, the model can adapt to the new domain (project) and generate more accurate tests with a higher compilation ratio.” EN: The fine-tuned model is a custom model that’s fine tuned with project specific datasets which are industry-specific information. Fig. 1 showcases the test case generation framework with its multiple responses from one step to the other).
PNG
media_image7.png
475
626
media_image7.png
Greyscale
Regarding Claim 11, Taorui in view of Stump and further in view of Hashtroudi teaches the system of claim 9. Stump further teaches a test script, of the test scripts, defines a sequence of simulated inputs to be injected into the industrial control program by the project testing component and an expected response of the industrial control program to the simulated inputs ([0095] “ the IDE system's project testing component 210 can execute test scripts 1002 associated with one or more selected automation objects 222 as appropriate to verify proper responses of the system project 302, thereby validating the project. To this end, test scripts 1002 can define simulated test inputs 1012 to be provided to the automation object 222 and/or associated project code in which the object 222 is used, as well as expected responses of the automation object 222 and its associated project code to the simulated inputs 1012”).
Claims 17-18 are method claims reciting limitations similar to claims 9-10 respectively and are rejected under the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Koziolek et al. (ChatGPT for PLC/DCS Control Logic Generation): discloses 100 prompts to LLMs to analyze proficiency of LLMs in generating functional control code.
Fakih et al. (LLM4PLC: Harnessing Large Language Models for Verifiable Programming of PLCs in Industrial Control Systems): discloses optimizing LLMs through various ML techniques for generating and validating PLC code.
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 AMIR DARWISH whose telephone number is (571)272-4779. The examiner can normally be reached 7:30-5:30 M-Thurs.
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, Emerson Puente can be reached on 571-272-3652. 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.
/A.E.D./Examiner, Art Unit 2187
/LEWIS A BULLOCK JR/ Supervisory Patent Examiner, Art Unit 2199