Development of automated control application including iec 61499 architecture

The automated control application development system using machine learning models addresses inefficiencies in IEC 61499 adaptation by generating assets and sequences efficiently, ensuring consistent and reliable control application development.

JP2025170214APending Publication Date: 2025-11-18SCHNEIDER ELECTRIC IND SAS +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025069503
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-28
Filing Date
2025-04-21
Publication Date
2025-11-18

Smart Images

  • Figure 2025170214000001_ABST
    Figure 2025170214000001_ABST
Patent Text Reader

Abstract

To provide a computing system capable of developing an automated control application using relatively simple user inputs, and a method.SOLUTION: A method includes a step of receiving a generalized system prompt, and a step of automatically retrieving relevant information from a database in response to the system prompt. The database stores data related to industrial control systems, and the retrieved relevant information includes a predetermined code format. The method further includes a step of automatically deriving a context prompt on the basis of the retrieved relevant information, and a step of generating code in accordance with the predetermined code format in response to the context prompt.SELECTED DRAWING: Figure 2A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of Indian Patent Application No. 202411031775, filed on April 22, 2024, and Indian Patent Application No. 202511029969, filed on March 28, 2025, the entire disclosures of which are incorporated herein by reference. [Background technology]

[0002] background Control applications are developed to automate individual machines, continuous processes, or batch processes. Using known methods and systems to gain a thorough understanding of automation and / or control systems can be tedious and time-consuming. For example, engineers may need to watch machine videos, read operator manuals, and / or hold multiple discussions with users to gather high-level machine requirements. Furthermore, known tools for developing automation and control systems involve time-consuming steps to define data models, define data relationships, create assets, write control sequences, and test and verify the code. Relying solely on human effort can lead to inaccuracies, inconsistencies, or other issues. Furthermore, at least some control applications are not adapted to a high-level architecture, such as that required by the International Electrotechnical Commission (IEC) standard IEC 61499, which defines an event-driven paradigm. Faster control application development is hindered by tight deadlines, the rigor involved in going through hundreds of pages to understand requirements, the steep learning curve involved in understanding IEC 61499 practices, and a lack of experts and expertise. Summary of the Invention

[0003] Aspects of the present disclosure enable the development of automated control applications based on relatively simple user input.

[0004] In one aspect, a method for automated control application development according to the IEC 61499 architecture is provided. The method includes receiving a system prompt and automatically retrieving relevant information from a large corpus including multiple libraries. The method also includes automatically creating assets based on the relevant information, automatically generating control sequences based on the relevant information, automatically generating a human-machine interface based on the relevant information, automatically generating test cases based on the relevant information, and automatically generating documentation based on the relevant information.

[0005] In another aspect, a computing system is provided. The computing system includes one or more computer storage media containing data and computer-executable instructions, and one or more processors configured to execute the computer-executable instructions. When executed, the instructions configure the processor to receive a system prompt and automatically retrieve relevant information from a large corpus including multiple libraries. The instructions further configure the processor to automatically create assets based on the relevant information, automatically generate control sequences based on the relevant information, automatically generate human-machine interfaces based on the relevant information, automatically generate test cases based on the relevant information, and automatically generate documentation based on the relevant information.

[0006] Other objects and features of the present disclosure will be in part apparent and in part pointed out herein. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 is a block diagram illustrating an exemplary system for automatically generating application code according to one embodiment.

[0008] [Figure 2A]FIG. 2A is a flow diagram illustrating an exemplary process for generating application code according to the IEC 61499 architecture by the system of FIG. 1, according to one embodiment.

[0009] [Figure 2B] FIG. 2B illustrates an exemplary large-scale language model (LLM) architecture with low-rank adaptation (LoRA) for use with the system of FIG. 1 and the process of FIG. 2A, according to one embodiment.

[0010] [Figure 3] FIG. 3 illustrates an exemplary support library for the IEC 61499 framework according to one embodiment.

[0011] [Figure 4] FIG. 4 is a block diagram illustrating exemplary operations for generating application code by the system of FIG. 1 according to one embodiment.

[0012] [Figure 5] FIG. 5 is a flowchart illustrating an exemplary process for use with the operations shown in FIG. 4, according to one embodiment.

[0013] [Figure 6] FIG. 6 illustrates exemplary criteria that may be used to evaluate code generated using the system shown in FIG. 1, according to one embodiment.

[0014] [Figure 7A] FIG. 7A is a block diagram illustrating an exemplary system and process for generating control sequences using the system shown in FIG. 1, according to one embodiment.

[0015] [Figure 7B]FIG. 7B is a block diagram illustrating an exemplary system and process for generating a human-machine interface (HMI) using the system shown in FIG. 1, according to one embodiment.

[0016] [Figure 7C] FIG. 7C is a block diagram illustrating an exemplary system and process for generating test cases using the system shown in FIG. 1, according to one embodiment.

[0017] [Figure 7D] FIG. 7D is a block diagram illustrating an exemplary system and process for generating documentation using the system shown in FIG. 1, according to one embodiment.

[0018] [Figure 7E] FIG. 7E is a block diagram illustrating an exemplary system and process for automated data modeling and updating using the system shown in FIG. 1, according to one embodiment.

[0019] [Figure 8] FIG. 8 is a block diagram illustrating exemplary inputs and outputs associated with the system shown in FIG. 1, according to one embodiment.

[0020] [Figure 9A] FIG. 9A is an exemplary functional block diagram and corresponding XML output generated by the system of FIG. 1, according to one embodiment. [Figure 9B] FIG. 9B is an exemplary functional block diagram and corresponding XML output generated by the system of FIG. 1 according to one embodiment. [Figure 9C] FIG. 9C is an exemplary functional block diagram and corresponding XML output generated by the system of FIG. 1, according to one embodiment. [Figure 9D] FIG. 9D is an exemplary functional block diagram and corresponding XML output generated by the system of FIG. 1 according to one embodiment.

[0021] [Figure 10] FIG. 10 is a computer architecture diagram illustrating an exemplary computing system that may be used to perform one or more computing operations in the illustrated example, according to one embodiment.

[0022] Corresponding reference characters indicate corresponding parts throughout the drawings. DETAILED DESCRIPTION OF THE INVENTION

[0023] The features and other details of the concepts, systems, and techniques sought to be protected herein will now be described in more detail. It will be understood that any particular embodiment described herein is shown by way of example and not as a limitation of the disclosure and concepts described herein. Features of the subject matter described herein can be employed in various embodiments without departing from the scope of the concepts sought to be protected.

