RickyM Inserito: 25 agosto 2007 Segnala Share Inserito: 25 agosto 2007 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 More sharing options...
romma00 Inserita: 25 agosto 2007 Segnala Share Inserita: 25 agosto 2007 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 More sharing options...
kamikaze Inserita: 25 agosto 2007 Segnala Share Inserita: 25 agosto 2007 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 cicloQuesto puo' essere un metodo.I valori scritti nelle DB , vengono mantenuti dalla batteria tampone anche a PLC spento.oppure appoggiate i passi su merkerAnche 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 More sharing options...
biuly Inserita: 17 settembre 2007 Segnala Share Inserita: 17 settembre 2007 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 _001L "Prossimo passo N+1"T DW_001: nopPoi in base al valore di DW setto il "bit di passo N+1" Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 17 settembre 2007 Segnala Share Inserita: 17 settembre 2007 (modificato) 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: 17 settembre 2007 da JumpMan Link al commento Condividi su altri siti More sharing options...
biuly Inserita: 18 settembre 2007 Segnala Share Inserita: 18 settembre 2007 (modificato) 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 Per i comandi manuali è banale, faccio tutto dopo quando devo gestire le uscite, un ramo manuale e uno automatico con il passo. Modificato: 18 settembre 2007 da biuly Link al commento Condividi su altri siti More sharing options...
Savino Inserita: 18 settembre 2007 Segnala Share Inserita: 18 settembre 2007 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 More sharing options...
JumpMan Inserita: 18 settembre 2007 Segnala Share Inserita: 18 settembre 2007 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ù movimentiPer esempio: Flag "PrelievoPezzo" > Muove il manipolatore verso il pezzo e lo prelevaFlag "PezzoPrelevato" > memorizza che il pezzo è prelevato e attiva il successivo movimentoFlag "PosizionaPerLavorazione" > Muove il manipolatore in posizione di lavorazioneFlag "PosizioneLavorazioneRaggiunta" > memorizza che la posizione è raggiunta e attiva il successivo movimentoFlag "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 More sharing options...
Savino Inserita: 18 settembre 2007 Segnala Share Inserita: 18 settembre 2007 (modificato) e un'uscita può trovarsi centinaia di flags di fase in paralleloNon 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_Passo1P4 : Com_Soll_da_Passo4P7 : Com_Soll_da_Passo7PM : Com_Soll_ManualeP1,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 variPM 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 impostidei flag risolutivi oppure strutturi le sequenze diversamente. Modificato: 18 settembre 2007 da Savino Link al commento Condividi su altri siti More sharing options...
biuly Inserita: 19 settembre 2007 Segnala Share Inserita: 19 settembre 2007 (modificato) 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: noppoi 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: 19 settembre 2007 da biuly Link al commento Condividi su altri siti More sharing options...
puntalino Inserita: 19 settembre 2007 Segnala Share Inserita: 19 settembre 2007 scusate ma come fate se l'operatore deve avere la possibilita di modificare le varie fasi di lavoro Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 19 settembre 2007 Segnala Share Inserita: 19 settembre 2007 Io prevedo delle funzioni (bit) che a seconda del loro stato abilitano o disabilitano le parti di programma (una o + fasi) interessate. Link al commento Condividi su altri siti More sharing options...
Savino Inserita: 22 settembre 2007 Segnala Share Inserita: 22 settembre 2007 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 lavoroAnche 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora