Vai al contenuto
PLC Forum


Come Valutare Le Condizioni Per L'Avanzamento Sequenza


barby

Messaggi consigliati

Ciao a tutti,

volevo capire il vostro punto di vista su questo aspetto della programmazione PLC,

parto con un esempio semplice, ma il concetto è valido anche per i sistemi più complessi:

ho un semplice manipolatore con pinza che sposta degli oggetti da una posizione A ad una posizione B,

quindi un cilindro per il movimento orizzontale, un cilindro per il movimento verticale e una pinza.

La sequenza dovrebbe essere simile a questa

Step 0:

- pezzo presente su posizione A

- pinze sopra posizione A

- pinze sù

- pinze aperte

Step 1:

- Discesa pinze

- Attesa sensore pinze basse

Step 2:

- Chiusura pinze

- Attesa sensore pinze chiuse

Step 3:

- Salita pinze

- Attesa sensore pinze su

Step 4:

- Traslazione pinze su posizione B

- Attesa sensore pinze su posizione B

Step 5:

- Controllo posizione B libera

Step 6:

- Discesa pinze

- Attesa sensore pinze basse

Step 7:

- Aperture pinze

- Attesa sensore pinze aperte

Step 8:

- Salita pinze

- Attesa sensore pinze alte

Step 9:

- Traslazione pinze su posizione A

- Attesa sensore pinze su posizione A

Step 10:

- Fine ciclo

Ok ora la domanda:

siamo sullo step 2 e dobbiamo comandare la chiusura delle pinze. Quali condizioni dobbiamo valutare?

(pinze su pos. A) + (pinze basse) + (pinze aperte)

oppure valutiamo solo la condizione di pinze basse, in quanto le altre condizioni le avevamo testate

nelle fasi immediatamente precedenti?

Quello che vorrei capire è questo: per comandare anche un singolo movimento di un cilindro devo valutare

sempre tutte le condizioni per poterlo fare in quel momento, oppure dò per scontato che se sono arrivato in quella fase

le condizioni ci sono sicuramente?

Stesso discorso per uscire dallo step 2: devo avere (pinze su pos. A) + (pinze basse) + (pinze chiuse),

oppure solamente (pinze chiuse) in quanto le altre condizioni le avevo appena valutate per comadare la chiusura delle pinze?

Ciao e grazie

Link al commento
Condividi su altri siti


oppure valutiamo solo la condizione di pinze basse, in quanto le altre condizioni le avevamo testate

nelle fasi immediatamente precedenti?

Questo dipende esclusivamente dalla macchina.

Se, una volta raggiunta una posizione, è impossibile perderla e se, anche se questo dovesse accadere, il malfunzionamento non causasse danni, allora si può semplificare il programma e controllare solo l'ultimo evento.

Se non c'è garanzia di mantenimento della posizione, oppure se un eventuale movimento errato potesse causare danni, allora diventa tassativo controllare sempre tutte le condizioni.

Questo controllo però potrebbe avvenire anche esternamente alla sequenza.

Per esempio, se posso fare la traslazione solo in posiziona alta, blocco il comando di traslazione se perdo il sensore diposizione alta, anche se la fase "Traslazione" è e rimane attiva.

Link al commento
Condividi su altri siti

Nelle tue valutazioni tieni conto che tu potresti riavviare la cpu in qualsiasi momento, quindi se tu hai scelto di andare per avanzamento di step devi memorizzarli su di un'area ritentiva.

Entrano poi in gioco due considerazioni ovvero:

- A plc spento possono essere fatte manovre manuali?

- Esiste la possibilita che a plc spento la macchina comunque si muova per trafilamenti?

Alla luce di tutto questo io personalmente preferisco, ovviamente avendo la sensoristica sempre impegnata, preferisco crearmi dei flag cumulativi che mi abilitano ogni manovra, questo ti da la possibilità, dove previsto, di poter movimentare anche manualmente l'impianto e quando lui "riconosce" uno stato da li riparti in automatico.

Cordialmente

Link al commento
Condividi su altri siti

Grazie per i vostri suggerimenti, ora ho le idee più chiare.

In effetti a volte può capitare che gli operatori eseguano delle operazioni manuali in seguito ad anomalie sull'impianto.

Ad esempio se ho problemi con un cilindro, l'operatore prova a movimentarlo in manuale (forzando l'elettrovalvola tramite l'apposito pulsantino)per capire se il problema dipende dall'elettrovalvola, o dal cilindro che è bloccato, oppure dai sensori difettosi.

Il problema a volte nasce quando l'operatore dopo queste operazioni si dimentica di rimettere le cose a posto, a questo punto quando si rimette il selettore in automatico la macchina non si trova più nelle condizioni in cui si era fermata,

quindi nel mio caso forse è meglio controllare sempre tutte le condizioni.

Approfitto della vostra esperienza per chiedervi un'altra cosa più o meno collegata a questo discorso.

Nel caso di un cilindro comandato da una valvola monostabile eseguo la diagnostica dei sensori in questo modo:

out pnp lavoro

|---| |------------|/|---------------| Timer 1 |

out pnp riposo

|---|/|------------| |---------------| Timer 2 |

Timer 1 Allarme1

|---| |--------()-|

Timer 2 Allarme2

|---| |--------()-|

Nel caso di un cilindro comandato da una valvola bistabile, come posso fare per monitorare correttamente i sensori?

Ad esempio, quando comando la corsa di andata del cilindro aspetto di avere il sensore di cilindro avanti, con questo

segnale resetto l'uscita che comanda il solenoide di corsa avanti (di solito non ha senso lasciare attivi i solenoidi delle elettrovalvole bistabili).

A questo punto se l'operatore mette la macchina in manuale e fa tornare indietro il cilindro tramite il pulsantino sull'elettrovalvola io non posso saperlo.

Come risolvete una situazione del genere?

Io avevo pensato di creare un flag ritentivo che si "ricorda" che il cilindro ha fatto un movimento in avanti e usare questo flag per controllare che sia presente il sensore.

Ci sono altri metodi più "eleganti"?

Grazie di nuovo per la vostra disponibilità

Modificato: da barby
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...