[0024] The present disclosure relates to automation systems, and more particularly, to automation control application development according to the IEC 61499 architecture. The examples described herein enable automated end-to-end application development, leverage existing distributed industrial automation system architectures, and account for batch process control standards with minimal user interference or involvement. The methods and systems described herein are compatible with a variety of programming languages ​​and / or engineering tools. The present disclosure relates to a software-defined approach to automation that develops a single, scalable industrial automation environment for continuous, hybrid, or discrete processes. The examples described herein simplify existing complexity and allow users to update or change automation based on what they need, when they need it, and from whom.

[0025] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Although any methods and materials similar or equivalent to those described herein can be used in the practice or testing of this disclosure, exemplary systems and methods are described below.

[0026] To meet the needs of industrial systems, tools are needed for efficient management, configuration, and control of devices within the system. Ideally, interactive engineering management software provides simplified management and programming tools for users. A user refers to any entity that configures and / or manages application development. For example, a user may include a plant operator, personnel with programming expertise in an industrial environment, or other automation devices that may provide instructions for configuring or creating applications. However, each device in the system requires application code to run within the environment. Because devices may be supplied by various manufacturers, different requirements may apply. To simplify and unify management, standards create uniform guidelines for creating application code or other reusable software components. For example, IEC 61499 provides standards for management within industrial applications.

[0027] The need for distributed control topologies has led to the development of programming language standards such as IEC 61499, an international standard published by the International Electrotechnical Commission dedicated to distributed (event-based) industrial applications. In general, IEC 61499 defines a generic architecture that enables application-centric design, where one or more applications, defined by a network of interconnected function blocks, are created for the entire system and then distributed to available devices. Function blocks are a convenient programming mechanism that integrates a group of programming instructions to perform a specific, normalized action, such as speed control, interval control, or counting. IEC 61499 addresses the topic of function-block-based, distributable control applications for industrial process measurement and control systems.

[0028] In the IEC 61499 architectural model, distributable applications are built by interconnecting instances of reusable function block types with appropriate event and data connections, in the same way that circuit boards with integrated circuits are designed. Using IEC 61499-compliant software tools, these function blocks can be distributed and then deployed over a network to run-time components in IEC 61499-compliant physical devices (controllers). In this way, distributed control and automation systems can be constructed from libraries of reusable IEC 61499-compliant components.

[0029] According to this standard, the execution of control applications is event-driven, unlike classical scan-based distributed control systems, where events represent changes in the state or condition of the system. The IEC 61499 standard also specifies a set of software components and applications that implementers of the standard must implement or develop.

[0030] While the IEC 61499 standard provides a structure for function block development without additional tools, its use depends on the individual user's expertise in the standard. By utilizing specially trained machine learning models such as LLMs in combination with interactive engineering management software, the system can provide easy and efficient generation of application code for implementation within industrial automation systems. Furthermore, by leveraging fine-tuned training via platforms such as LoRA, LLMs can operate on relatively lightweight hardware within industrial automation systems, resulting in a more efficient and targeted training process.

[0031] With reference to the drawings and the following description, a system 101 for generating applications is disclosed. FIG. 1 is a block diagram illustrating the system 101, also referred to as an engineering system. The system 101 generates applications for controlling and operating industrial automation devices 102. The industrial automation devices 102 may include control devices such as distributed control systems (DCSs), supervisory control and data acquisition (SCADA) systems, programmable automation controllers (PACs), remote terminal units (RTUs), industrial automation and control systems (IACSs), intelligent electronic devices (IEDs), etc. Additionally, the industrial automation devices 102 may include industrial equipment for performing industrial processes, such as sensors, robotics, or other machines. Examples of various industrial automation devices 102 in an industrial automation system are further described in U.S. Patent Application Publication No. 2024 / 0377808, entitled "Systems and Methods for Autonomous Anomaly Management of an Industrial Site," assigned to Schneider Electric System USA, Inc., the entire contents of which are incorporated herein by reference.

[0032] In some embodiments, the generated application code complies with the IEC 61499 standard. However, other software standards may define reusable software component requirements, as described below with respect to the IEC 61499 standard. The engineering processor 104 generates the application code (or reusable software component). In some embodiments, the engineering processor 104 monitors and controls the operation of industrial systems within an industrial facility. In other embodiments, the engineering processor 104 operates outside the industrial facility via the cloud. The engineering processor 104 is electronically coupled to a memory that stores instructions for executing the generation of the application code.

[0033] In some embodiments, the engineering processor 104 of FIG. 1 executes interactive engineering management software that allows a user to configure and modify an industrial system and its components. The engineering processor 104 couples to input / output devices such as a keyboard, mouse, display, and / or microphone for inputting information into the processor 104 and the interactive software. The interactive engineering management software further allows a user to input information for application code generation. The interactive software further displays aspects of the industrial automation system, including a network of function blocks that contain the application code. For example, Schneider Electric's EcoStruxure Automation Expert (EAE) provides suitable interactive software for managing system aspects for generating application code, as well as the industrial automation system itself.

[0034] The engineering database 106 is electronically coupled to the engineering processor 104. The engineering database 106 stores information related to the industrial automation system. In some embodiments, the engineering database 106 further stores standards information related to application code generation. The standards information includes syntactic, semantic, and best practice information. In some embodiments, the syntactic, semantic, and best practice information is defined by a standard such as IEC 61499. In one or more embodiments, the engineering database 106 additionally stores historical application code information, such as previously generated application code, information about devices associated with the application code, and execution information for the application code.

[0035] With further reference to FIG. 1 , the LLM engine 108 receives input information from a user and generates application code. The engineering processor 104 executes the LLM engine 108. The LLM engine 108 trains on historical application code information as well as pre-generated application code designed to perform tasks within an industrial automation system. In some embodiments, the LLM engine 108 further trains on semantic, syntactic, and best practice information for the generation of application code. In some embodiments, the LLM engine 108 implements LoRA to update the model based on the industrial system information. By utilizing LoRA, the model updates target parameters, allowing for simplified retraining and execution.

[0036] FIG. 2A is a flow diagram 201 illustrating a process for generating application code according to one embodiment. Starting at step 202, the engineering processor 104 receives natural language input to generate application code. In step 204, a user (e.g., an operator) may provide information for building a particular control application. For example, the user input may include a system diagram (e.g., a P&ID), a flowsheet, a process description, etc. for use in building or updating a data model. In some embodiments, the user enters text at a prompt in the interactive software to create the natural language input. In other embodiments, the user speaks input into a microphone coupled to the engineering processor 104, which a speech-to-text engine renders into text. For example, a user may enter a request to "create an application for a cascaded PID to control tank levels using a supply control valve."

