Vai al contenuto
PLC Forum


Aree Di Memoria Ld-lw?


Kale

Messaggi consigliati

Ciao a tutti

Sono alle prese con un progetto step 7,al cui interno è stato fatto ampio uso con istruzioni di move,conversioni reali interi...dell'area di memoria LD LW.

es.: L LD10

T LD12

LD ed LW (d ed w ho capito che sono il formato del dato; doppio intero....)ma L cosa rappresenta?posso vederne il contenuto da una vat?

Grazie !!

:huh:

Link al commento
Condividi su altri siti


Abbassa la tendina in alto e li vedrai.

Si tratta dei dati locali (Temp) di cui ogni FB/FC è dotato.

Sono variabili che perdono validità quando termina l'FB/FC, nel senso che al successivo richiamo li ritrovi a 0.

Puoi usarli come appoggio all'interno del blocco.

Link al commento
Condividi su altri siti

Ivan Castellaro
nel senso che al successivo richiamo li ritrovi a 0.

Attenzione che il valore dei dati temp al sucessivo richiamo è casuale, in quanto possono essere utilizzati da altri blocchi!

Modificato: da Ivan Castellaro
Link al commento
Condividi su altri siti

Attenzione che il valore dei dati temp al sucessivo richiamo è casuale, in quanto possono essere utilizzati da altri blocchi!
Sicuramente è vero, per il motivo spiegato da mrc, i 256 bytes di memoria riservati per i dati locali di tutti i blocchi sono sempre gli stessi. Non ho comunque mai provato, perchè quando si usa un dato temp di solito (sempre) è per appoggio interno nel blocco e viene subito sovrascritto.

Va detto che quando il blocco termina i bytes che prima erano occupati si liberano.

Esempio: se OB1 usa 100 bytes me ne rimangono 156, se poi richiamo FB1 che ne usa altri 100, me ne rimangono 56, se da FB1 richiamo FC2 che ne usa 50 me ne rimangono 6, quando termina FC2 tornano liberi 50 e quindi sono di nuovo 56.....

Di conseguenza bisogna fare attenzione quando si annidano molti FB/FC con tanti dati temp.

Quindi e come dichiarare una var temporanea come #temp1 nella solita tendina degli fc fb?

o ci sono differenze?

#Temp1 è il nome simbolico, LW (LD,LB,...) è l'indirizzo assoluto della variabile (come fai per esempio con i merker).

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao.

Devi porre attenzione alla differenza tra FB e FC: le prime sono blocchi in cui puoi definire variabili sia di tipo "temp" (ovvero che al successivo ciclo di plc non ricorderanno il valore assunto al ciclo precedente) sia variabili di tipo "stat", che mantengono memoria del proprio stato. Questo è possibile poiché le FB sono associate ad una DB di istanza in cui tali variabili vengono memorizzate. Le Fc, invece, sono semplici funzioni in cui dati certi ingressi otterrai sempre le stesse uscite; al loro interno non è possibile definire variabili stat.

In parole povere, se devi scrivere un blocco funzione che fa una somma, userai una FC (2+2 fa sempre 4!) mentre se devi scrivere un blocco che calcola una media di un valore nel tempo puoi usare un'FB che al suo interno tiene memoria del valore calcolato (e la stessa FB la puoi usare con diverse DB di istanza per calcolare le medie di diverse variabili)

Spero di essere stato chiaro, anche se io questo non l'ho capito leggendo i manuali siemens!

A presto

Maurizio

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