Vai al contenuto
PLC Forum


Metodo Programmazione


RickyM

Messaggi consigliati

Ciao a tutti,

So che ogni macchina o linea che sia, ha un metodo di programmazione più adatto di un altro, però in generale:

Se dovete programmare una macchina che esegue delle operazioni in sequenza, settate una dbx ad ogni passo eseguito in modo da poter ripartire da quel punto dopo uno stop ciclo oppure appoggiate i passi su merker e usate le dbx per la ripartenza solo nei punti necessari, resettando tutti i merker allo stop ciclo?

Oppure usate altri metodi?

Link al commento
Condividi su altri siti


Non ho capito molto bene la tua domanda, comunque io personalmente se devo fare una sequenza di operazioni uso un FB, almeno ho tutto quello che riguarda la sequenza nel suo db di istanza.

Link al commento
Condividi su altri siti

Normalmente un passo/procedura/fase/fine ciclo/step, che debba essere puo' essere settato in un marker.

La cosa cambia se si vuole fare in modo che la macchina ricordi dopo la riaccensione cosa aveva fatto prima di essere spenta, come ad esempio dei pezzi dislocati lungo la linea.

Se dovete programmare una macchina che esegue delle operazioni in sequenza, settate una dbx ad ogni passo eseguito in modo da poter ripartire da quel punto dopo uno stop ciclo

Questo puo' essere un metodo.

I valori scritti nelle DB , vengono mantenuti dalla batteria tampone anche a PLC spento.

oppure appoggiate i passi su merker

Anche questo e' un metodo, ma se vuoi che allo spegnimento il valore logico di questi merker venga mantenuto , devi specificare nel settaggio della CPU un'area retentiva speciale che contenga questi indirizzi di memoria.

oppure appoggiate i passi su merker e usate le dbx per la ripartenza solo nei punti necessari, resettando tutti i merker allo stop ciclo?

Questo mi sembra un metodo che impiegherebbe troppi passi e troppe istruzioni, se ti appoggi ad una DB per fare un tracking dello stato macchina , ti basta quello, poi resetterai il bit della DB quando lo stato della macchina lo richiede.

Ivan

Link al commento
Condividi su altri siti

  • 4 weeks later...

Io uso una DW nella quale imposto il passo attivo 1,2,3.... poi setto un bit di passo che fa parte di un array di BOOL usando come indice la DW.

I passi di solito sono:

U "bit di passo N"

= "Uscite attivate a quel passo"

U "bit di passo"

U "condizioni di fine passo"

SPBNB _001

L "Prossimo passo N+1"

T DW

_001: nop

Poi in base al valore di DW setto il "bit di passo N+1"

Link al commento
Condividi su altri siti

Ciao biuly, per un programma semplice e ripetitivo ci potrebbe anche stare, ma se hai delle varianti di ciclo come fai ? E se devi fare una modifica del tipo inserire una ventina di passi tra il passo 10 e l'11 ? E come gestisci i comandi manuali ?

Mi sembra un po il funzionamento del timer della lavatrice ... senza offesa eh! ;)

Modificato: da JumpMan
Link al commento
Condividi su altri siti

Non c'è nessun problema invece, se tra il passo 10 e l'11 devo aggiungere 50 passi, dopo il 10 salto al passo 50 continuo fino al 100 e ritorno all'11. Le cose semplici sono sempre le migliori :D

Per i comandi manuali è banale, faccio tutto dopo quando devo gestire le uscite, un ramo manuale e uno automatico con il passo.

Modificato: da biuly
Link al commento
Condividi su altri siti

Per i comandi manuali è banale, faccio tutto dopo quando devo gestire le uscite, un ramo manuale e uno automatico con il passo
Giusto!

A meno che non editi in SFC (Sequential Function Chart), nel blocco ladder per la gestione delle uscite, imposti un ramo per l'automatico e l'altro per il manuale. ;)

Link al commento
Condividi su altri siti

Biuly, tutto sommato non è male, sovrebbe essere anche abbastanza rapido da scrivere, solo che se hai una macchina che fa 1000 variazioni di stato delle uscite usi 1000 flags, e un'uscita può trovarsi centinaia di flags di fase in parallelo ... oppure ho capito male ?

Io preferisco semplificare la parte che controlla le varie fasi del ciclo usando solo qualche decina di flags, ognune dei quali non attiva una sola transizione delle uscite ma una vera e propria fase del ciclo che comprende più movimenti

Per esempio:

Flag "PrelievoPezzo" > Muove il manipolatore verso il pezzo e lo preleva

Flag "PezzoPrelevato" > memorizza che il pezzo è prelevato e attiva il successivo movimento

