Vai al contenuto
PLC Forum


Variabile array


Project75

Messaggi consigliati

Buongiorno,  ho creato una variabile array (0...9) (tipo di dati real)con dieci elementi all'interno che mi serve a prelevare dei valori, c'è un modo per azzerare i valori senza doverlo fare con 1 move per ogni elemento? C'è un modo per sommare i valori senza dover sommare ogni singolo elemento? Grazie mille

Link al commento
Condividi su altri siti


Per azzerare ti crei da qualche parte un array delle stesse dimensioni di quello da azzerare, che non andrai MAI a scrivere e quindi sarà sempre a zero, e poi fai un MOVE di tutto l'array in quello che devi azzerare. Io di solito lo creo in una variabile TEMP del blocco. Per sommare i valori puoi usare un ciclo FOR in SCL oppure un blocco CALCULATE, dando come parametri di ingresso i singoli elementi dell'array. Nel blocco fai il calcolo IN1+In2+IN3, ecc. Con un solo richiamo del blocco hai fatto la somma di tutti.

Link al commento
Condividi su altri siti

No, puoi dargli tutto l'array in un colpo solo, senza specificare elementi. Vorrei allegarti un immagine ma non riesco a caricarla, comunque è semplice.
 

Link al commento
Condividi su altri siti

Con l'istruzione MOVE puoi copiare byte, word, doppie word, string, array, struct o interi DB. L'importante è che sorgente e destinazione (a parte alcune conversioni implicite) siano dello stesso tipo. Per copiare una struttura, la struttura sorgente e la struttura destinazione devono essere identiche. Se copi un array, l'array sorgente e l'array destinazione devono essere identici. Se copi un DB, il DB sorgente ed il DB destinazione devono essere identici.

 

Un altro modo per azzerare un array o una struttura, è l'uso dell'istruzione FILL. Ti serve una variabile con valore zero, la quale variabile va a riempire tutta la struttura di destinazione. Funziona solo con blocchi NON ottimizzati.

Link al commento
Condividi su altri siti

Si, ma quando vado a puntare la variabile array mi fa subito scegliere uno dei suoi elementi e se non lo scelgo mi diventa la scritta in rosso. 

Link al commento
Condividi su altri siti

Giuseppe Signorella

Quando scrivi il nome dell'array, il sistema ti propone in automatico la scelta di  un elemento dell'array.

Tu ne scegli uno a caso, poi una volta inseriti lo editi eliminando sia le parentesi quadre che il numero dell'elemento e premi enter.

Ciao

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