System and method for universal extensibility that supports a plurality of programmable logic controllers
First Claim
1. A method of providing an open development kit (ODK) subsystem, the method comprising the steps of:
- executing a programmable logic controller (PLC) application program in the ODK subsystem, wherein the ODK subsystem having a virtual CPU, the virtual CPU executing the PLC program in a real-time operating environment and executing one or more extensions, the one or more extensions providing access into a scan cycle of the PLC program and replaceable functionality to the operation of the PLC program;
sending a specific formatted load application request message from the PLC program to the ODK subsystem;
converting at the ODK subsystem the specific formatted load application request message to a generic formatted load request message;
sending the generic formatted load request message from the ODK subsystem to an application for requesting the one or more extensions to be loaded by the application; and
requesting execution of the application, including checking whether there are requests for application execution in the PLC program and, if so, sending a specific formatted execution request from the PLC program to the ODK subsystem, converting the specific formatted execution request to a generic execution request, and sending the generic execution request from the ODK subsystem to the application, the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode;
checking whether any requests for information are waiting in the application and, if so, requesting information from the PLC program by the application;
executing a function in the ODK subsystem specified by the application;
performing a task in the PLC program associated with the executed function in the ODK subsystem;
returning a specific formatted response from the PLC program to the ODK subsystem, the ODK subsystem converting the specific formatted response to a generic response; and
returning the generic response from the ODK subsystem to the application, the ODK subsystem comprising an ODK Real-Time (RTX) Proxy Dynamic Link Library (DLL) usable in the deterministic environment, the ODK RTX Proxy DLL communicating through shared memory with an ODK System Block (SB) Add-on DLL in the non-deterministic environment, wherein, in the first mode, the Application Wizard generates a Real Time Dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, andthe deterministic environment is a WinAC RTX environment.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system is provided for creating applications for one or more types of programmable logic controllers (PLCs). A open development kit (ODK) is provided that permits dynamic link libraries to be created and interfaced to a user application software and also to the interface layers of the various types of PLCs. The types of PLCs may include soft PLCs, slot PLCs, and hard PLCs and interface via slots of a personal computer platform. The ODK provides generic interfacing to the various types of PLCs and establishes the necessary operating environment structure to implement processing in either a non-real time and a real time mode. A single application package may then control and manage the various types of PLCs. Communication paths are provided from the PLCs to the ODK subsystem to the user application so that the application software is essentially indifferent to type of PLC involved.
31 Citations
32 Claims
-
1. A method of providing an open development kit (ODK) subsystem, the method comprising the steps of:
-
executing a programmable logic controller (PLC) application program in the ODK subsystem, wherein the ODK subsystem having a virtual CPU, the virtual CPU executing the PLC program in a real-time operating environment and executing one or more extensions, the one or more extensions providing access into a scan cycle of the PLC program and replaceable functionality to the operation of the PLC program; sending a specific formatted load application request message from the PLC program to the ODK subsystem; converting at the ODK subsystem the specific formatted load application request message to a generic formatted load request message; sending the generic formatted load request message from the ODK subsystem to an application for requesting the one or more extensions to be loaded by the application; and requesting execution of the application, including checking whether there are requests for application execution in the PLC program and, if so, sending a specific formatted execution request from the PLC program to the ODK subsystem, converting the specific formatted execution request to a generic execution request, and sending the generic execution request from the ODK subsystem to the application, the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode; checking whether any requests for information are waiting in the application and, if so, requesting information from the PLC program by the application; executing a function in the ODK subsystem specified by the application; performing a task in the PLC program associated with the executed function in the ODK subsystem; returning a specific formatted response from the PLC program to the ODK subsystem, the ODK subsystem converting the specific formatted response to a generic response; and returning the generic response from the ODK subsystem to the application, the ODK subsystem comprising an ODK Real-Time (RTX) Proxy Dynamic Link Library (DLL) usable in the deterministic environment, the ODK RTX Proxy DLL communicating through shared memory with an ODK System Block (SB) Add-on DLL in the non-deterministic environment, wherein, in the first mode, the Application Wizard generates a Real Time Dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, and the deterministic environment is a WinAC RTX environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for open development that comprises a computer-readable storage medium encoded with a computer program, the system further comprising:
-
a processor; one or more extensions providing real-time services in a real-time operating environment; and a virtual CPU executing a programmable logic controller (PLC) application program in the real-time operating environment and further executing the steps of; receiving a specific formatted load application request message from the PLC program, convert the specific formatted load application request message to a generic formatted load request message, send the generic formatted load request message to an application for requesting the one or more extensions to be loaded by the application; and checking whether there are requests for application execution in the PLC program and, if so, receive a specific formatted execution request from the PLC program, convert the specific formatted execution request to a generic execution request, send the generic execution request to an application, and execute the one or more extensions, wherein the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode, and checking whether any requests for information are waiting in the application and, if so, request information from the PLC program, execute a function specified by the application, initiate performance of a task in the PLC program associated with the executed function, receive a specific formatted response from the PLC program, convert the specific formatted response to a generic response, and return the generic response to the application using a Real Time (RTX) Proxy Dynamic Link Library (DLL), the RTX Proxy DLL usable in the deterministic environment and communicating through shared memory with a System Block (SB) Add-on DLL in the non-deterministic environment, wherein, in the first mode, the Application Wizard generates a Real Time Dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, and wherein the one or more extensions provide access into the scan cycle of the PLC program and to provide replaceable functionality to the operation of the PLC program, and the deterministic environment is a WinAC RTX environment. - View Dependent Claims (15, 16)
-
-
17. A system comprising a computer-readable storage medium encoded with a computer program, the computer program providing an open development kit (ODK) subsystem, the system further comprising:
-
means for executing a programmable logic controller (PLC) application program in the ODK subsystem, the ODK subsystem having a virtual CPU executing the PLC program in a real-time operating environment and executing one or more extensions, the one or more extensions providing access into the scan cycle of the PLC program and replaceable functionality to the operation of the PLC program; means for sending a specific format load application request message from the PLC program to the ODK subsystem; means for converting the specific format load application request to a generic format load request message by the ODK subsystem; means for sending the generic format load request message from the ODK subsystem to an application requesting the one or more extensions to be loaded by the application; means for requesting execution of the application, including a means for checking whether there are requests for application execution in the PLC program and, if so, a means for sending a specific formatted execution request from the PLC program to the ODK subsystem, a means for converting the specific formatted execution request to a generic execution request, and a means for sending the generic execution request from the ODK subsystem to the application, the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode; means for determining whether any requests for information are waiting in the application and, if so, requesting information from the PLC program by the application; means for executing a function in the ODK subsystem specified by the application; means for performing a task in the PLC program associated with the executed function in the ODK subsystem; means for returning a specific formatted response from the PLC program to the ODK subsystem, the ODK subsystem converting the specific formatted response to a generic response; and means for returning the generic response from the ODK subsystem to the application, the ODK subsystem comprising an ODK Real-Time (RTX) Proxy Dynamic Link Library (DLL) usable in the deterministic environment, the ODK RTX Proxy DLL communicating through shared memory with an ODK System Block (SB) Add-on DLL in the non-deterministic environment, wherein, in the first mode, the Application Wizard generates a Real Time dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, and the deterministic environment is a WinAC RTX environment. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer program product comprising a computer storage medium having readable program code embodied in the medium, the computer program product further comprising a kit for open development (ODK) subsystem, the ODK subsystem comprising:
-
means for executing a programmable logic controller (PLC) application program in a real-time operating environment executing one or more extensions in a virtual CPU, the one or more extensions providing access into the scan cycle of the PLC program and replaceable functionality to the operation of the PLC program; means for receiving a specific formatted load application request message from the PLC program; means for converting the specific formatted load application request message to a generic formatted load request message; means for sending the generic formatted load request message to an application for requesting the one or more extensions to be loaded by the application; means for determining whether there are requests for application execution in the PLC program, means for receiving a specific formatted message from the PLC program in response to determining requests for application execution are in the PLC program, wherein the specific formatted message is a request for application execution; means for converting the specific formatted message to a generic formatted message; means for sending the generic formatted message to an application for execution, the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode; means for checking whether any requests for information are waiting in the application; means for requesting information from the PLC program by the application in response to determine requests for information are waiting in the application; means for executing a function in the ODK subsystem specified by the application; means for performing a task in the PLC program associated with the executed function in the ODK subsystem; means for returning a specific formatted response from the PLC program to the ODK subsystem, the ODK subsystem converting the specific formatted response to a generic response; and means for returning the generic response from the ODK subsystem to the application, the ODK subsystem comprising an ODK Real-Time (RTX) Proxy Dynamic Link Library (DLL) usable in the deterministic environment, the ODK RTX Proxy DLL communicating through shared memory with an ODK System Block (SB) Add-on DLL in the non-deterministic environment, wherein, in the first mode, the Application Wizard generates a Real Time dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, and the deterministic environment is a WinAC RTX environment. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A computer program product comprising a computer storage medium having readable program code embodied in the medium, the computer program product comprising:
-
a first computer program code to send a specific formatted load application request message from a programmable logic controller (PLC) to an open development kit (ODK) subsystem; a second computer program code to convert the specific formatted load application request message to a generic formatted load application request message; a third computer program code to send the generic formatted load request message from the ODK subsystem to an application for requesting an extension to be loaded by the application; and a fourth computer program code to request execution of the application, check whether there are requests for application execution in the PLC and, if so, send a specific formatted execution request from the PLC to the ODK subsystem, convert the specific formatted execution request to a generic execution request, and send the generic execution request from the ODK subsystem to the application, the application comprising an Application Wizard, the Application Wizard providing a first mode and a second mode; a fifth computer program code to check whether any requests for information are waiting in the application and, if so, request information from the PLC by the application, execute a function in the ODK subsystem specified by the application, and perform a task in the PLC associated with the executed function in the ODK subsystem; a sixth computer program code to return a specific formatted response from the PLC to the ODK subsystem, the ODK subsystem converting the specific formatted response to a generic response, and return the generic response from the ODK subsystem to the application, the ODK subsystem comprising an ODK Real-Time RTX Proxy Dynamic Link Library DLL usable in the deterministic environment, the ODK RTX Proxy DLL communicating through shared memory with an ODK System Block (SB) Add-on DLL in the non-deterministic environment; and an seventh computer program code to provide a virtual CPU executing a programmable logic controller (PLC) application program in the real-time operating environment and executing the one or more extensions, the one or more extensions providing access into the scan cycle of the PLC and replaceable functionality to the operation of the PLC; wherein, in the first mode, the Application Wizard generates a Real Time dynamic Link Library project that is usable in a deterministic environment with fixed scan cycles, and in the second mode, the Application Wizard generates a Dynamic Link Library project that is usable in a non-deterministic environment with non-fixed scan cycles, and the deterministic environment is a WinAC RTX environment.
-
Specification