January 2012 8.16 INDEX Register (X Register) 1721
8.16 INDEX Register (X Register)
You can use the index register for:
 Data transfer
 Buffering results
 Indexed addressing of operands
The index register is 32 bits wide.
You can use the X register anywhere in the program. The control does not 
check whether the current content is valid. Exception: For indexed write-
accesses, the control checks whether the permissible address range is 
exceeded.
Example: = B100[X]
When the permissible address range is exceeded, the control issues the error 
message 320-0420 PLC: index range incorrect. After restarting the control, 
you must not acknowledge the POWER INTERRUPTED message. Switch to the 
PLC editor, where you will be shown the error line.
The following addresses are valid:
 Mn[X]
 In[X]
 On[X]
 Cn[X]
 Tn[X]Operand number = n+X
 Bn[X]Operand number = n+X
 Wn[X]Operand number = n+2*X
 Dn[X]Operand number = n+4*X
 BTX Content of index register = operand
 BCX Content of index register = operand
 BSX Content of index register = operand
 Sn[X]String number = n+X
 S#Dn[X]Dialog text number = n+X
 S#En[X]Error text number = n+X
 S#An[X]ASCII code +X
 Sn^X Substring from X-th character of the n-th string
The types K, and K$ cannot be indexed.
At the beginning of the PLC cycle, the control sets the index register to 0. 
Assign the index register a defined value before using it in your program.
If you address S#Dn[X] or S#En[X], the control loads the sequence 
<SUB>Dnnn or <SUB>Ennn in the string accumulator, where nnn is the 
modified string number.