How Do You Extend an AOI in Rockwell? Composition and the HMI
You can't. There's no EXTENDS. No IMPLEMENTS. So we fake it with composition.
By Bryce Yokom, owner of Plantwide Integration. Published 2026-07-21. Originally posted on LinkedIn.
None of the object-oriented features you get in CODESYS or TwinCAT exist for Rockwell Add-On Instructions. You can't inherit from a base AOI and add to it.
Composition instead of inheritance
Pair the base instance with a companion: Ctrl_Pump_P1000 alongside Ctrl_Pump_P1000_Interlocks. The base AOI stays untouched. The companion AOI adds the advanced interlock logic next to it.
The base AOI keeps its version and its testing. Pumps that need the extra logic get the companion, and the ones that don't stay simple.
Let the HMI do the interface check
In Ignition or FT Optix, the HMI looks for the companion tag by name. If it exists, the screen auto-generates a button that opens the advanced interlock faceplate instead of the built-in one.
The PLC can't do inheritance, so the SCADA layer plays the role of the interface check.
It isn't true extension. But it scales, and the base AOI never breaks.
More on why we build this way: why OEMs write code the way they do. HMI work: HMI and SCADA systems.