IP Library › Granted Patent US 12,632,225
Granted Patent B2
US 12,632,225 · App. 18/300,015 · Granted May 19, 2026

Custom textual domain specific language describing an HMI application

Inventors: Chris E Stanek (Willoughby, OH); Steven Kowal (Milwaukee, WI)
Assignee: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
G06F8/34G06F8/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,632,225
App. No.
18/300,015
Granted
May 19, 2026
Kind
B2
Abstract

A human-machine interface (HMI) development system supports a custom textual domain-specific language (DSL) for describing and developing HMI applications. The custom DSL comprises user domain elements corresponding to elements used within the context of a graphical HMI editor, and can be used to describe all aspects of an HMI application in terms of these user domains. Since the DSL is a textual syntax, this approach also allows HMI applications to be developed using any text editor. The DSL can be used to define, using text-based programming, such HMI properties as the graphical elements to be included in the HMI application, element layouts in reference to other graphical elements, element behaviors and actions, commands and custom executable code for specific interactions of the graphics.

Claims (37)

1 . A method, comprising:

receiving, by a system comprising a processor, a domain-specific language (DSL) program comprising text-based code that describes at least a display screen of a human-machine interface (HMI) application, a graphical element to be rendered on the display screen, and an animation associated with the graphical element, wherein a syntax of the text-based code comprises at least a keyword indicating a type of the graphical element, a user-defined name of the graphical element following the keyword, and one or more parameters of the animation following the name of the graphical element;

rendering, by the system during the receiving of the DSL program, programming feedback based on application of development rules to the DSL program, wherein the development rules define actions or animations that are associated with the type of the graphical element and are permitted to be assigned to the type of graphical element, and the programming feedback comprises information specifying the animations that are associated with the type of graphical element and parameters associated with the animations, the animations comprising at least one of a color change animation, a size animation, a position animation, or a fill animation; and

compiling, by the system, the DSL program to yield an executable HMI application that, in response to execution on an HMI terminal, implements the HMI application, wherein the compiling comprises creating the graphical element having the type, the user-defined name, and the one or more parameters defined by the DSL program.

2 . The method of claim 1 , wherein the graphical element is at least one of a graphical pushbutton, a graphical switch, an animated machine graphic, a geometric shape, a text display object, a numeric display object, a data entry control, a screen selection control, a graph object or an alarm window object.

3 . The method of claim 1 , wherein a portion of the DSL program that declares the display screen or the graphical element defines a name of the display screen or the graphical element, properties of the display screen or the graphical element, and available events associated with the display screen or the graphical element.

4 . The method of claim 3 , wherein the available events comprise at least one of a button press event, a button release event, a touch press event, a touch release event, a screen change event, a data entry event, or a data change event.

5 . The method of claim 1 , wherein the DSL program describes, as the animation, a visual state of the graphical element as a function of a value of a controller tag defined by the DSL program or as a function of an expression.

6 . The method of claim 5 , wherein the visual state is at least one of a color, a fill level, a position, an opacity, text content, or numeric content.

7 . The method of claim 1 , wherein the rendering of the programming feedback comprises rendering at least one of error highlighting, syntax highlighting, type-ahead recommendations, or programming suggestions.

8 . The method of claim 7 , wherein the development rules further verify that location coordinates assigned to a graphical object correspond to a location that is within a boundary of a display screen to which the DSL program assigns the graphical object, enforce valid formatting of the DSL syntax, ensure that valid data types are used for respective parameters, or enforce hierarchical relationships between class or object types defined by the DSL program.

9 . A system for developing human-machine interface (HMI) applications, comprising:

a memory that stores executable components; and

a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising:

a user interface component configured to receive, as a text-based input submitted via a development interface, domain-specific language (DSL) programming that defines aspects of an HMI application, wherein

the aspects comprise at least a display screen of the HMI application, a graphical element to be included on the display screen, and an animation associated with the graphical element, and

a syntax of the DSL programming comprises at least a keyword indicating a type of the graphical element, a user-defined name of the graphical element following the keyword, and one or more parameters of the animation following the name of the graphical element; and

an HMI generation component configured to compile the DSL programming to yield an executable HMI application capable of execution on an HMI terminal,

wherein

compiling of the DSL programming comprises creating the graphical element having the type, the user-defined name, and the one or more parameters defined by the DSL programming,

the user interface component is configured to render programming feedback as the DSL programming is being entered based on application of development rules to the DSL programming,

the development rules define actions or animations that are associated with the type of the graphical element and are permitted to be assigned to the type of the graphical element, and

the programming feedback comprises information specifying the animations that are associated with the type of the graphical element and parameters associated with the animations, the animations comprising at least one of a color change animation, a size animation, a position animation, or a fill animation.

