Clean way to rout 72 bytes

I have 72 bytes I’m routing from a profinet device to the AXL2152. I’m wondering if there is a cleaner way to do this than the following:
image.pngThese bytes represent 3 sets of 6 DINTs (3 * 6 * 4=72 bytes). I want to be able to write some loop like this:

// Arrays to hold input byte mappings
VAR CONSTANT
    START_INDEX_REAL_DATA1 : INT := 4;
    START_INDEX_REAL_DATA2 : INT := 28;
    START_INDEX_REAL_DATA3 : INT := 52;
    BYTES_PER_REAL : INT := 4;
    NUM_REAL_DATA_POINTS : INT := 6;
END_VAR
VAR
    kuka_input_bytes : ARRAY[4..75] OF BYTE; // assuming these are populated elsewhere
    some_real_data1 : ARRAY[1..NUM_REAL_DATA_POINTS] OF REAL;
    some_real_data2 : ARRAY[1..NUM_REAL_DATA_POINTS] OF REAL;
    some_real_data3 : ARRAY[1..NUM_REAL_DATA_POINTS] OF REAL;
END_VAR
// Helper function to map the input bytes to REAL variables
FOR i := 1 TO NUM_REAL_DATA_POINTS DO
    some_real_data1[i] := bytes_to_real(kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA1], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA1 + 1], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA1 + 2], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA1 + 3]);
    some_real_data2[i] := bytes_to_real(kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA2], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA2 + 1], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA2 + 2], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA2 + 3]);
    some_real_data3[i] := bytes_to_real(kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA3], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA3 + 1], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA3 + 2], 
                                        kuka_input_bytes[(i - 1) * BYTES_PER_REAL + START_INDEX_REAL_DATA3 + 3]);
END_FOR;
where bytes_to_real is some function I already have that OR's all the bytes.
This feels cleaner than what I currently do:
some_real_data1[1] := bytes_to_real(kuka_input_byte_4, kuka_input_byte_5, kuka_input_byte_6, kuka_input_byte_7);
some_real_data1[2] := bytes_to_real(kuka_input_byte_8, kuka_input_byte_9, kuka_input_byte_10, kuka_input_byte_11);
some_real_data1[3] := bytes_to_real(kuka_input_byte_12, kuka_input_byte_13, kuka_input_byte_14, kuka_input_byte_15);
some_real_data1[4] := bytes_to_real(kuka_input_byte_16, kuka_input_byte_17, kuka_input_byte_18, kuka_input_byte_19);
some_real_data1[5] := bytes_to_real(kuka_input_byte_20, kuka_input_byte_21, kuka_input_byte_22, kuka_input_byte_23);
some_real_data1[6] := bytes_to_real(kuka_input_byte_24, kuka_input_byte_25, kuka_input_byte_26, kuka_input_byte_27);
some_real_data2[1] := bytes_to_real(kuka_input_byte_28, kuka_input_byte_29, kuka_input_byte_30, kuka_input_byte_31);
some_real_data2[2] := bytes_to_real(kuka_input_byte_32, kuka_input_byte_33, kuka_input_byte_34, kuka_input_byte_35);
some_real_data2[3] := bytes_to_real(kuka_input_byte_36, kuka_input_byte_37, kuka_input_byte_38, kuka_input_byte_39);
some_real_data2[4] := bytes_to_real(kuka_input_byte_40, kuka_input_byte_41, kuka_input_byte_42, kuka_input_byte_43);
some_real_data2[5] := bytes_to_real(kuka_input_byte_44, kuka_input_byte_45, kuka_input_byte_46, kuka_input_byte_47);
some_real_data2[6] := bytes_to_real(kuka_input_byte_48, kuka_input_byte_49, kuka_input_byte_50, kuka_input_byte_51);
some_real_data3[1] := bytes_to_real(kuka_input_byte_52, kuka_input_byte_53, kuka_input_byte_54, kuka_input_byte_55);
some_real_data3[2] := bytes_to_real(kuka_input_byte_56, kuka_input_byte_57, kuka_input_byte_58, kuka_input_byte_59);
some_real_data3[3] := bytes_to_real(kuka_input_byte_60, kuka_input_byte_61, kuka_input_byte_62, kuka_input_byte_63);
some_real_data3[4] := bytes_to_real(kuka_input_byte_64, kuka_input_byte_65, kuka_input_byte_66, kuka_input_byte_67);
some_real_data3[5] := bytes_to_real(kuka_input_byte_68, kuka_input_byte_69, kuka_input_byte_70, kuka_input_byte_71);
some_real_data3[6] := bytes_to_real(kuka_input_byte_72, kuka_input_byte_73, kuka_input_byte_74, kuka_input_byte_75);

TLDR: How do I route 72 input bytes to a single array instead of declaring 72 discrete variables.

Capture.PNG

Hi elidonner,
the modules I work with offer a collection of process data items which can be connected to an array.
image.pngI dunno if your kuka device offers this as well.

BR
DivisionByZero

Ah, you are totally right. I forogt about this, thanks so much.