Vai al contenuto
PLC Forum


Dati Nelle Tabelle Db - un mistero?


Messaggi consigliati

Inserito:

Salve :rolleyes:

è circa un mese che mi trascino un dubbio sulle DB sopratutto quelle in abbinamento alla FB41

Primo caso:

Se io scrivo il Dato usando una Maker e poi la collego al modulo PID che a sua volta è collegata Alla DB.

Questo dato è ritenuto nelle DB ? vengono aggiornati i valori di default che sono presenti nella DB?

Secondo caso:

Se io scrivo il Dato puntando direttamente nella DB che è collegata al PID (FB41) .

Questo dato è ritenuto nelle DB ? vengono aggiornati i valori di default che sono presenti nella DB?

E se ci sono differenze tra questi due casi, quali sono? :o

Troppe domande? :unsure:


Inserita:

Vediamo di fare un po di ordine.

marker penso che tu intenda un merker ma di cosa? ci sono merker bit, merker byte, merker word etc etc.

Collegata alla db, cosa intendi con db? un db sul quale appoggi i dati (e se si generato nel programma off-line oppure generato dalla cpu (con sfc22)) oppure il db di istanza generato per FB41?

perciò:

Questo dato è ritenuto nelle DB ?

Bisogna chiarire che db è

vengono aggiornati i valori di default che sono presenti nella DB?

Se intendi: si inchioda la cpu, il programma che era in ram viene ricaricato dalla memory card, NO, ci sono discussioni in merito vedi questo topic

Troppe domande?

No, ma strutturate male.

Inserita:

Ecco, facciamo chiarezza

Mi riferisco alle Merker necessarie per trasmettere i dati alla DB per FB41, la loro dimensione è varia essendo la DB legata alla FB41 con BIT, WORD, INT, REAL ecc.....

Fin qui mi pare chiaro.........

Se scrivo i dati con queste merker e li collego al FB41 che a sua volta li mette nella DB, sono ritenuti ok, ma cambiano i valori di default?.... probabilmente no perche sono nel PC di programmazione

Dovrei fare download sul PC delle DB e cosi ho una situazione aggiornata oppure la cosa non si può fare?

Cosa cambia se si scrive il dato puntando nella DB direttamente?

Inserita:

è il DB DI ISTANZA oppure no? non lo hai ancora detto. Sembrerebbe da come scrivi ma indicalo per favore, è importante.

Inserita:

Tu riesci a collegare un DB qualunque al FB41?

se lo fai sei un mago :rolleyes:

Comunque DB di ISTANZA per FB 41

Inserita:

non collego nemmeno il db di istanza se per quello al limite lo assegno.

Non è detto che tu debba utilizzare dei merker come dati di I/O per un fb, potresti benissimo utilizzare altri db. Che so DB41 è l'istanza, DB1 un db generico utilizzato per i dati di I/O di qualsiasi fb parametrizzato (esempio db1.dbd0 per il gain). Poi i db puoi generarli nel programma (editati a programma) oppure direttamente nella cpu utilizzando sfc22 (e la cosa cambia)

per salvare i dati dei db non so se la cosa vale anche per quelli di istanza (anche se a dire il vero non ne vedo la necessità) in modo che se si inchioda la cpu, il programma che era in ram viene ricaricato dalla memory card e di conseguenza reinizializza i db allora devi utilizzare salva ram in rom.

se vuoi salvarteli off line (in modo da averli scritti su file in qualche modo) puoi fare in diversi modi esempio controlla e comanda variabili e poi copia incolla in excel, oppure una ricetta da hmi etc etc.

Scrivere su db di istanza. non ne vedo la necessità e penso sia anche controproducente

Inserita:

La necessità nasce dal fatto che una volta terminato il lavoro ( :unsure: ) vorrei avere le DB di istanza con i dati modificati da S.V. o P.O. nel PC e non in formato file o Excel o altro ma come dDB di istanza con dati in default è possibile? :rolleyes:

Inserita:

Che sia il DB di istanza o un normale DB, che il dato venga scritto direttamente o tramite parametro passato a FB41, non cambia nulla: sempre di un DB si tratta, e i dati in esso contenuti seguono le stesse regole dei normali DB.

Il dato scritto è ritentivo, ma non viene aggiornato il valore di default.

