IP Library Granted Patent US 8,255,065
Granted Patent B2
US 8,255,065 · App. 12/427,203 · Granted Aug 28, 2012

Mobile function block for a PLC based distributed control system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,255,065
App. No.
12/427,203
Granted
Aug 28, 2012
Kind
B2
Abstract

Methods and architectures are described that provide function block mobility between PLCs. Each PLC configured with Mobile Function Blocks (MFBs) may forward and execute MFBs from each other. To enable MFB mobility over a communication bus, each PLC having one or more configured MFBs requires a Communication Function Block (CFB) and an MFB directory data block. Each PLC maintains an MFB directory data block to store its MFB directory which is used when other PLCs send requests to check the availability of MFBs they need to run new tasks.

Claims (98)

1. A system for configuring a Programmable Logic Controller (PLC) to execute a program having function block mobility that controls a controlled component comprising:

a PLC component for defining the functional capability of a component controlled by the PLC as a program comprised of one or more function blocks;

a PLC component for configuring one or more function blocks that can be commonly used as Mobile Function Blocks (MFBs);

a PLC component for generating an MFB directory data block, wherein the MFB directory data block cross references an MFB with a task list identity (ID);

a PLC component for configuring a Communication Function Block (CFB), wherein the CFB manages the forwarding and receiving of MFBs between PLCs;

a PLC component for programming the PLC based on the functional capability operating sequence; and

a PLC component for downloading the program into the PLC.

2. The system according to claim 1 wherein an executing MFB does not impact the execution of other function blocks.

3. The system according to claim 1 wherein an MFB allows for allocating pre-reserved memory during run-time.

4. The system according to claim 1 wherein the CFB is configured from a standard function library.

5. The system according to claim 1 wherein the MFB directory data block cross references an amount of pre-reserved memory needed for each task ID.

6. The system according to claim 1 further comprising:

a PLC component for enabling a PLC-controlled component to perform tasks which should be performed by a failed PLC-controlled component comprising:

a PLC component for acknowledging a failure in a component by a PLC controlling the component;

a PLC component for broadcasting a request from the PLC controlling the failed component to other PLCs to find available controlled component resources wherein the request lists all tasks that control the failed component;

a PLC component for receiving the task list request at a receiving PLC;

a PLC component for comparing the task list request with the tasks listed in the receiving PLC's MFB directory data block;

a PLC component for determining if any MFBs listed in the task list request match tasks in the receiving PLC's MFB directory data block;

a PLC component for determining if the receiving PLC has enough pre-reserved memory to request needed MFBs to run the tasks if the receiving PLC does not have MFBs for some of the tasks:

a PLC component for sending a reply from the receiving PLC to the requesting PLC if the receiving PLC has pre-reserved memory;

a PLC component for copying the needed MFBs at the requesting PLC;

a PLC component for forwarding the copied MFBs to the receiving PLC;

a PLC component for updating the receiving PLC's MFB directory data block with the copied MFBs; and

a PLC component for executing the tasks listed in the task list request by the receiving PLC.

7. The system according to claim 1 further comprising:

a PLC component for acknowledging a component failure by the PLC controlling the component;

a PLC component for sending a request from the PLC controlling the failed component over a communication bus to one or more other PLCs to find available controlled component resources wherein the request includes a task list of all tasks that control the failed component;

a PLC component for receiving the task list request at a receiving PLC;

a PLC component for comparing the task list request with the receiving PLC's task list in the MFB directory data block;

a PLC component for determining if the tasks listed in the task list request are in the receiving PLC's task list; and

if the receiving PLC cannot perform the tasks listed in the task list request, no reply is sent from the receiving PLC to the requesting PLC.

8. The system according to claim 7 further comprising:

if the receiving PLC can perform the tasks listed in the task list request, a PLC component for determining if the receiving PLC has the MFBs identified in the task list request;

if the receiving PLC has the MFBs identified in the task list request, a PLC component for replying to the requesting PLC; and

a PLC component for executing the tasks listed in the task list request by the receiving PLC.

9. The system according to claim 8 further comprising:

if the receiving PLC can perform the tasks listed in the task list request but does not have all of the MFBs identified in the task list request, a PLC component for determining if the receiving PLC has pre-reserved memory for the needed MFBs; and

if the receiving PLC does not have pre-reserved memory for the needed MFBs, no reply is sent from the receiving PLC to the requesting PLC.

10. The system according to claim 8 further comprising:

if the receiving PLC can perform the tasks listed in the task list request but does not have all of the MFBs identified in the task list request, a PLC component for determining if the receiving PLC has pre-reserved memory for the needed MFBs; and

if the receiving PLC does have pre-reserved memory for the needed MFBs, a PLC component for requesting the needed MFBs from the requesting PLC.

11. The system according to claim 10 further comprising:

a PLC component for copying the needed MFBs at the requesting PLC;

a PLC component for forwarding the copied MFBs to the receiving PLC;

a PLC component for receiving the copied MFBs at the receiving PLC;

a PLC component for updating the receiving PLC's MFB directory data block with the copied MFBs; and

