Think of a FAL as an instruction with a built in FOR loop. The loop can run in ALL mode or INCREMENTAL mode, that is it will do all calculations in a single scan or it will do one calculation per scan until done.
For a PLC/5 for your application
CLR N7:0 //you need to clear the destination first
FAL R6:0 47 0 ALL N7:0 N7:0 + #N7:1
is eqivalent to
N7:0 := 0;
FOR i:= 0 to 46 DO
N7:0 := N7:0 + N7:[1+i];
NEXT i
For a ControlLogix you would enter it as
CLR SUM
FAL FALCTRL 47 0 INC SUM "SUM + MYARRAY[FALCTRL.POS]"
You can index the address of either the destination and/or some or all elements addressed in the expression. For example
FAL R6:0 10 0 ALL #N11:0 #N12:0 + #N13:0
is equivalent to
For i:= 0 to 10 do
N11: := N12: + N13:;
Next i;
In a PLC/5 you can used indexed addressing. In the CLX you use Control.POS as an array index value. So it becomes
My_Int_array[3][10] //.3 x 10 array
FAL FALCTRL 10 0 INC My_Int_Array[0][FALCTRL.POS] My_Int_Array[1][FALCTRL.POS] + My_Int_Array[2][FALCTRL.POS]