Inserita:

:rolleyes: questo lo sapevo

Ma c'è un modo per riportare i dati nei valori di default??

Fosse pure metterli in manuale

possibile che ogni volta che metto una funzione nuova debba rincorre le DB e controllare i dati

Certo qualcuno mi dirà di non scaricare le DB importanti nel PLC, ma se ho decine di FB ogni volta devo fare le pulci su cosa scaricare, possibile che non posso aggiornare in qualche modo le DB x le FB41???? :angry:

Inserita:

Scusate mi sono dimenticato una cosa, ho anche una DB di istanza, dove tengo i dati di set, non è appoggiata a nulla solo i dati di inizializzazione, i valori li ho inseriti quando l'ho costruita, ma ora la vorrei aggiornare devo correggere manualmente i valori?

Inserita:

Non è di istanza. Un db di istanza viene generato come copia delle varibili impostate in testa al tuo FB. Un db tradizionale lo generi tu e lo riempi con la struttura di dati che ti serve. C'è poi il db genrato dalla cpu con sfc22. Con salva ram in rom salvi i dati attuali in quelli di default ma con i db generati dalla cpu non funziona.. Comunque leggi la discussione che ti ho linkato. si parla anche di un sfc/sfb che fa quetso lavoro. Non lo conosco, non so come funziona.

scusa una cosa, ma se il tuo fb è caricato, i db di istanza pure perchè continui a caricarlo? io solitamente carico solo il blocco (FC, ob o FB) che li contiene.

Inserita:

Non ho alcun bisogno di generare altre DB.

Mi bastano quelle che ho.

Il problema, e lo ripeto, che il programma del PLC ho molte FB....... quando ne aggiungo una e la inserisco nel OB il PLC va in blocco se non rimetto tutte le FB usate + quelle nuove.

Pertanto dover fare trasferimenti obbligati devo fare selezioni ecc..... e non è cosi immediato!

Pertanto se posso aggiornare i valori della DB con i dati modificati in quelli di default sarebbe la cosa ideale cosi quando trasferisco non devo selezionare nulla.

Non pensare che se si lavora con 2 o 3 FB e altrettante DB ecc....... ma immagina un sistema complesso con decine di blocchi

Inserita: (modificato)

Mi sembra un po strano, se tu aggiungi una FB o FC in OB1 e poi scarichi prima la nuova FB o FC ed eventualmente la DB relativa alla nuova FB, e poi scarichi la nuova versione del OB1, non succede nulla o meglio a ma non è mai successo nulla.

Altrimenti scarichi assieme al OB1 anche l'FB nuova con la sua DB nuova il risultato non cambia.

Poi per scaricare devi selezionare quello che vuoi scaricare, a che pro riscaricare tutto il programma se poi hai sempre "+rogne"???

Domanda, come mai preferisci scaricare tutto il software, che se come dici è bello grosso, invece di scaricare solo ciò che hai modificato?

Problemi del genere ne ho solo quando aggiorno una FB con all'interno il richiamo di un altra FB, altrimenti è difficile che uno se ne accorga che io sto modificando il software con la macchina che sta funzionando.

Forse noi non conosciamo l'impianto su cui stai lavorando e la sua complessità, ma .........

Modificato: da TravelMen
Inserita: (modificato)

Sarà il caldo, ma secondo me c'hai una grossa confusione nella testa...

-tutto ciò che sa in DB è ritentivo.

-non è ben chiaro cosa intendi con "collegare un merker a una db"

-non è chiaro cosa intendi con "mettere in manuale"... mettere in manuale cosa? il PLC?

-non è chiaro cosa devi ricontrollare nelle DB quanto carichi un FC nuova... la DB se ne sta per i fatti suoi con i suoi dati, e non devi certo ricaricarla

Se hai bisogni di un set di dati di default, li memorizzi da qualche parte, tipo una DB di appoggio, e li copi su comando dove ti servono.

ciao

Modificato: da Gapo
Inserita:

è vero il caldo ottende le menti e la mia è ormai giunta al limite :unsure:

Forse non riesco a spiegarmi, ci provo meglio nella speranza che riesca nel intento.

Non metto in dubbio che si scarica FB, FC ecc...... non vi è la necessità di dovere scaricare altro e si seleziona quello che si vuole fare.

