I know it is hard to see, but problem is that local vars are NOT being set to new values each time. They are considered “Out of Scope” ( see image 4) even though they are local vars. Because they are out of scope, they are blowing straight through IF branch inside function as if it didn’t exist because they are not being assigned. conditional check on If branch never fires(iUnitA%iUnitLen).
What SHOULD be happening in this chain is that minutes updates at a 1:10 ratio to seconds, and hours updates at a 1:24 ration to minutes. When secs reach 10 they should reset to zero, and when mins reach 24 they should reset to zero. Instead what is happening is that Hours are increment every pulse(second) while Seconds and Minutes are never updated at all or if they are actually being updated they are set to 0 every pulse.
As for local vars with same name, I can’t speak for OP but it won’t even allow me to name local vars same as local vars in parent class or a different function, which should be evidence enough that scope isn’t being respected.