Stef U. Inserito: 25 novembre 2013 Segnala Inserito: 25 novembre 2013 Ciao a tutti! Dopo l'aiuto che mi avete dato con le problematiche che ho incontrato nelle mie prime piccole automazioni, avrei bisogno della vostra opinione. Ho acquistato un starter kit con s7 1200 cpu 1212 ac/dc/rly + kp300 con i quali sto facendo alcuni semplici progetti per imparare a conoscere questo nuovo mondo. Nessun particolare problema, se non questo dubbio: Creo un programma che da hmi mi permetta di modificare un valore temporale, che nel programma viene richiamato da un timer con ritardo all'inserzione per ritardare l'attivazione di un'uscita. Per far si che al riavvio della macchina il valore immesso sia di nuovo disponibile ho creato due blocchi di programma (3 con il Main) e un DB. Il primo è un OB30 che ogni 100ms con la funzione Move salva la variabile di tipo time usata dal timer nella voce corrispondente nel DB a ritenzione. L'altro blocco è un OB100, che all'avvio esegue praticamente un Move contrario, prende il valore nel DB e lo scrive nella variabile. Il tutto funziona, ma il dubbio che ho è che non sia il modo più pulito per farlo. Cosa potete dirmi? Grazie mille in anticipo, spero di essermi spiegato, in caso contrario son qua!
step-80 Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 Se nel db dove hai dichiarato il dato hai messo la spunta su ritenzione accanto al dato che ti interessa non ti devi preoccupare d'altro. Ciao
Stef U. Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Grazie per la risposta ma non ha fatto altro che aggiungermi ulteriori dubbi Il dato (per esempio: temporitardo) l'ho dichiarato nella tabella delle variabili standard! Il DB l'ho introdotto proprio per andare a effettuare le operazioni di salvataggio. Secondo te dovrei "saltare" il passaggio della tabella delle variabili e lavorare direttamente con il dato immagazzinato nel DB?
Stef U. Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Ok, mi sono risposto da solo! Ho provato a modificare il programma utilizzando direttamente le variabili memorizzate nel database, eliminando quindi i due blocchi di programma superflui (OB30 e OB100) e il tutto funziona. Comunque confermate che questo è "il metodo più opportuno"?
step-80 Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 (modificato) Se sei alle prime armi e vuoi fare delle prove,sappi che puoi rendere ritentive delle variabili sia che tu le dichiari nella tabella delle variabili sia che le dichiari in un db. Questo senza fare nessun genere di MOVE. Nel caso tu le dichiari in un db,puoi rendere ritentivo o tutte le variabili contenute in quel db o nessuna. Nel caso le dichiari nella tabella delle variabili standard andrai a decidere una certa area di memoria dentro la quale tutte le variabili dichiarate saranno ritentive,le altre no. Attenzione all'indirizzamento delle variabili,ti consiglio di lavorare con numeri pari. Ti allego un paio di foto(se riesco) per farti capire questo è il db e questa è la tabella delle variabili standard. Come vedi puoi fare come vuoi. Cliccando sull'icona che vedi indicata dalla freccia ti appare la tabella in cui puoi specificare quanta area rendere ritentiva. Se hai ancora dubbi chiedi pure Matteo Modificato: 25 novembre 2013 da step-80
Stef U. Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Grazie mille Matteo, hai chiarito tutti i dubbi che avevo! Per rendere ritentive le variabili nel DB ero già riuscito, mentre quelle nella tabella variabili no, appunto perchè non sapevo bisognasse assegnare una certa area di memoria! Ora che le procedure sono chiare, la mia domanda diventa: come è più opportuno procedere? Come avrai capito sono alle prime armi e sto ancora studiando per imparare qualcosa. Quando creo una variabile, lo faccio nel DB o nella tabella? Perchè immagino che a livello di "carico di lavoro" e processi all'interno del plc la cosa faccia differenza! Grazie ancora!
step-80 Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 Intanto prova a leggere . Ti fai un idea del tutto. Usare db o tabelle comincia ad essere soggettivo e dipendente dalla mole di lavoro che devi svolgere.
Stef U. Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 (modificato) Di nuovo, grazie mille per la disponibilità Matteo, ora mi metto a "studiare" Modificato: 25 novembre 2013 da Stef U.
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