Vai al contenuto
PLC Forum


Siemens Simatic S7 300 Cpu 315 Dopo Black-Out Perde I Dati


virgo_61

Messaggi consigliati

Salve amici del forum, con la mia azienda abbiamo installato dei plc simatic s 300 cpu 315, queste macchine controllano dei serbatoi di acqua potabile, infatti in ingresso hanno 2 misuratori di portata, due di livello, 2 di pressione,i valori sono letti da su un toch pannel. Il problema è che quando si toglie energia per 3 0 4 gg la cpu perde il programma quindi si è costretti a richiamare il softerista per inserire di nuovo il programma, il plc è dotato di scheda memoria sd card. La mia domanda è quando si toglie alimentazione al plc per un certo tempo la cpu dovrebbe prendersi il programmma dall sd card? Secondo il softerista c'è bisogno sempre di un pc perchè dovrebbe con esso trasferire il programma dalla card alla cpu, la cosa mi sembra strana, secondo me è la cpu che dovrebbe caricarsi il programma automaticamente dalla card?

In attesa saluti

Link al commento
Condividi su altri siti


Ma perde il programma (come dici nel post) o perde i dati (come nel titolo)?

Sono due cose ben diverse.

Se avete installato recentemente queste cpu, escluderei la possibilità che si tratti di vecchie cpu con batteria tampone. Immagino siano cpu recenti, con programma su MMC.

Nel caso sulla CPU fosse presente la batteria tampone, significherebbe che ti è stato rifilato un vecchio rimasuglio di magazzino.

Il programma sulla MMC non si può assolutamente cancellare da solo, tanto meno dopo pochi giorni.

E, come dici tu, la cpu legge automaticamente il programma dalla MMC. Se il programmatore continua ad affermare che serve per forza un PC, ti consiglio di cambiare programmatore.

Per quanto riguarda invece i dati bisogna sapere di quali dati si tratta.

