FUNCTION FC52 : VOID
VAR_IN_OUT
    sortieAsiSys: ARRAY [0..3] OF BOOL;
    sortieAsiEsc: ARRAY [1..31,1..4] OF BOOL;
END_VAR

VAR_TEMP
    i,j: INT;
    temp: ARRAY[0..31] OF BOOL;
    tempDW AT temp: DWORD;
END_VAR
   
//Transfert des donnée Fragmentée de la DB50 vers la DB51 sous le bon format
FOR i:=0 TO 3 DO
    IF i=0 THEN 
        FOR j:=0 TO 3 DO 
            IF j<1 THEN // bit système et premier esclave
                temp[4] := sortieAsiSys[0];
                temp[5] := sortieAsiSys[1];
                temp[6] := sortieAsiSys[2];
                temp[7] := sortieAsiSys[3];
                temp[0] := sortieAsiEsc[1,1];
                temp[1] := sortieAsiEsc[1,2];
                temp[2] := sortieAsiEsc[1,3]; 
                temp[3] := sortieAsiEsc[1,4];
            ELSE // esclave 2+ -> 7
                temp[j*8+4] := sortieAsiEsc[j*2,1];
                temp[j*8+5] := sortieAsiEsc[j*2,2];
                temp[j*8+6] := sortieAsiEsc[j*2,3];
                temp[j*8+7] := sortieAsiEsc[j*2,4];
                
                temp[j*8] := sortieAsiEsc[j*2+1,1] ;
                temp[j*8+1] := sortieAsiEsc[j*2+1,2];
                temp[j*8+2] := sortieAsiEsc[j*2+1,3];
                temp[j*8+3] := sortieAsiEsc[j*2+1,4];
            END_IF; 
        END_FOR;
    ELSE
        FOR j:=0 TO 3 DO // assignation dans la DB50 des entrée
            temp[j*8+4] := sortieAsiEsc[i*8+j*2,1] ;
            temp[j*8+5] := sortieAsiEsc[i*8+j*2,2];
            temp[j*8+6] := sortieAsiEsc[i*8+j*2,3];
            temp[j*8+7] := sortieAsiEsc[i*8+j*2,4];
            
            temp[j*8] := sortieAsiEsc[i*8+j*2+1,1];
            temp[j*8+1] := sortieAsiEsc[i*8+j*2+1,2];
            temp[j*8+2] := sortieAsiEsc[i*8+j*2+1,3];
            temp[j*8+3] := sortieAsiEsc[i*8+j*2+1,4];
        END_FOR; 
    END_IF;
    DB51.DBD[16+(i*4)] := tempDW; // transfert vers DB51 de donnée mise en forme
END_FOR;  

//transfert des donnée brut de la table DB51 vers le module ASI
PQD256:= DB51.DBD16;
PQD260:= DB51.DBD20;
PQD264:= DB51.DBD24;
PQD268:= DB51.DBD28;

END_FUNCTION