[0037] In some embodiments, the LLM engine 108 executed by the engineering processor 104 evaluates input text in steps 206, 208, and 210. The LLM engine 108 evaluates the text to determine whether the text provides sufficient information for generating application code. For example, to generate appropriate application code according to the IEC 61499 standard, the LLM engine 108 may need to identify devices for execution control, functional objectives, one or more functional states, and functional variables. This input information can then be correlated to components of functional blocks, such as input events, input variables, state buffers, algorithm logic, output events, and output variables, contained in the application code.

[0038] Referring to the previous example input, "Create an application for cascade PID control to control tank levels using a supply control valve," the LLM engine 108 may determine that the input identifies the purpose, i.e., to execute "cascade PID control" and the input "supply control valve." As a result, the LLM engine 108 then determines whether the information can be rendered into application code. In some embodiments, if the LLM engine 108 determines that the input text is insufficient for generation, the LLM engine 108 generates a prompt to present to the user requesting further information. The LLM engine 108 may then receive supplemental or alternative input from the user to fulfill the requirements for generation. For example, if the user only requests "generate application code to execute cascade PID control," the LLM engine 108 may request the user to indicate which supply control element should be used. In other embodiments, if the input is insufficient and does not provide appropriate context for the prompt, the LLM engine 108 generates an error and returns to step 212 to receive new input from the user at 204 of FIG. 2A. Thus, in response to an exemplary insufficient request, the LLM engine 108 prompts the user to input a complete request for generation. Next, at step 214, assuming the input was sufficient at the "good context" decision block of FIG. 2A, the LLM engine 108 proceeds to generate application code components. The contextual prompt generation system 252 (described further herein) may generate a data model at step 216 and communicate with an application code generation system 254 (described further herein), which may be integrated with system 101, to output the model. At step 218, the contextual prompt generation system 252 may communicate with the engineering database 106 to store the data model in the engineering database 106.

[0039] FIG. 2B illustrates an exemplary machine learning system 219 having an LLM architecture with low-rank adaptation (LoRA) for use with the process of FIG. 2A and / or the system 101 of FIG. 1, according to one embodiment.

[0040] In some examples, the machine learning system 219 may include a search expansion generation (RAG) system 220 that receives the user input at 204. The RAG system 220 may include or communicate with at least one LLM 222 configured to analyze the user input 204 and determine one or more machine requirements or specifications for effectively performing one or more functions. Such machine requirements may include one or more of hardware specifications, operating systems, software libraries, software frameworks, runtime environments, network connectivity, environmental considerations (e.g., temperature, humidity, vibration tolerance, etc.), regulatory compliance, industry standards, etc., retrieved from a database. In some examples, the RAG system 220 may determine whether there is sufficient context to understand the user input 204 and / or determine one or more machine requirements. If there is not enough context, the RAG system 220 may prompt the user for additional user input.

[0041] With further reference to FIG. 2B , the RAG system 220 is configured to generate accurate, relevant, and contextually appropriate prompts based on user input 204 (or a functional design specification (FDS) or hardware design specification (HDS)). The RAG system 220 may include or communicate with a search / generation component 224 configured to retrieve (search) relevant information from a large corpus or database 226 (e.g., based on the user input) and generate a response in the form of a final prompt 228 based on the retrieved relevant information (e.g., the RAG). The RAG system 220 may also include or communicate with an orchestrator component (not shown) configured to manage or control the flow of information and / or control between the search and / or generator components. In some examples, the RAG system 220 may include or communicate with an LLM 222 configured to analyze the expanded prompt 228 for use in generating code, which is output as a final response 230, e.g., in the form of a series of function blocks comprising a complete application.

[0042] In one embodiment, the machine learning system 219 is configured to generate accurate, relevant, and contextually appropriate code based on the prompts 228. The prompts 228 are used, for example, to translate machine requirements from industry jargon into simpler yet sufficient detail for the LLM 222 to understand. The RAG-based LLM has sufficient context (e.g., libraries, code databases, lookup tables, etc.) to translate the user prompts into software jargon.

[0043] During operation, the various components of the machine learning system 219 may perform their respective operations within a "black box." In this manner, a user can interact with the inputs and outputs of the system 219 without understanding the inner workings of the system 219. From the user's perspective, the user provides user input to the system 219 and then sees a response 230, which includes a code, on a display.

[0044] Figure 3 shows an example support library for the IEC 61499 framework for generating code. In the example of Figure 3, system 101 accesses support libraries for functions useful to system 101, such as sorting algorithms, timer / counter sequences, array / string operations, LIFO / FIFO, motors, PID, valve information, and sequencers. These are common elements according to the protocol or standard used. The code generator-evaluator process accesses the various libraries to generate code.

[0045] Automated code generation promotes consistency across different parts of the system 101, which can result in a more reliable and maintainable system, especially in complex systems with many interdependent components, and / or reduce the likelihood of errors caused by inconsistencies in manual coding. For example, developing automation control applications according to the IEC 61499 architecture can ensure uniformity in code structure by enforcing coding conventions, naming conventions, and / or design patterns. The system 101 may also be used to generate documentation along with the code, providing additional information about the system architecture, signal flow, and / or logical structure that can be useful for troubleshooting, maintenance, and / or knowledge transfer. In some examples, the system 101 can enhance interoperability and / or streamline the development process by facilitating integration with other software tools and systems, such as simulation software, HMI / SCADA systems, and / or database interfaces.

[0046] FIG. 4 illustrates example operations that may be performed by the system described herein for use in automated process control application development. In some examples, one or more operations may be performed based on a user-driven activity selection. For example, upon receiving a selection of “Asset Creation,” the system may analyze one or more specifications or contextualize the specifications in one or more system prompts for creating one or more assets in the context of asset creation. Additionally or alternatively, upon receiving a selection of “Control Sequence Generation,” the system may analyze one or more specifications in the context of control sequence generation and contextualize the specifications in one or more system prompts for generating one or more control sequences by designing the system prompts to ask questions related to sequence managers, start, stop, abort, or other sequences and interlocks. Additionally or alternatively, upon receiving a selection of “Test Case Generation,” the system may analyze one or more specifications in the context of test case generation and contextualize the specifications in one or more system prompts for generating one or more test cases for use in verifying the generated control sequences. Additionally or alternatively, upon receiving a selection of "Complete Control Application Development," the system may analyze one or more specifications in the context of application development and contextualize the specifications at one or more system prompts to develop one or more applications by sequentially executing each operation (e.g., data extraction, asset creation, control sequence generation, HMI generation, test case generation, and / or documentation). In this manner, one or more operations may be performed to provide various aspects of application development, including guided execution, assisted debugging, and / or contextual help.

