Vai al contenuto
PLC Forum


Istanza - Istanza


Messaggi consigliati

Mirco Tirrezzi
Inserito:

Ho effettuato una manutenzione ad linea nella quale ho visto una cosa molto particolare... Il programma e suddiviso in tante FB (col relativo DB di appoggio) che vengono richiamate dall'interno di altri blocchi (FB o FC), all'interno di una di queste FB esiste una variabile temporale #bConsMovimento (dichiarata come input, quindi passata al momento della chiamata), che abilita il movimento di un determinato motore.., bè il motore non si muove, andando online nell'FB (FB chiamato) dove la variabile è dichiarata come variabile locale, la si vede cambiare continuamente di stato, mentre andando online nell'FB che richiama l'FB dove tale variabile è dichiarata (quindi l'FB nella quale la variabile viene passata come parametro al momento della chiamata dell'altro FB), la variabile non cambia stato; la macchina rimane bloccata e l'unica soluzione trovata è stata quella di riavviare il PLC ?!?! Questa macchina lavora da 5 anni, ma adesso presenta questa anomalia...., cosa potrebbe essere ? Un problema hardware ?

Mirco


Matteo Montanari
Inserita:
andando online nell'FB (FB chiamato) dove la variabile è dichiarata come variabile locale, la si vede cambiare continuamente di stato,

questo succede perchè l'FB è riciamata molte volte ed ad ogni richiamo la variabile assume il valore dell'elaborazione attuale.

la macchina rimane bloccata e l'unica soluzione trovata è stata quella di riavviare il PLC ?!?!

molto probabilmente il PLC si aspetta una condizione per procedere con l'elaborazione, se non avviene allora rimane in attesa e non esegue nessun movimento, resta fermo nella fase in cui richiede la condizione.

Questa macchina lavora da 5 anni, ma adesso presenta questa anomalia...., cosa potrebbe essere ? Un problema hardware ?

ed io come faccio a saperlo, non ho la sfera di cristallo, e se avessi poteri paranormali pensi che continuerei a fare questo lavoro?

occore innanzi tutto verificare se tutte le condizioni di marcia (o arresto) di quel motore siano tutte verificate. se come dicei il blocco è utilizzato anche per altri motori e il funzionamento di quest'ultimi non è compromesso, il problema non stà sicuramente nell'FB ma nei parametri che vengono trasferiti per il motore che ti crea problemi. io partirei a controllare questi.

eventualmente potresti fare una copia dell'FB, richiamarla con una DB di istanza solo per quel motore, ed andando in stato non trovi sicuramente le variabili che cambiano.

in bocca al lupo

Inserita:
ed io come faccio a saperlo, non ho la sfera di cristallo, e se avessi poteri paranormali pensi che continuerei a fare questo lavoro?

complimenti per la risposta, personalmente penso che potresti evitarle.

le soluzioni che dai sono comunque giuste.

Matteo Montanari
Inserita:
complimenti per la risposta, personalmente penso che potresti evitarle.

molte volte le risposte dipendo anche dalle domande

le soluzioni che dai sono comunque giuste.

grazie

Inserita:
ed io come faccio a saperlo, non ho la sfera di cristallo, e se avessi poteri paranormali pensi che continuerei a fare questo lavoro?

Risposta più che meritata! Grande keosmm!

Mirco Tirrezzi
Inserita:

L'FB in questione è richiamata in un solo punto e gestisce un unico motore... Ho provato ad inserire la varibile all'interno di una VAT ma non ci sono riuscito.., è possibile monitorare le variabili dichiararte localmente senza visualizzare il on-line il punto di utilizzo, inserendole all'interno di VAT ?

Cerco di farmi dare l'FB così la metto on-line :=)

Mirco

Inserita:

non se sono locali non riesci se sono nel db di istanza si, hanno un'idirizzo ben preciso del tipo DB(numero istanza).DB(quello che è X per bool, B per byte, w per word D per double)

il problema è nella variabile temporanea allora, o almeno così sembra.

Io la sdoppierei su un word (MW o DW) e la visualizzerei giusto per vedere come si comporta

Matteo Montanari
Inserita: (modificato)
è possibile monitorare le variabili dichiararte localmente senza visualizzare il on-line il punto di utilizzo, inserendole all'interno di VAT ?

esempio banale:

FB 1

ingresso (bool)

uscita (bool)

stat (bool)

in questo caso associ all'FB 1 il blocco dati DB1

quindi puoi scrivere nella VAT:

db1.dbx0.0 -> equivale ad "ingresso"

db1.dbx2.0 -> equivale ad "uscita"

db1.dbx4.0 -> equivale ad "stat"

L'FB in questione è richiamata in un solo punto e gestisce un unico motore...

in questo caso se il problema è dato da una varibile temporanea controlla l'utilizzo delle variabili temporanee, anche come punti di inizio "parentesi", mi spiego meglio

le varibili temporanee vengono battezzate anche loro con un indirizzamento, se questo indirizzamento viene utilizzato anche nella funzone cambia il valore della varibile. esempio

variabile temp "pippo" (dint) 0.0 (0+1+2+3)

se nella funzione ho questa scrittura:

U M0.0

= L3.2

U L3.2

U M0.1

= L3.3

il valore di "pippo" viene modificato in quanto vengono utilizzati i bit 3.2 e 3.3 della varibile "pippo"

Cerco di farmi dare l'FB così la metto on-line :=)

non sarebbe una cattiva idea.

è comunque valido il suggerimento di appoggiare la variabile temporanea, incriminata, su un area di appoggio facilmente accessebile

Modificato: da keosmm
Inserita:

Ciao mirco,

Se l'FB è usata una sola volta proprio non riesco a capire la difficoltà di analizzarla. La apri e clicchi sugli occhiali.

se la macchina lavora da 5 anni il programma è giusto. Altrimenti fino ad ora non sarebbe andato.

cominciamo con analizzare quando deve funzionare il motore.

sicuramente si è rotto qualcosa.

io controllerei:

il PLC comanda l'uscita? (guardando in "stato variabili"?)

penso di no senno non saresti andato a vedere il programma

allora manca quanche consenso. finecorsa termici ecc.

di solito è così.

ciao facci saper poi cosa era

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