DETAILED ACTION
Claims 1-20 are presented for examination.
Claims 1, 9, 10, 12, 13, and 17-19 have been amended.
This office action is in response to the RCE submitted on 19-JUN-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 .
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 – 35 USC 101
On pgs. 9-12 of the Applicant/Arguments Remarks, Applicant argues the amended claims have overcome the rejection under 35 USC 101. The arguments have been fully considered and are persuasive. The rejection under 35 USC 101 has been withdrawn.
Response to Arguments – 35 USC 103
On pgs. 12-21 of the Applicant/Arguments Remarks, Applicant argues the amended claims have overcome the rejection under 35 USC 103. Examiner respectfully disagrees.
On pg 12-18, the applicant argues that neither Taorui nor Stump teach the newly modified limitations, reciting infers based on a the industrial vertical … test scenarios for validating the industrial control program
The examiner, without conceding the validity of the argument indicates the Final rejection dated 4/01/2026 relies on Hashtroudi for the rejection of those limitations previously presented in claim 9. Please see pgs. 32-35. The rejection is incorporated into the newly amended claim 1 below.
On Pg. 20-21 the applicant further argues that Hashtroudi doesn’t infer the industrial vertical for which the test generation is done.
Again, without conceding the validity of the argument, the examiner indicates that Stump is relied on for the infer the industrial vertical limitation per ([0066-0069]) and as indicated below. The combination of Stump and Hashtroudi teaches the newly amended limitations in claim 1.
The rejection under 35 USC 103 is maintained.
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, 9-14, and 17-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) further in view of Hashtroudi et al. (Automated Test Case Generation Using Code Models and Domain Adaptation)
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 high quality 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 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
infer, based on the industrial vertical, analysis of the industrial control program, and the industry-specific information encoded in the one or more custom models, test scenarios for validating the industrial control program, and generate test scripts configured to execute the test scenarios on the industrial control program
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).
Hashtroudi teaches infer, based on the industrial vertical, analysis of the industrial control program, and the industry-specific information encoded in the one or more custom models, test scenarios for validating the industrial control program and generate test scripts configured to execute the test scenarios on the industrial control program (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” 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).
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 2, Taorui in view of Stump and further in view of Hashtroudi 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 and further in view of Hashtroudi 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 and further in view of Hashtroudi 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)
Regarding Claim 9, Taorui in view of Stump and further in view of Hashtroudi 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”).
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 the test scripts further based on 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_image1.png
475
626
media_image1.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 12-14 are method claims reciting limitations similar to claims 1, 2, and 4 respectively and are rejected under the same rationale.
Claims 17-18 are method claims reciting limitations similar to claims 9-10 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) further in view of Hashtroudi et al. (Automated Test Case Generation Using Code Models and Domain Adaptation) 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 and further in view of Hashtroudi 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_image2.png
620
701
media_image2.png
Greyscale
Taorui, Stump, Hashtroudi, 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, Hashtroudi 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 and further in view of Hashtroudi 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_image2.png
620
701
media_image2.png
Greyscale
Regarding Claim 7, Taorui in view of Stump and further in view of Hashtroudi 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_image3.png
474
739
media_image3.png
Greyscale
PNG
media_image4.png
76
734
media_image4.png
Greyscale
Regarding Claim 8, Taorui in view of Stump and further in view of Hashtroudi 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_image5.png
324
732
media_image5.png
Greyscale
PNG
media_image6.png
266
701
media_image6.png
Greyscale
PNG
media_image7.png
449
710
media_image7.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.
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.
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 2199
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199