Vai al contenuto
PLC Forum


Confronto Blocchi


nodux2000

Messaggi consigliati

Buongiorno a tutti,

ho un problema con un progetto S7: dopo aver aperto un DB ho provato a visualizzarne i valori online e mi è comparso il messaggio che mi informava della discordanza dei due blocchi online/offline....

Ho eseguito il confronto blocchi e nella finestra "dettagli" ho visto che le grandezze dei DB combaciavano mentre le voci "Grandezza di controllo del blocco" differivano tra loro.

Le stutture dei dati combaciano e dato che il confronto blocchi eseguito sui blocchi "con codice" non ha rilevato differenze, non capisco da cossa possa derivare questo errore.

Ho provato a sovrascrivere il blocco ONLINE sul programma OFFLINE ma non riesco a mantenere le diciture delle variabili.

Per caso qualcuno ha già avuto problemi simili?

Ringrazio anticipatamente!!!!!!!

Un saluto a tutti

Link al commento
Condividi su altri siti


quando fai un upload dal plc I commenti, nomi etcc non li vedrai mai,

esempio ti crei una temporanei nel pg e la chiami PIPPO, poi fai il download, se fai l'upload, la visualizzerai esempio M001.

Stessa cosa con le db, i nomi non li vedrai, poi se fai il confronto di una db offline con l'online, saranno diverse, siccome nelle db credo tu faccia calcoli o inserisci valori dal tuo scada, quindini non sarà mai uguale a quella nel tuo pg.

esempio

db20.dw20 offline è 1444 (siccome l'hai inserito nella db)

do20.dbw20 online è 45456 (siccome magari è un valore scritto dallo scada o da un calcolo)

Puoi fare un upload della db non selezionandola e fai upload, ma apri offline la tua db, poi premi su "occhialini" e vedrai i valori online, allora li puoi salvarla con gli steddi valori :D

Modificato: da ballj5
Link al commento
Condividi su altri siti

Allora, grazie della risposta e scusa per il ritardo della mia.....

Il problema non sono i valori, perchè è sicuramente possibile andare online con un blocco con i soli valori diversi da quelli attuali (ovviamente).

Il guaio è che sebbene le strutture dei blocchi (online e offline) sembrano combaciare, ad esempio ho due blocchi con 10 word, non mi è possibile andare online e non ne capisco il perchè.

Ho persino provato ad allineare i valori del blocco offline con quelli online (manualmente) ed il risultato è che ora l'unica cosa che differisce tra i due blocchi e la data di ultima modifica!!!!!!

Se hai qualche idea fammelo sapere!!! grazie e ciao

Link al commento
Condividi su altri siti

La DB , e' un blocco dinamico, dove il programma , scrive i dati in continuazione, specie se DB di istanza, non sono mai uguali nemmeno tra un ciclo di scansione e l'altro.

Non vedo nessuna stranezza nel fatto che si riscontrino differenze.

Il guaio è che sebbene le strutture dei blocchi (online e offline) sembrano combaciare, ad esempio ho due blocchi con 10 word, non mi è possibile andare online e non ne capisco il perchè.

A me non e' mai successo ,intendo dire , l'impossibilta' di andare ON-LINE. Sebbene i dati fossero diversi.

Ho persino provato ad allineare i valori del blocco offline con quelli online (manualmente) ed il risultato è che ora l'unica cosa che differisce tra i due blocchi e la data di ultima modifica!!!!!!

Questo e' normale, ogni blocco caricato nella memoria utente del PLC, conserva oltre la somma controllo , anche la data e l'ora di creazione.

Ogni salvataggio fatto OFF-LINE , del progetto Simatic, rende la data del blocco ON-LINE diversa da quello OFF-LINE , e lo strumento di confronto se ne accorge.

Ivan

Link al commento
Condividi su altri siti

Ciao Ivan,

dal momento che non riesco ad andare online con il blocco offline, dovrei fare l'upload di quello online ed armato di pazienza riscrivere le definizioni delle variabili?

Ciao

Link al commento
Condividi su altri siti

dal momento che non riesco ad andare online con il blocco offline, dovrei fare l'upload di quello online ed armato di pazienza riscrivere le definizioni delle variabili?

Se devi assolutamente mantenere invariati i valori attuali del DB, sì.

Se invece mantenere i valori non è determinante, puoi scaricare il DB da PC a PLC.

Se il DB è di dimensioni notevoli e vuoi mantenere inalterati i valori, per risparmiarti un bel po' di lavoro potresti fare come segue:

1) crei un nuovo DB di dimensione uguale al DB che devi copiare e lo scarichi nel plc. Puoi creare anche un semplice array di dimensione adeguata, senza perdere tempo a dare nomi alle variabili.

