Vai al contenuto
PLC Forum


Tabelle Dati Db - Come si aggiornano?


Mauro_lab

Messaggi consigliati

Salve, :rolleyes:

Questa volta un quisito facile facile

Io ho una tabella DB dove raccolgo i dati di calibrazione dei vari strumenti. La calibrazione è qualla classica lineare MIN, MAX valore, ho realizzato una pagina sul OP che mi permette di modificare questi dati residenti sul PLC, ma noto che i dati non vengono effettivamente salvati in tabella, ad ogni riavvio del PLC mi ritrovo sempre la tabella fissata in origine.

Naturalmente la DB è ritenuta.

Come faccio ad aggiornare la tabella immettendo i valori da pannello operatore?

Link al commento
Condividi su altri siti


Cerca nel forum la discussione del SFC-84 "WRIT_DBL"

Scusa una domanda idiota con te c'è un tipo di Udine che si occupa della parte meccanica?

Link al commento
Condividi su altri siti

Non è che ad ogni riavvio del plc vai a riscrivere i dati di default (per default intendo quelli impostati da chi ha fatto il programma)?

I dati scritti su db ritentivi restano slavati in automatico.

O non ci scrivi veramente o ci sovrascrivi vecchi dati in avviamento.

Link al commento
Condividi su altri siti

Come ho già specificato la tabelle è ritenuta

Mi serve solo salvare i dati nella tabella solo quando viene fatta una modifica tramite pannello operatore.

e, ovviamente al reset del PLC, riprende i dati della tabella

ES: tabella dati

Taratura pressione

Min ---- Max ---- LL --- L --- H -- HH

questi sono i dati salvati su due differenti DB

Cambio LL e salvo tramite SFC84

se il PLC viene resettato dovrebbe prendermi la tabella con LL modificato

Link al commento
Condividi su altri siti

Onestamente non capisco il problema...

Non so che OP stai usanto e come comunica col PLC, ma normalmente, se scrivi un dato in un DB (è ininfluente che sia da OP, puoi anche forzarlo dalla tabella variabili...) lo spegnuimento/riaccensione del PLC non provoca certo un reset dei dati in DB: il dato che c'era allo spegnimento ci sarà anche alla riaccensione, e questo senza chiamae in causa SFC...

Link al commento
Condividi su altri siti

Penso che lui intenda salvare i dati del DB in modo che un eventuale blocco e ripartenza con lettura dalla memory card non sovrascriva i dati modificati con quelli considerati di default.

Capita a volte che, con cadute di tensione o altre menate del genere, la cpu si reinizializzi, caricando nuovamente i blocchi dalla memory card.

SFC 84 "WRIT_DBL" va a scrivere i dati nella memoria di caricamento del db in modo che i dati contenuti vengano ricaricati in caso di reinizializzazione.

SFC84 restituisce errori? (ret_val)

Link al commento
Condividi su altri siti

Il pannello operatore è un MP377 connesso in rete con il PLC

Purtroppo se cambio un valore della tabella tramite pannello operatore il dato è valido solo fino a quando il PLC non viene resettato.

In caso di reset i valori vengono quelli di programmazione.

Se vedi la DB in online noti che il valore online cambia mentre quello di default rimane invariato.

Link al commento
Condividi su altri siti

Sono daccordo con te, qualche volta fatico a capirmi da solo :)

Spesso si fa una domanda pensando che tutti conoscono il problema e limitando la descrizione a pochi essenziali riferimenti.

Questo, spesso non chiarisce l'intità del problama, e la sua esplicazione particolareggiata è necessita di ulteriori spiegazioni.

Qualche volta si spera che il lunguaggio tra tecnici sia lo stesso , altre volte capita che si usa linguaggio leggermente diversi.

Forse la mia versione di software è un po antiquata e per questo la mia comunicazione verso l'esterno risulta criptata. :rolleyes:

Link al commento
Condividi su altri siti

Il pannello operatore è un MP377 connesso in rete con il PLC

Si fa presto a dire rete... ethernet? mpi? profibus? comunque è ininfluente

Purtroppo se cambio un valore della tabella tramite pannello operatore il dato è valido solo fino a quando il PLC non viene resettato.

questa cosa non può essere vera se l'MP377 punta direttamente ai dati di quella tabella

In caso di reset i valori vengono quelli di programmazione.

Se ricarichi il progetto, ma non certo se spegni e riavvii il PLC