a PLC component for executing the tasks listed in the task list request by the receiving PLC.

12. A method for configuring a Programmable Logic Controller (PLC) to execute a program having function block mobility that controls a controlled component comprising:

defining the functional capability of a component controlled by the PLC as a program comprised of one or more function blocks;

configuring one or more function blocks that can be commonly used as Mobile Function Blocks (MFBs);

generating an MFB directory data block, wherein the MFB directory data block cross references an MFB with a task list identity (ID);

configuring a Communication Function Block (CFB), wherein the CFB manages the forwarding and receiving of MFBs between PLCs;

programming the PLC based on the functional capability operating sequence; and

downloading the program into the PLC.

13. The method according to claim 12 wherein the MFB directory data block cross references an amount of pre-reserved memory needed for each task ID.

14. The method according to claim 12 wherein the CFB is configured from a standard function library.

15. The method according to claim 12 wherein an executing MFB does not impact the execution of other function blocks.

16. The method according to claim 12 wherein an MFB allows for allocating pre-reserved memory during run-time.

17. The method according to claim 12 further comprising:

enabling a PLC-controlled component to perform tasks which should be performed by a failed PLC-controlled component comprising:

acknowledging a failure in a component by a PLC controlling the component;

broadcasting a request from the PLC controlling the failed component to other PLCs to find available controlled component resources wherein the request lists all tasks that control the failed component;

receiving the task list request at a receiving PLC;

comparing the task list request with the tasks listed in the receiving PLC's MFB directory data block;

determining if any MFBs listed in the task list request match tasks in the receiving PLC's MFB directory data block;

determining if the receiving PLC has enough pre-reserved memory to request needed MFBs to run the tasks if the receiving PLC does not have MFBs for some of the tasks;

sending a reply from the receiving PLC to the requesting PLC if the receiving PLC has pre-reserved memory;

copying the needed MFBs at the requesting PLC;

forwarding the copied MFBs to the receiving PLC;

updating the receiving PLC's MFB directory data block with the copied MFBs; and

executing the tasks listed in the task list request by the receiving PLC.

18. The method according to claim 12 further comprising:

acknowledging a component failure by the PLC controlling the component;

sending a request from the PLC controlling the failed component over a communication bus to one or more other PLCs to find available controlled component resources wherein the request includes a task list of all tasks that control the failed component;

receiving the task list request at a receiving PLC;

comparing the task list request with the receiving PLC's task list in the MFB directory data block;

determining if the tasks listed in the task list request are in the receiving PLC's task list; and

if the receiving PLC cannot perform the tasks listed in the task list request, no reply is sent from the receiving PLC to the requesting PLC.

19. The method according to claim 18 further comprising:

if the receiving PLC can perform the tasks listed in the task list request, determining if the receiving PLC has the MFBs identified in the task list request;

if the receiving PLC has the MFBs identified in the task list request, replying to the requesting PLC; and

executing the tasks listed in the task list request by the receiving PLC.

20. The method according to claim 19 further comprising:

if the receiving PLC can perform the tasks listed in the task list request but does not have all of the MFBs identified in the task list request, determining if the receiving PLC has pre-reserved memory for the needed MFBs; and

if the receiving PLC does not have pre-reserved memory for the needed MFBs, no reply is sent from the receiving PLC to the requesting PLC.

21. The method according to claim 19 further comprising:

if the receiving PLC can perform the tasks listed in the task list request but does not have all of the MFBs identified in the task list request, determining if the receiving PLC has pre-reserved memory for the needed MFBs; and

if the receiving PLC does have pre-reserved memory for the needed MFBs, requesting the needed MFBs from the requesting PLC.

22. The method according to claim 21 further comprising:

copying the needed MFBs at the requesting PLC;

forwarding the copied MFBs to the receiving PLC;

receiving the copied MFBs at the receiving PLC;

updating the receiving PLC's MFB directory data block with the copied MFBs; and

executing the tasks listed in the task list request by the receiving PLC.

23. A Programmable Logic Controller (PLC) that executes a program having function block mobility that controls a controlled component comprising:

a program configured to define the functional capability of a component controlled by the PLC that includes one or more function blocks configured to be commonly used as Mobile Function Blocks (MFBs);

an MFB directory data block that cross references task identification (ID), Function Block (FB) and MFBs, and FB and MFB memory requirements; and

a Communication Function Block (CFB) configured to receive task list requests from other PLCs and manage the forwarding and receiving of MFBs between PLCs, check the task IDs in the PLC's MFB directory data block and required memory for each MFB, and after receiving any needed MFBs, to update the PLC's MFB directory data block reflecting the added MFBs.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2010
From: SIEMENS CORPORATION
To: SIEMENS AKTIENGESELLSCHAFT
Reel/Frame 024334/0691 →
MERGER Recorded Apr 12, 2010
From: SIEMENS CORPORATE RESEARCH, INC.
To: SIEMENS CORPORATION
Reel/Frame 024216/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2009
From: LU, YAN; LO, GEORGE; WEI, DONG
To: SIEMENS CORPORATE RESEARCH, INC.
Reel/Frame 022907/0625 →