A system for implementing automation functions through abstraction layers (215, 220), the system comprising: a control application designed to communicate with automation equipment (225A - 225F), the automation equipment (225A - 225F) using one or more automation functions, wherein each automation function comprises one or more equipment-agnostic instructions; an automation equipment abstraction framework with an automation equipment abstraction layer and a production abstraction layer designed to be executed in a runtime environment of the system, wherein the automation equipment abstraction framework is configured to: during execution of the control application, receive equipment-agnostic instructions and an indication of a particular unit of automation equipment (225A - 225F); translate the equipment-agnostic instructions into equipment-specific automation instructions executable on a particular unit of automation equipment (225A - 225F), send the equipment-specific automation instructions to the particular unit of automation equipment (225A - 225F), wherein the automation equipment abstraction framework includes: the automation equipment abstraction layer configured to translate at least a portion of the instructions into equipment-specific automation instructions executable on a particular unit of automation equipment (225A - 225F), and a production abstraction layer configured to translate at least a portion of instructions into production environment-specific automation instructions executable by the particular unit of automation equipment (225A - 225F) in a target production environment characterized by the runtime environment being executed on the particular unit of automation equipment (225A - 225F), the runtime environment comprising a virtual machine customized for the particular unit of automation equipment (225A - 225F) and the production environment, whereby the automation functions are compiled into an application executable in the virtual machine, which is adapted to use the functionality of the automation equipment abstraction layer and the production layer. a control application designed to communicate with automation equipment (225A - 225F), the automation equipment (225A - 225F) using one or more automation functions, wherein each automation function comprises one or more equipment-agnostic instructions; an automation equipment abstraction framework with an automation equipment abstraction layer and a production abstraction layer designed to be executed in a runtime environment of the system, wherein the automation equipment abstraction framework is configured to: during execution of the control application, receive equipment-agnostic instructions and an indication of a particular unit of automation equipment (225A - 225F); translate the equipment-agnostic instructions into equipment-specific automation instructions executable on a particular unit of automation equipment (225A - 225F), send the equipment-specific automation instructions to the particular unit of automation equipment (225A - 225F), during execution of the control application, receive equipment-agnostic instructions and an indication of a particular unit of automation equipment (225A - 225F); translate the equipment-agnostic instructions into equipment-specific automation instructions executable on a particular unit of automation equipment (225A - 225F), send the equipment-specific automation instructions to the particular unit of automation equipment (225A - 225F), the automation equipment abstraction layer configured to translate at least a portion of the instructions into equipment-specific automation instructions executable on a particular unit of automation equipment (225A - 225F), and a production abstraction layer configured to translate at least a portion of instructions into production environment-specific automation instructions executable by the particular unit of automation equipment (225A - 225F) in a target production environment characterized by the runtime environment being executed on the particular unit of automation equipment (225A - 225F), the runtime environment comprising a virtual machine customized for the particular unit of automation equipment (225A - 225F) and the production environment, whereby the automation functions are compiled into an application executable in the virtual machine, which is adapted to use the functionality of the automation equipment abstraction layer and the production layer.