Se vedi la DB in online noti che il valore online cambia mentre quello di default rimane invariato.

certo, ma quando riavvii, mica viene caricato quello di default, altrimenti le DB non sarebbero ritentive!!!

Ti assicuro che di macchine e impianti ne ho avviati molti... o non ti stai spiegando bene, o... non so...

Link al commento
Condividi su altri siti

Penso che lui intenda salvare i dati del DB in modo che un eventuale blocco e ripartenza con lettura dalla memory card non sovrascriva i dati modificati con quelli considerati di default.
Questa è un'altra cosa... ;)

Capita a volte che, con cadute di tensione o altre menate del genere, la cpu si reinizializzi, caricando nuovamente i blocchi dalla memory card.
Mah... onestamente non ho mai visto questo problema se non in seguito allo scarico della batteria tampone sui vecchi modelli (ed ho avviato, 3 anni fa e 5 anni fa, un paio di impianti dove la tensione di rete va e viene come vuole). In ogni caso i parametri di scalatura analogiche sono solito inserirli fissi già di default, e non do l'opzione per cambiarli all'utente, visto che non dovrebbero cambiare mai, mentre altri parametri da DB li memorizzo in altro modo.

ciao

Link al commento
Condividi su altri siti

Per "ken"

SFC84 restituisce errori? (ret_val)

si certo ecco un estrapolato

Codice errore

(W#16#...) Descrizione

0000 Nessun errore

0081 L'area di destinazione è maggiore dell'area sorgente.

L'area sorgente viene scritta completamente nell'area di destinazione, i restanti byte dell'area di destinazione non vengono modificati.

7000 Primo richiamo con REQ=0: trasmissione dati non attiva; BUSY ha il valore 0.

7001 Primo richiamo con REQ=1: trasmissione dati avviata; BUSY ha il valore 1.

7002 Richiamo temporaneo (REQ non rilevante): trasmissione dati già attiva; BUSY ha il valore 1

8081 L'area sorgente è maggiore dell'area di destinazione.

L'area di destinazione viene scritta completamente, i restanti byte dell'area sorgente vengono ignorati.

8092 Tipo di funzionamento scorretto: mentre la SFC 84 era attiva, la CPU è entrata in STOP. Con il prossimo passaggio a RUN viene emesso questo codice di errore. Richiamare nuovamente la SFC 84.

8093 Nel parametro SRCBLK non è indicato un blocco dati/è indicato un blocco dati che non esiste nella memoria di lavoro

80B1 Nel parametro DSTBLK non è indicato un blocco dati o il blocco dati indicato non è un oggetto della memoria di caricamento (p. es. un DB creato tramite SFC 22).

80B4 Un DB con attributo F non deve essere modificato.

80C0 La destinazione viene attualmente elaborata da un'altra SFC o da una funzione di comunicazione. Esempio: caricamento di un DB dalla CPU nel PG. Si intende modificare il contenuto di questo DB tramite SFC 84.

80C3 Al momento è già stato raggiunto il numero max. di SFC 84 attive contemporaneamente.

8xyy Codici di errore generali, vedere Analisi degli errori con il parametro di uscita RET_VAL

Per "Mauro_lab" io farei, su fronte di un pulsante su OP, l'esecuzione del SFC84, in modo da creare anche una sorta di "archivio ricetta" in modo che siano salvati solo e soltanto i dati realmente utili e non le semplici modifiche che potrei fare in messa in servizio per trovare l'ottimo. Ma questo forse non è il tuo caso.

Buon lavoro

Modificato: da TravelMen
Link al commento
Condividi su altri siti

EFFETIVAMENTE Gabo ha ragione a sostenere la sua tesi

Ho fatto prove spegnendo la CPU del PLC e i dati ritornano esattamente come impostati da O.P.

IL fatto che ritornano allo stato originale solo quando trasferisco gli aggiornamenti della programmazione sul PLC

DOVE STA l'errore!! <_<

Link al commento
Condividi su altri siti

Se le cose stanno così allora stai scaricando anche le DB, oppure fai le modifiche su FB, se non ricordo male, anche le modifiche su FB, anche se non tocchi la DB relativa una volta che scrichi le modifiche fatte nel FB i dati della relativa DB si azzerano.

Link al commento
Condividi su altri siti

Comincio a prendere fuoco ce stanno 45 °C all'ombra qua :o

Vediamo di riepilogare il fatto

Io scrivo tramite pannello operatore direttamente sull'indirizzo della DB relativa, ovvero punto la sua variabile.

Pertanto mi aspetto che la modifica sia ritenuta dalla DB sul PLC

Ma quando trasferisco le modifiche di programmazione sovrascrivo la DB con i dati vecchi??? e dove li va a prendere? :angry:

Link al commento
Condividi su altri siti

Qui mi pare che ci si stia perdendo in concetti un po' "basilari"...

E' ovvio che la DB della tua 317 siano ritentive: se cambi un valore da OP, resterà memorizzata anche a seguito di spegnimento->riaccensione... ci mancherebbe pure... (se poi vuoi memorizzarti pure i dati di default è un'altra cosa, ma mi pare ti abbiano già spiegato come fare).