Se sono valori scritti nei DB (a meno che non sia stata modificata l'impostazione di default dei DB, rendendoli non ritentivi) non devono assolutamente andare persi.

Lo stesso vale per i merker ritentivi.

Questi valori potrebbero andare persi (nel qual caso verrebbero ricaricati i valori iniziali) solo in caso di "avviamento a freddo", che avviene solo dopo errore della CPU (per esempio, se estraggo a caldo la MMC). Il normale avviamento della cpu al ritorno dell'alimentazione è un "avviamento a caldo", che non comporta la perdita di dati.

Anche dopo un avviamento a freddo comunque, verrebbero reinizializzati i dati, ma il programma verrebbe comunque ricaricato automaticamente dalla MMC, senza bisogno di intervenire con un PC.

Se tutto risulta apparentemente regolare (cpu con MMC e dati in DB ritentivi) e si verifica la perdita di dati o programma, o è guasta la MMC (a proposito, è una MMC Siemens?) o è guasta la CPU.

Link al commento
Condividi su altri siti

il plc è stato istallato ed acquistato un anno fa , il programma sulla memory card non si cancella ( a detta del programmatore) ma sempre secondo il programmatore è un plc che ha la batteria tampone che dura un paio di giorni quindi la cpu perde il programma.

Allorchè sempre il programmatore ( sempre a detta sua) non fa altro che trasferisce il programma dalla memory card alla cpu.

La mia domanda: se il plc ha la memory card , dopo il black-out la cpu deve caricarsi il programma in modo automatico? senza l'intervento del programmatore?

Link al commento
Condividi su altri siti

Sia il programma che i dati sono sulla MMC. La CPU non ha una batteria tampone.

Dai dati tecnici risulta che programma e dati rimangono sulla MMC per 10 anni dall'ultimo caricamento del programma.

L'unica cosa che utilizza, credo, un condensatore, è l'orologio interno, per il quale Siemens dichiara il mantenimento senza alimentazione per 6 settimane.

In ogni caso, il caricamento del programma da MMC deve avvenire in automatico, senza dover usare il PC.

Quello che afferma il programmatore non ha alcun fondamento.

Link al commento
Condividi su altri siti

Quindi, a questo punto potrebbe essere guasta la cpu, o la memory card.

Eventualmente esiste un opzione del software, che dice alla cpu prendi il programma dalla card, automaticamente,non vorrei che il programmatore non da quest'ordine alla cpu, poichè lui dice che non fa altro che trasferire il progammma dalla card alla cpu con il terminale

Link al commento
Condividi su altri siti

ma lui cosa ti carica?

se chi arriva ti carica un backup dei blocchi dati potrebbe essere una cosa normale ovvero la cpu che in seguito a problemi rimette in ram ciò che si trova sullo mmc.

i blocchi dati salvati sulla mmc non sono aggiornati oppure vengono generati dalla cpu. dopo una reinizializzazione i dati vengono persi e:

* se i blocchi dati sono editati nel software vengono caricati i valori iniziali (come detto già da batta)

* se i blocchi dati sono generati con sfc22 non si sa cosa ci sarà scritto sentro

Link al commento
Condividi su altri siti

trasferisce dalla card alla cpu (quando mi dice lui)

Che io sappia non esiste questo comando perché è automatico, esiste invece il comando opposto (salva RAM in ROM).

Se è una cpu vecchia con batteria la riconosci perché ha la memory card grande, e ovviamente sotto lo sportello trovi anche la batteria, quelle nuove invece hanno una micro-memory card (MMC) fatta come una scheda SD delle fotocamere (solo che è marchiata Siemens e formattata in maniera particolare)

Nella MMC c'è la cosiddetta "memoria di caricamento", dove vanno a finire i blocchi di codice, i blocchi di sistema ed i blocchi dati con i valori iniziali e di lavoro.

La "memoria di sistema" contiene gli operandi (Merker, Timer, Counter, Input, Output, Local data)

La "memoria di lavoro" è integrata nella CPU, il codice ed i dati vengono elaborati in questa memoria (non nella MMC !!!), per essere precisi questa è definita una "RAM a ritenzione", nelle vecchie CPU necessitava della famosa batteria esterna, nelle nuove non so bene come funzioni, (sul manuale dice che il tamponamento è garantito dalla MMC e senza manutenzioni) di sicuro una DBW che varia ogni 10ms non viene scritta ciclicamente nella MMC altrimenti andrebbe fuori uso in poco tempo (max.100000 operazioni di scrittura), quindi può essere che ci sia un problema nel sistema di ritenzione e la CPU ricarica il programma e le DB con i valori iniziali. (ma te la ritrovi in RUN con macchina che non va oppure ub STOP?)

Resta il fatto che il programmatore dovrebbe, a macchina parametrizzata e funzionante, lanciare il comando SALVA RAM IN ROM e in questo modo tutti i dati vengono scritti nella MMC così che in caso di problemi vengano ricaricati correttamente dalla MMC alla CPU.

Link al commento
Condividi su altri siti

Resta il fatto che il programmatore dovrebbe, a macchina parametrizzata e funzionante, lanciare il comando SALVA RAM IN ROM e in questo modo tutti i dati vengono scritti nella MMC così che in caso di problemi vengano ricaricati correttamente dalla MMC alla CPU.

e se i DB sono generati nella cpu tramite sfc22?

salva ram in rom non va visto che il db stesso si trova in ram...

Link al commento
Condividi su altri siti

Se si ha una macchina appena collaudata e parametrizzata, specie se molti dati sono stati inseriti via HMI, le DB in RAM conterranno dei dati diversi dalle corrispondenti DB nella MMC, per trasferire questi nuovi valori nella MMC si può lanciare il comando Salva RAM in ROM oppure usare delle apposite SFC nel programma (da non fare molto spesso però). Metti caso che in seguito il PLC si guasti completamente, sostituendo la CPU si potrà così usare la MMC per ricaricare programma e dati salvati.
Quando finisco un collaudo (macchine con parametri inseriti via HMI), faccio sempre "salva Ram in rom" e poi trasferisco le DB dal PLC al PC, le stesse operazioni le faccio anche quando torno da un cliente per salvare anche i dati che ha immesso lui.

p.s. La CPU non dovrebbe perdere il programma in 3-4 giorni, non mi sembra normale, se lo fa, probabilmente ricarica le DB con dati sbagliati dalla MMC (come avete detto anche tu e batta).

Link al commento
Condividi su altri siti

Quindi, a questo punto potrebbe essere guasta la cpu, o la memory card.

Secondo me sì.

In ogni caso, il problema che riscontri non è assolutamente normale.

Hai tutto il diritto di pretendere che venga risolto da chi ha fatto il lavoro.

E, se il programmatore continua a sostenere che è normale così, i casi sono due: o è la prima volta che usa un PLC Siemens (e, piuttosto che informarsi, ti dà la risposta che a lui fa più comodo), oppure conosce i PLC Siemens, e mente sapendo di mentire.

Link al commento
Condividi su altri siti

Jumpman, se il db non risiede sulla rom ma è solo in ram non può essere salvato.

praticamente sfc22 genera dei db. questi vengono generati durante la scansione del programma, esempio in ob100.

non saranno perciò sulla memory card ma solo nella cpu, in ram. se provi ad eseguire un salva ram in rom cancellerà il db dalla ram ma sulla rom non lo salva visto che non esiste.

Siemens mette a disposizione questo modo di lavoro, frutto di vecchie cpu S5. se usi questo metodo di lavoro il salva ram in rom non va.

se invece generi i db in modo normale, nel software e li carichi nella memory card, il tuo sistema funziona.

ricorda che comunque sia i db sono soggetti a variazioni e, il salva ram in rom è una sorta di punto di ripristino. se durante il lavoro alcuni dati cambiano (e devono cambiare altrimenti perchè usare dei blocchi dati?) il salva ram in rom è praticamente inutile.

Link al commento
Condividi su altri siti

Si ken se uno usa sfc22 per creare una db all interno si trovera dei valori casuali, poi dovrebbe come minimo usare la sfc fill_db per azzerarli e poi puo incominciare ad usarla come appoggio dati, ma sinceramente non mi sembra proprio una bella maniera di lavorare. Se qualcuno mi presenta un programma fatto cosi lo mando via a calci nel sedere :P.

Dici che il salva ram in rom è inutile, immagina di avere un programma nuovo con 100 parametri di taratura della macchina, questi parametri sono in una pagina nascosta dell'hmi, quando hai finito di tarare la macchina lanci il salva ram in rom e memorizzi tutte le tarature nella mmc! Cosa c'è di meglio? Un motivo valido per farlo è che solo estraendo e reinserendo la mmc si ha la completa reinizializzazione delle db con la perdita di tutte le modifiche e di conseguenza perdi le tarature (relativamente al mio esempio), se hai fatto il salva ram in rom la macchina torna invece nello stato in cui era il giorno del collaudo. Per quanto riguarda i dati utente ci sono, come ho già detto, delle sfc che permettono di copiare db dalla ram alla mmc, ma non vanno usate molto spesso (100000 volte e la mmc passa a miglior vita)

Modificato: da JumpMan
Link al commento
Condividi su altri siti

Giusto per capire qualcosa di più, questa CPU ha un codice?

6ES.............. eec ecc.

Almeno partiamo da un dato certo se sia o meno un modello con o senza batteria tampone o cosa.

Link al commento
Condividi su altri siti

  • 1 month later...

Come detto batta quello che afferma il programmatore non ha alcun fondamento , A mio avviso caricarebbe "i dati" delle DB che sulla MMC apparentemente sono tutti a zero,

Altrimenti la 315 ha un comportamento anomalo dopo l'avviamento.

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