Patent classifications
G06F8/33
Graphical and text based co-design editor for industrial automation projects
An industrial IDE supports development of control programming using an industrial domain-specific language (DSL) that allows control programming to be written using a scripted programming language having features catered to the industrial domain. The industrial DSL can simplify and streamline development of industrial control code relative to using conventional graphics-based control programming formats such as ladder logic, since a script-based industrial DSL can be used to write programming code using fewer mouse clicks relative to traditional control programming environments. Editing tools inherent to the industrial DSL can provide dynamic programming feedback that guides the developer through the process of developing control code. A development interface of the industrial IDE can comprises two editing windows that render the control program in a graphical format and in a text-based format simultaneously, allowing the user to edit the program in either format on the same interface.
System and method for in-ide code review
Methods, system and apparatus for the augmentation of an integrated development environment (IDE). The system and methods provide for the integration of all aspects of a development workflow to be initiated and completed from within the IDE. Every phase of development, including, grabbing a ticket, working on the ticket, asking teammates questions, requesting feedback, initiating code reviews, performing code reviews, creating feature branches, creating pull requests, creating merge requests and generating audit trails of all interactions users have with the IDE are managed and performed from within the IDE, eliminating the need to context switch or open additional application or websites.
System and method for in-ide code review
Methods, system and apparatus for the augmentation of an integrated development environment (IDE). The system and methods provide for the integration of all aspects of a development workflow to be initiated and completed from within the IDE. Every phase of development, including, grabbing a ticket, working on the ticket, asking teammates questions, requesting feedback, initiating code reviews, performing code reviews, creating feature branches, creating pull requests, creating merge requests and generating audit trails of all interactions users have with the IDE are managed and performed from within the IDE, eliminating the need to context switch or open additional application or websites.
Function-level redundancy detection and optimization
The present disclosure provides computer-executable tools which, implemented in a programming language library, may enable source code written using the library to be compiled to object code instrumented for function-level dynamic analysis of memory allocation functions. By tracking heap reads and writes of each target function, symbols may be mapped to memory addresses allocated therefor, and values of input arguments of functions may be mapped to values of output returns. Based on this information, pure functions which embody redundant computations across multiple executions thereof may be identified, while non-pure functions may be screened out. Among pure functions, candidate functions which are executed having the same arguments and returns across multiple executions thereof may be identified, and these functions may be re-compiled to generate object code wherein redundant subsequent executions are avoided, and return values from a first execution thereof are reused across subsequent executions, reducing computational cost.
Function-level redundancy detection and optimization
The present disclosure provides computer-executable tools which, implemented in a programming language library, may enable source code written using the library to be compiled to object code instrumented for function-level dynamic analysis of memory allocation functions. By tracking heap reads and writes of each target function, symbols may be mapped to memory addresses allocated therefor, and values of input arguments of functions may be mapped to values of output returns. Based on this information, pure functions which embody redundant computations across multiple executions thereof may be identified, while non-pure functions may be screened out. Among pure functions, candidate functions which are executed having the same arguments and returns across multiple executions thereof may be identified, and these functions may be re-compiled to generate object code wherein redundant subsequent executions are avoided, and return values from a first execution thereof are reused across subsequent executions, reducing computational cost.
COLLABORATIVE INDUSTRIAL INTEGRATED DEVELOPMENT AND EXECUTION ENVIRONMENT
A method for providing access to a development and execution (D&E) platform for development of industrial software, including providing while the D&E platform is being accessed a GUI with a development tool having process flow and code editors and an execution tool and arranging two or more programming blocks of a process flow responsive to input from an author when the process flow editor is accessed. The two or more programming blocks, when arranged, are configured to be executed. The method further includes editing source code of the two or more programming blocks responsive to input from the author when the code editor is accessed, compiling at least one of the two or more programming blocks responsive to input from the author when the execution tool is accessed, and executing the compiled at least one programming block responsive to input from the author when the execution tool is accessed.
COLLABORATIVE INDUSTRIAL INTEGRATED DEVELOPMENT AND EXECUTION ENVIRONMENT
A method for providing access to a development and execution (D&E) platform for development of industrial software, including providing while the D&E platform is being accessed a GUI with a development tool having process flow and code editors and an execution tool and arranging two or more programming blocks of a process flow responsive to input from an author when the process flow editor is accessed. The two or more programming blocks, when arranged, are configured to be executed. The method further includes editing source code of the two or more programming blocks responsive to input from the author when the code editor is accessed, compiling at least one of the two or more programming blocks responsive to input from the author when the execution tool is accessed, and executing the compiled at least one programming block responsive to input from the author when the execution tool is accessed.
AI DESIGN ANALYSIS AND RECOMMENDATIONS
An industrial integrated development environment (IDE) includes a training component that improves the IDE's automated design tools over time based on analysis of aggregated project data submitted by developers over time. The industrial IDE can apply analytics (e.g., artificial intelligence, machine learning, etc.) to project data submitted by developers across multiple industrial enterprises to identify commonly used control code, visualizations, device configurations, or control system architectures that are frequently used for a given industrial function, machine, or application. This learned information can be encoded in a training module, which can be leveraged by the IDE to generate programming, visualization, or configuration recommendations. The IDE can automatically add suitable control code, visualizations, or configuration data to new control projects being developed based on an inference of the developer's design goals and knowledge of how these goals have been implemented by other developers.
Immersive web-based simulator for digital assistant-based applications
Immersive web-based simulator for digital assistant-based applications is provided. A system can provide, for display in a web browser, an inner iframe configured to load, in a secure, access restricted computing environment, an application configured to integrate with a digital assistant. The application can be provided by a third-party developer device. The system can provide, for display in a web browser, an outer iframe configured with a two-way communication protocol to communicate with the inner iframe. The system can provide a state machine to identify a current state of the application loaded in the inner frame, and load a next state of the application responsive to a control input.
Immersive web-based simulator for digital assistant-based applications
Immersive web-based simulator for digital assistant-based applications is provided. A system can provide, for display in a web browser, an inner iframe configured to load, in a secure, access restricted computing environment, an application configured to integrate with a digital assistant. The application can be provided by a third-party developer device. The system can provide, for display in a web browser, an outer iframe configured with a two-way communication protocol to communicate with the inner iframe. The system can provide a state machine to identify a current state of the application loaded in the inner frame, and load a next state of the application responsive to a control input.