Vai al contenuto
PLC Forum


Tempi Ciclo PLC


fiorezzz

Messaggi consigliati

Salve a tutti

In step 7 con indirizzamenti assoluti si potevano fare istruzioni del tipo 

  AUFDI "Nome DB "      //
      L     0                    //Carico zero                                             
      T     %DID0           
      T     %DID4            
      T     %DID8            
      T     %DID12            
      T     %DID16            

In 7 righe di codice azzeravo 5*32 =160 Bit 

 

Con TiaPortal lavorando spesso con array e utilizzando SCL per azzerare 160 bit devo fare un for di 160 iterazioni che equivalgono a 160 righe di codice dal punto di vista delle operazioni da eseguire ; secondo voi il tempo PLC ne va a risentire (aumenta) +- pesantemente  o mi sbaglio ?

Alternative ? 

     

 

 

 

 

Link al commento
Condividi su altri siti


Provare?

Poi in step7 cosa usavi un 300?

In Tia sempre col 300 o con 1xxx?

Puoi sempre usare lindirizzamento assoluto basta avere il DB non ottimizzato.

Ma a livello di comprensibilità ne vale la pena? Sia col TIA che con step7?

Link al commento
Condividi su altri siti

Potrei usare la FILL almeno in AWL riuscendo a togliere indirizzamenti assoluti e usando i simbolici 

 

Poi però avrei anche questo caso 

     AUFDI "Nome DB"      //Apro DB 

      L     %DID0              //
      L     %DID10              //
      OD
      L     %DID20              //
      OD
      L     %DID30           //
      OD

      L     %DID40            //
      OD
      L     0
      U(
      <>D                        //Con almeno un bit a 1 
      )
      =   M0.0  //ho almeno un bit a 1 
che mi serve per verificare se in parte della DB  c'è almeno un bit a 1

 

La struttura ora è tipo  

PippoA Array [0..63] struct 

           Pluto Array[0..63] bool 

Tipo  U  PippoA[0..63 ].Pluto[0..63]

 

Ora se voglio accedere in modo simbolico  alla struct PippoA per verificare se nei  primi 30 bit di ogni Pluto  ho un bit a 1 come dovrei fare ? 

 

 

 

 

Link al commento
Condividi su altri siti

10 ore fa, fiorezzz ha scritto:

per azzerare 160 bit devo fare un for di 160 iterazioni che equivalgono a 160 righe di codice dal punto di vista delle operazioni da eseguire

Oppure ti fai una struttura (anche nelle temp) di 160 bit, e fai tutto in una riga.

 

Link al commento
Condividi su altri siti

Ciao,

Concordo con batta se devi azzerare tutti i bit contemporaneamente puoi crearti una struttura gemella ma con tutti i bit a zero.

Esegui un move e hai finito.

Io lo uso per il reset degli allarmi spesso.

Max

Link al commento
Condividi su altri siti

Il 15/6/2023 alle 20:11 , batta ha scritto:

Oppure ti fai una struttura (anche nelle temp) di 160 bit, e fai tutto in una riga.

Buongiorno, ma con il 1500 non bisogna inizializzare le temp?

Link al commento
Condividi su altri siti

Simone.Salarsi
19 minuti fa, STEU ha scritto:

Buongiorno, ma con il 1500 non bisogna inizializzare le temp?

 

Se l' FB/FC dove sono dichiarate le temp sono di tipo ottimizzato, allora non è più necessario inizializzare le temp in quanto assumono il valore di default

 

image.png.dcde7dc926fdd27f415e7c9e9996f65b.png

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...