10 . The system of claim 9 , wherein the DSL programming defines, as the graphical element, at least one of a graphical pushbutton, a graphical switch, an animated machine graphic, a geometric shape, a text display object, a numeric display object, a data entry control, a screen selection control, a graph object or an alarm window object.

11 . The system of claim 9 , wherein a portion of the DSL programming that declares the display screen or the graphical element comprises a name of the display screen or the graphical element, properties of the display screen or the graphical element, and available events associated with the display screen or the graphical element.

12 . The system of claim 11 , wherein the available events comprise at least one of a button press event, a button release event, a touch press event, a touch release event, a screen change event, a data entry event, or a data change event.

13 . The system of claim 11 , wherein the properties comprise at least one of a size, text to be displayed, a binding to a specified controller data tag, a color, or a location.

14 . The system of claim 9 , wherein the DSL programming defines, as the animation, a visual state of the graphical element as a function of a value of a controller tag defined by the DSL programming or as a function of an expression.

15 . The system of claim 14 , wherein the visual state is at least one of a color, a fill level, a position, an opacity, text content, or numeric content.

16 . The system of claim 9 , wherein the programming feedback comprises at least one of error highlighting, syntax highlighting, type-ahead recommendations, or programming suggestions.

17 . The system of claim 16 , wherein the development rules further verify that location coordinates assigned to the graphical element correspond to a location that is within a boundary of the display screen to which the DSL programming assigns the graphical element, enforce DSL syntax formatting, ensure that valid data types are used for respective parameters, or enforce hierarchical relationships between class or object types defined by the DSL programming.

18 . A non-transitory computer-readable medium having stored thereon instructions that, in response to execution, cause a system comprising a processor to perform operations, the operations comprising:

receiving text-based design input for a human-machine interface (HMI) application, wherein the text-based design input comprises domain-specific language (DSL) programming that describes at least a display screen of the HMI application, a graphical element to be rendered on the display screen, and an animation associated with the graphical element, wherein a syntax of the DSL programming comprises at least a keyword indicating a type of the graphical element, a user-defined name of the graphical element following the keyword, and one or more parameters of the animation following the name of the graphical element;

rendering, during the receiving of the DSL programming, programming feedback based on application of development rules to the DSL program, wherein the development rules define actions or animations that are associated with the type of the graphical element and are permitted to be assigned to the type of graphical element, and the programming feedback comprises information specifying the animations that are associated with the type of graphical element and parameters associated with the animations, the animations comprising at least one of a color change animation, a size animation, a position animation, or a fill animation; and

compiling the DSL programming to yield an executable HMI application that, in response to execution on an HMI terminal, implements the HMI project, wherein the compiling comprises creating the graphical element having the type, the user-defined name, and the one or more parameters defined by the DSL programming.

19 . The non-transitory computer-readable medium of claim 18 , wherein the graphical element is at least one of a graphical pushbutton, a graphical switch, an animated machine graphic, a geometric shape, a text display object, a numeric display object, a data entry control, a screen selection control, a graph object or an alarm window object.

20 . The non-transitory computer-readable medium of claim 18 , wherein a portion of the DSL programming that declares the display screen or the graphical element defines a name of the display screen or the graphical element, properties of the display screen or the graphical element, and available events associated with the display screen or the graphical element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: STANEK, CHRIS E; KOWAL, STEVEN
To: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
Reel/Frame 063316/0276 →
Continuity (1)
Related Publication 20240345809A1 · Oct 17, 2024
References Cited (16)
US 8731691B2 · Lloyd · 2014 [cited by applicant]
US 8798775B2 · Plache et al. · 2014 [cited by applicant]
US 9483240B1 · Boyar · 2016 [cited by examiner]
US 9547291B2 · Tran · 2017 [cited by examiner]
US 11269598B2 · Staas et al. · 2022 [cited by applicant]
US 20100275139A1 · Hammack · 2010 [cited by examiner]
US 20120194502A1 · Smith · 2012 [cited by examiner]
US 20120209412A1 · Lloyd · 2012 [cited by applicant]
US 20130006395A1 · Plache et al. · 2013 [cited by applicant]
US 20170329299A1 · Plache · 2017 [cited by examiner]
US 20190052542A1 · Passante · 2019 [cited by examiner]
US 20210089276A1 · Dunn · 2021 [cited by examiner]
US 20210141614A1 · Staas et al. · 2021 [cited by applicant]
EP 2608025A1 · 2013 [cited by applicant]
Jeanjean et al. “From DSL specification to interactive computer programming environment.” Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering. 2019. Retrieved from the Internet:… [cited by examiner]
Krahn et al. “Roles in software development using domain specific modeling languages.” arXiv preprint arXiv:1409.6618 (2014). Retrieved from the Internet: URL<https://arxiv.org/pdf/1409.6618>. [cited by examiner]