A system for exchanging data between a first programmable logic controller and a data consumer (20, 40, 80) in an automation environment, comprising: the first programmable logic controller; and a queue block implemented for the first programmable logic controller, wherein the queue block exists in the runtime of the first programmable logic controller, the queue block being an interchangeable data type in the first programmable logic controller to replace a data block type; wherein program instructions executable by the first programmable logic controller are implemented within a first function block within the first programmable logic controller, the function block being configured to use the queue block instead of a data block; wherein the first function block is allocated to the first programmable logic controller via the queue block at runtime and the queue block is configured to dynamically exchange data between the first function block and the data consumer (20, 40, 80) during runtime; and wherein the data consumer (20, 40, 80) is an application hosted in a computer system, and the queue block is configured to dynamically exchange data between the first programmable logic controller and the application; or wherein the data consumer (20, 40, 80) is a second programmable logic controller having a second function block containing program instructions, the program instructions executable by the second programmable logic controller, and the queue block is configured to dynamically exchange data between the first programmable logic controller and the second programmable logic controller by exchanging the data between the first function block and the second function block. the first programmable logic controller; and a queue block implemented for the first programmable logic controller, wherein the queue block exists in the runtime of the first programmable logic controller, the queue block being an interchangeable data type in the first programmable logic controller to replace a data block type; wherein program instructions executable by the first programmable logic controller are implemented within a first function block within the first programmable logic controller, the function block being configured to use the queue block instead of a data block; wherein the first function block is allocated to the first programmable logic controller via the queue block at runtime and the queue block is configured to dynamically exchange data between the first function block and the data consumer (20, 40, 80) during runtime; and wherein the data consumer (20, 40, 80) is an application hosted in a computer system, and the queue block is configured to dynamically exchange data between the first programmable logic controller and the application; or wherein the data consumer (20, 40, 80) is a second programmable logic controller having a second function block containing program instructions, the program instructions executable by the second programmable logic controller, and the queue block is configured to dynamically exchange data between the first programmable logic controller and the second programmable logic controller by exchanging the data between the first function block and the second function block.