Vai al contenuto
PLC Forum


Verifica E Aggiorna Accessi


a.rezzan

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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?!

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...