Vai al contenuto
PLC Forum


Move dati con S7-1200


aude

Messaggi consigliati

Buon giorno , utilizzo DB con accesso ottimizzato , quindi lavoro solo in simbolico.

Prima domanda : ho una variabile struct che contiene 16 bool  , vorrei azzerare tutti i bit con una sola istruzione (è la tipica word di segnalazioni usata a bit che quando premo il pulsante di reset , la voglio azzerare tutta). E' possibile? Io non ho trovato il modo. Il move ovviamente non accetta la variabile di tipo struct.

Variante alla prima domanda : devo muovere un area dati di una DB con accesso ottimizzato dove i dati sono organizzati in strutture come posso spostare un blocco di dati utilizzando la struttura? (tipico record di un fifo da muovere allo scatenarsi di una condizione).

Grazie  

Link al commento
Condividi su altri siti


Il move ovviamente non accetta la variabile di tipo struct

Come no. Il comando MOVE non serve per muovere solo byte, int e dint, ma anche interi array o strutture.

Unica cosa da rispettare è che le struttura sorgente e quella destinazione devono essere identiche.

Per fare l'azzeramento dei 16 bit potresti, per esempio, creare in un DB una struttura con 16 BOOL (che saranno sempre tutti a zero) e, nel MOVE, usare questa struttura come sorgente.

 

devo muovere un area dati di una DB con accesso ottimizzato dove i dati sono organizzati in strutture come posso spostare un blocco di dati utilizzando la struttura? (tipico record di un fifo da muovere allo scatenarsi di una condizione)

Intendi far scorrere i dati nel registro?

La cosa più semplice è organizzare i dati in un array (può anche essere un array di struct) e programmare in SCL. Con un ciclo FOR in poche righe fai lo scorrimento dei dati.

Link al commento
Condividi su altri siti

 Ok grazie , ho provato e funziona.

Peccato che non si possa costruirsi una costante strutturata (nell'OB1 )invece di una variabile in una DB. Sarebbe stato più elegante.

Nel caso volessi muovere dei dati (esempio la solita word delle segnalazioni ) dichiarata in una DB con accesso ottimizzato come una struttura di bit in una word di una DB "tradizionale" con accesso assoluto c'è qualche modo senza usare il bit to bit?

Grazie .

 

 

 

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