Claims
- 1. A method of providing an open development kit, comprising the steps of:
sending a specific formatted load application request message from a programmable logic controller (PLC) to an open development kit (ODK) subsystem; converting the specific formatted load application request message to a generic formatted load application request message; sending the generic formatted load application request message from the ODK subsystem to an application for requesting an extension to be loaded; and requesting execution of the application.
- 2. The method of claim 1, further comprising the steps of:
initializing callback function pointers for use by the application as callback functions into the ODK subsystem; and initializing the extension after the extension is loaded.
- 3. The method of claim 1, wherein the extension is a dynamic load library (DLL).
- 4. The method of claim 1, further comprising the step of checking whether a stop to run transition has occurred in the PLC and if so, sending a specific formatted activate application message from the PLC to the ODK subsystem.
- 5. The method of claim 4, further comprising the step of calling an activate function in the application by the ODK subsystem thereby permitting scan cycle execution.
- 6. The method of claim 1, wherein the requesting execution step includes checking whether there are requests for application execution in the PLC and, if so, sending a specific formatted execution request from the PLC to the ODK subsystem, converting the specific formatted execution request to a generic execution request, and sending a generic execution request from the ODK subsystem to the application.
- 7. The method of claim 6, further comprising the step of executing the generic execution request by the application.
- 8. The method of claim 6, further comprising the steps of:
sending a generic response from the application to the ODK subsystem; converting the generic response to a specific formatted response; and sending the specific formatted response from the ODK subsystem to the PLC.
- 9. The method of claim 8, further comprising the step of returning at least one of data and a control block from the application to the ODK subsystem, and from the ODK subsystem to the PLC.
- 10. The method of claim 1, further comprising checking whether any requests for information are waiting in the application and, if so,
requesting information from the PLC by the application; executing a function in the ODK subsystem specified by the application; and performing a task in the PLC associated with the executed function in the ODK subsystem.
- 11. The method of claim 10, wherein in the requesting information step the application uses a call back pointer to generically request information and the executing step executes the function in the ODK subsystem corresponding to the callback pointer.
- 12. The method of claim 11, in the executing a function step, the function is provided by a dynamic link library.
- 13. The method of claim 10, further comprising the step of returning a specific formatted response from the PLC 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.
- 14. The method of claim 10, wherein when the checking determines that there are no requests for information waiting, and further comprising:
waiting until the PLC transitions from a run state to a stop state; sending a deactivate request from the PLC to the ODK subsystem; and calling a deactivate function in the application.
- 15. The method of claim 14, wherein when a memory clear or PLC shutdown occurs, the step of calling a release function in the application and unloading the extension occurs.
- 16. The method of claim 1, wherein in the sending a load application request from a PLC is from at least one of a soft PLC, a slot PLC and a hard PLC.
- 17. A system for open development, comprising:
one or more extensions adapted for use in a real-time operating environment; and a virtual CPU adapted to execute a programmable logic controller (PLC) application program in the real-time operating environment and adapted to execute the one or more extensions, wherein the one or more extensions provide access into the scan cycle of the PLC and to provide replaceable functionality to the operation of the PLC.
- 18. The system of claim 17, further comprising:
a system block loader adapted to load system blocks, the system blocks including at least one of a system function block, a system function, a system data block; and an ODK SB Add-on dynamic link library (DLL)for implementing a common object module (COM) interface for the virtual CPU and system block loader.
- 19. The system of claim 17, wherein the one or more extensions are dynamic link libraries.
- 20. A system for providing an open development kit, the system comprising:
a means for sending a specific format load application request message from a programmable logic controller (PLC) to an open development kit (ODK) subsystem; a means for converting the specific format load application request to a generic format load application request message by the ODK subsystem; a means for sending the generic load request from the ODK subsystem to an application requesting an extension to be loaded; and a means for requesting execution of the application.
- 21. The system of claim 20, further comprising the steps of:
a means for initializing callback function pointers for use by the application as callback functions into the ODK subsystem; and a means for initializing the extension after the extension is loaded.
- 22. The system of claim 20, further comprising a means for checking whether a stop to run transition has occurred in the PLC and if so, a means for sending a specific activate application message from the PLC to the ODK subsystem.
- 23. The system of claim 22, further comprising a means for calling an activate function in the application by the ODK subsystem thereby permitting scan cycle execution.
- 24. The system of claim 20, further comprising:
a means for checking whether there are requests for application execution in the PLC; a means for sending a specific formatted execution request from the PLC to the ODK subsystem; a means for converting the specific formatted execution request to a generic formatted execution request; and a means for sending the generic formatted execution request from the ODK subsystem to the application.
- 25. The system of claim 24, further comprising a means for executing the generic formatted execution request by the application.
- 26. The system of claim 25, further comprising:
a means for sending a generic response from the application to the ODK subsystem; a means for converting the generic response to a specific formatted response; and a means for sending the specific formatted response from the ODK subsystem to the PLC.
- 27. The system of claim 26, further including a means for returning at least one of data and a control block from the application to the ODK subsystem, and from the ODK subsystem to the PLC.
- 28. The system of claim 20, further comprising:
a means for checking whether any requests for information are waiting in the application; a means for requesting information from the PLC by the application; a means for executing a function in the ODK subsystem specified by the application; and a means for performing a task in the PLC associated with the executed function in the ODK subsystem.
- 29. The system of claim 28, wherein the means for requesting information by the application uses a call back pointer to request information and the means for executing the function in the ODK subsystem executes the function in the ODK subsystem corresponding to the callback pointer.
- 30. The system of claim 29, wherein the function is provided by a dynamic link library (DLL).
- 31. The system of claim 20, wherein the PLC is at least one of a soft PLC, a hard PLC, and a slot PLC.
- 32. The system of claim 20, further comprising a means for returning a specific formatted response from the PLC to the ODK subsystem, a means for converting the specific formatted response to a generic formatted response, and a means for returning the generic formatted response from the ODK subsystem to the application.
- 33. A kit for open development, comprising:
a means for receiving a specific formatted message from a programmable logic controller (PLC); a means for converting the specific formatted message to a generic formatted message; and a means for sending the generic formatted message to an application for execution.
- 34. The kit of claim 33, further comprising:
a means for receiving a generic formatted message from the application; a means for converting the generic formatted message to a specific formatted message; and a means for sending the specific formatted message to the PLC.
- 35. The kit of claim 34, wherein at least one of the means includes using a dynamic link library that loads replaceable functionality.
- 36. The kit of claim 34, wherein the generic formatted message is one of a response message and a request for information message.
- 37. The kit of claim 34, wherein the specific formatted message is sent to at least one of a soft PLC, a hard PLC and a slot PLC.
- 38. A computer program product comprising a computer usable medium having readable program code embodied in the medium, the computer program product includes:
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 application request message from the ODK subsystem to an application for requesting an extension to be loaded; and a fourth computer program code to request execution of the application.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/413,682, filed on Sep. 26, 2002, incorporated by reference herein, in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60413682 |
Sep 2002 |
US |