Multitasking industrial controller
DCFirst Claim
1. An industrial controller operating controlled equipment according to a control program divided into at least two tasks each having a starting and completion point, the controller comprising:
- (a) an I/O module receiving electrical inputs from the controlled equipment;
(b) a control terminal for entering data from the user providing for each task;
a task priority, a task characterization as to whether the task is periodic, and thus to be executed to completion regularly according to a time period, or event triggered, and thus to be executed upon occurrence of an event, the event being a change in a predetermined electrical input;
(c) an electronic memory communicating with the I/O module and the control terminal and storing;
(i) the at least two tasks of the control program;
(ii) a task scheduling table receiving the task priority and task characterization from the user;
(iii) an operating system program;
(d) an electronic processor communicating with the electronic memory and the I/O module to receive the electrical inputs and operate according to the inputs and the control program, and executing the operating system program to;
(i) identify a highest priority periodic task requiring current execution based on the task priority and the time period of the task;
(ii) identify a highest priority event triggered task ready current execution based on the occurrence of its event;
(iii) if there is no ready event triggered task of higher priority than the highest priority periodic task, execute once to completion the highest priority periodic task;
(iv) if there is no highest priority periodic tasks of higher priority than the ready event triggered task execute once to completion the ready event triggered task.
2 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A multitasking industrial controller for real-time control of machinery and the like permits the use of both periodic and event driven tasks by establishing a hierarchy of both task types in the form of priorities that resolve conflicts between events of the same and different types. The unpredictability of the event driven tasks on scheduling of tasks is addressed by watchdog time values assigned to each task which confirm timely execution of the task in practice despite the risk of preemption by other tasks. Flexible software definition of event driven tasks is made possible by delegating the detection of the events to input/output modules executing independently of the processor executing the operating system.
79 Citations
12 Claims
-
1. An industrial controller operating controlled equipment according to a control program divided into at least two tasks each having a starting and completion point, the controller comprising:
-
(a) an I/O module receiving electrical inputs from the controlled equipment; (b) a control terminal for entering data from the user providing for each task;
a task priority, a task characterization as to whether the task is periodic, and thus to be executed to completion regularly according to a time period, or event triggered, and thus to be executed upon occurrence of an event, the event being a change in a predetermined electrical input;(c) an electronic memory communicating with the I/O module and the control terminal and storing; (i) the at least two tasks of the control program; (ii) a task scheduling table receiving the task priority and task characterization from the user; (iii) an operating system program; (d) an electronic processor communicating with the electronic memory and the I/O module to receive the electrical inputs and operate according to the inputs and the control program, and executing the operating system program to; (i) identify a highest priority periodic task requiring current execution based on the task priority and the time period of the task; (ii) identify a highest priority event triggered task ready current execution based on the occurrence of its event; (iii) if there is no ready event triggered task of higher priority than the highest priority periodic task, execute once to completion the highest priority periodic task; (iv) if there is no highest priority periodic tasks of higher priority than the ready event triggered task execute once to completion the ready event triggered task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An industrial controller operating controlled equipment according to a control program divided into at least two tasks each having a starting and completion point, the controller comprising:
-
(a) an I/O module receiving electrical inputs and outputs connected to controlled equipment; (b) a control terminal for entering data from the user providing scheduling information and a watchdog time value for each task; (c) an electronic memory communicating with the I/O module and the control terminal and storing; (i) the at least two tasks of the control program; (ii) a task scheduling table receiving the data from the user; (iii) an operating system program controlling the execution of the tasks according to the task scheduling table; and (d) an electronic processor communicating with the electronic memory and the I/O module to receive the inputs and change the outputs, according to the inputs and the control program, and executing the operating system program to; (i) identify an execution time for each task based on the data from the user; (ii) execute a portion of each scheduled task at the task'"'"'s execution time once from the portion'"'"'s starting point to its completion point; (ii) generate an error signal if the portion of an executed task does not reach its completion point within the watchdog time value for that portion, after the execution time for that task.
-
-
10. An industrial controller operating controlled equipment according to a control program divided into at least two tasks each having a starting and completion point, the controller comprising:
-
(a) an I/O module receiving electrical inputs and outputs connected to controlled equipment; (b) a control terminal for entering data from the user providing a fault handler associated with at least a portion of the specific task; (c) an electronic memory communicating with the I/O module and the control terminal and storing; (i) the at least two tasks of the control program; (ii) the fault handler; and (iii) an operating system program controlling the execution of the tasks according to a task scheduling table; (d) an electronic processor communicating with the electronic memory and the I/O module to receive the inputs and change the outputs, according to the inputs and the control program, the electronic processor generating fault signals indicating a particular computer fault state and executing the operating system program to; (i) execute one task according to the task scheduling table; and (ii) upon the occurrence of a fault signal during the specific task, execute the fault handler associated with the portion of that task. - View Dependent Claims (11, 12)
-
Specification