The reason for IEC functions is to make it compatible over multiple platforms (well that was the idea), the problem as any multi-platform code is getting it to compile on another platform, the total IEC language was so that it could be exported as some kind of statement file so the code is re-usable on another platform, however, there are problems for example say Siemens use "I" as an input (E if in Germany) & Q or A for outputs, to compare this to Mitsubishi & it would be X & Y, so not truly compatible, in general platform dependent timers differ from IEC ones in respect that the underlying code, for example in most platforms a standard timer i.e. T0 is a fixed address as such an IEC is not what we call a timer as such, its a set of instructions that the compiler generates the native code that will work on that platform. It's a little hard to explain but for instance in Mitsubishi when you use an IEC timer the code generated does not use the native timers (function) as built in but builds it's own using words & bits as a subroutine. How others do it is not clear. I worked with a guy who developed one of the first IEC compatible IDE's (GXIEC) in the late 80's/ early 90's I learnt quite a bit how the IEC IDE integrated into the Mitsubishi system to make it compatible for older hardware, RW completely changed theirs with the introduction of Logix, Siemens has almost been IEC since the start of S7 & bet it is what IEC is based on due to the similarities even before IEC was introduced.