It's true that they know their stuff... and their products are solid, but in this day and age this seems to be a huge limitation for their systems.
It's basically an half assed attempt to achieve what Siemens had all along... "here guys... you now can have a function in the true sense of the word." Ohh and by the way, if you need to change it you'll have to stop the PLC to implement anything.
They all have strengths and weaknesses, but this one is a hard one to swallow.
If you want that functionality, you use a subroutine and subroutine parameters. Works exactly like a Siemens FC and can be edited online.
I'm a huge fan of AOI's, when used correctly. If you find that you keep on having to do downloads and make changes to your AOI's, you're not using them correctly.
Pretty much all my AOI's are device-based. Over the years I have developed them for DOL motors, VSD motors, weight transmitters, pneumatics and hydraulics, barcode readers, and so on. Once you've got all your features in place, tested and proven, you never need to touch the AOI again. What makes the motor start and stop happens outside the AOI, so that can be changed at any time, but things like auto/manual mode, overload/isolator/starter feedback, and so on, never change.
Sure, every now and then some application or another calls for a new feature that my AOI doesn't have, so I add it to the AOI and up it to v2.0. I've never yet found a feature add that wasn't backward compatible to my previous iterations.
Me personally, I'm not a huge fan of Siemens. Everything just seems way harder than it should be. But I don't for a moment imagine that it's because AB is inherently better than Siemens - it's purely that I'm better at using AB. If I had more practice on Siemens, I'd get used to thinking the way Siemens engineers expect you to think, and I'm sure at the end of the day it'd be just as powerful.