IP Library Granted Patent US 9,336,051
Granted Patent B2
US 9,336,051 · App. 11/875,043 · Granted May 10, 2016

Programmable controller with multiple processors using a scanning architecture

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 9,336,051
App. No.
11/875,043
Granted
May 10, 2016
Kind
B2
Abstract

Operating a programmable controller with a plurality of processors. The programmable controller may utilize a first subset of the plurality of processors for a scanning architecture. The first subset of the plurality of processors may be further subdivided for execution of periodic programs or asynchronous programs. The programmable controller may utilize a second subset of the plurality of processors for a data acquisition architecture. Execution of the different architectures may occur independently and may not introduce significant jitter (e.g., for the scanning architecture) or data loss/response time lag (e.g., for the data acquisition architecture). However, the programmable controller may operate according to any combination of the divisions and/or architectures described herein.

Claims (34)

1. A programmable controller, comprising:

a plurality of channels for receiving input;

a plurality of processors, the plurality of processors comprising a first one or more processors and a second one or more processors;

at least one memory medium coupled to the plurality of processors and the plurality of channels, wherein the memory medium stores:

an I/O scanning engine that is executable by at least one of the first one or more processors, wherein the I/O scanning engine is executable to receive input from the plurality of channels of the programmable controller according to a scanning architecture;

a plurality of user programs, wherein the plurality of user programs are each executable to perform a function based on input received from the plurality of channels;

a scheduler program that is executable by at least one of the processors, wherein the scheduler program is executable to allocate each of the plurality of user programs to respective one or more of the plurality of processors, wherein the scheduler program is executable to schedule each of at least two user programs to execute on a respective one or more processors concurrently;

wherein the scheduler program is executable to dynamically schedule a first subset of the plurality of user programs to execute on the first one or more processors according to the scanning architecture, wherein the scanning architecture specifies that execution of the first subset of the plurality of user programs is time-driven according to a periodic execution cycle, not in response to asynchronous events; and

wherein the scheduler program is executable to dynamically schedule a second subset of the plurality of user programs to execute on the second one or more processors in response to asynchronous events, not according to a periodic execution cycle, and wherein execution of the second subset of the plurality of user programs on the second one or more processors does not introduce a delay in execution of the first subset of the plurality of user programs executing on the first one or more processors.

2. The programmable controller of claim 1 , wherein the scheduler program is executable to assign portions of the I/O scanning engine to execute concurrently on at least two of the plurality of processors.

3. The programmable controller of claim 2 , wherein each portion of the I/O scanning engine is configured to scan a respective bus of the programmable controller.

4. The programmable controller of claim 1 , wherein the programmable controller is configured to control operation of a plurality of devices coupled to the programmable controller, wherein the first subset of the plurality of user programs are executable to receive input from the plurality of devices, and wherein the programmable controller is configured to receive the asynchronous events from one or more of the plurality of devices.

5. The programmable controller of claim 1 , wherein the scheduler program is executable to:

dynamically assign processors of the plurality of processors to the first one or more processors; and

dynamically assign processors of the plurality of processors to the second one or more processors.

6. The programmable controller of claim 5 , wherein said dynamically assigning processors of the plurality of processors to the first one or more processors and said dynamically assigning processors of the plurality of processors to the second one or more processors are performed based on one or more of:

a number of user programs in the first subset of user programs;

a number of user programs in the second subset of user programs; or

a number of available processors.

7. A method for operating a programmable controller, wherein the programmable controller comprises a plurality of processors, the plurality of processors comprising a first plurality of processors and a second one or more processors, the method comprising:

storing a plurality of user programs on the programmable controller, wherein the plurality of user programs are each executable to perform a function;

receiving input from a plurality of different channels of the programmable controller according to a scanning architecture;

dynamically assigning execution of each of a first subset of the user programs to a respective one or more processors of the first plurality of processors according to the scanning architecture, wherein the scanning architecture specifies that execution of each of the first subset of the user programs is time-driven according to a periodic execution cycle, not in response to asynchronous events;

executing each of the first subset of the user programs on the respective one or more processors of the first plurality of processors according to the scanning architecture, wherein the first subset of the user programs perform functions based on the input from the plurality of different channels;

receiving an asynchronous event;

assigning a second subset of the plurality of user programs to execute on the second one or more processors in response to the asynchronous event, not according to a periodic execution cycle;

executing the second subset of the plurality of user programs on the second one or more processors in response to the asynchronous event,

wherein said executing the second subset of the plurality of user programs on the second one or more processors does not introduce a delay in said executing the first subset of the plurality of user programs on the first plurality of processors.

8. The method of claim 7 , wherein said executing the first subset of the user programs and said executing the second subset of the plurality of user programs is performed concurrently.

9. The method of claim 7 , wherein said executing the first subset of the user programs comprises executing at least two user programs of the first subset of the user programs concurrently.

10. The method of claim 7 , wherein said assigning execution of the first subset of user programs and said assigning execution of the second subset of user programs is performed by executing a scheduler program on at least one of the plurality of processors.

11. The method of claim 7 , further comprising:

providing output to the plurality of different channels of the programmable controller according to the scanning architecture.

12. The method of claim 7 , wherein said receiving input from a plurality of different channels of the programmable is performed using a subset of the plurality of processors, wherein each processor is used for a respective bus of the programmable controller.

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 Oct 19, 2007
From: CHANDHOKE, SUNDEEP
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 019986/0074 →