a.rezzan Inserito: 23 gennaio 2014 Segnala Inserito: 23 gennaio 2014 Salve, nel mio progetto ho creato un UDT, poi un db contenente un array di questo UDT. Mi sono accorto che se aggiungo una variabile nell'UDT, poi devo aggiornare anche il DB e fin qui nessun problema. Poi nel caso in cui i dati del DB vengano passati anche ad una funzione anche questa vuole essere aggiornata e fin qui nessun problema. Se uso le variabili del DB nel OB1 va tutto bene fino a che non modifico UDT, passo del tempo ad aggiornare tutto quello che c'è da aggiorna, ossia il DB e poi la FC ma non si aggiornano le variabili del OB1. Dopo aver utilizzato anche per OB1 la voce di menù "Verifica e aggiorna accessi" le variabili nell'OB1 cambiano da ex. BitAccelerazione a DB66.DBX18.2 e non riesco più ad aggiornarle. Qualcuno sa dirmi come fa o come si fa senza dover ripassare tutte le variabili una per una e riassegnargli il nome? Grazie
beppo Inserita: 23 gennaio 2014 Segnala Inserita: 23 gennaio 2014 Ciao, se non ricordo male devi fare: Tasto destro sulla cartella Blocchi e fare Verifica Coerenza Blocchi. Nella finestra che si apre fai Compila.
a.rezzan Inserita: 23 gennaio 2014 Autore Segnala Inserita: 23 gennaio 2014 Ciao, ho fatto ma niente rimangono in OB1. ?
a.rezzan Inserita: 23 gennaio 2014 Autore Segnala Inserita: 23 gennaio 2014 Specifico che nell'UDT ho dichiarato BOOL e INT. Noto che quando faccio la procedura di Verifica coerenza blocchi e dopo Compila mi da errore nelle variabili di input-output della FC. Poi ho provato a occupare nell'UDT i bit diciamo "liberi" del byte e in questo modo i nomi delle variabili effettivamente rimangono in OB1 quindi funziona, ma se li aggiungo in coda all'UDT ho sempre in OB1 -> DB66.DBX18.2 invece del nome della variabile. Non so?!
a.rezzan Inserita: 24 gennaio 2014 Autore Segnala Inserita: 24 gennaio 2014 Dopo avermi consultato con chi ne sa di più di me ho capito che una volta dichiarato un UDT e successivamente creato un DB contenente un array di questo UDT la dimensione di tale UDT non va più toccata ossia non è più possibile aggiungere variabili. E' solo possibile "completare" l'UDT. Ad esempio dichiaro 3 bit e poi un intero, l'UDT avrà dimensione 4 byte. Posso in un secondo tempo aggiungere bit per completare i primi 2 byte e il programma "non si incasina". Se tento di aggiungere per esempio un bit dopo l'intero modificherei la dimensione dell'UDT da 4 byte a 5 byte e in questo caso si "sconquasserebbero" tutti i riferimenti all'interno dell'OB1. Morale: Quando si crea un array di UDT tenere sempre a mente che un domani potreste aver bisogno di aggiungere variabili al suo interno e quindi prevedete già di dichiarare BOOL, INT, DINT..... come "scorta". Il tutto mi sembra una gran palla al piede.
Luigi74_ Inserita: 29 gennaio 2014 Segnala Inserita: 29 gennaio 2014 Se lavori in simbolico il programma diventa "dinamico". Blocchi, tasto dx,preferenza operando,per tutti gli accessi. Occhio che se non lavori in simbolico è un casino.
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