Flag "PosizionaPerLavorazione" > Muove il manipolatore in posizione di lavorazione

Flag "PosizioneLavorazioneRaggiunta" > memorizza che la posizione è raggiunta e attiva il successivo movimento

Flag "Lavorazione" > Effettua la lavorazione

...

...ecc.ecc.

In questo modo il blocco che controlla lo svolgimento del ciclo è molto snello e di immediata comprensione, poi è chiaro che ognuno di quei flags (chiamiamoli "macrofasi") attiverà in successione le uscite necessarie a compiere i vari movimenti in base allo stato dei finecorsa ecc. Essi sono come i capireparto di una grossa fabbrica con centinaia di operai (le uscite), per sapere cosa fa un reparto lo chiedo al capo e non a tutti gli operai uno per uno...

Ciao

Link al commento
Condividi su altri siti

e un'uscita può trovarsi centinaia di flags di fase in parallelo
Non neccessariamente.. potrebbe avere solo i flags di commando passi per la catena del automatico cha lavorano su quella uscita, che potrebbero essere piu di uno ma non cento..e la stessa cosa per il manuale..

Poi per i flag di comando verrebbero impostati su altri blocchi...

|   
|  AUTO     MAN          P1                      sollevamento
+---[ ]-----[/]-----+---[ ]---+----------+---------( )---+
|                   |         |          |
|                   |    P4   |          |
|                   +---[ ]---+          |
|                   |         |          |
|                   |    P7   |          |
|                   +---[ ]---+          |
|                                        |
|                                        |
|   MAN     AUTO         PM              |
+---[ ]------[/]--------[ ]--------------+
|

P1 : Com_Soll_da_Passo1

P4 : Com_Soll_da_Passo4

P7 : Com_Soll_da_Passo7

PM : Com_Soll_Manuale

P1,P4 e P7 verrano impostati nel blocco sequenziale ove viene utilizzata l'operazione di sollevamento. Queste saranno anche abilitate a secondo le predisposizione e consensi vari

PM verra' impostata nel blocchi che gestisce i commandi manuali, idem per i flag di predisposizione e consensi di esecuzione.

Poi, per la carita', se l'operazione sollevamento viene eseguita 100 volte dentro una sequenza, allora in questi casi imposti

dei flag risolutivi oppure strutturi le sequenze diversamente.

Modificato: da Savino
Link al commento
Condividi su altri siti

Esattamente come dice Savino, ovviamente io avevo scritto in fretta, in realtà nel mio ciclo ci sono SOLO le condizioni di transizione del passo.

Con un passo, tanto per chiarire io comando anche una decina di uscite.

U "bit di passo"
U "condizioni di fine passo"
SPBNB _001
L "Prossimo passo N+1"
T DW
_001: nop

poi il bit di passo corrisponde ai P1 P2 P3 di Savino.

La bravura sta nel dividere il ciclo in passi logici, non nello scrivere il codice, ma nel capire come meglio suddividerlo in passi.

Ovviamente questo discorso vale solo per alcuni tipi d impianti, per la movimentazione con nastri o per l'industria molitoria e simili in genere è tutto un'altra cosa..

Modificato: da biuly
Link al commento
Condividi su altri siti

Se dovete programmare una macchina che esegue delle operazioni in sequenza, settate una dbx ad ogni passo eseguito in modo da poter ripartire da quel punto dopo uno stop ciclo oppure appoggiate i passi su merker e usate le dbx per la ripartenza solo nei punti necessari, resettando tutti i merker allo stop ciclo?
Dunque, sarebbe relativo...

Pensando sempre che per 'stop ciclo' non entendiamo dire 'emergenza'.. fermare il ciclo non vuoldire fermare 'la sequenza'.. quindi il reset delle memorie che potrebbero essere delle DBx o Merkers 'retentive' potrebbe venire fatto a fine sequenza oppure a fine operazione... Certi prodotti sono soggetti a elavorazioni sequenziali in catena e quindi una volta eseguita la SQ1, questa deve aspettare che finiscono la SQ2 + SQ3 per essere abilitate ancora... ma ripeto, dipendera' propio delle caratteristiche del processo o macchina.

scusate ma come fate se l'operatore deve avere la possibilita di modificare le varie fasi di lavoro
Anche in Batch control system, certi prodotti - lotti.. potrebbero essere modificati senza fermare il processo in corso.. altri bisognarebbe fermarli per forza .. In certi aree, il batching viene eseguito direttamente in rete dall' ERP ( Enterprise Resource Planning )system, senza nessun tipo di problemi.. altri devono per forza essere impostati dall'operatore macchina a livello field..

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