IP Library Granted Patent US 7,565,654
Granted Patent B2
US 7,565,654 · App. 11/329,788 · Granted Jul 21, 2009

Programmatic control of tasks in a programmable logic controller

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 7,565,654
App. No.
11/329,788
Granted
Jul 21, 2009
Kind
B2
Abstract

System and method for modifying properties of tasks on a programmable logic controller. Input specifying modification of a property of a task included in a programmable logic controller (PLC) may be received. The property of the task may be modified based on the input, and the task may halt or continue to execute in accordance with the modified property. The modification may enable, disable, modify the rate of, modify the priority of, and/or modify properties of programs included in the task, among others. Modifying the programs may include changing the program execution order. When enabling or disabling the task, the input may be received from another task executing on the PLC. For at least some property modifications, the input may be received from one or more of a program included in the task, another executing task, a host computer system, and a user of the host computer system, among others.

Claims (76)

1. A method for modifying properties of tasks on a programmable logic controller, the method comprising:

a first task executing on a programmable logic controller (PLC) modifying a first property of a second task on the PLC, wherein the first and second task are comprised in a plurality of tasks, wherein the first property comprises a priority of the second task, and wherein the priority specifies resource allocation for the second task with respect to the plurality of tasks; and

the first task continuing to execute on the PLC.

2. The method of claim 1 , further comprising:

the first task modifying a second property of the second task;

wherein the second task is not executing on the PLC prior to said modifying the second property, wherein said modifying the second property comprises enabling the second task, and wherein after said modifying the second property, the second task executes on the PLC.

3. The method of claim 1 , further comprising:

the first task modifying a second property of the second task;

wherein the second task is executing on the PLC, wherein said modifying the second property comprises disabling the second task, and wherein after said modifying the second property, the second task ceases to execute on the PLC.

4. The method of claim 1 , further comprising:

the first task modifying a second property of the second task;

wherein the second property comprises a frequency of execution of the second task, wherein, prior to said modifying, the second task executes at a first frequency;

wherein said modifying the second property of the second task comprises changing the frequency of execution of the second task to a second frequency; and

wherein the second task continues to execute in accordance with the second frequency.

5. The method of claim 1 , further comprising:

the first task modifying a second property of the second task;

wherein the second task comprises a plurality of programs; and

wherein said modifying the second property comprises modifying an execution order of the plurality of programs comprised in the second task.

6. The method of claim 1 ,

wherein said modifying comprises at least one program comprised in the first task modifying the first property of the second task.

7. The method of claim 1 , wherein said modifying further comprises:

the first task sending a function call specifying the modification of the first property to a runtime environment comprised in the PLC; and

the runtime environment performing said modification.

8. The method of claim 1 ,

wherein the PLC comprises a soft PLC executing on a host computer.

9. The method of claim 1 , wherein one or more of the first and second tasks comprise one or more programs, and wherein the one or more programs comprise

a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

10. The method of claim 1 ,

wherein the plurality of tasks execute in accordance with one or more timed loops.

11. The method of claim 10 ,

wherein a runtime environment executing on the PLC manages execution of the one or more timed loops.

12. The method of claim 11 , wherein the runtime environment comprises:

a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

13. The method of claim 11 , wherein the runtime environment comprises one or more of:

a controller engine, wherein the controller engine manages the plurality of tasks; or

a timed loop scheduler, wherein the timed loops scheduler manages execution of the one or more timed loops.

14. The method of claim 1 ,

wherein a runtime environment executing on the PLC manages execution of the plurality of tasks.

15. The method of claim 14 , wherein the runtime environment comprises:

a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

16. The method of claim 14 , wherein the runtime environment comprises one or more of:

a controller engine, wherein the controller engine manages the one or more tasks; or

a timed loop scheduler, wherein the task executes in accordance with one or more timed loops, and wherein the timed loops scheduler manages execution of the one or more timed loops.

17. A system for modifying properties of tasks executing on a programmable logic controller, comprising:

means for a first task executing on a programmable logic controller (PLC) modifying a property of a second task on the PLC, wherein the first and second task are comprised in a plurality of tasks, wherein the property comprises a priority of the task, and wherein the priority specifies resource allocation for the second task with respect to the plurality of tasks; and

means for the first task continuing to execute on the PLC.

18. An executing programmable logic controller (PLC), comprising:

a processor;

a memory medium coupled to the processor, comprising program instructions executable by the processor to implement:

a first task executing on a programmable logic controller (PLC) modifying a property of a second task on the PLC, wherein the first and second task are comprised in a plurality of tasks, wherein the property comprises a priority of the task, and wherein the priority specifies resource allocation for the second task with respect to the plurality of tasks; and

the first task continuing to execute on the PLC.

19. A computer-accessible memory medium comprising program instructions, wherein the program instructions are executable by a processor to implement:

a first task executing on a programmable logic controller (PLC) modifying a first property of a second task on the PLC, wherein the first and second task are comprised in a plurality of tasks, wherein the first property comprises a priority of the task, and wherein the priority specifies resource allocation for the second task with respect to the plurality of tasks; and

the first task continuing to execute on the PLC.

20. The computer-accessible memory medium of claim 19 , wherein the program instructions are further executable to implement:

the first task modifying a second property of the second task;

wherein the second task is not executing on the PLC prior to said modifying the second property, wherein said modifying the second property comprises enabling the second task, and wherein after said modifying the second property, the second task executes on the PLC.

21. The computer-accessible memory medium of claim 19 , wherein the program instructions are further executable to implement:

the first task modifying a second property of the second task;

wherein the second task is executing on the PLC, wherein said modifying the second property comprises disabling the second task, and wherein after said modifying the second property, the second task ceases to execute on the PLC.

22. The computer-accessible memory medium of claim 19 , wherein the program instructions are further executable to implement:

the first task modifying a second property of the second task;

wherein the second property comprises a frequency of execution of the second task, wherein, prior to said modifying, the second task executes at a first frequency;

wherein said modifying the second property of the second task comprises changing the frequency of execution of the second task to a second frequency; and

wherein the second task continues to execute in accordance with the second frequency.

23. The computer-accessible memory medium of claim 19 , wherein the program instructions are further executable to implement:

the first task modifying a second property of the second task;

wherein the second task comprises a plurality of programs; and

wherein said modifying the second property comprises modifying an execution order of the plurality of programs comprised in the second task.

24. The computer-accessible memory medium of claim 19 ,

wherein said modifying comprises at least one program comprised in the first task modifying the first property of the second task.

25. The computer-accessible memory medium of claim 19 ,

wherein the PLC comprises a soft PLC executing on a host computer.

26. The computer-accessible memory medium of claim 19 , wherein one or more of the first and second tasks comprise one or more programs, and wherein the one or more programs comprise a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

27. The computer-accessible memory medium of claim 19 , wherein the plurality of tasks execute in accordance with one or more timed loops.

28. The computer-accessible memory medium of claim 19 , wherein a runtime environment executing on the PLC manages execution of the plurality of tasks, wherein the runtime environment comprises a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2006
From: CHANDHOKE, SUNDEEP
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 017460/0681 →