Method and apparatus for proxy execution and computation with an industrial controller
AssigneeRockwell Automation Technologies, Inc.
InventorsDavid A. Johnston, Michael J. Viste, Ryan L. Schnell
Life of this patent
Estimating the term…
Abstract
An industrial controller that integrates execution of a control program on the industrial controller with execution of additional functions on an external processing device is disclosed. Integrating the external processing device provides an improved system for third party development of control functions which may be unique to specific applications. The system manages communication between the industrial controller and the external processing device, manages access to data stored in the industrial controller, and makes the details of the integration transparent to the programmer.
Claims18
An industrial controller configured to coordinate execution of an external processing device with the industrial controller, the industrial controller comprising:
- a memory device operative to store a control program, metadata, a plurality of data fields, and a state machine, wherein:
- the metadata defines the external processing device and communication between the external processing device and the industrial controller, and
- the plurality of data fields includes at least one data structure utilized by the control program, the at least one data structure selected from a hardware table, a connection list, an association list, and an I/O table;
- a processor operative to execute the control program, wherein:
- the control program includes at least one proxy instruction to be executed on an external processing device,
- the control program includes a plurality of additional instructions other than the at least one proxy instruction,
- at least one of the plurality of additional instructions is configured to access data in the plurality of data fields during execution on the processor,
- at least one of the plurality of additional instructions is configured to change a state of the state machine;
- and
- an inter-processor interface operative to integrate execution of the at least one proxy instruction on the external processing device with execution of the plurality of additional instructions on the processor, wherein:
- the at least one proxy instruction obtains the metadata defining the external processing device and communication between the external processing device and the industrial controller,
- the at least one proxy instruction identifies the data from the plurality of data fields, wherein the data is required for execution of the corresponding proxy instruction,
- the inter-processor interface reads the data and the state of the state machine from the memory device and transmits the data to the external processing device according to the communication defined in the metadata,
- the processor continues execution of the plurality of additional instructions to change the state of the state machine in tandem with the external processing device processing the data,
- the inter-processor interface receives a response from the external processing device indicating a status of processing the at least one proxy instruction, and
- the at least one proxy instruction changes the state of the state as a function of the response received from the external processing device.
A method of coordinating execution of an external processing device with an industrial controller, the method comprising the steps of:
- executing a plurality of control instructions on a processor of an industrial controller, wherein:
- the plurality of control instructions access a state machine and data from a plurality of data fields stored in memory of the industrial controller,
- the plurality of data fields includes at least one data structure utilized by the control program, the at least one data structure selected from a hardware table, a connection list, an association list, and an I/O table;
- the plurality of control instructions includes at least one proxy instruction, and
- the plurality of control instructions includes a plurality of additional instructions other than the at least one proxy instruction, wherein at least one of the plurality of additional instructions is configured to change a state of the state machine;
- executing the at least one proxy instruction on the processor of the industrial controller, wherein:
- the at least one proxy instruction obtains metadata defining the external processing device and communication between the external processing device and the industrial controller,
- the at least one proxy instruction defines at least one function to be executed on an external processing device,
- the at least one proxy instruction defines the data from the plurality of data fields,
- the data obtained by the at least one proxy instruction is shared data,
- at least one of the plurality of additional instructions is configured to access the shared data, and
- the shared data is required for execution of the at least one proxy instruction;
- reading the shared data and a state of the state machine with an inter-processor interface executing on the industrial controller responsive to executing the at least one proxy instruction;
- reading metadata from the memory with the inter-processor interface responsive to executing the at least one proxy instruction, wherein the metadata defines the external processing device and communication between the external processing device and the industrial controller;
- transmitting the shared data to the external processing device with the inter-processor interface according to the communication defined in the metadata;
- executing at least one of the plurality of additional instructions configured to change a state of the state machine in tandem with the external processing device processing the shared data;
- receiving at the inter-processor interface a response from the external processing device indicating a status of executing the at least one function defined by the at least one proxy instruction;
- and
- changing the state of the state machine with the at least one proxy instruction as a function of the response received from the external processing device.
A processor module for an industrial controller configured to coordinate execution of an external processing device with the industrial controller, the processor module comprising:
- a memory operative to store a control program, a plurality of data fields, and a state machine;
- and
- a processor operative to execute the control program, wherein:
- the control program includes at least one proxy instruction,
- the control program includes a plurality of control instructions other than the at least one proxy instruction,
- at least one of the plurality of control instructions changes a state of the state machine,
- the plurality of data fields includes shared data changed by both the plurality of control instructions and the at least one proxy instruction,
- the shared data includes the state of the state machine;
- the at least one proxy instruction obtains shared data required for execution of the corresponding proxy instruction,
- the at least one proxy instruction defines at least one function to be executed on an external processing device, and
- the processor is further operative to execute the at least one proxy instruction by:
- reading the shared data,
- transmitting the shared data to the external processing device,
- continuing execution of the plurality of control instructions to change the state of the state machine during execution of the at least one proxy instruction,
- receiving a response from the external processing device indicating a status of processing the at least one proxy instruction, and
- changing the state of the state machine responsive to receiving the response from the external processing device.
Dependencies are inferred from the claim text.