Vai al contenuto
PLC Forum


Multi Array


marchinoktm

Messaggi consigliati

Buon Giorno a tutti 

 

In una Mia DB generale ho definito un multi array cosi strutturato Bit[0..4,0..17];

Ora se io dovessi controllare in una funzione FB da me creata i seguenti bit dell'array :

  • Bit[0,1],Bit[1,1],Bit[3,1],Bit[4,1]
  • Bit[0,2],Bit[1,2],Bit[3,2],Bit[4,2]
  • Bit[0,3],Bit[1,3],Bit[3,3],Bit[4,3]
  • Bit[0,4],Bit[1,4],Bit[3,4],Bit[4,4],

 

Mentre in una seconda FB i bit 

 

 

  • Bit[0,5],Bit[1,5],Bit[3,5],Bit[4,5]
  • Bit[0,6],Bit[1,6],Bit[3,6],Bit[4,6]
  • Bit[0,7],Bit[1,7],Bit[3,7],Bit[4,7]
  • Bit[0,8],Bit[1,8],Bit[3,8],Bit[4,8],

 

Come posso fare questo controllo in modo Dinamico ?? conosco anche l'scl

Link al commento
Condividi su altri siti


Ho risolto in questo modo in SCL , ma ben vengano altre soluzione casomai più semplici ed efficaci della mia 

 

Quote

// Fronte di salita sull'evento per il refresh dei bit 
"fds_for"(CLK:=#Start_FOR,
          Q=>#fds_startfor)
;
// Ciclo FOR per copiare i dati del multi array generale a quelli che mi servono nella singola funzione, cambiando la variabile
// #IndexFor_BitState da0,4,8,16 
IF #fds_startfor THEN
    FOR #inc_for := #IndexFor_BitState TO (#IndexFor_BitState + 4) DO
        #bitstate[1, #inc_for] := #Eco_BitState[1, #inc_for];
        #bitstate[2, #inc_for] := #Eco_BitState[2, #inc_for];
        #bitstate[3, #inc_for] := #Eco_BitState[3, #inc_for];
        #bitstate[4, #inc_for] := #Eco_BitState[4, #inc_for];
    END_FOR;
END_IF
;

 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...