Ovviamente però, se tu modifichi la DB e poi la ricarichi, ricaricherai anche il valore che è salvato nel tuo progetto offline!!!

Se modifichi una FC o una FB, non devi certo ricaricare tutto il progetto (come, purtroppo, tocca fare con altri PLC): ricarico solo la FC o FB interessata. Se ti trovi nella necessità di modificare una DB, salva il suo stato di online (dipende poi da "cosa" modifichi di quella DB).

Premesso questo, continuo a sostenere che la lettura delle analogiche non dovrebbe essere soggetta a modifiche così "libertine"...

ciao

Link al commento
Condividi su altri siti

Gianmario Pedrani

Quando trasferisci le modifiche, non trasferire i db, a meno che non li hai modificati, altrimenti perti tutti i dati perche sovrascrivi le db, puoi da step 7 selezionare solo gli fb o o fc che hai modificato, ricordati sempre prima di andare via di fare un bel confronta blocchi online ofline, cosi da essere sicuro che quello che c'è nella cpu sia uguale a quello che hai nel tuo progetto

Link al commento
Condividi su altri siti

è gisto che qualcuno mi bacchetti un po :rolleyes:

In effetti è vero, perchè trasferisco le DB che non modifico da ormai un mese :unsure:

Per il fatto che si debba dover cambiare la scaltura di un parametro è legato solo da due fattori

Il primo è che il RANGE dello strumento è superiore al RANGE di calibrazione e per tanto se si vuole cambiare l0uscita analogica con range diversi si deve pur fare.

La seconda è legata al fatto che parliamo di paesi molto diversi dall'Europa e spesso è difficile reperire lo stesso strumento guastato, pertanto se non do al cliente la possibilità di calibrare il segnale analogico mi tocca tornare ! :blink:

Link al commento
Condividi su altri siti

è gisto che qualcuno mi bacchetti un po

In effetti è vero, perchè trasferisco le DB che non modifico da ormai un mese

assolutamente insensato... una delle cose belle dello Step 7 è proprio la possibilità di trasferire solo ciò che interessa...

Per il fatto che si debba dover cambiare la scaltura di un parametro è legato solo da due fattori

Il primo è che il RANGE dello strumento è superiore al RANGE di calibrazione e per tanto se si vuole cambiare l'uscita analogica con range diversi si deve pur fare.

???

La seconda è legata al fatto che parliamo di paesi molto diversi dall'Europa e spesso è difficile reperire lo stesso strumento guastato, pertanto se non do al cliente la possibilità di calibrare il segnale analogico mi tocca tornare !

pezzi di ricambio

assistenza remota

ciao

Link al commento
Condividi su altri siti

è dura calibrare un trasduttore via remoto se devi prendere tu delle misure per la calibrazione. la possibilità di calibrare i trasduttori ci deve essere sempre via hmi.

Mah... onestamente non ho mai visto questo problema se non in seguito allo scarico della batteria tampone sui vecchi modelli (ed ho avviato, 3 anni fa e 5 anni fa, un paio di impianti dove la tensione di rete va e viene come vuole). In ogni caso i parametri di scalatura analogiche sono solito inserirli fissi già di default, e non do l'opzione per cambiarli all'utente, visto che non dovrebbero cambiare mai, mentre altri parametri da DB li memorizzo in altro modo.

Capita stai tranquillo. Ricorda poi che il programma risiede in ram ma non per sempre. Dopo lunghe inattività della macchina capita che il programma venga ripescato dalla memory card. Ci sono parecchie discussioni in merito.

Link al commento
Condividi su altri siti

Ci credo... ma ti assicuro che non mi è mai capitato... in ogni caso uso altri metodi per memorizzare i parametri di funzionamento di macchine/impianti

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