2) esegui una volta la copia di tutte le variabili del DB di origine nel DB di appoggio (puoi usare SFC20 BLKMOV)

3) scarichi nel plc il blocco originale che hai salvato nel progetto, quindi con tutti i nomi delle variabili

4) ripristini i valori del DB usando ancora una sola volta SFC20 per copiare i dati dal DB di appoggio al DB originale

5) a questo punto nel plc ti trovi con il DB ricostruito e con i valori aggiornati.

6) puoi ora fare un upload del DB (così salvi i valori in offline) e cancellare il DB di appoggio usato per archiviare momentaneamente i dati e le funzioni SFC20

Spero di essere stato sufficientemente chiaro.

Link al commento
Condividi su altri siti

Puoi usare anche controlla e comanda variabili per fare un lavoro simile a quello descritto da Batta, certo, non puoi comandare più di tante variabili in un colpo. Col metodo di batta puoi copiare tutte le variabili che vuoi basta che siano attigue (nel nostro caso lo sono visto che è un intero DB)

Io di solito faccio così se devo essere sicuro di riscrivere i valori corretti già esistenti nella cpu:

  1. Mi creo una tabella delle variabili in controlla e comanda variabili con il comando area e ci metto tutte le variabili del db in formato Double (giusto per risparmiare spazio)
  2. leggo il valore attuale
  3. lo copio e incollo nella colonna del valore di comando.
  4. lo salvo sul disco (solo per averne una copia di sicurezza)
  5. faccio quello che devo sul db
  6. riapro controlla e comanda variabili
  7. con F9 riscrivo il valore

Ripeto la cosa è fattibile con un numero limitato di variabili. con molte variabili si può fare ma diventa più macchinoso

Link al commento
Condividi su altri siti

Grazie 1000!

Sono due ottime risposte!

Avrei una domanda per Batta:

Crei un nuovo DB di dimensione uguale al DB che devi copiare e lo scarichi nel plc

Esattamente, dove vado a vedere l'esatta grandezza del DB? Basta essere sicuri che l'indirizzo ed il tipo dell'ultima variabile coincidano?

Se le dimensioni dei DB offline ed online coincidono potrei rinominare il blocco offline, caricarlo, copiare i dati col metodo da te descritto, aggiornare il nuovo blocco offline con i dati online per poi rinominarlo offline usando il nome originale e quindi caricarlo???

In questo modo avrei mantenuto anche tutti i nomi delle variabili, o sbaglio?

Ad ogni modo grazie delle risposte, siete mitici!!!!

Ciao

Link al commento
Condividi su altri siti

Non è che per caso hai modificato un simbolico nel db?

Capita di avere problemi di confronto e che per andare online sia necessario trasferire il db o prelevarlo non perchè sia effettivamente diverso, ma perchè c'è stata una modifica anche solo del nome di una sola variabile.

se ti carichi da online a offline, in quel caso, avrai sì i valori delle variabili, ma ti perdi i nomi e così tutto diventa "stat" "temp" etc etc, un bel casino se poi i dati sono letti da un qualcosa che si collega ai simbolici.

Nel confronto blocchi se il db è diverso per i soli valori attuali avrai un' apposita segnalazione, in quel caso però vai online tranquillamente.

Link al commento
Condividi su altri siti

Ciao dott.Cicala,

molto probabilmente è quello il problema, però, non avendo fatto io quella modifica non posso modificare nuovamente il nome...

Comunque anche ammettendo che sia quello il problema mi ritroverei a scaricare un DB con valori non aggiornati!!!

Sinceramente non sono ancora riuscito a testare le soluzioni suggeritemi da ken e batta.... però ora avrei un'altra domanda:

mi ritrovo delle differenze anche nel blocco "dati di sistema" e, da quello che so, contiene informazioni sull'hardware.... come può succedere di avere differenze tra online ed offline dal momento che non ho fatto alcuna modifica? mi viene il dubbio che questo blocco contenga anche delle informazioni sugli altri blocchi.... sbaglio??

Come al solito ringrazio tutti della disponibilità!

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