Thanks, been doing lots of reading too. I'm using A Axis for the turret.

Here is my PLC Source Code.

https://pastebin.com/SLRZQ4Re

Some specific bits of interest seem to be:-

;SV_MACHINE_PARAMETER_6 is ATC on/off. 1 = ATC on, 0 = ATC off.

;SV_MACHINE_PARAMETER_830 = ATC Type, 0 = none. 1 = incremental, 2 = incremental w/sync,
; 4 = absolute 3bit, 8 = absolute 4bit, 16 = switched reverse
; 32 = self reversing



;------------------------------------------------------------------------------
; Memory Bit Definitions
;------------------------------------------------------------------------------
AtcPresent_M IS MEM1
AtcIsAbsolute_M IS MEM2
AtcIsIncremental_M IS MEM3

RotateToolTurret IS MEM329 ;&*;
ReverseToolTurret IS MEM330 ;&*;

I assume if I set parameter 830 to 1, the following code then applies?

;------------------------------------------------------------------------------
AtcIncrementalStage
;------------------------------------------------------------------------------
;For incremental ATC's, ToolTurretPosBit1 is the tool counter and toggles each time the
;turret rotates to a tool position. If ToolTurretPosBit1 toggles while ReverseToolTurret is
;not on, then CurrentTurretPosition_W = CurrentTurretPosition_W + 1. If ToolTurretPosBit1
;toggles while ReverseToolTurret is on, then CurrentTurretPosition_W = CurrentTurretPosition_W -1.

IF ToolTurretPosBit1 && RotateToolTurret && !ReverseToolTurret
THEN CurrentTurretPosition_W = CurrentTurretPosition_W + 1

IF ToolTurretPosBit1 && RotateToolTurret && !ReverseToolTurret
THEN CurrentTurretPosition_W = CurrentTurretPosition_W - 1