Utility application entitled “Apparatus and Method for the Deployment and Monitoring of Control Logic” naming as inventor Kenneth Dickie and having attorney docket number 262588 (102673); and
Utility application entitled “Apparatus and Method for Providing Secure Communications in a Network” naming as inventors Gregory Dunn and Kenneth Dickie and having attorney docket number 262803 (102674), both of which are being filed on the same day as the present application and the contents of both of which are incorporated herein by reference in their entireties.
1. Field of the Invention
The subject matter disclosed herein relates to the creation and integration of control logic.
2. Brief Description of the Related Art
Automated devices perform various functions and these devices typically include a controller or control device that controls or manages the execution of these functions. For example, robotic controllers (e.g., those that utilize microprocessors) often control the functions of a robot and the robot can perform various manufacturing tasks. Assembly line controllers are used to control the various functions performed on or at an assembly line. A consumer device controller may be used to control the operation and functioning of any type of consumer device (e.g., security system, lighting system, heating system, traffic light or pump control). Together, these types of controllers provide automated functions and are generally referred to as automation controllers.
An automation controller typically includes and utilizes control logic to perform its functions. Control logic solutions may include computer software and/or computer hardware that performs various predetermined functions. For example, an assembly line controller (e.g., for a bottling plant) may include a microprocessor that operates programmed computer software to regulate the speed and other functions associated with operating an assembly line that fills and caps the bottles. In another example, a controller may also include a microprocessor running programmed computer software that regulates various device parameters (e.g., temperature, pressure, or operating speed). In yet another example, a water system controller may include control logic that controls pumps and sprinklers.
In conventional approaches, if a user wanted a specific control solution (e.g., control logic) they would have to develop the control logic as an entire system, purchase it from a supplier and could not collaborate with other users. This creates inefficiencies and frustration with these previous approaches.
Approaches are provided that allow customers to develop control logic, create libraries of control logic, collaborate in the development of control logic, and build control logic at a communication network. The execution and deployment of control logic on control devices is also provided.
In many of these embodiments, an automation controller is selected on which to deploy control logic. At the communication network, the control logic is built for deployment to the automation controller that is selected. At the communication network, the control logic is also mapped to the hardware configuration of the automation controller selected. The control logic is loaded onto the automation controller that is selected and the control logic is integrated to the selected automation controller.
In some aspects, building the control logic utilizes at least one control logic module stored in a data storage device. In other aspects, building the control logic utilizes at least one control logic module created by a user at the communication network. In other examples, at least one control logic module that is created by the user is stored at the data storage device.
In other examples, building the control logic uses at least one control logic module that is stored at a data storage device and additionally uses at least one control logic module created by a user at the communication network. The control logic module created by the user is stored at the data storage device in some aspects. In some aspects, the mapping is between physical devices. In other aspects, the mapping comprises a mapping between control devices and generating communication protocols between the devices such that large, complex control solutions can be created from modular components.
In others of these embodiments, an apparatus for creating control logic at a communication network and integrating the control logic to a remotely located automation controller includes an interface and a controller. The interface has an input and an output, and is configured to receive a selection from a user at the input of an automation controller on which to deploy the control logic.
The controller is deployed at a communication network and coupled to the interface. The controller is configured to build the control logic for deployment to the automation controller selected and to map the control logic to the hardware configuration of the automation controller selected. The controller is also configured to load the control logic on the automation controller that is selected.
For a more complete understanding of the disclosure, reference should be made to the following detailed description and accompanying drawings wherein:
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.
In the approaches described herein, customers develop control logic, create libraries of control logic, collaborate on the development of control logic and build control solutions in a cloud-based environment. The execution and deployment of control logic on control devices is also provided. In so doing, system efficiency, cost effectiveness, and user satisfaction are improved compared to conventional approaches.
The present approaches allow customers to assemble individual pieces of control logic and create a customized control solution. By defining stand-alone classes of control logic, users can determine device inputs/outputs at the time of logic creation or at the time of deployment (e.g., provide a late binding). Users have the ability to visualize their control solutions using the different views on graphical user interfaces. For example, geo-physical views, logical views, and network views showing the control logic and/or its operation can be displayed. End users no longer need to understand the specifics of control logic code or hardware design. Instead, users can utilize pre-made or predefined logic blocks to build control logic solutions. The present approaches allow users to share libraries of control logic to facilitate rapid solution development. The present approaches also allow users to collaborate on solution development by developing components separately and integrating them at time of deployment instead of at time of development.
Referring now to
The communication network 102 is any type of communication network such as the Internet, a computer network, a cellular telephone network, or any combination of these or other networks. In this respect, the communication network 102 may include any number of devices such as computers, access points, routers, and servers, to mention a few examples.
The communication network 102 includes a processor 104 and a data storage device (memory) 126. The data storage device 126 (which can be any type of memory device or combination of memory devices) includes a control logic representation 128.
The control logic representation 128 is a description (in one example, implemented as programmed software or code) that represents the control logic at the automation controller 122 or 153. More specifically, the control logic representation 128 describes the functions, workings, operation, inputs, outputs, and other characteristics of the operation of the associated control logic of the automation controller 122 or 153. In other aspects, the control logic representation 128 may be hardware, software, or combinations of hardware and software elements. In one aspect, the control logic representation 128 is the same as the control logic at the automation controller 122 or 153. Consequently, changes can be made to the control logic representation 128 (without halting the operation of the automation controller 122) and these can be later downloaded to the automation controller 122 or 153 and stored as control logic 129 at the automation controller 122 or 153.
The automation controller 122 or 153 may be any device, combination of devices, or network of devices that are implemented in any combination of hardware or software. In one example, the automation controller 122 or 153 is an assembly line controller. In other examples, the automation controller 122 or 153 is a controller for a pumping network (e.g., pumps, valves, pipes, sprinklers, and their associated controllers). Other examples of automation controllers and systems that utilize automation controllers are possible.
The memory also includes a first control logic module 140, a second control logic module 142, and a third control logic module 144. The modules 140, 142, and 144 are individual pieces of control logic that can be assembled as needed or desired in any combination to form control logic representation 128. Together, the modules 140, 142, and 144 are included to form a library 146.
The network 102 also includes a build control logic module 160 and a build library logic module 162. The build control logic module 160 is any combination of software and/or hardware that allows a user to build control logic. For example, the user may graphically select (using a GUI) different ones of the modules 140, 142, and 144 for assembly into a control logic representation 128. Additionally, a mapping between hardware and software components may also occur. The build library logic module 162 is any combination of software and/or hardware that allows a user to design, build, and store control logic library modules (routines) in the library 146. For instance, a user may directly enter control logic code into a GUI. The control logic may be entered according to any appropriate programming language. In another example, a user may purchase control logic and upload it into the library 146. Documentation files may also be provided to guide users in using the system or the control logic.
A graphical user interface (GUI) 150 is coupled to communication network 102 and specifically to the processor 104. In this example, GUI 150 is disposed in the private network 155. Alternatively, there may be some GUIs inside the private network 155 and some outside, or all outside. GUI 150 provides graphical screens that allow a user to build control logic and deploy the control logic to automation controllers. Physical integration 163 may occur at the automation controller. For example, during physical integration 163 a user or technician may physically connect hardware components at the automation controller 122 or 153. A dashboard may be provided on the GUI showing selected functions of control logic.
In one example of the operation of the system of
In some aspects, building the control logic utilizes at least one control logic module 140, 142, or 144 stored in a data storage device 126. In other aspects, building the control logic utilizes at least one control logic module 140, 142, or 144 created by a user at the communication network 102.
In other examples, at least one control logic module 140, 142, or 144 that is created by the user is stored at the data storage device 126. In other examples, building the control logic uses at least one control logic module 140, 142, or 144 that is stored at a data storage device 126 and also uses at least one control logic module created by a user at the communication network 102. The at least one control logic module created by the user is stored at the data storage device 126.
In the example shown, multiple automation controllers 122 and 153 communicate with each other within a private network 155. Data may flow in either direction between these devices. Other automation controllers can be added to the network 155. In this way, the approaches herein are able to create a large complex of control solutions with modular components.
Referring now to
At step 206 and at the communication network, the control logic is mapped to the hardware configuration of the automation controller selected. At step 208, the control logic is loaded on to the automation controller that is selected and the control logic is integrated to the selected automation controller.
Referring now to
The controller 304 is deployed at a communication network and coupled to the interface 302. The controller 304 is configured to build the control logic 312 for deployment to the automation controller 310 selected and to map the control logic to the hardware configuration of the automation controller selected. The controller 304 is also configured to load the control logic 312 on the automation controller that is selected. Mapping is also provided between various automation controllers.
Referring now to
The present approaches allow customers to develop control logic and deploy it using a cloud-based (or communication network-based) system. Customers are able to either create the control logic themselves or purchase the control content (see, e.g.,
Libraries of control logic, which are typically logic blocks created for a specific task that can be deployed to different types of hardware, can also be created and sold within the marketplace so customers do not have to develop them. An example of one library might be a turn-on function for many different brands. Configuration templates can also be created and sold for a specific piece of hardware. One such template might be sprinkler pump for a particular brand or manufacturer that includes turning it on/off, setting pressure levels, speeds, and so forth.
Users can build control logic by associating different components together. Users can also configure logic, hardware and configurations independent of one another. The present approaches also determine which components can run together and users can associate different components through configurations. Users can view the library modules and simply drag and drop them on a GUI to assemble them into a piece (or pieces) of control logic.
Users can build control logic using different views of the same data. A geo-physical view will show the actual location of devices on a map (see, e.g.,
Global variables may also be set in the approaches described herein. More specifically, variables that apply to multiple logical or physical components may be stored and used by these components. These variables can be set or modified by a user with a GUI.
Referring now to
Mapping also is provided between multiple automation controllers. For example, the output of one automation controller (e.g., a pump) is mapped to the input of a second automation controller (e.g., a drain processing device).
Preferred embodiments of this invention are described herein, including the best mode known to the inventors for carrying out the invention. It should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of the invention.
This application claims benefit under 35 U.S.C. §119 (e) to U.S. Provisional Application No. 61/691,293 entitled “Solution Configurator in a Cloud-based System” filed Aug. 21, 2012, the content of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61691293 | Aug 2012 | US |