freezer Inserito: 19 ottobre 2004 Segnala Inserito: 19 ottobre 2004 Premessa: CPU utilizzata : 315-2DBCom'è possibile salvare dei dati in una db in modo sequenziale (es.: da dw0 a dw 100)?Far si che automaticamente si incrementi l' indirizzo delle DW dove scrivere.Un esempio potrebbe essere quello di memorizzare l' ora ogniqualvolta si accenda e si spenga un motore.Grazie
MrC Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Devi usare un puntatore, memorizzare l'ultimo indirizzo che hai usato per una registrazione valida e incrementarlo.Ma attento !!Finirai il DB prima o poi, quindi devi prevedere la generazione di 1 nuovo db via software !!!Consiglio : scrivi su MMC !!!Ciao
wnc Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Dovresti utilizzare i puntatori. In S7 non sono il massimo della vita...Guarda sul manuale e buona fortuna.
STEU Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Se usi AWL devi utilizzare dei puntatori semplici a 32 bit, se usi SCL in linguaggio evoluto è molto più facile ed intuitivo
MrC Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Magari, nel caso ti servisse anche per altre cose, potresti valutare l'impiego di una CP343-IT che se non sbaglio integra la funzionalità che richiedi, e in + permette di mandare i dati via email, sms, e rende disponibili i files via ftp, oltre a farti da web server e interfaccia ethernet.
venuti Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Ciao,devi usare l'inidirizzamento indiretto ( F1 e poi cerca indirect adressing ). Puoi usare anche l'SCL (pacchetto addizzionale) che é un linguaggio con sintassi simil pascal che permette facilmente di gestire l'inidizzamento indiretto: es: se dichiare inel tuo DB un array ci accedi cosi: "DBNAME".ARNAME[index] Se vuoi fare tutto in STL questo semplice esempio ti puó essere di aiutoesempio di FC:IN #ADDR INT IN #DB INTIN #VAL INT L #ADDR //tipo INT che definisce la word che si vuole scrivere; es 100 -> DW100 ITD //conversione in puntatore SLD 3 //... LAR1 //caricamento del puntatore nel indirect address register 1 OPN #DB // tipo INT che é il numero del DB destinazione; es 250 -> DB250 L #VAL //tipo INT caricamento valore da scrivere T DBW [AR1,P#0.0] // scrittura della DB250.DBW100 in modo indirettofine FC
oiuytr Inserita: 19 ottobre 2004 Segnala Inserita: 19 ottobre 2004 Potresti usare l'FC84 ATT TABLE, pero' avrai il problema gia' sollevato da MrC che prima o poi il DB si riempira'. Lo puoi "svuotare" con l'FC85 FIFO TABLE (con il quale puoi prelevare un valore alla volta, se ti serve) o con l'SFC21 FILL MOVE (puoi azzerare di brutto il DB)
ken Inserita: 20 ottobre 2004 Segnala Inserita: 20 ottobre 2004 Ancora più velocementeauf BDxx L variabile che contiene puntatore SLD 3 T variabile temporanea tipo LD0 oppure quelle del blocco L dato da salvare T DB(W,D)[variabile temporanea tipo LD0 oppure quelle del blocco] Esempio: DB100 memorizzo 100 in db100.dbd10 AUF DB100 L #10 SLD3 T LD0 L #100 T DBD[lD0]Se poi al posto di #10 e di #100 ci metti una varibile il gioco è fattoResta sempre il problema del riempirsi del DB
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