METHOD FOR CONSISTENT STORAGE OF DATA IN AN INDUSTRIAL CONTROLLER
20170039221 ยท 2017-02-09
Inventors
- James J. Kay (Chardon, OH, US)
- David Allen Johnston (Mentor, OH, US)
- Shelly Lynn Urdaneta (Lyndhurst, OH, US)
- Stuart Blair Siegel (Mentor, OH, US)
Cpc classification
G05B2219/13076
PHYSICS
G05B2219/15115
PHYSICS
H04L67/1097
ELECTRICITY
International classification
Abstract
A system and method for employing a file system and file system services on the industrial controller. The file system allows industrial control programs to implement many functions previously performed within the industrial control program and stored in the same memory as the industrial control program. An execution engine is provided that interprets instructions included in an industrial control program. The instructions utilize services in the file system for including user defined routine files loaded from local or remote locations, to load and unload recipe files from local and remote locations, to log and retrieve measured data and trend data to files at local or remote locations, to select different operating systems and to select a running program from a plurality of running programs utilizing the file system.
Claims
1. A method, comprising: sending, by a plurality of industrial controllers using respective file system services implemented on the plurality of industrial controllers, data collected by the plurality of industrial controllers to a remote server device via a web service; storing, by the remote server device, the data as aggregated data on a memory of the remote server device; analyzing, by an auditing application executing on the remote server device, the aggregated data; retrieving, by at least one of the plurality of industrial controllers using a corresponding at least one of the respective file system services, at least a subset of the aggregated data; and storing, by the at least one of the plurality of industrial controllers, at least the subset of the aggregated data on a local memory of the at least one of the plurality of industrial controllers.
2. The method of claim 1, further comprising sending, by the remote server device to an industrial controller of the plurality of industrial controllers, selection data via the web service, wherein the selection data invokes a selected program, of a plurality of application programs stored on the industrial controller, for execution on the industrial controller.
3. The method of claim 1, further comprising, in response to receipt, by an industrial controller of the plurality of industrial controllers, of selection data sent by a web browser application via the web service to one of the file system services implemented on the industrial controller, initiating execution of a selected control program, of a plurality of control programs stored on the industrial controller, identified by the selection data.
4. The method of claim 1, further comprising retrieving, by an industrial controller of the plurality of industrial controllers using a file system service implemented on the industrial controller, a recipe file from the remote server device or from another server device via the web service.
5. The method of claim 4, further comprising: loading, by the industrial controller, at least one process parameter defined by the recipe file to a local memory of the industrial controller; and executing, by the industrial controller, a control program in accordance with the at least one process parameter.
6. The method of claim 1, further comprising retrieving, by an industrial controller of the plurality of industrial controllers using a file system service implemented on the industrial controller, an operating system file from the remote server device or from another server device via the web service.
7. The method of claim 1, further comprising: retrieving, by an industrial controller of the plurality of industrial controllers using a file system service implemented on the industrial controller, an executable routine file from the remote server device or from another server device via the web service; storing, by the industrial controller, the executable routine file on a local memory of the industrial controller; and executing, by the industrial controller, the executable routine file.
8. The method of claim 1, wherein at least a portion of the data comprises trend data generated by one or more of the plurality of industrial controllers or measured data obtained by one or more of the industrial controllers.
9. The method of claim 1, wherein the sending comprises sending at least a portion of the data in response to execution, by an industrial controller of the industrial controllers, of a control program instruction that invokes one of the file system services implemented on the industrial controller.
10. The method of claim 9, wherein the control program instruction is a ladder logic instruction.
11. A system, comprising: a server device comprising a local memory and at least one processor, the server device configured to communicate with a plurality of industrial controllers through a public network via a web service, wherein the server is configured to aggregate data received from the plurality of industrial controllers via the web service to yield aggregated data, and to perform auditing analysis on the aggregated data to yield an analysis result, wherein the data is sent to the server device by the plurality of industrial controllers using respective file system services implemented on the plurality of industrial controllers, and wherein the aggregated data is accessible to the plurality of industrial controllers via the web service using the respective file system services.
12. The system of claim 11, wherein the server device is further configured to send, to an industrial controller of the plurality of industrial controllers, selection data via the web service, wherein the selection data causes one of the file system service implemented on the industrial controller to invoke a selected program, of a plurality of application programs stored on the industrial controller, for execution on the industrial controller.
13. The system of claim 11, wherein the server device is further configured to store one or more recipe files, and wherein the one or more recipe files are accessible to the plurality of industrial controllers via the web service using the respective file system services.
14. The system of claim 11, wherein the server device is further configured to store one or more operating system files, and wherein the one or more operating system files are accessible to the plurality of industrial controllers via the web service using the respective file system services.
15. The system of claim 11, wherein the server device is further configured to store one or more executable routine files, and wherein the one or more executable routine files are accessible to the plurality of industrial controllers via the web service using the respective file system services.
16. The system of claim 11, wherein the data comprises at least one of trend data generated by one or more of the plurality of industrial controllers or measured data obtained by one or more of the plurality of industrial controllers.
17. An industrial controller comprising: a memory; an execution engine; and a file system storable in the memory and comprising a file system service; wherein the file system service is configured to, in response to execution of a control program instruction by the execution engine, send a set of data generated by the industrial controller to a remote server device via a web service, wherein the remote server device is configured to aggregate the set of data with other data received from one or more other industrial controllers to yield aggregated data and to perform an audit analysis on the aggregated data, and wherein the file system service is further configured to retrieve at least a subset of the aggregated data from the remote server device via the web service and to store at least the subset of the aggregated data on a memory.
18. The industrial controller of claim 17, wherein the file system service is further configured to receive, from the remote server device via the web service, selection data identifying a control program of a set of control programs stored on the memory, and in response to the receiving, invoking the control program for execution on the industrial controller.
19. The industrial controller of claim 17, wherein the file system service is further configured to retrieve, from the remote server device via the web service, a recipe file stored on the remote server device, and retrieve, from the recipe file, one or more process parameters defined by the recipe file, and wherein the execution engine is further configured to execute a control program in accordance with the one or more process parameters
20. The industrial controller of claim 17, wherein the file system service is configured to send the set of data to the remote server device in response to execution, by the execution engine, of a control program instruction that causes the file system service to send the set of data.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
DETAILED DESCRIPTION OF THE INVENTION
[0021] The present invention will now be described with reference to the drawings. The present invention will be described with reference to a system and method for employing a file system and file system services on an industrial controller. An execution engine is provided that interprets instructions included in an industrial control program. The instructions utilize services in the file system for including user defined routine files loaded from local or remote locations, to load and unload recipe files from local and remote locations, to log and retrieve measured data and trend data to files at local or remote locations, to select different operating systems and to select a running program from a plurality of running programs utilizing the file system. It is to be appreciated that a number of other functions and services can be employed utilizing the services of the file system in accordance with the present invention. Although the present examples will be illustrated with respect to an implementation using ladder logic programs, other industrial control programming languages can be employed and still fall within the scope of the present invention and appended claims.
[0022] The present invention provides a system for multiple files on a single device. The file system provides a common interface for all non-volatile storage devices, such as CompactFlash cards, Windows CE platforms and hard drives that access the file system through a set of common services, such as Get File Information, Read File, Write File, Create File, Delete File, Open File, Close File, etc. The present invention provides for multiple types of data to be stored such as user programs, data logging, recipe storage, operating system updates and program transfers. The present invention supports lean manufacturing by allowing quick reconfiguring of manufacturing environments, allowing user's to load a specific application into the controller on demand without downloading from programming software and allows user's to purchase smaller memory processors.
[0023]
[0024] The program memory 20 includes an execution engine 22 that performs the main initialization routines of the industrial controller 10 and other devices that the industrial controller 10 communicates with and controls. The execution engine 22 is also the main interface to remote devices. The execution engine in cooperation with a file system 24 allows remote devices to select a particular application program to execute from amongst a plurality of application programs 26. The execution engine 22 is adapted to interpret instructions supplied by the application program including instructions that perform access to one or more files services in the file system 24. Typically, these instructions are written by an editor in ladder logic, which is then converted to programmable logic controller (PLC) instruction code.
[0025] The application programs 26 can employ the file system 24 to perform a variety of functions previously performed within the application programs. For example, one or more user defined routine files 28 can be loaded or linked at runtime by including a file system service command within the application program. The user defined routine files 28 can be one or more libraries, such as a math library or a communication library. Additionally, one or more recipe files 30 can be loaded through the application program employing a file system service. A recipe file is a profile and associated parameters regarding a particular implementation or process. For example, one recipe can be for mixing ingredients for a certain type of paint (e.g., water based paint), while another recipe can be for a different type of paint (e.g., oil based paint). Different recipes can be loaded upon a change in one or more parameters during execution of the application program. Using new instructions, recipes can be loaded and recorded to and from non-volatile memory as a file. A new recipe can be loaded into the same memory space as the previous recipe to save RAM space. Since the user defined routine files 28 and the recipe files 30 are stored in separate files from the application program, the user defined routine files 28 and the recipe files 30 can be stored in a different memory device than the executing application program. The different memory device or devices can reside on the controller 10 or on a remote device, thus reducing the size of the memory that needs to reside on the controller 10. The execution engine 22 is adapted to load the user define routine files and the recipe files upon receipt of a proper instruction from an executing application program.
[0026] The program memory 20 can also include one or more operating system files 32. For example, one application may be developed on a first operating system platform and another application program may be developed on a second operating system platform. The different application programs may not operate correctly or optimally on different operating system platforms. The basic services of the operating system is provided in one or more files. Therefore, when an application program is saved, a copy of the operating system can be saved along with the application program. The operating system and application program can be loaded together when moving an application program from one industrial controller to another to assure compatibility of the operating system and the executing application program running on the controller. The execution engine 22 or the application program can invoke the proper operating system for execution of the application program. The different operating system files 32 can reside on a separate memory device from the application programs at a local or remote location with respect to the industrial controller 10.
[0027] Another function that application programs perform utilizing services of the file system 24 is data logging and data retrieval. For example, logged measured data 34 and trend data 36 each can be logged in one or more files. Logged measure data can include continuous temperature measurements that were conventionally stored in the same RAM that the application program was executing. Trend data includes monitoring differences (e.g., temperature differences) over time. Eventually, the capacity of the RAM is reached and no new temperature data can be stored in the RAM. However, the present invention eliminates this problem by storing the temperature data to a file that can be located on another memory device at a local or remote location. The one or more files can be stored in a separate memory device from the memory on which the application program executes. The separate memory device can reside at a remote location, such that data can be stored at one or more locations over a network. The data can also be accessed by the application program through the file system services 24. The execution engine 22 interprets the appropriate logging and retrieval instruction from the application program and calls one or more functions within the file system 24 to perform the requested data logging and retrieval.
[0028] Referring to
[0029] An editor 48 is provided that allows a user to develop, load, unload, edit or delete one or more ladder logic programs to the industrial controller 40. The editor 48 is adapted to allow a user to insert and edit instructions for employing one or more file system services 46. The editor 48 includes instructions for including one or more user defined routine files 50, for including an operating system file from amongst one or more operating system files 56 and for including one or more recipe files 52 in the ladder logic program 44. The editor 48 is also adapted to allow a user to insert and edit instructions for logging and retrieval of measurement data 58 and trend data 54 in the ladder logic instructions. The editor 48 can then convert the instructions in the ladder logic into instructions understandable and executable by the execution engine 42. Optionally, an operating system file corresponding to development of the ladder logic program can be saved along with the ladder logic program and loaded onto the industrial controller 40 to assure the executing program and the operating system of the industrial controller are compatible.
[0030] As stated above, an editor is provided with a plurality of available instructions for utilizing the file system in accordance with the present invention.
[0031]
[0032]
[0033] A remote computer 116 is coupled to the local server 106 through a second network 114 (e.g., company intranet, Internet). The remote computer 116 provides a medium in which logged measured data 118 and logged trend data 120 can be stored and accessed for each of the industrial controllers 102 at one or more factory locations. Each of the industrial controllers 102 store and access both measured and trend data utilizing a file system residing on a respective controller 102. Therefore, data can be stored at a remote location automatically instead of in the RAM of the respective controller reducing the size of the memory needed on the industrial controller 102. Also, a single location for all of the data can be provided so that data can be consolidated, aggregated and analyzed for one or more of the industrial controllers 102. It is to be appreciated that the logged measured data 118 and the trend data 120 can reside at the local server 106 with the user defined routine files 108, recipe files 110 and operating system files 112. Alternatively, the user defined routine files 108, recipe files 110 and operating system files 112 can reside on the remote computer 116 with the logged measured data 118 and the trend data 120. In fact any of the user defined routine files 108, recipe files 110, operating system files 112, the logged measured data files 118 and trend data files 120 can reside on any of the RAM of the industrial controller 102, the local server 106 and the remote computer 116 employing the file system in accordance with the present invention.
[0034]
[0035] In the example of
[0036] In view of the foregoing structural and functional features described above, a methodology in accordance with various aspects of the present invention will be better appreciated with reference to
[0037]
[0038]
[0039] The present invention has been illustrated with respect to a programming methodology and/or industrial controller architecture and a particular example, however, it is to be appreciated that various programming methodology and/or controller architectures suitable for carrying out the present invention may be employed and are intended to fall within the scope of the hereto appended claims.
[0040] The invention has been described with reference to various aspects of the present invention. Obviously, modifications and alterations will occur to others upon reading and understanding the foregone detailed description. It is intended that the invention be construed as including all such modifications alterations, and equivalents thereof.