Vai al contenuto
PLC Forum


Salvare I Dati Dal Plc Al Progetto


TRC

Messaggi consigliati

Buon gioro a tutti, devo salvare i dati presenti nella CPU di un S7-300 nel progetto...

- un metodo è copiare i DB online nel mio progetto, così facendo salvo i dati ma perdo il simbolico.

- il secondo metodo è aprire il DB online aprire la colonna visualizza dati attuali e successivamente aggiorna i dati attuali con i dati iniziali, ma

e non riesco a trovare il comando copia da attuali a iniziali... mi potete aiutare, grazie.

Link al commento
Condividi su altri siti


non c'e' tale comando, pero` il simbolico non lo perdi se le due DB sono coerenti. Viceversa lo perdi se da on-line copi in un nuovo progetto off-line. Per questo avevo creato il tool freeware 'S7DataArchiver'.

Link al commento
Condividi su altri siti

Scusa non ho capito, su una cpu ho i dati che vengono aggiornati dalla stessa, tipo contatori ecc. + ho le ricette che gli operatori inseriscono, come faccio a salvare i blocchi on line senza perdere il simbolico,

i blocchi coerenti da due progetti off -line o da progetto a cpu?

Qualche anno fa su un plc CPU 313 collegato con una stampante, avevo scritto una serie di stringhe nel plc " in italiano" , al momento della messa in funzione avevo tradotto i messaggi in inglese, ma quando facevo il reset della cpu mi si ripresentavano tutti in italiano, tramite l'hot line siemens ero riuscito a copiare i messaggi in inglese nei dati iniziali della cpu con un comando, ora avendo da poco cambiato posto di lavoro e non volendo fare una nuova registrazione all'hotline, non ho più questo riferimento. Mi potresti dire dov'è S7DataArchiver e come funziona? Grazie.

Link al commento
Condividi su altri siti

Io vedo due soluzioni, quelle che conosco:

1) Una volta che il progetto on-line è in funzione e tarato, se copi le DB dalla "finestra" on-line, verso la finestra off-line, dello stesso progetto, ammesso che le DB siano coerenti (lo riconosce step 7 se lo sono, tramite il confronto blocchi, che farai preventivamente), allora i dati contenuti nelle DB on-line divendano i dati iniziali delle DB off-line, senza perdere il simbolico e commento delle medesime.

2) Se hai paura di perdere il simbolico e commento nelle righe delle DB, perché vari motivi, nello stesso progetto off-line aggiungi uno o più nuovi programmi S7, dove, sempre dalla finestra on-line, farai il copia-incolla verso la finestra off-line del programma nuovo, (opportunamente denominato). Le DB nel programma di riferimento manterranno i valori iniziali, presumibilmente nulli, nel programma di "backup" avrai delle DB, senza commenti, ma con tutti i dati aggiornati, che puoi sempre ricopiare verso la CPU.

Link al commento
Condividi su altri siti

Per salvare i dati di una qualsiasi DB di un progetto, devi aprire la singola DB Online e premere il pulsante "Salva", in questo modo i dati Online vengono salvati in Offline senza alterare i simbolici.

Io lascerei perdere l'aggiornamento dei dati iniziali.

Link al commento
Condividi su altri siti

Scusa gaserma, ma spiegati meglio.

- Se si è on-line su una DB il comando Salva è disabilitato;

- Se si è off-line, il comando è attivo, ma la colonna "Valore attuale" non corrisponde al contenuto della DB on-line. Facendo "Salva" in questo modo, alla dB off-line non succede nulla.

TRC ha il problema di salvare in off-line i dati contenuti nelle DB, dopo lo start-up impianto, per non doversi ricercar etutte le volte ca capita qualcosa i valori di regolazione. (Se ad esempio si lascia la CPU spenta a lungo, all'accensione viene ricvaricato tutto dalla flash e le DB avranno, per necessità di cose, i valori "iniziali".

In parecchi anni non ho mai trovato nulla che permetta di salvare le DB, se non il copia - incolla da on-line ad off-line.

Link al commento
Condividi su altri siti

Scusate ma tengo acceso l'argomento...

faccio DB1 con variabile PIPPO = INT (dato iniziale =0)

carico il DB nel plc

scrivo PIPPO=10 nel plc

- ora con l'off line aperto mi collego on-line e il blocco mi diventa con l'intestazione azzurra e vedo dati iniziali in grigio e dati attuali bianchi e PIPPO con valore 10, da qui dovrebbe esserci il comando di

scrivere i dati attuali in quelli iniziali.

- oppure da off-line faccio il confronto e mi compaiono i 2 blocchi (che sono coerenti tra loro) e poi ?

- oppure copio il DB on-line (coerente con l'off-line) nel mio progetto ma quando lo apro trovo la variabile STAT1 anzichè PIPPO, oltretutto a volte trovo comunque i dati iniziali a 0 e non capisco quando

riesco a salvare i dati attuali e quando i dati iniziali.

Link al commento
Condividi su altri siti

- Apri contemporaneamente il progetto off-line ed on-line

- Selezioni la o le DB on-line (titolo finestra evidenziato), che ti interessa salvare

- CTRL+C, o tasto sinistro mouse -> copia

- Passi alla parte off-line, (finestra col titolo non evidenziato)

- CTRL+V, o tasto sinistro mouse -> incolla

I valori della colonna dati attuali della DB off-line vengono aggiornati. Funziona sia con DB globali che con DB di istanza; lo uso spesso e non sparisce il simbolico se le DB sono coerenti. I vari blocchi hanno dei dati di intestazione e delle date di creazione e modifica dati ed interfacce. Credo che la coerenza dipenda da queste informazioni. Probabilmente se in off-line la stessa DB ha subito delle variazioni, e dico probabilmente, le DB non sono più coerenti e quindi con questo metodo i simboli vengono sostituiti

Link al commento
Condividi su altri siti

- Apri contemporaneamente il progetto off-line ed on-line

- Selezioni la o le DB on-line (titolo finestra evidenziato), che ti interessa salvare

- CTRL+C, o tasto sinistro mouse -> copia

- Passi alla parte off-line, (finestra col titolo non evidenziato)

- CTRL+V, o tasto sinistro mouse -> incolla

Probabilmente funziona anche così, ma ti assicuro che se tu hai una DB aperta in Offline e passi in Online, ti si evidenzia il tasto "Salva" e salvi la DB, ti si aggiornano i dati attuali nella DB Offline (che è quello che si richiede) senza intaccare assolutamente il simbolico, Questa operazione può essere fatta anche se compare il messaggio che c'è una incoerenza in qualche dato, d'altra parte se stai lavorando con dei dati dinamici, è chiaro che ci può essere qualche differenza tra la DB Offline e quella Online; salvando la DB Online non fai altro che aggiornare i dati Offline da quelli Online.

Quando devo salvare i dati attuali delle DB di un progetto ho sempre fatto così e ti assicuro che le DB Offline si aggiornano ai dati Online, per quanto riguarda invece i dati iniziali, non ho mai provato ad aggiornarli ai dati attuali, ma se hai già un backup valido, credo che caricare dei dati validi sia più che sufficiente.

Link al commento
Condividi su altri siti

grazie delle risposte... domani proverò ancora... comunque se non ho i dati iniziali uguali a quelli attuali ma bensì tutti a zero, in caso di inizializzazione del plc (perchè si rompe la cpu) o perchè viene spedita una MMC con modifiche.... senza un pc che trasferisca i dati attuali salvati off-line nel progetto la cpu riparte azzerata (con i dati iniziali) o va a copiarsi i dati attuali del progetto? Se dovessero

azzerarsi i dati ai valori iniziali, probablimente mi si potrebbe rompere la macchina, questo è il motivo di tanta insistenza.

Link al commento
Condividi su altri siti

- La macchina NON si deve rompere perché una o più DB sono andate a zero. Semmai non funziona.

- Prova ad aprire una chiamata all'hot-line, magari scopri una via possibile.

Link al commento
Condividi su altri siti

Io utilizzo per copiare i dati attuali presenti nella DB del PLC al progetto OffLine utilizzo il metodo di mubeta , plc online , seleziono le Db , Ctrl C , passo al progetto Offline , Ctrl V.

Funziona benissimo. ovviamente le DD devono corrispondere nelle strutture.

Per quanto riguarda la MMC , se possibile , metto il PLC in STOP e poi dal menu Sistema di destinazione - Salva ram in rom , il PLC fa una fotografia dello stato attuale della RAM , e quindi anche delle DB , e lo salva sulla MMC. Se si inserisce su un PLC vergine la MMC si ha lo stesso identico funzionamento del PLC utilizzato per la coppia.

Spero di essere stato chiaro

Link al commento
Condividi su altri siti

si aude sei stato chiaro grazie... in effetti il comando è salva ram in rom, anche se non sono quelli iniziali la CPU allo start doo cancellazione carica comunque gli attuali nella MMC quindi in realta gli iniziali

non servono a molto, comunque ho trovato un paio di metodi per copiare gli attuali negli iniziali, anche se non credo che li usero' (erchè basta ram in rom) uno è attraverso la generazione di un file sorgente del DB con la copia di dati (uno a uno) dal valore corrente nella struttura del blocco screata nel sorgente e l'altro è attraverso l'esportazione del sorgente, passaggio in excel e reimporrtazione...

Sconsiglio l'utilizzo dopo aver provato a farlo... ripeto uso SALVA RAM in ROM e va tutto bene

L'articolo che spiega come fare è in Service &Support di Siemens e ha come ID 37001

per aude, io se faccio il tuo (e di mubeta) metodo perdo il simbolico delle DB, sbaglio qualcosa?

Link al commento
Condividi su altri siti

Se perdi il simbolico delle DB , vuol dire che la DB Offline e quella OnLine non hanno la stessa struttura dati.

Questo può succedere ad esempio se si fa una modifica OffLine ( esempio aggiungo una word ) e poi si esegue la lettura della Db dall'OnLine con copia e incolla.

Io prima di fare una modifica sulle DB , leggo la Db OnLine , faccio la modifica OffLine e poi la riscarico nel PLC.

In questo modo non rischio di perdere i dati attuali presenti nel plc (salvo nel caso in cui nel tempo in cui sto facendo la modifica questi possano variare e sia assolutamente necessario non sovrascriverli) e ho la certezza di avere le Db sempre allineate come strutture dati.

Per la mia esperienza , con Step 7 è meglio non lavorare mai OnLine come si faceva in S5 o con altri PLC. Prima o poi si incappa in perdite del simbolico.

Giusto o sbagliato che sia , la filosofia di S7 è quella di lavorare OffLine e usare l'OnLine per il debug.

Spero di essere stato d'aiuto.

Se hai ancora problemi fatti sentire.

Modificato: da aude
Link al commento
Condividi su altri siti

APPROVO AL 98%..........

CERTO E' CHE, SE LA CPU POTESSE CONTENERE ALMENO IL SIMBOLICO DEI DB, ALMENO SI POTREBBE VERIFICARE DOVE è LA INCOERENZA.

E' pur vero però che , coi tempi che corrono si cerca di risparmiare, quindi si cerca di spendere il meno possibile ( quella suddetta non è sicuramente una cosa economica

inquanto prevede una capacità di memoria molto elevata ).

Quindi dico LAVORATE OFF LINE E SE NON SIETE SICURI, SALVATE SEMPRE I DB COMMENTATI POI FATE UN UPLOAD DALLA CPU.

In merito a questo argomento vorrei ****e un altro : QUANDO USATE UNA DB CON UDT cosa succede se modificate l'udt (intendo le variabili e non il simbolico) ???

QUESTO CREDO SIA UN ARGOMENTO SU CUI TUTTI VOI MI POTETE AIUTARE

GRAZIE

Link al commento
Condividi su altri siti

Buon giorno , dopo aver modificato un UDT riaprendo la DB che ne contiene uno o più la trovi con le vecchie dichiarazioni rosse. Devi ridigitare i simboli che richiamano la struttura dati dell'UDT. Ovviamente se le dimensioni dell'UDT sono cambiate (es. Una word è diventata una DoubleWord) anche i simboli che seguono quello formato dal tuo UDT hanno cambiato l'indirizzo assoluto all'interno della DB. Devi fare attenzione a questo fatto , specialmente se accedi tramite puntatori.

Ti consiglio di lasciare sempre un po di scorta all'interno di un UDT , cosi in caso di modifiche è più probabile che non debba "correre dietro" ai vari accessi fatti in modo assoluto.

Spero di essere stato chiaro.

Modificato: da aude
Link al commento
Condividi su altri siti

Scusate continuo a non capire, faccio un blocco dati DB1 con 1 variabile sola PIPPO (dato iniziiale=0)

- download DB1

- scrivo nel software PIPPO=1

- mi scollego col pc

- mi ricollego e vado online

- copio DB1 nel mio progetto offline

- apro il DB1 e trovo STAT1 valore iniziale =0 , valore attuale =1

- i DB online e offline sono coerenti, perchè perdo il simbolico ?

Un'altra cosa, come si fa a lavorare online con siemens se al primo tentativo di modifica di un blocco si passa in modalità offline con successiva domanda se si voglia caricare il blocco o meno ?

Link al commento
Condividi su altri siti

Scusate continuo a non capire, faccio un blocco dati DB1 con 1 variabile sola PIPPO (dato iniziiale=0)

- download DB1

- scrivo nel software PIPPO=1

- mi scollego col pc

- mi ricollego e vado online

- copio DB1 nel mio progetto offline

- apro il DB1 e trovo STAT1 valore iniziale =0 , valore attuale =1

- i DB online e offline sono coerenti, perchè perdo il simbolico ?

Un'altra cosa, come si fa a lavorare online con siemens se al primo tentativo di modifica di un blocco si passa in modalità offline con successiva domanda se si voglia caricare il blocco o meno ?

Link al commento
Condividi su altri siti

Ho fatto un pò di prove:

1) DB di tipo globale:

- Effettivamente in vista dati, e non dichiarazione, aprendola dalla finestra on-line e non off-line, col comando "Salva" del menù a tendina, si salva il valore attuale anche in off-line. (Non bisogna avere il controllo attivo, altrimenti il comando Salva è disattivo). Col comando Aggiorna, o tasto F5, si aggiorna la visualizzazione dei valori attuali.

- La Vista dati può essere seledionata come default. Nell'edito KOP/FUP/AWL, andando nelle Impostazioni dal menù a tendina, scheda Rappresentazione, al fondo, nel riquadro Dei tipi di blocchi, visualizza ...; Blocchi dati; Vista di dati.

2) DB di tipo istanza:

- Indipendentemente dal tipo di rappresentazione: Vista dichiarazione o Vista dati, dalla finestra on-line, all'apertuta la colonna Valore attuale viene aggiornata. Il medesimo comando Salva salva i valori anche off-line. Il pulsante controlla attivo o disattivo non aggiorna più tale valore; che si aggiorna invece col comando Aggiorna, o tasto F5.

3) Il Copia/Incolla, su diversi progetti, con diverse lingue di commenti, delle DB da on-line verso off-line ha sempre aggiornato i Valori attuali anche off-line, senza mai perdere i nomi simbolici delle variabili di quelle DB che non erano derivate da UDT od FB non presenti nel progetto off-line. Il simbolo STAT... è comparso solo in quelle DB incollate in off-line, che erano dichiarate come UDT non più presenti off-line, o istanze di FB non più presenti off-line. (Come giustamente dove essere. Non ho trovato altre ragioni che facciano perdere i somboli delle variabili).

Ho usato: STEP7 V5.4 + SP5; CPU 314 collegata in MPI 187,5 (non c'entra nulla), per le prove.

Link al commento
Condividi su altri siti

Per TRC , cosa intendi per "- scrivo nel software PIPPO=1" ?

Inserisci in un blocco di programma le seguenti istruzioni ?

L 1

T DBXX.PIPPO

PIPPO cos'è un Byte , Word , ecc ?

Se riesco oggi faccio qualche prova , ma mi torna assolutamente quello che dice mubeta.

Link al commento
Condividi su altri siti

Salve

dalla mia esperienza posso affermare con quasi assoluta certezza che l'unico modo per salvare i dati delle db online su quelle offline è copiarle dalla cpu online.

L'importante per far si che non ci venga scritto "stat stat stat" è che la struttura del db online sia identica a quella offline.

mi spiego meglio:

- il nome della variabile nel db, il commento o il valore di essa non è importante.

- la cosa che conta è che se il db online contiene in sequenza 10 word int e 10 bit anche quello offline deve essere uguale se no perdi i commenti.

- attenti perchè anche il tipo hex-bin-int di una word conta quindi deve essere uguale sia offline che online

- la cpu al suo interno non contiene ne commenti ne nomi quindi solo la struttura conta.

esempio db online-offline

db10

int-int

int-int

int-int

int-int

bool-bool

bool-bool

hex-hex

ok

db10

int-bool

int-int

int-int

int-int

bool-bool

bool-bool

hex-hex

errato

db10

int-hex

int-int

int-int

int-int

bool-bool

bool-bool

hex-hex

errato

se hai bisogno di copiare i dati contenuti nelle db sulla mmc in automatico (cada settimana il plc salva i dati dei db nella mmc) usa:

SFC82: Crea la DB nella memoria di caricamento (MMC)

SFC83: Legge la DB nella memoria di caricamento (MMC)

SFC84: Scrive la DB nella memoria di caricamento (MMC)

Modificato: da djx84
Link al commento
Condividi su altri siti

  • 4 years later...

Per salvare i valori attuali di un DB nei valori iniziali senza intaccare il simbolico, procedere come segue:

Aprire la finestra dei blocchi ONLINE

Selezionare tutti i blocchi DB che si vogliono aggiornare nel progetto OFFLINE (tenendo premuto CTRL o SHIFT posso effettuare una selez. multipla)

Cliccare con il tasto destro del mouse sulla selezione e scegliere il comando SISTEMA DI DESTINAZIONE --> CARICA NEL PG

Link al commento
Condividi su altri siti

Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...