wlucciola Inserito: 25 gennaio 2013 Segnala Share Inserito: 25 gennaio 2013 Ciao ragazzi eccomi di nuovo con un nuovo quesito. In un'applicazione con s7 1200 ho da immagazzinare un dato di energia prodotta, quindi nel mio caso una MD256 che è una uscita di una FB. ho settato come ritentiva l'uscita in questione e provando a togliere tensione alla cpu il dato non permane. non riesco a capire come fare a mantenere in memoria questa MD anche spegnendo la cpu Grazie in anticipo Link al commento Condividi su altri siti More sharing options...
zazzamatteofabio Inserita: 25 gennaio 2013 Segnala Share Inserita: 25 gennaio 2013 Ciao, io proverei ad appoggiarmi ad una double in una db globale, dichiarata come ritentiva. Saluti Link al commento Condividi su altri siti More sharing options...
wlucciola Inserita: 25 gennaio 2013 Autore Segnala Share Inserita: 25 gennaio 2013 >>>Ciao, io proverei ad appoggiarmi ad una double in una db globale, dichiarata come ritentiva<<< scusa potresti essere piu chiaro, non sono molto nelle db, in genere programmo automazioni dove non c'è bisogno di avere dati ritentivi . grazie Link al commento Condividi su altri siti More sharing options...
zazzamatteofabio Inserita: 25 gennaio 2013 Segnala Share Inserita: 25 gennaio 2013 Intendo che, puoi aggiungere un blocco dati (sull'albero a sx), nel quale crei una variabile double, ad esempio DB1.DBD0. E spunti il flag ritenzione. Puoi salvare il tuo MD, con il comando move in DB1.DBD0 Qui è sicuro che restino in memoria. Move md256, DB1.DBD0 Poi configuri sull'Hw della cpu i merker di sistema (Mb0 ad esempio) in modo che tu possa usare uno dei bit collegati al comportamento della cpu. Se non ricordo male se usi MB0, M0.5 sarà "On primo ciclo" Su OB1 usi questo comendo U M0.5 Move DB1.DBD0, MD256 E restituisci al primo avvio della cpu il valore com'era prima dello spegnimento. Soluzione "casalinga" ma dovrebbe andare.. Ciao Link al commento Condividi su altri siti More sharing options...
Giuseppe Signorella Inserita: 25 gennaio 2013 Segnala Share Inserita: 25 gennaio 2013 (modificato) Se hai necessità di rendere retentivi delle aree di memoria di tipo Merker, puoi selezionare l'apposita opzione nella finestra ove dichiari le tue variabili, senza la necesità di usare dei DB (se ovviamente non ne hai bisogno). Apri la finestre delle dichiarazioni delle variabili, in alto a sinistra trovi l'icona di una chiavetta inglese, se ci passi di sopra il mouse, ti viene visualizzata la scritta ritenzione. Da li, selezione il numero di byte che vuoi rendere retentivi. Ciao Modificato: 25 gennaio 2013 da Giuseppe Signorella Link al commento Condividi su altri siti More sharing options...
wlucciola Inserita: 25 gennaio 2013 Autore Segnala Share Inserita: 25 gennaio 2013 grazie per le risposte, ho solo un dubbio sul metodo di Giuseppe, con il metodo della chiave inglese io posso decidere quanti byte a partire dal mb0 devo ritenere. adesso mi chiedo se devo ritenere l' md 256 allora tutti i bit da 0 a 260.0 saranno ritenuti e questo non mi va. ho capito bene? Link al commento Condividi su altri siti More sharing options...
zazzamatteofabio Inserita: 25 gennaio 2013 Segnala Share Inserita: 25 gennaio 2013 Eh sembra sia così, è un'altra delle cose che sul tia si potrebbero migliorare.. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 26 gennaio 2013 Segnala Share Inserita: 26 gennaio 2013 Credo che l unica soluzione sia decidere preventivamente quali merker dovranno essere ritentivi e quali no,cosi da poter poi "creare" due aree di lavoro distinte Es i primi 200 byte li lascio non ritentivi e quindi tutti i dati che voglio non ritentivii li metto li,dal 2centesimo in poi so che andró a mettere quello che voglio resti salvato. Anch io cercavo il sistema per scegliere singolarmente,ma a meno di smentite non dovrebbe essere possibile Link al commento Condividi su altri siti More sharing options...
batta Inserita: 26 gennaio 2013 Segnala Share Inserita: 26 gennaio 2013 In Siemens quando si lavora con variabili si usano i DB. Consiglio vivamente a "wlucciola" di approfondire l'argomendo DB. Non è possibile programmare Siemens senza sapere cosa sono e come si usano i DB. Mi pare poi strano che, senza conoscere i DB, si programmino dei blocchi FB, che hanno bisogno di un DB di istanza. O forse è stata utilizzata una FB quando invece andava benissimo una FC? Per la ritenzione dei merker, si può solo decidere quanti byte di merker si possono rendere ritentivi a partire da MB0. Per rendere ritentiva la MD256 si dovrebbero quindi rendere ritentivi anche tutti i merker precedenti. Nelle dichiarazioni delle variabili nei DB invece, è possibile decidere variabile per variabile quali debbano essere ritentive e quali no. Nel caso specifico però, visto che si parla di un dato in uscita da una FB, rendere ritentiva MD256 o usare una variabile di un DB (dichiarata come ritentiva), non servirebbe a nulla, perché sarebbe l'FB a riscrivere il valore. Quello che si deve fare quindi è impostare "A ritenzione" la variabile in uscita nell'interfaccia delle variabili della FB. A meno ché invece che di un parametro "Output" non si tratti di un parametro "InOut". In questo caso, è fondamentale rendere ritentivo il dato collegato alla FB. Link al commento Condividi su altri siti More sharing options...
elettrificato Inserita: 12 marzo 2013 Segnala Share Inserita: 12 marzo 2013 ciao a tutti, rispolvero questa discussione per fare una domanda sulla ritentività dei dati nella CPU in oggetto, non ho grandissima esperienza sui sistemi Siemens e sto lavorando su una S7-1200 alternando la mia attività tra lavoro sul pezzo per il collaudo e lavoro in ufficio per lo sviluppo di alcune parti di programma, ora io ho impostato 7000 parole come dati ritentivi, se spengo e riaccendo la CPU non ho problemi i dati vengono conservati ma se trasferisco il software al PLC perdo tutti i dati, al momento non ne ho ancora molti e li reinserisco manualmente da HMI, in alternativa stavo pensando di crearmi una tabella di controllo con i parametri di default e poi caricarli tutti dopo che ho fatto il trasferimento, così facendo però rischio di perdere eventuali modifiche che faccio durante i collaudi. Non esiste modo di fare un salvataggio dati anche su file esterno al PLC da ricaricare in modo da ripristinare la tabella dati? grazie per l'attenzione Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora