Vai al contenuto
PLC Forum


Allarme Compilazione Fb


luca_82

Messaggi consigliati

Ciao a tutti, spero qualcuno di voi possa darmi una mano!! Ho scritto un programma per un IM151 con tia portal V13 professional. Nel Main ho un FB1 con dei dati nell'interfaccia che metto nella DB6. Il richiamo del blocco lo faccio scrivendolo in AWL, ma nel momento in cui faccio la compilazione di tutto il software del programma mi da un errore in questo segmento scrivendo:

"Le informazioni di riferimento sono incoerenti"

Non riesco a capire se è un problema di scrittura o altro, lo stesso FB lo richiamo cambiando i parametri dell'interfaccia e appoggiandoli sulla DB7 e ho scritto alla stessa maniera ma il problema ce l'ho solo nel primo segmento (se cancello dal programma quel richiamo la compilazione non da errori!!)!

Spero di essere riuscito a spiegare il mio problema,un grazie a quanti sappiano darmi un consiglio su dove andare a cercare ulteriormente quello che non gli piace!!

E buona serata a tutti.

Link al commento
Condividi su altri siti


DB6 è il DB di istanza della tua FB?

Hai per caso apportato modifiche alla FB dopo aver generato il DB6?

Se è così devi rigenerare DB6.

Dalle scarse informazioni che fornisci, questa è l'unica cosa che mi viene in mente.

Link al commento
Condividi su altri siti

Ciao Batta e grazie della risposta... Il DB6 è esattamente il DB di istanza dell'FB3 che devo richiamare e ti confermo che non ho fatto modifiche all'FB3 ma solo nelle variabili di interfaccia ed ho poi riaggiornato l'interfaccia del blocco. Nella riga di programma in cui faccio il richiamo e lui mi da errore ho scritto in questa maniera:

Call "Blocco_pressatura","Blocco_pressatura_sx_DB" %FB3,%DB6

Cil_pres_basso := "Cilindro pressata cav_sx basso" % E102.6

Cil_pres_alto :="Cilindro pressata cav_sx alto" %E102.7

Cil_tap_olio_dietro :="Cilindro tappo olio cav_sx dietro" %E100.0

Cil_tap_olio_avanti :="Cilindro tappo olio cav_sx avanti" %E101.0

Cil_marc_dietro :="Cilindro punzonatore cav_sx dietro" %E102.0

Cil_marc_avanti :="Cilindro punzonatore cav_sx avanti" %E102.1

Pezzo su posaggio :="Pezzo sinistro su posaggio" %M110.2

Cons_start_stazione:="DB globale dell'isola"."Tavola in posizione" %DB1.DBX22.3

Fine test tenuta :="DB.globale dell'isola"."Test eseguito su cav_sx" %DB1.DBX22.4

Questo è come ho scritto il richiamo in AWL, linguaggio che non mi è molto familiare...Ma quindi batta dovrei cancellare la riga di programma e riscriverla creando una nuova DB?

Link al commento
Condividi su altri siti

ma solo nelle variabili di interfaccia ed ho poi riaggiornato l'interfaccia del blocco

Appunto.

È proprio in base a queste variabili che viene generato il DB di istanza. Se apporti modifiche alle istruzioni della tua FB ma non tocchi le variabili di interfaccia va tutto bene.

Se, invece, modifichi le variabili dell'interfaccia, devi assolutamente aggiornare il DB di istanza.

Dovrebbe chiederti se vuoi rigenerare il DB di istanza semplicemente posizionandoti col cursore sul DB dove fai il richamo della FB

Esempio:

Call MyFB, MyDbIstanza

Ti posizioni col cursore su MyDbIstanza e vedi cosa succede.

Oppure cancella il DB.

Link al commento
Condividi su altri siti

Alla fine con la support della Siemens sono riuscito a risolvere e condivido l'errore con chi avrà lo stesso problema. Non c'era niente di scritto male, era semplicemente un altro debug di questo Tia-portal così tanto osannato......!!

Bastava andare sulla riga di programma dove facevo il richiamo dell'FB, tagliare tutte le righe per poi rincollarle di nuovo, era l'unico modo per sbloccare il software che per qualche motivo era andato in palla!! :thumbdown: :thumbdown: :thumbdown: :thumbdown:

Ciao e grazie a tutti!!

Link al commento
Condividi su altri siti

Qualcosa di simile capita anche con lo step 7 classico e l'unico modo per riuscire a sbloccare la situation è cancellare la call per poi salvare l'fb e reinserire la call, di solito va.

Inviato dall'app. Mobile di PLC Forum da iPhone7,2

Link al commento
Condividi su altri siti

Ma non è un baco...è sempre stato così: ha solo rigenerato l'istanza....se fossero questi i problemi dei tia...sai che festa

Concordo.

Link al commento
Condividi su altri siti

Il famoso "taglia-salva-incolla-salva", l'ho usato 1000 volte :smile:

In maniera un po accorta si può usare il t.s.i.s. anche per fare un ricablaggio al volo senza usare la funzione di ricablaggio, se p.es. mi accorgo che devo inserire delle variabili in mezzo ad una DB, cosa che comporterebbe un vero casino in tutto il programma faccio una xref di quella DB, vedo che p. es. è usata in FC1-FC2-FC3, quindi apro questi 3 blocchi, modifico la DB e la salvo, poi seleziono tutti i segmenti di FC1 e faccio t.s.i.s e ripeto l'operazione per gli altri FC e si sistemano automaticamente tutti gli indirizzi.

p.s. lo so che potrei anche lavorare in preferenza simbolico, ma è solo per far capire come funziona.

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...