Vai al contenuto
PLC Forum


Memoria ritentiva?


Spiddy1

Messaggi consigliati

Ho una memoria MD62 da mettere come ritentiva pero ho visto nel menu dove impostare bisogna partire per forza dalla 0 non c’e il modo di mettere solo ritentiva solo quella?

 

Link al commento
Condividi su altri siti


No, non c'è modo di rendere ritentiva solo quella.
Ma, come ti è stato detto in un'altra discussione, non usare l'area M, usa i DB.
Con i DB ottimizzati, puoi decidere quali variabili rendere ritentive, e quali no.
Con i DB non ottimizzati, puoi rendere ritentivo o non ritentivo l'intero DB.

Link al commento
Condividi su altri siti

Si ok e che sono alle prime armi anche se secondo me sono riuscito a fare delle belle cosette 

l’ottimizzazione del Db si sceglie all’inizio quando si crea giusto?

Link al commento
Condividi su altri siti

3 ore fa, Spiddy1 ha scritto:

l’ottimizzazione del Db si sceglie all’inizio quando si crea giusto?

I DB vengono sempre creati ottimizzati. Poi, entrando nelle proprietà del DB, puoi togliere l'ottimizzazione. Se non fai nulla, sono ottimizzati.

Link al commento
Condividi su altri siti

Cesare Nicola

Ho avuto brutte esperienze con i merker ritentivi. Non nel senso che non funzionano, ma perché non è immediatamente visibile che sono ritentivi. Poco tempo fa lavoravo su un progetto non mio, fatto con CPU300 e non mi immaginavo che chi ha realizzato quel progetto anni fa, avesse usato merker ritentivi. Avendo io sostituito la CPU con una diversa, la configurazione della CPU precedente era andata persa e con essa l'impostazione dei merker ritentivi. Ho scoperto per puro caso il giorno prima del rientro dalla trasferta che esistevano dei merker ritentivi. Forse, se invece di cancellare dalla configurazione hardware la vecchia CPU e mettere la nuova, avessi usato "sostituisci oggetto", avrei mantenuto quella impostazione; ok, errore mio quella volta, ma se si usano le DB, è immediatamente visibile cosa deve essere ritentivo e ci si mette al riparo da errori o da situazioni in cui si eredita del software e lo si riutilizza.

Link al commento
Condividi su altri siti

Soprattutto lavorando con il TIA e cpu S7-1200/1500, a parte i merker di sistema, gli altri, per me, potrebbero anche sparire.
Posso comprenderne l'uso solo su programmi piccoli. Quando le cose si complicano, meglio gestire ogni singola parte in FB con in pancia tutte le variabili che servono (oppure passate come parametri, meglio se associate ad un Tipo di dato), e DB per dati comuni.

Link al commento
Condividi su altri siti

ifachsoftware
40 minuti fa, batta ha scritto:

Soprattutto lavorando con il TIA e cpu S7-1200/1500, a parte i merker di sistema, gli altri, per me, potrebbero anche sparire.
Posso comprenderne l'uso solo su programmi piccoli. Quando le cose si complicano, meglio gestire ogni singola parte in FB con in pancia tutte le variabili che servono (oppure passate come parametri, meglio se associate ad un Tipo di dato), e DB per dati comuni.

 

Concordo totalmente

Link al commento
Condividi su altri siti

Cesare Nicola
1 ora fa, batta ha scritto:

a parte i merker di sistema, gli altri, per me, potrebbero anche sparire

Magari è un eccesso di zelo con le veloci CPU attuali o magari non è più nemmeno vero grazie alle DB ottimizzate, non so; in passato con le CPU 300 si diceva che l'accesso a un merker era ben più veloce dell'accesso a un bit di una DB, perché per quest'ultimo il sistema doveva prima aprire la DB e poi accedere al bit.
Quisquilie da quarantena. 😄

Modificato: da Cesare Nicola
Link al commento
Condividi su altri siti

24 minuti fa, Cesare Nicola ha scritto:

Magari è un eccesso di zelo con le veloci CPU attuali o magari non è più nemmeno vero grazie alle DB ottimizzate

Non ho prove a sostegno ma, in un recente workshop Siemens, è stato detto che, ora, la situazione è ribaltata: l'accesso a dati di DB ottimizzati è più veloce dell'accesso ai merker.
Di sicuro, l'accesso ad un DB ottimizzato è più veloce dell'accesso ad un DB non ottimizzato. Con i DB ottimizzati, immagino il sistema acceda direttamente alla memoria (l'ha allocata lui, la variabile, saprà bene dov'è ;-) ), senza l'apertura del DB.
Spesso io passo alle funzione intere strutture di dati come IN/OUT. Passando dati complessi come IN/OUT, nella funzione non viene creata una copia dei dati, ma un puntatore.
Fino a non molto tempo fa mi ero un po' limitato nell'uso di questo sistema, perché temevo che accedere tramite puntatore appesantisse il lavoro della cpu. Sempre da quanto appreso in quel workshop, invece, pare sia il sistema più rapido. E, effettivamente, ha senso: non si perde tempo per leggere la variabile, copiarla nei dati della funzione, elaborarla e poi riscriverla, ma si agisce direttamente sulla variabile.
Anche di questo però non ho prova certa.
Cercando, sicuramente si trova una tabella dei tempi di accesso alle diverse aree di memoria e con i vari metodi.

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