[0047] FIG. 5 illustrates an exemplary method for use in generating application code according to aspects of the present disclosure. In some examples, one or more system requirements may be obtained at 502. The system requirements may be received by the RAG system 220, for example, as user input. Exemplary system requirements may include user requirements at 504, hardware requirements, and / or network requirements, and / or software requirements at 506. In some examples, the system requirements may be used to determine and / or identify the functionality of each automation device 102, including one or more control objectives, as well as input / output requirements and interactions with one or more other devices (e.g., field devices, monitoring computers, etc.). The system requirements may then be used at 504, 506 to set and / or define one or more hardware parameters, network parameters, software parameters, etc. for use in drafting an application module architecture to set up the project at 508. In some examples, the RAG system 220 may use or cooperate with one or more libraries (e.g., I / O libraries, project libraries, etc.) to facilitate setting up the project for automated application code generation at 510 and evaluation at 512. The code may then be generated and / or evaluated according to predetermined frameworks, templates, standards, and / or best practices. For example, in some embodiments, the criteria shown in FIG. 6 (described further herein) may be used to evaluate the resulting code, and a total code score may be generated based on the automated or manual evaluation of the code. The code may be used to delineate one or more operational sequences, including main operating modes and initialization routines. In some examples, the system 101 may generate documentation along with the code at 514.

[0048] FIG. 6 illustrates exemplary criteria that may be used to evaluate code generated using the system shown in FIG. 1, according to one embodiment.

[0049] Referring again to FIG. 2A , flow diagram 201 and the example process also incorporate an example code system 251 for generating code or text in a predetermined format (e.g., JavaScript® Object Notation (JSON), Extensible Markup Language (XML), etc.) that can be used in certain embodiments with system 101 of FIG. 1 , the process of FIG. 2A , and / or the LLM architecture of FIG. 2B . The generated code or text can be consumed by one or more functions within system 101 to generate final output. As shown in FIG. 2A , code system 251 can include a contextual prompt generation system 252 (e.g., a requirements checker and / or a RAG orchestrator) that generates accurate, relevant, and contextually appropriate prompts by analyzing one or more specifications and / or user input. In some examples, a user may have the option to disable or add one or more prompts. Code system 251 can also include a code or formatted text generation system (e.g., a code generator-evaluator) (not shown) that generates code based on the prompts generated by contextual prompt generation system 252. In this manner, code system 251 may be configured to evaluate one or more process descriptions, extract one or more control narratives, generate one or more control sequences, and / or prompt a user for validation, receive input, and update code, text, as requested. For example, when context prompt generation system 252 does not identify a match for a valve function or HMI in one or more libraries, context prompt generation system 252 may generate one or more prompts for application code generation system 254 to generate a new valve function or HMI symbol for the valve as code. In some examples, application code generation system 254 may be configured to generate code according to an event-based architecture as referenced in the IEC 61499 framework.

[0050] 7A illustrates an example control sequence generation using the systems and processes described herein. In response to system prompts providing higher-level machine requirements (e.g., "control sequence generation"), the contextual prompt generation system 252 may employ an elastic search system to query and retrieve relevant input (e.g., control sequence-related documentation, user input) to generate accurate, relevant, and contextually appropriate prompts for generating appropriate control application code in structured text.

[0051] 7B illustrates an example HMI creation using the systems and processes described herein. In response to a system prompt providing a higher-level machine requirement (e.g., "Create HMI screen"), the contextual prompt generation system 252 may employ an elastic search system to query and search relevant inputs (e.g., HMI-related documentation, user input) to generate accurate, relevant, and contextually appropriate prompts for generating an appropriate HMI screen.

[0052] FIG. 7C illustrates an example test case generation using the systems and processes described herein. In response to a system prompt providing higher-level machine requirements (e.g., “Test Case Generation”), the contextual prompt generation system 252 can analyze one or more specifications in the data model and / or user interactions to generate accurate, relevant, and contextually appropriate prompts for generating one or more test cases. In some examples, the system may be configured to support a wide range of testing. For example, the system may be configured to support testing for compliance with design specifications and user expectations by generating anomaly and non-anomaly test cases. As another example, the system may be configured to support fault injection testing by generating test cases that simulate various failure scenarios, etc., and the system may also be used to support generating unit and composite scenarios, performance tests, etc.

[0053] FIG. 7D illustrates exemplary documentation generation using the systems and processes described herein. In response to a system prompt providing a higher-level machine requirement (e.g., “documentation”), the contextual prompt generation system 252 may analyze one or more specifications in the data model and / or user interaction to generate accurate, relevant, and contextually appropriate prompts for generating appropriate documentation. In some examples, the user interaction may include user input describing a document type (e.g., maintenance manual, operation manual, code documentation, update function specification, etc.) and / or including a reference template. The system may be configured to generate technical documentation with advanced context understanding capabilities. For example, the contextual prompt generation system 252 may analyze source code and automatically generate technical documentation including comments describing functions, interlocks, alarms, etc. In some examples, the system may employ an enhanced search capability system to quickly and accurately index and search large volumes of documentation, helping application engineers find relevant information more efficiently.

[0054] 7E illustrates an exemplary system for automated data modeling and updating using the systems and processes described herein. In response to a system prompt providing a higher-level machine requirement (e.g., "Perform artifact analysis"), the contextual prompt generation system 252 may employ an elastic search system to query and search for relevant inputs (e.g., control sequence-related documents, user input), extract data, and generate accurate, relevant, and contextually appropriate prompts for using the data for automated data modeling and updating. The systems described herein may be configured to build or update one or more data models using data from a wide range of data sources, including one or more predetermined inputs and / or user inputs.

[0055] Figure 8 illustrates an exemplary data model for data extraction as referenced with respect to Figure 4. As shown in Figure 8, exemplary predefined inputs may include International Society of Automatic Control Engineers (ISA) standards, IEC 61499 architecture elements, proprietary libraries, other standards or specifications, and / or system prompts, and exemplary user inputs may include piping (or process) and instrumentation diagrams (P&IDs), process descriptions, input / output (IO) lists, instrument indexes, and other user specifications for the automation process (e.g., hardware specifications, control principles, etc.). The predefined inputs and / or user inputs may be in various forms, such as portable document format (PDF) documents, extensible markup language (XML) files, word documents (e.g., *.doc), Excel worksheets (e.g., *.xls), image files (e.g., *.gif, *.jpeg, *.png), and / or other software tool-related files.

