Reverendo bit Inserito: 1 maggio 2011 Segnala Share Inserito: 1 maggio 2011 Ciao Ragazzi,Dopo aver eseguito a conversione di un programma da step5 a step7 ho notato che sia su step5 che su step7 il DB1 non è richiamato sa nessuna parte.Dando uno sguardo ad un vecchio manuale che ho in ufficio non ho trovato spiegazioni chiare alle mie domande.Qual'è la funzione del DB1 in un progetto S5?Dopo la conversione posso cancellare il DB1 sul progetto Step7?Cosa rapprsentano i valori letti nel DB1?Saluti da Reverendo Link al commento Condividi su altri siti More sharing options...
amed Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 Mi ricordo solo che in un corso consigliarono di usare normalmente i DB partendo da DB10. Non ricordo il perchè. Forse i DB precedenti a DB10 sono usabili nella comunicaziione tra PLC. Ciao Link al commento Condividi su altri siti More sharing options...
Luca Bettinelli Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 se non ricordo male, ormai sono passati anni dall'ultimo S5, sulla CPU 95U il DB1 era utilizzato come configurazione di canali a bordo Link al commento Condividi su altri siti More sharing options...
batta Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 No, non cancellare e non modificare il DB1.Contiene parametri di configurazione.Per farti un'idea, aprilo in formato ASCII e vedrai che non contiene numeri senza senso, ma istruzioni per la configurazione della comunicazione, dell'orologio, il tempo di OB13 (OB35 in S7), e molto altro.Se lo cancelli, mi pare che nella CPU venga generato in automatico un DB1 con i parametri di default, ma non ne sono sicuro. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 formato ASCII ... in s5 seleziona la voce KC.Nel progetto convertito in S7 naturalmente lo puoi cancellare... Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 In un sistema S5, a seconda della cpu, sono disponibili un numero limitato di blocchi dati DB: per le cpu 101 il loro numero può andare da 0 a 63, per le 102, le 103 e le 115 da 0 a 255.Per tutte, però, il DB0 ed il DB1 non sono utilizzabili dal programma utente, quindi si parte dal DB2.Il DB0, a detta dei manuali, è riservato al sistema operativo della cpu, mentre il DB1 è utilizzato per la parametrizzazione di funzioni interne (orologio incorporato, impostazione della comunicazione SINEC L1, elaborazione a tempo degli OB 10-13, controllo del tempo ciclo, gli indirizzi per i codici d'errore) e per la definizione dei merker di accoppiamento di comunicazione tra cpu. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 1 maggio 2011 Segnala Share Inserita: 1 maggio 2011 (modificato) Nel progetto convertito in S7 naturalmente lo puoi cancellare...Verissimo.Chiedo scusa. Ho letto troppo frettolosamente e mi è sfuggito che la domanda sulla cancellazione di DB1 era riferita al progetto S7. Modificato: 1 maggio 2011 da batta Link al commento Condividi su altri siti More sharing options...
Reverendo bit Inserita: 2 maggio 2011 Autore Segnala Share Inserita: 2 maggio 2011 Ciao Ragazzi,Intanto volevo ringraziarvi per la vostra disponibilità.Capito che nel progetto S7 posso cancellare il DB1, volevo porre alla vosra attenzione un'altro aspetto.Nel Progetto S5 gli OB presenti sono:OB1 Main cicle, e su questo nessun dubbioOB21 Nuovo avviamento manuale con memoriaL KF +255E DB 10L KF +255E DB 10L KF +255E DB 20L KF +190E DB 21A DB 10L KH 0081T DW 22L KF +0 T DW 25L KY 30,33T DW 21OB22 Nuovo avviamento automatico con memoriaL KF +255E DB 10L KF +255E DB 10L KF +255E DB 20L KF +190E DB 21A DB 10L KH 0081T DW 22L KF +0 T DW 25L KY 30,33T DW 21OB31 errore di esecuzione, specialeVUOTODopo la conversione mi ritrovo in OB100 tutto questo codice generato automaticamente: L 255 T #conv_akku1 TAK T #conv_akku2 L STW T #conv_stw L #conv_akku1 SLW 1 T #conv_number_of_dbb L 19 T #conv_create_db L #conv_stw T STW L #conv_akku2 L #conv_akku1 CALL "CREAT_DB" LOW_LIMIT:=#conv_create_db UP_LIMIT :=#conv_create_db COUNT :=#conv_number_of_dbb RET_VAL :=#conv_ret_val DB_NUMBER:=#conv_return_db L 255 T #conv_akku1 TAK T #conv_akku2 L STW T #conv_stw L #conv_akku1 SLW 1 T #conv_number_of_dbb L 19 T #conv_create_db L #conv_stw T STW L #conv_akku2 L #conv_akku1 CALL "CREAT_DB" LOW_LIMIT:=#conv_create_db UP_LIMIT :=#conv_create_db COUNT :=#conv_number_of_dbb RET_VAL :=#conv_ret_val DB_NUMBER:=#conv_return_db L 255 T #conv_akku1 TAK T #conv_akku2 L STW T #conv_stw L #conv_akku1 SLW 1 T #conv_number_of_dbb L 20 T #conv_create_db L #conv_stw T STW L #conv_akku2 L #conv_akku1 CALL "CREAT_DB" LOW_LIMIT:=#conv_create_db UP_LIMIT :=#conv_create_db COUNT :=#conv_number_of_dbb RET_VAL :=#conv_ret_val DB_NUMBER:=#conv_return_db L 190 T #conv_akku1 TAK T #conv_akku2 L STW T #conv_stw L #conv_akku1 SLW 1 T #conv_number_of_dbb L 21 T #conv_create_db L #conv_stw T STW L #conv_akku2 L #conv_akku1 CALL "CREAT_DB" LOW_LIMIT:=#conv_create_db UP_LIMIT :=#conv_create_db COUNT :=#conv_number_of_dbb RET_VAL :=#conv_ret_val DB_NUMBER:=#conv_return_db AUF DB 19 L W#16#81 T DBW 44 L 0 T DBW 50 L B#(30, 33) T DBW 42Potreste Aiutarmi a capire il motivo di tale codice?In S5 cosa significa l'istruzione E DB 10?E' necessario mantenere tutto quel codice in OB100?Perchè vi è la SFC22 Create nuovo DB?Grazie da Reverendo Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 2 maggio 2011 Segnala Share Inserita: 2 maggio 2011 (modificato) E DB n serve per creare il blocco dati n di lunghezza pari al valore pre-caricato in ACCU 1,Esempio, con queste 2 istruzioni messe in OB21/22:L KF +190E DB 21ottieni che all'avvio (OB21-22 sono elaborati all'avvio a freddo-caldo) viene rigenerata (se non c'è già) la DB21 di lunghezza 190 word.CREAT_DB è l'equivalente di E DBIo con S7 non uso mai CREAT_DB, è molto meglio, a progetto terminato lanciare un bel "salva ram in rom" così in caso di perdita dati le DB si ricreano non vuote ma con i tuoi settaggi (quelli che c'erano quando hai fatto salva ram in rom). Modificato: 2 maggio 2011 da JumpMan Link al commento Condividi su altri siti More sharing options...
batta Inserita: 2 maggio 2011 Segnala Share Inserita: 2 maggio 2011 Concordo pienamente con JumpMan.Crea i DB che ti servono ed elimina codice inutile.Ricorda che, mentre in S5 la dimensione dei DB è espressa in WORD, in S7 si lavora invece in BYTE. Link al commento Condividi su altri siti More sharing options...
Reverendo bit Inserita: 2 maggio 2011 Autore Segnala Share Inserita: 2 maggio 2011 (modificato) Ciao ragazzi, Siete stati chiarissimi, ma tolto un dubbio ne saltano fuori altri.Chiarito il funzionamento dell'istruzione L KF +190; E DB 21, avrei queste domande da farvi:- Perché questa istruzione è scritta due volte? L KF +255 E DB 10 Non basterebbe una sola?- Ma una volta dichiarato un DB di lunghezza190 Word, perchè al riavvio dovrei ricrearlo con la stessa lunghezza? Durante l'elaborazione del software variano i valori delle Word e non la lunghezza giusto? o sto sbagliando?Scusate per tutte queste domande ma vorrei capire fino in fondo il motivo del codice scritto in OB21-22Saluti e buonanotte da Reverendo Modificato: 2 maggio 2011 da Reverendo bit Link al commento Condividi su altri siti More sharing options...
batta Inserita: 3 maggio 2011 Segnala Share Inserita: 3 maggio 2011 Si tratta sicuramente di un errore.Errore che non causa anomalie, e quindi mai scoperto. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 3 maggio 2011 Segnala Share Inserita: 3 maggio 2011 (modificato) Ma una volta dichiarato un DB di lunghezza190 Word, perchè al riavvio dovrei ricrearlo con la stessa lunghezza?Durante l'elaborazione del software variano i valori delle Word e non la lunghezza giusto? o sto sbagliando?Mi auto-quoto:viene rigenerata (se non c'è già) la DBPerché questa istruzione è scritta due volte?Forse quella DB è talmente importante che voleva essere sicuro di rigenerarla !!! Si tratta sicuramente di un errore. Modificato: 3 maggio 2011 da JumpMan Link al commento Condividi su altri siti More sharing options...
Reverendo bit Inserita: 3 maggio 2011 Autore Segnala Share Inserita: 3 maggio 2011 (modificato) Ok Ragazzi messaggio ricevuto Grazie di tutto ed alla prossimaSaluti da Reverendo Modificato: 3 maggio 2011 da Reverendo bit Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 3 maggio 2011 Segnala Share Inserita: 3 maggio 2011 - Perché questa istruzione è scritta due volte?L KF +255E DB 10 Non basterebbe una sola?Si tratta sicuramente di un errore.Errore che non causa anomalie, e quindi mai scoperto.E' esattamente come dice Batta: una doppia generazione di una DB, rimane senza effetto in quanto la DB esiste già.Solo una generazione con lunghezza pari a zero L KF 0E DB 10L KF 255E DB 10causa una cancellazione della DB in oggetto ed una successiva rigenerazione di una lunghezza di 255 parole dati: non è che volessero effettuare una cancellazione (prima di rigenerare nuovamente DB 10) dopo una transizione manuale da STOP in RUN per cancellare eventuali valori "sporchi" depositati in DB 10? Link al commento Condividi su altri siti More sharing options...
Reverendo bit Inserita: 18 maggio 2011 Autore Segnala Share Inserita: 18 maggio 2011 non è che volessero effettuare una cancellazione (prima di rigenerare nuovamente DB 10) dopo una transizione manuale da STOP in RUN per cancellare eventuali valori "sporchi" depositati in DB 10?Non saprei anche perchè ho ricontrollato ed il codice è propio scritto due volte con la stessa lunghezzaSaluti 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