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 data from at least one data structure stored in memory of the industrial controller; executing at least one proxy instruction on the processor of the industrial controller, wherein: 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 shared data from the at least one data structure, and the shared data is accessed by at least one of the plurality of control instructions and is required for execution of the at least one proxy instruction; reading the shared data with an inter-processor interface executing on the industrial controller; transmitting the shared data to the external processing device with the inter-processor interface; and 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, wherein the inter-processor interface transmits an initial value of the shared data to the external processing device, the method further comprising the steps of: receiving a changed value of the shared data from the external processing device at the inter-processor interface; and writing the changed value of the shared data to the at least one data structure in the memory of the industrial controller with the inter-processor interface. executing a plurality of control instructions on a processor of an industrial controller, wherein the plurality of control instructions access data from at least one data structure stored in memory of the industrial controller; executing at least one proxy instruction on the processor of the industrial controller, wherein: 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 shared data from the at least one data structure, and the shared data is accessed by at least one of the plurality of control instructions and is required for execution of the at least one proxy instruction; 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 shared data from the at least one data structure, and the shared data is accessed by at least one of the plurality of control instructions and is required for execution of the at least one proxy instruction; reading the shared data with an inter-processor interface executing on the industrial controller; transmitting the shared data to the external processing device with the inter-processor interface; and 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, wherein the inter-processor interface transmits an initial value of the shared data to the external processing device, the method further comprising the steps of: receiving a changed value of the shared data from the external processing device at the inter-processor interface; and writing the changed value of the shared data to the at least one data structure in the memory of the industrial controller with the inter-processor interface. receiving a changed value of the shared data from the external processing device at the inter-processor interface; and writing the changed value of the shared data to the at least one data structure in the memory of the industrial controller with the inter-processor interface.