Vai al contenuto
PLC Forum


CPU1500: Azzerare tutti i bit/byte di un DB "ottimizzato"


lupusimprobus

Messaggi consigliati

Buongiorno a tutti.

Ciò che mi occorre è realizzare un FC che quando richiamato, prenda tutti i bit/byte contenuti in un DB (Esempio DB2) e li metta a zero.

Utilizzando CPU 300 avevo realizzato un FC tipo questo:

 

OPN DB2	// Apro il DB2
L DBLG  // Carica la lunghezza del DB2
T DW2   // IN DW2 ora è contenuto il numero di byte di cui è composto il DB
...

 

Una volta determinata la lunghezza in Byte del DB2, era sufficiente creare un LOOP per scrivere zero in tutti i byte.

 

--- ORA ---

Con le CPU serie 1500...
Per fare la stessa cosa devo dichiarare il DB disabilitando la proprietà "Accesso ottimizzato al blocco".

In caso contrario mi da errore nel comando "OPN".

 

Qualcuno sa qualche strada alternativa per poter utilizzare DB con "Accesso ottimizzato al blocco"?

Magari utilizzando SCL invece di AWL.

Mi spiace dover disabilitare una funzione per poter utilizzare un vecchio blocco.

 

Spero d'essermi spiegato bene.

Per ogni chiarimento non esitate a domandare.

Grazie a tutti per l'aiuto, Valerio.

Link al commento
Condividi su altri siti

  • 4 weeks later...

Ciao,

nelle cpu 1500 e 1200 c'è una diversa gestione degli indirizzi assoluti e simbolici. Io quando dichiaro dei record o delle strutture, per azzerarli creo una struttura identica che poi deve rimanere intatta cioè che non deve mai essere scritta da nessuno, e poi basta un Mov della struttura vuota nella struttura da azzerare. Penso però che non devi togliere l'ottimizzazione del blocco. Mi sono così abituato a questa cosa che adesso quando torno alle CPU 300 comincio ad innervosirmi.

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