[0056] Application creation, for example, includes multiple interrelated operations that vary from tool to tool. In some examples, the operations may include data modeling and updating, asset creation, control sequence generation / control logic generation, HMI creation, test case generation, and / or document generation.

[0057] 2A , an exemplary process is shown for building a data model (e.g., an apple juice production data model) according to another embodiment. To configure the system 101 for building batch process control applications, the data model may be built using predefined (predetermined) inputs. In some examples, the predetermined inputs may include proprietary libraries containing functions and help documentation related to assets such as valves, pumps, sensors, process control units, etc. Exemplary help documentation may include industry technical standard documents (e.g., PackML, ISA-5.1, ISA-88, ISA-95, ISA-106, IEC 61499), design guidelines, sequence diagrams, communication protocols, etc.

[0058] In step 202, a data extraction prompt is triggered, and in steps 206 and 208, the context prompt generation system 252 communicates with a database (eg, the engineering database 106 of the system 101) to extract relevant data (eg, the ISA-88 standard).

[0059] In step 204, a user can provide information for building a particular control application. For example, user input can include system diagrams (e.g., P&IDs), flowsheets, process descriptions, etc. for use in building or updating an apple juice manufacturing data model. Additionally, the user can provide a high-level prompt such as, "Develop a batch control application for apple juice blending using the ISA88 standard and IEC 61499 architecture."

[0060] In step 210, the contextual prompt generation system 252 determines whether certain conditions are met (e.g., whether there is sufficient context to understand the input and / or determine one or more machine requirements). If all of the certain conditions are met (e.g., sufficient context to generate an acceptable prompt), the process may jump to step 214. However, if one or more conditions are not met, the contextual prompt generation system 252 may prompt the user for additional user input (e.g., "Please provide an ISA88 physical model for apple juice mixing") in step 212. Then, repeating step 204, the user may provide additional user input (e.g., an ISA88 physical model for apple juice mixing) that triggers another data extraction prompt in steps 206 and 208, and the contextual prompt generation system 252 may repeat step 210 to determine whether certain conditions are met.

[0061] When it is determined that all of the specified conditions are met (e.g., the "good context" decision block is met), the contextual prompt generation system 252 may, in step 216, generate a data model and communicate with an application code generation system 254, which may be integrated with system 101, to output the model. In step 218, the contextual prompt generation system 252 may communicate with a database to store the data model in the database.

[0062] The example process of FIG. 2A may be used to create an asset (e.g., custom valve FV01) according to another embodiment. In some examples, asset creation includes creating a virtual functional copy of an asset provided in a P&ID. The asset may be created autonomously by leveraging a data model, predetermined inputs, and / or system prompts. Example predetermined inputs for creating an asset may include materials associated with an engineering tool and a sample representation of input / output data for few-shot learning (e.g., a representation of a custom valve generated in structured text with IEC 61499 specifications).

[0063] In step 204, an asset creation function prompt is triggered, and in steps 206 and 208, the context prompt generation system 252 communicates with a database to extract relevant data (e.g., asset tags). In some examples, the asset creation function may run autonomously until a predetermined set or number of assets are created.

[0064] In step 210, the contextual prompt generation system 252 may identify the asset tag list and communicate with the application code generation system 254 to output, in step 216, application code associated with the valve function FV01 that may be integrated with the system 101. In some examples, the output application code may be PLC code. Additionally or alternatively, the output application code may be any other file type compatible with the system 101, including a *.fbt file, a *.xml file, a *.html file, a *.pdf file, a *.xlsx file, a *.json file, etc. In step 218, the contextual prompt generation system 252 may communicate with a database to store the application code in the database.

[0065] In one embodiment, the exemplary process of FIG. 2A may also be used to illustrate a process for generating control sequences. In some examples, control sequence generation includes studying a process description and creating sequential control functions based on the process description. The control sequences may be created autonomously by utilizing data models, predetermined inputs, and / or system prompts. Exemplary predetermined inputs for creating control sequences may include materials associated with engineering tools and sample representations of input / output data for few-shot learning (e.g., a representation of batch process control-sequential control code generated in structured text using the IEC 61499 specification).

[0066] In step 204, a control sequence creation prompt is triggered, and in steps 206 and 208, the context prompt generation system 252 communicates with a database to extract relevant data (e.g., data model, process description). In some examples, the control sequence creation function may execute autonomously until a predetermined set or number of steps in the sequence are created.

[0067] In step 210, the contextual prompt generation system 252 can validate the procedure using the tags and phrases and communicate with the application code generation system 254 to output, in step 216, an application code associated with the structured text code that can be integrated with the system 101. In step 218, the contextual prompt generation system 252 can communicate with a database to store the application code in the database.

[0068] According to another embodiment, the exemplary process of FIG. 2A may be used to illustrate a process for generating one or more test cases. In some examples, test case generation involves identifying multiple possible scenarios to test to validate a batch process control being developed. Test cases may be created autonomously by leveraging data models, predetermined inputs, and / or system prompts. Exemplary predetermined inputs for creating test cases may include materials associated with engineering tools and sample representations of input / output data for few-shot learning (e.g., representations of custom valves and generated code generated in structured text using IEC 61499 specifications).

[0069] In step 204, a test case creation prompt is triggered, and in steps 206 and 208, the context prompt generation system 252 communicates with a database to extract relevant data (e.g., data models, process descriptions, batch process control code). In some examples, the test case creation function may run autonomously until a predetermined set or number of test cases are created.

[0070] In step 210, the contextual prompt generation system 252 may determine relevant test cases and communicate with the application code generation system 254 to output structured text code associated with the relevant test cases that may be integrated with the system 101 in step 216. In step 218, the contextual prompt generation system 252 may communicate with a database to store the structured text code in the database.

[0071] In yet another embodiment, the exemplary process of FIG. 2A may also be used to illustrate a process for generating documentation (e.g., code documentation, operator manuals, maintenance manuals, control narratives, etc.). In some examples, the documentation may support operators and process engineers in navigating and debugging any issues that may arise. The documentation may be created autonomously by leveraging data models, predetermined inputs, and / or system prompts. Alternatively, a user may force the development of a document by loading a reference that triggers a document creation prompt in step 204. Exemplary predetermined inputs for creating a document may include materials related to engineering tools and sample representations of input and output data for few-shot learning (e.g., representations of code documentation, operator manuals, maintenance manuals, control narratives, etc.).

[0072] In step 204, a document creation prompt is triggered, and in steps 206 and 208, the context prompt generation system 252 communicates with a database to extract relevant data (e.g., data models, process descriptions, batch process control code). In some examples, the asset creation function may run autonomously until a predetermined set or number of documents are created.

