With the automation of industrial processes and systems, e.g., control of machinery on factory assembly lines, control of chemical processes, control of heating, ventilating, and air conditioning (HVAC) systems, and control of lighting fixtures, different processes often use different products to monitor and control the different processes. For example, different firmware images and/or different product references may be used to provide the communication for different products with different operating environments. A product typically includes a controlling device with a communications interface that interacts with a specific communications environment. The communications environment may include a fieldbus supporting a designated protocol, e.g., Modbus/TCP or EtherNet/IP so that the product can interact with remote devices. With traditional systems, a different communications interface is often needed for different communications environments. Consequently, each communications environment often requires different firmware and/or hard-coded support, thus resulting in additional development effort with for each newly supported product even though there may be substantial commonality among products. In conjunction with each communications environment, a product website may be provided for each product to enable a user to install, configure, and maintain the product. However, with traditional systems, each product website may require that a developer manually create the website, including HyperText Markup Language (HTML) for each webpage, JavaScript that is used to control the look and feel of the layout, and the Java code to support applets for obtaining and displaying data for the product.
An aspect of the invention provides apparatuses, computer-readable media, and methods for generating a website for a product with an embedded processor in an automation and control system in accordance with a product specification, a website template, and webpage definitions. The specification may contain all the properties of the product needed to interact over a network. The page definitions information identifies a subset of the parameters contained in the specification and groups the identified parameters into different webpages, menus and sub-menus. The website may have a common look and feel based on a website template that is applied to different products.
With another aspect of the invention, code is generated and inserted in corresponding webpages so that data in the product can be located and may be displayed when the website is viewed by a web browser.
With another aspect of the invention, a website generator automatically generates a website by creating a web specification file and at least one auxiliary file. Code is generated from at least one auxiliary file to locate and/or format data from an product. The data may then be inserted in a corresponding webpage when viewed through a web browser. With some embodiments, the web specification file may be expressed with HyperText Markup Language (HTML) and the at least one auxiliary file may be expressed with Extensible Markup Language (XML).
With another aspect of the invention, a communication package, e.g., Modbus, BACnet, and Ethernet/IP, may be used to read and/or write data at a product or a remote device.
With another aspect of the invention, context sensitive help files (e.g., expressed with HTML) may generated in order to assist a user.
With another aspect of the invention, a product includes an embedded product host that has an embedded processor (e.g., central processing unit) and a communications device that enables the embedded product host to communicate with other devices over a network. The communications device stores a product website that enables a user to view embedded data through a web browser.
A more complete understanding of the present invention and the advantages thereof may be acquired by referring to the following description in consideration of the accompanying drawings, in which like reference numbers indicate like features and wherein:
In the following description of the various embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present invention.
As used herein, the term “embedded device” may be defined as a computer device or system designed to perform one task or a few dedicated functions, often with real-time computing constraints. The embedded device is embedded as part of a complete product, often including hardware and/or mechanical parts. Typically, the program instructions written for embedded devices and systems are referred to as firmware, and are stored in read-only memory or Flash memory chips. By contrast to embedded devices, a general-purpose computer, such as a personal computer (PC), is typically not embedded within another product, and is usually designed to be flexible to meet a wide range of end-user needs.
With an aspect of the invention, a website for a product with an embedded device is automatically generated in accordance with a product specification, a website template, and webpage definitions. The specification may be expressed as a standard description and may contain all the properties of the product needed to interact over a network. The page definitions information identifies a subset of the parameters contained in the specification and groups the identified parameters into different webpages, menus and sub-menus. The website may have a common look and feel based on a website template that is applied to different products.
With another aspect of the invention, code is generated and inserted in corresponding webpages so that data in the product can be located and formatted and may be displayed when the website is viewed through a web browser.
Specification 251 describes the properties (e.g., structure and operation) of product 101. With some embodiments, specification 251 comprises a standard product description file that contains all the properties of product 101 for interacting with PLC 108 and PC 107 over IP network 105 as well internal properties of product 101. For example, specification may comprise a profile image associated with embedded product host 102, so that communications device 103 can map a network data object received over network 105 (as shown in
A standard product description file for specification 251 may be a markup language file (e.g., an Extensible Markup Language (XML)) based on a schema that is used across different types of products to provide consistency while facilitating development of a product website. Using a schema enables product 101 to be described to a software package (e.g., website generator 201) so that the software package knows how to analyze and extract information from specification 251. Rather than representing the properties of product 101 in an XML format, other approaches may be used including a spreadsheet format or a flat file.
With some embodiments, page definitions 252 identifies a subset of parameters from specification 251 that are associated with different webpages of website 104. Page definitions 252 may indicate the grouping of the parameter subset into webpages, menus, and submenus and may define page rendering, controls, and navigation. Consequently, specification 251 may be interpreted as a “universe of knowledge” about product 101 while page definitions 252 indicate which subsets of the “universe of knowledge” are to be displayed on each web page in the website 104.
Page visual presentation template 253 provides a template of a “blank” website so that websites (e.g., website 104) for different products (e.g., product 101) have a common look and feel for how pages, menus, and submenus are presented in the website as generated by website generator 201. For example, a manufacturer may desire that different products are viewed in a consistent manner by a user through the associated website. Consequently, embodiments may support different types of web technologies and/or visual presentations that may include animation or graphics.
With some embodiments, website 104 includes web specification file 254 and auxiliary files 255. With an aspect of the invention, data for product 101 may be viewed in a formatted manner over the Internet. While web specification file 254 may be expressed in a HyperText Markup Language (HTML) or other type of markup language, some embodiments may not be specifically tied to a web browser. Auxiliary files 255 may be expressed in a markup language, e.g., XML. Web specification file 254 specifies each webpage of website 104 and may include pointers to code (e.g., Java applets) for including embedded data from product 101 (e.g., from embedded host 102) when rendering website 104 through a web browser. (Java applets typically execute at the client (e.g., PC 107 as shown in
If product 101 has a static or fixed data model, then verbose host profile 504 is typically developed once during development of the host profile. However, if the host device is programmable and the data model for the host device may change, then a mechanism may be added to the programming environment for profile generator 501 to export verbose host profile 504. Verbose host profile 504 may then be provided to fieldbus profile generator 505 in order to convert verbose host profile 504 to binary format 506 when the communications device 103 does not support a runtime parser of a markup language, e.g., XML.
As shown in
With some embodiments, profile generator 501 and/or website generator 201 may be based on a personal computer (PC); however, other computing platforms, e.g., an embedded processing device, mainframe computer, mobile terminal device, or cloud computing platform, may be used.
After the developer provides the above information and activates Generate Product Website selection 605, website generator 201 automatically processes the specification files in conjunction with presentation information to complete website 104 along with code to locate and format displayed data within product 101. This approach may facilitate the effort of designing, coding, and testing a website that is embedded in a networked device. It also may improve the quality of website 104 because a large amount of editing may be eliminated along with the potential for errors.
With some embodiments, processing system 801 may correspond to one or more processors and storage device 804 may correspond to one or more memories.
Apparatus 800 may be implemented as one or more ASICs or other integrated circuits having instructions for performing operations as described in connection with one or more of any of the embodiments described herein. Said instructions may be software and/or firmware instructions stored in a machine-readable medium and/or may be hard-coded as a series of logic gates and/or state machine circuits in one or more integrated circuits and/or in one or more integrated circuits in combination with other circuit elements.
With some embodiments, processor 901 may correspond to one or more processors and memory 903 may correspond to one or more memories.
Product website 104 (as shown in
Apparatus 900 may be implemented as one or more ASICs or other integrated circuits having instructions for performing operations as described in connection with one or more of any of the embodiments described herein. Said instructions may be software and/or firmware instructions stored in a machine-readable medium and/or may be hard-coded as a series of logic gates and/or state machine circuits in one or more integrated circuits and/or in one or more integrated circuits in combination with other circuit elements.
Apparatus 900 may support a dual Ethernet links 961 and 962 to provide redundancy typically used with network 105 to monitor and control remote devices. Processing device 901 may obtain the active Ethernet link through Ethernet switch 904
Apparatus 900 may also support other interfaces 963-968 that may be used for direct communications between communications device 103 and host 102 (as shown in
As can be appreciated by one skilled in the art, a computer system with an associated computer-readable medium containing instructions for controlling the computer system may be utilized to implement the exemplary embodiments that are disclosed herein. The computer system may include at least one computer such as a microprocessor, digital signal processor, and associated peripheral electronic circuitry.
While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as set forth in the appended claims.