Vai al contenuto
PLC Forum


Come Fate A Strutturare Un Programma?


Messaggi consigliati

Inserito:

Buongiorno a tutti e buone vacanze se ci siete

 

volevo chiedere un parere ai più esperti e non sul vostro metodo per strutturare un vostro programma  , mi spiego meglio...

Fino ad ora mi sono occupato di macchinette relativamente semplici e soprattutto per uso interno. Si tratta di riempitrici/chiuditrici per blister ed in generale per il confezionamento in ambito cosmetico. Per i programmi mi sono fatto un pò le ossa con l'esperienza personale ma soprattutto con l'aiuto trovato qui sul forum, il fatto è che ogni volta che devo stendere un programma ho sempre la sensazione di andare un pò a tastoni, nel senso che butto giù su carta quello che voglio la macchina faccia(e quello ce l'ho ben chiaro)ma poi mi perdo tra interblocchi, allarmi, merker ...insomma finisco inevitabilmente  per fare della confusione.

Poi allora comincio a stendere il programma convinto che le soluzioni arrivino strada facendo, ma non è sempre cosi. Intendiamoci, la situazione non è cosi grave, o almeno non come lo era le primissime volte. Le macchine girano, cerco di dividere tutti i blocchi di lavorazione per bene ed essere più ordinato possibile ma non è sempre semplice. Ora le macchine cominciano a diventare sempre più complesse, con asservimento di macchine terze ecc e mi chiedevo come fate voi a 'strutturare' un programma specialmente nella fase prima della scrittura(che so dovrebbe essere sempre l'ultima cosa da fare)?

 

Cosa usate? schema a blocchi?Quali sono i ragionamenti, le domande che vi ponete? Mi rendo conto di chiedervi molto ma spero ci sia un anima pia che ha voglia di perdere un pò di tempo a cercare di spiegarmi la 'strada' più che la soluzione specifica.

 

Grazie dell'aiuto

Matteo

 

 

 


Inserita:

provo a darti un mio parere  ( grazie delle buone vacanze :  io vivo in un paese dove le altre persone vengono in vacanza , quindi automaticamente tutto l'anno sono in vacanza, perché dovrei andarci ? :superlol: )

 

cerco di preparare dei blocchi  che mi riassumano determinate funzioni , e anche su macchine relativamente semplici , ne faccio molti , anche 10.....15

li chiamo con il nome della funzione che svolgono , esempio :

 

riassuntivi_merker

ciclo_auto

uscite

gestione_analogiche

conteggi

ore_funzionamento

lotto

medie_ora

 

sempre richiamati dall'OB1  ( cito Siemens )

 

su macchine complesse poi si è obbligati a scriverne molti...

 

nel macchinario con 8 uscite , per assurdo , è eccessivo creare un blocco per gestirle....tanto varrebbe farlo direttamente sui blocchi di comando e logica

 

ma se diventano 80...100.....150...  che siano comandate da un ciclo manuale, da un automatico da altri segnali  ( esempio banale... le spie di segnalazione saranno comandate dai merker del ciclo auto o man, oppure dalle "bobine" dei comandi ad esso associati, o ancora da un pulsante test lampade )

 

il conteggio del funzionamento come medie di produzione o i lotti totali  , o ancora le ore di funzionamento.....

poche righe e potrei metterle sempre nell'OB1...

ma è cosi comodo fare un suo blocco..tanto mica si paga di più  :smile:

 

su macchine simili poi , diventa veloce il copia incolla.... se si contano le ore di una pompa, esempio...è lo stesso principio di contare le ore di un mulino.. di un bruciatore....

nel blocco conteggio-ore cambierò solo il segnale che fa incrementare il conteggio

 

oppure, per standardizzare un minimo  ( tanto non si riesce mai )  cerco di dare un nome simile.. nei vari progetti ,il blocco dati dove appoggio  le variabili dei pannelli lo ho sempre chiamato DB50....

 

Ho notato che con il tempo , un minimo facilita le cose , soprattutto se devo dare il programma ad un altra persona , posso poi dargli assistenza veloce in quanto mi ricordo come ho pensato la cosa in generale .

 

Cosa che poi non capita quasi mai...

 

Cerco di prendere  io in carico la parte del manuale che descrive  il funzionamento della macchina

 

mi creo uno schema a blocchi a fianco delle "istruzioni" , nei casi veloci scrivendolo a biro.....  nelle cose più "serie"  scrivo a fianco con un altro carattere o un altro colore sul documento di word, cosi i manutentori o chi mi commissiona il lavoro sa... ( o dovrebbe perlomeno sapere e capire )

 

 

Te la sparo li....

 

Classica frase del manuale :  l'operatore, una volta posizionatosi davanti al pannello operatore,  verificherà che non siano presenti anomalie e quindi possa decidere  il modo di funzionamento , manuale o automatico

A  fianco ci metterò i miei commenti....  merker riassuntino termiche tutte armate  M XX.X.......  nessun anomalia presente  MX.X

selettore man auto   ecc..ecc...

 

se faccio un piccolo diagramma utilizzando anche solo le frecce e le linee di word :

      

selezione ciclo manuale    ----->   premo pulsante avanzamento passo singolo -----> ecc eccc  vattela a pesca......

 

sotto ci scrivo appunto i commenti   leggo E....  setto M....  passo eseguito  M......

 

credo nelle grandi aziende però la cosa sia sviluppata da molte persone diverse e quindi ...faranno..più diagrammi.... :roflmao:

Inserita:

Grazie davvero Luigi, sei stato molto esaustivo. Il diagramma lo faccio anch'io tuttora, ma volevo sapere nello specifico come fai a determinare o scrivere la situazione tipo "il cilindro A fuoriesce SE il ciclo è automatico, SE non è presente l'allarme X ecc ecc ecc ...

 

Altra cosa: noto spesso che si fa una vitale differenza tra ciclo automatico e manuale: vi create proprio due blocchi distinti? nel manuale di solito cosa permettete di fare all'operatore?

Inserita:

al di la delle operazioni di sicurezza, o meglio , di quello che puoi o non puoi fare..a livello di sicurezza, dipende sempre dalla macchina, dall'impianto , da cosa materialmente devi fare

 

secondo me è per questo motivo che bisogna conoscere a fondo più cose :  l'automazione , i criteri di sicurezza dettati dalle normative, caratteristiche meccaniche....ecc..ecc..

 

il medico della mutua non prescriverà mai un ciclo o un altro.....

in genere nei macchinai il manuale è quello che si intende per le regolazioni , l'automatico per la produzione

 

poi ci sono le seghe mentali , di chi vuole il semiautomatico ,  il manuale/ma poco/ solo pochi movimenti/ poi magicamente passa in automatico

 

oltre al ragionamento ripari... nel caso di un macchinario con parti mobili che possano creare danni alle persone....

 

immagina un sistema di svuotamento silos in automatico   le coclee partiranno  in sequenza con tempi precisi di svuotamento....

 

in manuale è logico che si possano fare girare... il meccanico differente... come può controllare  un cuscinetto..una trasmissione.....

ma nulla vieta che tu temporizzi questo manuale per un tot tempo , per evitare che facciano danni o intasino talmente tanto la coclea successiva che...poi sono dolori

 

l'esperienza che mi sono fatto poi...sai cosa faccio come "tocco particolare"....... :thumb_yello:  ( sto vendendo aria fritta  )

 

il pulsante reset anomalie

 

esempio  un set reset con un allarme..se tengo premuto il reset anomalie..in teoria "forzo" la cancellatura dell'allarme....ma l'allarme magari rimane e non devo fare partire il macchinario.....

 

mi faccio un fronte di salita con un temporizzatore di un paio di secondi   passato il tempo....posso tenerlo premuto ma non mi fa effetto di sorta.....  l'operatore è obbligato a lasciarlo e ripremerlo....  quasi a prova di manomissione

 

dove lo ho imparato ?  ho un cliente che produce vernici  tempo fa  una valvola dava problemi e gli "usciva" sempre l'anomalia

cosa hanno pensato un paio di operaio ?   hanno intinto uno straccetto nella resina acriliche e hanno "sporcato" il pulsante del rete anomalie tenendolo premuto...cosicché è rimasto incollato....

qualsiasi anomalia veniva cancellata    ahahahahahahahahahahaah

 

non credo di avere inventato l'acqua calda, ma..il sistema funziona e non è che mi scrivo chissà quali commenti...

in un blocco  che magari chiamo settaggi principali  o nelle anomalie  metto questo "giochetto" e poi lo uso dove mi necessita

Inserita:

Ti ringrazio Luigi delle risposte. Da ció che capisco l'esperienza gioca un ruolo fondamentale nella stesura del programma come in effetti sospettavo.

Io ora solitamente dichiarò un intero a 32 bit(a me bastano) come word allarmi. In testa ad ogni fc controllo che tale word valga zero( nessun allarme attivo) . Se vale zero eseguo tutto ció che devo eseguire, altrimenti salto ad una riga di programma dove innanzitutto resetto tutte le word di fase programma e tutti i consensi ( tipo assi referenziati, assi in coppia ecc) in modo che sia obbligatorio portare a zero gli assi mediante apposita procedura guidata prima di poter ripristinare la lavorazione.

A questo punto secondo voi è meglio rendere obbligatorio una messa in moto manuale degli assi per portarli fuori pericolo( per pericolo intendo collisioni con altri assi o attuatori) oppure fate un ciclo che in automatico riporta tutto a posto tenendo conto della posizione degli attuatori da sensori di posizione?intendo un ciclo automatico che in base a come si sono arrestati gli assi attui una sequenza tale da riportare tutto a riposo senza fare danni.

Spero di essermi spiegato bene e di non aver detto troppe baggianate ma i vostri consigli per me sono molto importanti, anche quelli che magari ritenete banali

Grazie ancora

Matteo

Inserita:

La scelta se portare gli assi a 0 in manuale o in auto spetta  te secondo il tipo di macchina....se gli assi non sono in extracorsa ma semplicemente  il macchinario è stato spento in modo AM  (  Ad  Muzzum  , ovvero a caso ) prevederei un pulsante o una condizione del tipo "riposizionamento"  per portare tutto nelle condizioni di 0

 

Quello che suggerisci tu della Word è una buona cosa...

 

unico inconveniente, o meglio... per iniziare io spesso ne prevedo più di una, per assurdo anche 4  ( logico , dipende quanti allarmi gestisco )

 

Poi , se il macchinario o l'impianto lo richiede , prevedo dei gruppi di Word

 

4  per le anomalie "gravi" che causano allarmi gravi

4  per le anomalie che non pregiudicano un ciclo automatico o che so, che comunque permettono di finire una lavorazione o portare a termine un piccolo ciclo

4  per le pure segnalazioni

 

Per assurdo , in un macchinario che esegue lavorazioni , lo scatto termico di una pompa di raffreddamento che so...dell'olio della centralina idraulica..lo considero non grave , e il confronto del valore diverso da 0 mi condurrà ad una condizione del tipo "pulsante arresto ciclo"

Perché inchiodare li il ciclo magari..comportando la rottura di un utensile o la mancata apertura di uno stampo dopo l'iniezione....se finisco il ciclo , non pregiudico certo la temperatura eccessiva dell'olio che magari è salito a certe temperature in ore ed ore....

 

Logico invece un segnale fondamentale come uno scatto termico delle tensioni ausiliarie o di un motore di potenza che è fondamentale..lo considero grave, al pari del segnale dal modulo di arresto di EM , tanto devo bloccare tutto li......

 

poi giustamente con il solo paragone se la word ( o di più word ) è diversa da zero accendo la spia di anomalia e relativa sirena... indipendentemente dall'allarme o da più allarmi presenti....  in un solo segmento confronto decine e decine di allarmi

 

lo confesso :  ai miei primi "esperimenti" con S5 e le vecchie CPU   95...100.... non sapevo fare il confronto della Word ne tantomeno avevo in mente questo ragionamento..... avevo scritto un segmento con tanti contatti in parallelo che accendevano la spia di anomalia... stile quadri a relè con tutti i contatti delle termiche in parallelo...  e ricordo che mi ero anche arrabbiato perché l'allora editor in dos dello step 5 in un solo segmento non mi lasciava mettere più ti tot contatti in parallelo  ( praticamente il segmento non ci stava altro che in una videata... in due o tre.... :blink: )

 

Poi molti clienti mi chiedono semplici segnalazioni , più che altro per "guidare" gli operatori meno esperti del macchinario , in maniera che da un dispositivo HMI , in una determinata pagina, compaiano le sole segnalazioni di stato del macchinario  (  sono in manuale..sono in automatico...questo motore è avviato...quel valore è entro i limiti impostati, eccecc.... )

Inserita:

 

4  per le anomalie "gravi" che causano allarmi gravi

4  per le anomalie che non pregiudicano un ciclo automatico o che so, che comunque permettono di finire una lavorazione o portare a termine un piccolo ciclo

4  per le pure segnalazioni

 

:smile:

Questa cosa l'ho fatta in un'altra macchina,perchè al concetto che mica tutti gli allarmi devono portare ad una condizione tipo fungo premuto c'ero arrivato anch'io. Non ho usato la raffinatezza delle word ma solo qualche merker dichiarato come 'allarme grave' o 'allarme non grave'. In pratica ho creato due gruppi di merker i quali a seconda del gruppo di appartenenza potevano fermarmi la macchina 'ad Mazzum' :P  oppure semplicemente far apparire una segnalazione all'operatore e lasciare portare a termine il ciclo.

Al tempo la considerai una 'boiata pazzesca', non so perchè, forse perchè l'idea era venuta a me. Ora che so essere pratica diffusa, mi sento molto meglio...

 

 

Per assurdo , in un macchinario che esegue lavorazioni , lo scatto termico di una pompa di raffreddamento che so...dell'olio della centralina idraulica..lo considero non grave , e il confronto del valore diverso da 0 mi condurrà ad una condizione del tipo "pulsante arresto ciclo"

Perché inchiodare li il ciclo magari..comportando la rottura di un utensile o la mancata apertura di uno stampo dopo l'iniezione....se finisco il ciclo , non pregiudico certo la temperatura eccessiva dell'olio che magari è salito a certe temperature in ore ed ore....

 

Questo che dici è dannatamente vero. Gli allarmi non sono tutti uguali e bisogna che impari a distinguerli come mi hai consigliato.La prossima macchina che costruirò non sarà per uso interno ma per un cliente bulgaro( è la prima, spero di una lunga serie... :whistling: ) ed è per questo che voglio fare le cose nel migliore dei modi.

Poi certo, quando uso le uniche due macchine che ho comprato invece che costruirmele, e che dovrebbero essere state costruite e soprattutto programmate con tutti i criteri del caso...mi accorgo che certe cappelle sono state fatte anche dai cosiddetti programmatori 'esperti'. Ultima che ho scoperto...per dare velocità ed accelerazione ad un asse, mi accorgo che al variare di uno cambia valore anche l'altro in modo apparentemente casuale. Il genio ha usato probabilmente valori a 16 bit quando invece andavano usati a 32 o viceversa, fatto sta che quando vai a scrivere tipo una velocità > 65535 anche l'altro cambia valore.. o almeno sembrerebbe questo l'errore :huh:

 

Altra curiosità che ho sempre avuto. Nei miei programmi non ho mai usato allarmi di timeout, del tipo ogni movimento che comando in parallelo faccio partire un timer, e se quel timer scade prima che sia impegnato il finecorsa dell'attuatore corrispondente genero un allarme (grave o non ).

Voi come fate? ogni movimento un timer? solo i movimenti che ritenete pericolosi? Prevedete una fc solo per i timeout oppure li scrivete a mano a mano che andate avanti col programma?

 

Grazie ancora :worthy:

Inserita:

si si  gli allarmi di time out si..praticamente sempre......  altrimenti un ciclo automatico..potrebbe rimanere a metà e non avviarsi completamente anche solo per un cilindro aria bloccato.....

 

Ad ogni movimento corrisponde il fatto di controllare dopo alcuni secondi se il movimento è stato fatto

 

poche sono le situazioni dove invece questo crea "scompiglio" ovvero..dove magari un cilindro è stato messo come spintore , e il meccanico dagli e ridagli...fa spessori per limitarne la corsa.... e vai in anomalia senza che ci sia realmente

 

Ma la classica situazione di un manipolatore , dove un cilindro è guidato e deve compiere quella corsa  sisi  il time out si   o alla fine del blocco che decide quei movimenti o nel blocco anomalie

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