[0073] In step 210, the contextual prompt generation system 252 can identify the generated document and communicate with the application code generation system 254 to output application code associated with the document that can be integrated with the system 101 in step 216. In some examples, the output application code can be a *.pdf file. In 218, the contextual prompt generation system 252 can communicate with a database to store the application code in the database.

[0074] In this apple juice production example, various workflows are presented herein, including different types of user input extensions to contextualize data and generate output, and how the same repository of data can be leveraged to generate a wide range of application code.

[0075] Figure 9A is an example application generated by system 101 of Figure 1 in accordance with one or more embodiments as shown in Figures 7A-7E, and Figure 9B represents XML output from LLM engine 108 corresponding to the application of Figure 9A. Figure 9C is another example application generated by system 101 of Figure 1 in accordance with one or more embodiments as shown in Figures 7A-7E, and Figure 9D represents XML output from LLM engine 108 corresponding to the application of Figure 9C. It should be understood that Figures 9A-9D illustrate non-limiting example inputs, and system 101 is configured to collect information from the given inputs and add it to user inputs, as described below.

[0076] Inputs for the Exemplary Use Case of Figures 9A and 9B: In industrial processes, accurate motor control based on tank level is critical to maintaining consistent product quality. The developed control system manages motor operation with exceptional reliability. The analog input block AI3051 conditions the input signal, meticulously suppressing potential noise from the level measurement system. The tank level is maintained relative to a predefined setpoint, and the system is programmed to stop the motor when it detects a low level (30%) and restart the motor when it reaches a high level (70%), generating intelligent logic triggers for motor control. The motor block M3051 serves as the final execution point, precisely controlling the motor's start and stop operations. This integrated system ensures that the motor only operates under specific level conditions, effectively preventing issues such as dry running or overfilling, thereby protecting critical equipment and maintaining process consistency. During operation, the system 101 responds to these inputs to generate application code, exemplified by the function blocks connected together to form the application of Figure 9B, for example, in certain embodiments, according to the process of Figure 2A and the LLM architecture of Figure 2B.

[0077] Example Use Case Inputs for Figures 9C and 9D: In complex industrial processes like chemical or water treatment, accurate multi-loop tank level control is essential. The cascaded PID control system, represented by blocks LI1101, PID1101, PID1102, and FV1101, represents an advanced strategy for managing tank liquid level with extremely high precision. The analog input block LI1101 conditions the input signal and suppresses potential noise and false alarms from the level measurement system. The first PID controller (PID1101) operates as the primary (outer) loop, monitoring the overall tank level and generating a flow rate setpoint based on deviation from the desired level. The secondary PID controller (PID1102) receives this setpoint and focuses the inner loop, precisely controlling the supply control valve position to achieve the required flow rate. The valve control block FV1101 translates these calculated control signals into actual valve movement, ensuring fine adjustments that maintain a consistent tank level. This cascade control approach enables rapid response to process disturbances, with the inner loop compensating for valve nonlinearities and the outer loop maintaining overall system stability, creating a robust and intelligent tank level management solution. In operation, system 101 responds to these inputs by generating application code, exemplified by the function blocks connected together to form the application of FIG. 9D, for example, in certain embodiments according to the process of FIG. 2A and the LLM architecture of FIG. 2B.

[0078] Exemplary Computing System

[0079] 10 illustrates an example computing system 600 (e.g., automation device 102, engineering processor 104, engineering database 106, LLM engine 108, machine learning system 219) configured to perform one or more computing operations described herein. In some examples, computing system 600 includes a processor 610, a system memory 620, and a bus 630 that couples various system components including system memory 620 to processor 610.

[0080] Processor 610 is configured to perform general computing functions, process data and instructions to perform one or more operations, and / or provide other functionality described herein. For example, processor 610 may access system memory 620 to read data and instructions from system memory 620 and / or write data and instructions to system memory 220 for use in executing one or more computer-executable instructions. In this manner, processor 610 may be programmed to execute any aspect of the software components described herein, including the software components of machine learning system 219 for implementing RAG system 220 (shown in FIG. 2B ). According to one or more aspects of the present disclosure, processor 610 embodies a code generation processor.

[0081] In some examples, processor 610 may be or include any number of processing devices, including a central processing unit, a graphics processing unit, a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware logic components, including, but not limited to, an application specific integrated circuit (ASIC), an application specific general purpose product (ASSP), a system on a chip (SOC), a complex programmable logic device (CPLD), etc.

[0082] The system memory 620 includes any combination of computer-readable media that can be accessed by the processor 610. In some examples, the system memory 620 includes a read-only memory (ROM) 632 that stores instructions for performing basic functions and a random access memory (RAM) 634 that temporarily stores data and instructions for actively used programs.

[0083] Computer-readable media include both communication media and computer storage media. Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, and infrared media.

[0084] In contrast, computer storage media include media in a tangible form that can store information, such as computer-readable instructions, data structures, program modules, or other data. By way of example and not limitation, computer storage media include ROM 632, RAM 634, hard disk drives (HDDs), solid-state drives (SSDs), external hard drives, flash drives, optical storage media (e.g., compact discs (CDs), digital versatile discs (DVDs)), and magnetic storage media (e.g., tape drives). For purposes of this disclosure, computer storage media is mutually exclusive to communication media, and excludes waves, signals, and other transitory or intangible forms of media.

[0085] It should be understood that the software components described herein, when loaded and executed on processor 610, can transform processor 610 and the entire computing system 600 from a general-purpose computing system into a special-purpose computing system customized to facilitate the functions described herein. More specifically, the computer-executable instructions contained within the software components described herein transform processor 610 to operate or function as a finite state machine by specifying how processor 610 transitions between states, thereby transforming the transistors or other discrete circuit elements that make up processor 610.

[0086] Encoding the software components described herein may also transform the physical structure of the computer-readable medium described herein. The particular transformation of the physical structure may depend on various factors in different implementations of the present disclosure. Examples of such factors may include, but are not limited to, the technology used to implement the computer-readable medium, whether the computer-readable medium is characterized as primary or secondary storage, etc. For example, if the computer-readable medium is implemented as a semiconductor-based memory, the software disclosed herein may be encoded onto the computer-readable medium by transforming the physical state of the transistors, capacitors, or other discrete circuit elements that make up the semiconductor-based memory. The software may also transform the physical state of such components to store data.

