Patent classifications
G06F8/33
Industrial automation control logic diagnostics and analysis
A method includes receiving an input indicative of a selection of an object associated with an industrial automation project, each object of a plurality of objects corresponding to a respective industrial automation component, retrieving logic associated with the object from a storage component, evaluating an operability of the logic when executed by the respective industrial automation component corresponding to the object, wherein evaluating the operability of the logic comprises running one or more scripts, executing one or more algorithms, applying one or more rules, or a combination thereof, and updating a GUI to present: a first window visualization comprising a logic schematic visualization of one or more tasks that the logic is configured to cause the object to perform and a second window visualization comprising an indication of the operability of the logic when executed by the respective industrial automation component.
EDIT AUTOMATION USING A TEMPORAL EDIT PATTERN
Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
EDIT AUTOMATION USING A TEMPORAL EDIT PATTERN
Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
SYSTEM MODEL SMART OBJECT CONFIGURATION
An industrial integrated development environment (IDE) provides a development framework for designing, programming, and configuring multiple aspects of an industrial automation system using a common design environment and data model. 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. Project data models defining collections of automation objects and their functional relationships can be stored in a model library for selective inclusion in system projects.
SYSTEM AND METHOD FOR INDUSTRIAL AUTOMATION RULES ENGINE
A (GUI) for designing an industrial automation system includes a design window and a first accessory window. The GUI presents a library visualization representative of a plurality of objects within the first accessory window, each object is represented by an icon and corresponds to a respective industrial automation device. The GUI receives inputs indicative of a selection of one or more objects of the plurality of objects from the library, presents the one or more objects in the design window, determines that the one or more inputs do not comply with a set of industrial automation system rules comprising one or more relationships between a plurality of industrial automation devices, and displays a warning message that the one or more inputs do not comply with the set of industrial automation system rules.
SURFACING UNDERUTILIZED TOOL FEATURES
Embodiments automate surfacing of underutilized development tool features, thereby enhancing the discoverability of subtools, commands, shortcuts, settings, visualizers, and other tool features. After spotting an inefficiency in the user’s interaction with one or more tools, the feature surfacing functionality offers the user an interaction optimization suggestion. A mapping structure correlates detected interaction patterns with objectively better interaction optimizations. Several examples of mappings are discussed. The user can accept a suggestion, have the suggested optimization applied by an enhanced tool, and thereby reduce the number of user gestures utilized to accomplish a desired result, reduce the number of tools utilized, increase security, reduce risk of error, or get to the desired result faster, for example. Interaction optimizations also help the user stay focused, by reducing or avoiding departures from the user’s current primary workflow. Other aspects of tool feature surfacing functionality are also described herein.
SURFACING UNDERUTILIZED TOOL FEATURES
Embodiments automate surfacing of underutilized development tool features, thereby enhancing the discoverability of subtools, commands, shortcuts, settings, visualizers, and other tool features. After spotting an inefficiency in the user’s interaction with one or more tools, the feature surfacing functionality offers the user an interaction optimization suggestion. A mapping structure correlates detected interaction patterns with objectively better interaction optimizations. Several examples of mappings are discussed. The user can accept a suggestion, have the suggested optimization applied by an enhanced tool, and thereby reduce the number of user gestures utilized to accomplish a desired result, reduce the number of tools utilized, increase security, reduce risk of error, or get to the desired result faster, for example. Interaction optimizations also help the user stay focused, by reducing or avoiding departures from the user’s current primary workflow. Other aspects of tool feature surfacing functionality are also described herein.
Code completion for languages with hierarchical structures
A code completion system predicts candidates to complete a code fragment with a tag name and/or an attribute name in source code written in a hierarchically-structured language. Candidates for predicting a tag name are based on a first-order tag Markov chain model generated from usage patterns of relationships of tag names found in a training dataset. Candidates for predicting an attribute name are based on a second-order attribute Markov chain model generated from usage patterns of sequences of attribute names associated with each tag name found in the training dataset.
Code completion for languages with hierarchical structures
A code completion system predicts candidates to complete a code fragment with a tag name and/or an attribute name in source code written in a hierarchically-structured language. Candidates for predicting a tag name are based on a first-order tag Markov chain model generated from usage patterns of relationships of tag names found in a training dataset. Candidates for predicting an attribute name are based on a second-order attribute Markov chain model generated from usage patterns of sequences of attribute names associated with each tag name found in the training dataset.
Systems, devices, and methods for software coding
Provided methods and systems allow dynamic rendering of a reflexive questionnaire based on a modifiable spreadsheet for users with little to no programming experience and knowledge. Some methods comprise receiving a modifiable spreadsheet with multiple rows, each row comprising rendering instructions for a reflexive questionnaire from a first computer, such as a data type cell, statement cell, logic cell, and a field identifier; rendering a graphical user interface, on a second computer, comprising a label and an input element corresponding to the rendering instructions of a first row of the spreadsheet; receiving an input from the second computer; evaluating the input against the logic cell of the spreadsheet; in response to the input complying with the logic cell of the spreadsheet, dynamically rendering a second label and a second input element to be displayed on the graphical user interface based on the logic of the first row.