Non metto alcun dubbio che vi sono modi di generazione retenzione ecc....

Ma la mia domanda originaria è questa: Come posso aggiornare una DB che ho creato che determinati valori, e questi valori sono diventati i valori di dafault della DB, dopo un mese di lavoro su questi valori con continui aggiustamenti, e verifiche degli stessi e una volta definiti i dati li vorrei congelare nei valori di default. Pertanto posso salvarli nella DB come valori di default?

Risposte possibili:

Si, come?

No peccato :rolleyes:

Inserita:

Ti ho già linkato una discussione che penso tu non abbia nemmeno aperto

Ora te ne linko un'altra che parla di sfc84 SFC84

Direttamente dalla pressione di F1 su SFC84:

Con la SFC 84 "WRIT_DBL" (write data block in load memory) è possibile trasferire il contenuto di un DB o di un'area di un DB dalla memoria di lavoro in un DB o un'area di un DB nella memoria di caricamento (Micro Memory Card). Il DB sorgente deve essere rilevante per l'esecuzione, vale a dire che non deve essere stato creato con l'attributo UNLINKED. Esso può tuttavia essere stato creato con la SFC 22 "CREAT_DB".

Leggi comunque bene la discussione linkata perchè Batta ha scritto considerazioni molto importanti.

Inserita:

Ok, ho letto il link che mi hai dato, sai sono in arabia da oltre un mese e qui alla sera le attrattive sono molto scarse, pertanto non mi reasta molto come svago.

Comunque la discussione è molto interessate e pure gli interventi, ma non rispondono alla mia semplice domanda

Non vorrei creare programmi o funzioni per salvare contenuti della DB, ma molto semplicemente salvare una volta sola i dati bella DB dati e nulla altro..... è cosi difficile?

Inserita:

e siamo a tre.

c'è il comando salva ram in ron.

comunque sfc84 lo puoi richiamare anche solo 1 volta, nessuno te lo vieta

Inserita:

Dopo tutti questi post io non ho ancora capito se i DB li vuoi salvare sulla MMC o sul PC.

Se vuoi avere il DB aggiornato sul PC, in modo che nel caso di trasferimento da PC a PLC scarichi nel PLC i DB con i dati freschi, puoi aprire il DB in Online e salvarlo su PC.

Attenzione che, se hai fatto modifiche al DB in offline, quando apri il blocco in online non vedi più i nomi delle variabili e, se lo salvi così, perdi i nomi anche nel DB offline.

Hai valutato anche la possibilità di salvare i dati in ricette da archiviare sulla memoria dei supervisori?

Inserita:
è possibile trasferire il contenuto di un DB o di un'area di un DB dalla memoria di lavoro in un DB o un'area di un DB nella memoria di caricamento (Micro Memory Card)..........

Questa è SFC84, bella funzione la terro a mente......

Ma io devo solo salvare i dati on_linee della DB dei dati in quelli di dafault e non trasferire i contenuti in varie aree o memorie.

DB10 online in DB10 default

Ovviamente i dati di dafault resto sul PC, e non vengono aggiornati on-line

Io lavoro ON-LINE con il sistema ma la DB in oggetto rimane intonsa nel PC, la vorrei aggiornare con i dati ON-line

Non faccio modifiche off-line e non cambio in alcun modo i dati se non da O.P o S.V.

Grazie batta

Inserita:
Ma la mia domanda originaria è questa: Come posso aggiornare una DB che ho creato che determinati valori, e questi valori sono diventati i valori di dafault della DB, dopo un mese di lavoro su questi valori con continui aggiustamenti, e verifiche degli stessi e una volta definiti i dati li vorrei congelare nei valori di default. Pertanto posso salvarli nella DB come valori di default?

Risposte possibili:

Si, come?

No peccato

A questa domanda ti hanno già risposto tempo fa: SFC84

Salvare i valori come default però non ti aiuta se vuoi, per esempio, un comando da OP che ti mette online i valori di default (a meno che non ci sia un omologo dell'SFC84, cosa probabile ma che al momento non posso verificare). Per questo ti suggerivo una DB d'appoggio, o addirittura, se sono valori sicuramente fissi, puoi farlo direttamente da codice.

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