[0087] As another example, the computer-readable media disclosed herein may be implemented using magnetic or optical technology. In such implementations, the software presented herein may transform the physical state of a magnetic or optical medium when the software is encoded within the magnetic or optical medium. These transformations may include altering the magnetic properties of specific locations within a given magnetic medium. These transformations may also include altering the physical features or characteristics of specific locations within a given optical medium to change the optical properties of those locations. Other transformations of physical media are possible without departing from the scope and spirit of this description, and the foregoing examples are provided solely to facilitate this discussion.

[0088] In some examples, computing system 600 includes mass storage device 640 coupled to processor 610 for hosting or storing data and instructions, such as operating system 642, one or more programs 644 (e.g., RAG system 220), and / or data 646. Those skilled in the art will understand that a copy of at least some of the data and / or instructions hosted or stored in mass storage device 640 may be at least temporarily stored in system memory 620 to enable computing system 600 to function as described herein.

[0089] 10 , computing system 600 can be connected to a network 650 (e.g., network 130) via a network interface unit 652 connected to bus 630. In this manner, computing system 600 can operate in a networked environment in which computing system 600 can host or store at least some data and / or execute at least some instructions using one or more remote devices (not shown). For example, computing system 600 can include one or more client-side applications that perform one or more operations at computing system 600 while the one or more operations are performed remotely (e.g., in the “cloud”). Computer communications between computing systems can be network transfers, file transfers, applet transfers, email, Hypertext Transfer Protocol (HTTP) transfers, etc.

[0090] In some examples, computing system 600 may include one or more input / output (I / O) controllers 660 that facilitate communication and data transfer between processor 610 and one or more I / O devices (not shown) configured to provide input and / or output capabilities. For example, a user may input commands and information into computing system 600 using one or more input devices, such as a keyboard, a pointing device (e.g., a mouse, trackball, touchpad, stylus), a microphone, a camera, a scanner, an accelerometer, etc. Additionally or alternatively, computing system 600 may present various forms of information, such as text, images, audio, video, alerts, etc., using one or more output devices, such as a monitor, a projector, a printer, speakers, actuators, etc. In some examples, output devices may be integrated with input devices (e.g., in a touchscreen panel or in a controller that includes a vibration component).

[0091] Although some examples are illustrated and described herein with reference to a computing system 600 that is, includes, or is included in an automation device 102, an engineering processor 104, an engineering database 106, an LLM engine 108, and / or an RAG system 220, aspects of the present disclosure are operable with any computing system capable of executing computer-executable instructions to implement the operations and functionality associated with the computing system 600. It is also contemplated that the computing system 600 may not include all of the components shown in FIG. 10 , may include other components not explicitly shown in FIG. 10 , or may utilize an entirely different architecture than that shown in FIG. 10 . The computing system 600 should not be interpreted as having any dependency or requirement relating to any one or combination of components shown in FIG. 10 . The computing system 600 is merely one example of a computing and networking environment for performing one or more computing operations and is not intended to suggest any limitation as to the scope of use or functionality of the present disclosure.

[0092] Described herein are exemplary methods and systems for generating automated control applications. The examples described herein acquire user input and generate, at least in part, one or more instructions or prompts for building the entire application based on the user input. Furthermore, the examples described herein enable control applications to be built in an efficient and user-friendly manner. While working with batch or continuous processes, engineers build these control applications using a set of documents, such as P&IDs, IO lists, user requirement specifications, equipment indexes, ISA88 and ISA106 standard definitions for batch and continuous processes, and others. However, at least some control applications have not been adapted to advanced architectures like IEC 61499, which discusses an event-driven paradigm that promotes better IT / OT convergence and protects the future of automation, primarily due to tight deadlines, the rigor involved in going through hundreds of pages to understand the requirements, the steep learning curve involved in understanding IEC 61499 practices, and a lack of experts and expertise for faster control application development.

[0093] IT (Information Technology) is the technological backbone of any organization, managing electronic data, while OT (Operational Technology) controls the physical processes and equipment in industrial operations. IT / OT convergence integrates data management systems with industrial operating systems, enabling real-time data exchange and improved decision-making.

[0094] The examples described herein enable control applications to conform to advanced architectures such as IEC 61499. Automated text / code generation can lead to cost savings by shortening development time, reducing errors, and / or improving system reliability. It also facilitates a lower learning curve for engineers. In view of the above, it will be seen that several advantages of aspects of the present disclosure are achieved and other advantageous results are obtained.

[0095] The examples illustrated and described herein, as well as examples not specifically described herein but within the scope of aspects of the present disclosure, constitute exemplary means for managing cryptographic identities. For example, the elements shown in the figures, when programmed, coded, or configured to perform the operations shown, constitute at least exemplary means for receiving input data defining a set of specifications, analyzing the input data to retrieve relevant information from a large corpus, generating one or more prompts based on the relevant information, and using the one or more prompts to generate application code according to a high-level architecture such as IEC 61499.

[0096] Embodiments of the present disclosure may comprise a special purpose computer that includes various computer hardware, as described in more detail herein.

[0097] For purposes of illustration, programs and other executable program components may be illustrated as discrete blocks, however it is recognized that such programs and components reside at various times in different storage components of the computing device, and are executed by the device's data processor.

[0098] Although described in connection with an exemplary computing system environment, embodiments of aspects of the present disclosure are operational with other specialized computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of any aspects of the present disclosure. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of computing systems, environments, and / or configurations that may be suitable for use with aspects of the present disclosure include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable appliances, mobile phones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

[0099] Embodiments of aspects of the present disclosure may be described in the general context of data and / or processor-executable instructions, such as program modules, stored in memory, i.e., one or more tangible, non-transitory storage media, and executed by one or more processors or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote storage media, including memory storage devices.

[0100] In operation, the processor, computer, and / or server may execute processor-executable instructions (e.g., software, firmware, and / or hardware) such as those described herein to implement aspects of the present disclosure.

[0101] Embodiments may be implemented using processor-executable instructions. The processor-executable instructions may be organized into one or more processor-executable components or modules on a tangible, processor-readable storage medium. Also, embodiments may be implemented using any number and organization of such components or modules. For example, aspects of the present disclosure are not limited to the specific processor-executable instructions or the specific components or modules illustrated in the drawings and described herein. Other embodiments may include different processor-executable instructions or components having more or less functionality than those illustrated and described herein.

[0102] The order of execution or performance of operations in accordance with aspects of the present disclosure illustrated and described herein is not required unless otherwise specified. That is, operations may be performed in any order unless otherwise specified, and embodiments may include more or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of the present disclosure.

