Moving a value at a specific time in a sequence. For instance I don't want to continuously move the value, just when somethign else happens like a limit switch is made or a pressure reaches a certain value.
Moving bits in a shift register
In front of math instructions that you only want to happen one time based on some condition
Just to add on - if you do not use it in an 'add or sub' instruction, the function executes continuously for every scan of the PLC rather than the state of change in the condition.
Take note it may not visible in an add instruction which adds just two integers and a result stored in a register/tag. You only see the difference while increment a register/tag. Well, the best way to understand it is to test it out yourself.