[0103] When introducing elements of the disclosure or embodiments thereof, the articles "a," "an," "the," and "said" are intended to mean that there are one or more of the elements. The terms "comprising," "including," and "having" are intended to be inclusive and mean that there may be additional elements other than the listed elements.

[0104] Not all of the illustrated components shown or described are required. Furthermore, some implementations and embodiments may include additional components. Changes in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided, and components may be combined. Alternatively, or in addition, a component may be implemented by several components.

[0105] The above description presents embodiments by way of example and not by way of limitation. This description enables a person skilled in the art to make and use aspects of the present disclosure and describes several embodiments, adaptations, variations, alternatives, and uses of aspects of the present disclosure, including what is currently contemplated to be the best mode of carrying out aspects of the present disclosure. Furthermore, it is to be understood that aspects of the present disclosure are not limited in their application to the details of construction and the arrangements of components set forth in the following description or illustrated in the drawings. Aspects of the present disclosure are capable of other embodiments and of being practiced or carried out in various ways. Also, it will be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting.

[0106] It will be apparent that modifications and variations are possible without departing from the scope of the present disclosure as defined in the appended claims. Because various changes can be made in the structures and methods described above without departing from the scope of the present disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings be interpreted as illustrative and not in a limiting sense.

[0107] In view of the above, it will be seen that the several advantages of aspects of the present disclosure are achieved and other advantageous results attained.

[0108] The Abstract and Overview are provided to aid the reader quickly ascertain the nature of the technical disclosure. They are submitted with the understanding that they will not be used to interpret or limit the scope or meaning of the claims. The Overview is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Description. This Overview is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the claimed subject matter.

Claims

1. 1. A computing system for the automated generation of code for use in an industrial control system, comprising: a database storing data relating to the industrial control system; a code generation processor; a memory that stores processor-executable instructions; The processor-executable instructions, when executed, receiving a generalized system prompt; automatically retrieving relevant information from the database in response to the system prompt, the retrieved relevant information including a predetermined code format; automatically deriving contextual prompts based on the retrieved relevant information; and generating code according to a predetermined code format in response to the contextual prompt. Computing system.

2. the memory storing processor-executable instructions that, when executed, further configure the code generation processor to receive one or more user inputs, the processor-executable instructions for automatically deriving the contextual prompts comprising processor-executable instructions that, when executed, configure the code generation processor to automatically derive the contextual prompts based on the retrieved relevant information and the received user inputs. The computing system of claim 1 .

3. The user input includes at least one type of input: a P&ID, a process description, an IO list, an equipment index, a hardware specification, a control philosophy, or a user specification; The computing system of claim 2 .

4. the user input includes at least one of input in the form of a Portable Document Format (PDF) document, an Extensible Markup Language (XML) file, a text document, a spreadsheet, an image extension, or other software tool related file extension; A computing system according to claim 2 or 3.

5. the data related to the industrial control system stored in the database includes a plurality of predetermined inputs, the predetermined inputs including one or more of previously processed user inputs, International Society of Automatic Control Engineers (ISA) standards, International Electrotechnical Commission (IEC) 61499 architecture elements, code libraries, or predetermined system prompts; A computing system according to any one of claims 1 to 4.

6. the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically create assets based on the retrieved association information. A computing system according to any one of claims 1 to 5.

7. the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically generate a control sequence based on the retrieved associated information. A computing system according to any one of claims 1 to 6.

8. the processor-executable instructions for automatically deriving the context prompt include processor-executable instructions that, when executed, further configure the code generation processor to query the database for data related to one or more of a sequence manager, a start, a stop, an abort, another sequence, or an interlock, as related to the control sequence; The computing system of claim 7 .

9. the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically generate one or more test cases based on the retrieved relevant information, the test cases configured to verify the control sequence. A computing system according to any one of claims 1 to 8.

10. the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically generate a human-machine interface based on the retrieved relevant information. A computing system according to any one of claims 1 to 9.

11. the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically generate documentation based on the retrieved related information. A computing system according to any one of claims 1 to 10.

12. 12. The computing system of claim 1, wherein the processor-executable instructions for generating the code include processor-executable instructions that, when executed, further configure the code generation processor to automatically generate a control application based on the retrieved relevant information.

13. the processor-executable instructions for automatically deriving the contextual prompts include processor-executable instructions that, when executed, further configure the code generation processor to query the database to analyze one or more of a specification in a data model and a previous user interaction. A computing system according to any one of claims 1 to 12.

14. the database storing data related to the industrial control system includes a data model including one or more of asset data, a hardware description, an IO list, or a physical model hierarchy related to the industrial control system; A computing system according to any one of claims 1 to 13.

15. 1. A method for the automatic generation of code for use in an industrial control system, comprising: receiving a generalized system prompt; automatically retrieving relevant information from a database in response to the system prompt, the database storing data related to the industrial control system, the retrieved relevant information including a predetermined code format; automatically deriving contextual prompts based on the retrieved relevant information; and generating code according to a predetermined code format in response to the contextual prompt.

16. receiving one or more user inputs, wherein automatically deriving the context prompts includes automatically deriving the context prompts based on the retrieved related information and the received user inputs.

16. The method of claim 15.

17. storing the data related to the industrial control system in the database, the data including a plurality of predetermined inputs, the predetermined inputs including one or more of previously processed user inputs, International Society of Automatic Control Engineers (ISA) standards, International Electrotechnical Commission (IEC) 61499 architecture elements, code libraries, or predetermined system prompts; 17. The method of claim 15 or 16.

18. generating the code includes automatically creating an asset based on the retrieved associated information; 18. The method of any one of claims 15 to 17.

19. generating the code includes automatically generating a control sequence based on the retrieved relevant information; 19. The method of any one of claims 15 to 18.

20. 20. The method of claim 15, wherein the step of automatically deriving the context prompt includes querying the database for data related to one or more of a sequence manager, start, stop, abort, another sequence, or interlock, as related to the control sequence.

21. generating the code includes automatically generating one or more test cases based on the retrieved relevant information, the test cases configured to verify the control sequence; 21. The method of any one of claims 15 to 20.

22. generating the code includes automatically generating a human-machine interface based on the retrieved relevant information; 22. The method of any one of claims 15 to 21.

23. generating the code includes automatically generating documentation based on the retrieved relevant information; 23. The method of any one of claims 15 to 22.

24. generating the code includes automatically generating a control application based on the retrieved relevant information; 24. The method of any one of claims 15 to 23.

25. automatically deriving the contextual prompts includes querying the database to analyze one or more of specifications in a data model and previous user interactions; 25. The method of any one of claims 15 to 24.