yupanqui Inserito: 15 marzo 2004 Segnala Inserito: 15 marzo 2004 (modificato) Salve atutti!ho aperto questa discussione per trovare insieme un modo di programmare i plc che sia il piu' comodo e veloce possibile......Lo so che la perfezione non esiste ma almeno cerchiamo di avvicinarci!Io programmo da circa 5 anni e il mio modo di programmare e' il seguente:Quando la macchina che devo programmare e' completata, la suddivido ingruppi elementari.....Ogni gruppo fa una cosa specifica e avrà una sua routine che lo controlla.L'insieme delle routine costituisce il programma. (es: GRUPPO1, GRUPPO2...)Poi ci sono altre routine che controllano lo stato della macchina.La routine GENERAL ad esempio serve per far andare la macchina in start,stopsemiautomatico,fine lotto........Poi c'e' la routine degli allarmi e quella del pannello operatore, ma per ilmomento non entro nei dettagli.Spiego invece le routine dei vari gruppi:es: GRUPPO1Ogni gruppo ha un suo start; per il GRUPPO1 avrò lo START01,Ha un bit che indica che il gruppo sta lavorando GR01WRK (GRUPPO1 IN WORK)E tutta una serie di step (G01S000,G01S001....G01S030 ecc.)Inizialmente il gruppo parte dallo step 0.Vi allego un diagramma di flusso che di solito faccio prima di iniziarea scrivere il programma in ladder!Fate conto che il GRUPPO1 dovrà muovere un cilindro avanti e indietro.....Quindi il gruppo parte con lo start, e viene settato lo step1.Sullo step1 muovo il cilindro in fuori, controllo il sensore e se il movimento è andato a buon fine vado allo step 3 altrimenti vado in allarmesullo step2.La stessa cosa per far rientrare il cilindro.Alla fine torno allo step 0 e il ciclo ricomincia.Chiaramente ho ridotto il tutto ai minimi termini per semplificare un po,ma spero di avervi fatto capire comunque quale è il mio modo di programmare.Che ne dite di questo sistema???Si puo migliorare??E poi..... Voi fate diversamente????Aspetto vostre risposte.... Tony. Modificato: 15 marzo 2004 da silver
ifachsoftware Inserita: 15 marzo 2004 Segnala Inserita: 15 marzo 2004 (modificato) Stai usando un metodo di programmazione (Grafcet) che per me e' uno standard , mentre per molti altri e' un optional che pagano amaramente quando devono metterci sopra le mani degli altri o .... loro stessi.Su questo tema sono gia' stati fatti molti post , se provi con il cerca alla voce Grafcet troverai diversa documentazione.Ciao Modificato: 15 marzo 2004 da ifachsoftware
AndreaC Inserita: 15 marzo 2004 Segnala Inserita: 15 marzo 2004 Hai realizzato un modello di macchina a stati finiti; altro esempio, oltre a Grafcet, è SFC.La grafica che hai utilizzato richiama un modello matematico più evoluto, le Reti di Petri.Personalmente lavoro con lo stesso metodo.Ciao
yupanqui Inserita: 15 marzo 2004 Autore Segnala Inserita: 15 marzo 2004 Intanto grazie per le risposte.....Ora faccio le dovute ricerche...Questi nimi che avete tirato fuori sono nuovi x me.....Intanto vi ringrazio.Tony.
yupanqui Inserita: 15 marzo 2004 Autore Segnala Inserita: 15 marzo 2004 (modificato) OK..Ragazzi mi sono documentato sul Grafcet! Che a mia insaputa e' praticamente uno standard....Ma quale altro modo di programmare i plc esiste??In particolare mi e' capitato di vedere altri programmi dove non c'è neanche un set o reset ma soltantocoil....???Che tipo di programmazione e' quella??Tony. Modificato: 15 marzo 2004 da silver
ifachsoftware Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 In particolare mi e' capitato di vedere altri programmi dove non c'è neanche un set o reset ma soltantocoil....???Che tipo di programmazione e' quella??E' la programmazione che facevano gli elettricisti quando non c'erano i PLC (con i rele') , considera che un'autoritenuta e' un Set e il reset lo fa un pulsante normale chiuso...Comunque persegui per la tua strada che e' la migliore (a livello generale) , naturalmente se ci sono delle funzioni critiche per la velocita' di esecuzione e' meglio per quelle usare funzioni a contatti ottimizzate (il grafcet richiede piu' risorse , il suo vantaggio e' la facilita' di lettura e gestione).Ciao
Claudio Monti Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 x SilverAnch'io programma in GRAFCET ovunque possa farlo, come dice IFACH... e' molto semplice, facile, veloce ed intuitivo...Vorrei pero' chiederti una cosa: tu hai disegnato praticamente uno schema "standard" Grafcet senza sapere cosa sia il Grafcet? Da dove hai preso "lo stile" di realizzazione dello schema?
yupanqui Inserita: 16 marzo 2004 Autore Segnala Inserita: 16 marzo 2004 x Claudio Monti...Ho imparato questo metodo ma un ingegnere che prima faceva i programmi nella mia ditta....evidentemente lui conosceva bene questo GRAFCET!A me e' sembrato subito molto semplice programmare in questo modo, anche perche' mettere le mani in un programma dove manca un flow chart secondo me e' un impresa quasi impossibile anche se sono stato io il realizzatore.Quello che invece vorrei migliorare è il fatto che se vengono apportate modifiche alla macchina quando io ho gia definito i gruppi mi rimane difficile far fare a 1 gruppo 2 cose contemporaneamente anzi e' impossibile.Mi spiego:Ultimamente ho programmato una macchina che faceva le memory card MMC.nella parte terminale c'era un pick & place che prendeva la memory la metteva su un ruotatore che la ruotava di un angolo programmabile e poi un altro pick & place che la prendeva dal ruotatote e la metteva su un vassoio.Io ho considerato il 1 pick & place insieme al ruotatore come un unico gruppo. Per motivi di tempo di ciclo ho dovuto far eseguire al 1 pick & place un operazione mentre il ruotatore ruotava la memory,quindi lascio la memory sul ruotatore e mentre lui la ruota il pick & place va a prenderne un altra......Quindi il flow chart si divide in quel punto e non potendo attivare piu' di uno step per volta sono rimasto fregato...Alla fine ho creare un altro gruppo per il ruotatore.Questo problema che gia' mi era capitato altre volte mi lascia un po perplesso e mi ha spinto a postare qui sul forum... per avere quanto meno dei consigli per migliorare!Infine volevo chiedervi quali programmi usate per fare questo benedetto flow chart,perchè io uso edge diargammer ma non credo che si addice molto ai PLC!Grazie ragazzi confido in voi. Tony.
Stefano Sormanni Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Il grafcet lo trovo utilissimo quando vi sono delle fasi sequenziali sulla macchina, che non possono essere scollegate l'una con l'altra, io purtroppo ho diversi elementi che non sono ciclici e per di più uno diverso dall'altro, quindi perderei in flessibilità (penso..... )
rguaresc Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 " e non potendo attivare piu' di uno step per volta sono rimasto fregato... "Puoi usare quelle strutture del GRAFCET che si chiamano "divergenza And" e "convergenza AND"Dal passo che precede le due operazioni simultanee, quando e' convalidata la transizione, attivi due (o piu') passi distinti e da li avvii due sequenze indipendenti che alla fine si devono riunire quando sono entrambe al loro ultimo passo rientrando su un solo passo.
nll Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Premetto che di PLC ne capisco n/infinito, ma volevo porre alla vostra attenzione altri due approcci alla soluzione dei problemi utilizzati in informatica (il primo anche fuori da questo campo):UML (Unified Modeling Language)Sebbene ora venga utilizzato particolarmente nella programmazione informatica, ho avuto modo di applicarlo anche nel campo della organizzazione della produzione in una industria di confezioni in serie.La tecnica include anche il diagramma di flusso. Chiaramente progettare con l'ausilio dell'UML trova la sua massima ragion d'essere quando le cose si fanno complicate e c'è da gestire un fenomeno complesso e articolato, se il problema è già prossimo all'azione elementare, probabilmente non serve addentrarsi in questa tecnica.Ecco alcuni link per l'UMLhttp://programmazione.html.it/uml/index.htmlhttp://www.mokabyte.it/1998/09/uml.htmhttp://www.analisi-disegno.com/uml/uml.htm#UMLhttp://www.tecnetdati.it/portale/default.aspPoi uso anche fare un abbozzo del programma utilizzando lo Pseudo-Codice, si tratta di scrivere il programma descrivendone le azioni, le variabili in gioco, le condizioni, con un linguaggio vicino a quello naturale.Nel caso del diagramma postato da silver avremo:Inizia procedura GR01WRK----Esegui procedura finché (Vero)--------Comandare apertura cilindro (50Q)--------Se aperto cilindro (50Q)------------Prosegui procedura--------Altrimenti------------Esegui procedura AXAL001 (GR01WRK.50Q)------------Se ritorno errore fatale----------------Esci dalla procedura------------Fine Se (errore fatale)--------Fine Se (aperto cilindro)--------Leggi segnale sensore 321 (ON)--------Attendi Timer (0.1 sec)--------Comandare chiusura cilindro (51Q)--------Se chiuso cilindro (51Q)------------Prosegui procedura--------Altrimenti------------Esegui procedura AXAL002 (51Q)------------Se ritorno errore fatale----------------Esci dalla procedura------------Fine Se (errore fatale)--------Fine Se (aperto cilindro)--------Imposta valore per fine procedura (Vero/Falso)----Fine Finché (Vero)Fine ProceduraInizia procedura AXAL001----Ricevi i dati dal chiamante (GR01WRK.50Q)----Leggi segnale sensore (OFF)----Attendi Timer (5 sec)----Se Segnale Stop (ON)--------restituisci Errore Fatale----Altrimenti--------riprendi procedura chiamante (restituisci Nessun Errore)----Fine Se (Stop=ON)In modo analogo scriverai anche AXAL002In questo modo sarai in grado di monitorare la struttura del tuo programma, scomporre i problemi in sottoproblemi più semplici, sino ad arrivare alle istruzioni elementari.Puoi impostare le procedure e lasciare che i programmatori del tuo staff inseriscano le opportune righe di codice lavorando simultaneamente, senza il pericolo che il loro lavoro entri in conflitto col lavoro degli altri.Non badare se ho interpretato bene il programmino del tuo esempio, in quanto non sono ferrato in PLC, ma cogli l'idea della tecnica di programmazione.Meglio o Peggio? Dipende molto da te, ma queste due tecniche non si escludono a vicenda, sono il frutto di intuizioni e di esperienza di molti, ed ora sono la base per qualsiasi corso di programmazione informatica.
luciopro Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 io personalmente non uso il grafcet, non lo conosco bene....comunque per realizzare cicli sequenziali uso dei ciclia fasi; cioè uso una merker per il registro delle fasi (fase 1, fase 2 fase 3 ecc).All'inizio di ogni seuenza controllo di essere in quella fase, se cosi eseguo le istruzioni, altrimenti passo alla fase successiva.In questo modo non perdo flessibilità e il programma rimane piuttosto pulito...non so se ho reso l'idea.
nll Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Scusate, ho visto ora che non vi serviva una tecnica di programmazione, ma un software che vi consenta di programmare e rappresentare graficamente il vostro programma. Nello scrivere il post non avevo visto i messaggi seguenti, che hanno reso superfluo quanto ho scritto. Spero che almeno possa essere utile ad altri che, invece, si approcciano alla programmazione (in qualunque campo) per la prima volta.
Claudio Monti Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Alcune marche di PLC ti danno la possibilita' di disegnare il diagramma direttamente nell'ambiente di programmazione (es. Schneider), altre marche prevedono un pacchetto aggiuntivo a pagamento (es. Siemens).In questo modo riesci ad integrare direttamente il tuo diagramma con il programma dle PLC, altrimenti puoi usare programmi di disegno (es. SmartDraw) ma poi devi tradurre il diagramma in FASI e TRANSIZIONI cosi' come gia' spiegato in diverse discussioni sul Grafcet.
yupanqui Inserita: 16 marzo 2004 Autore Segnala Inserita: 16 marzo 2004 Grazie ragazzi!Siete sempre preziosi.......x luciopro!Scusa ma non ho capito bene....Puoi spiegare meglio il tuo metodo??Tony.
yupanqui Inserita: 16 marzo 2004 Autore Segnala Inserita: 16 marzo 2004 x rguaresc!Generalmente utilizzo un registro che mi da il numero dello step attivo in quel momento.....Questo per controllare su che step sta il programma del gruppo.Facendo come dici te avrei piu' step attivi e questa cosa non funzionerebbe piu'.E poi ieri ho scaricato un manualetto pdf sul linguaggio SFC e questa condizione era segnalata nella sezione "situazioni e costrutti da evitare"Apprezzo comunque quello che hai detto....Chiaramente e' un modo per risolvere il mio problema senza creare un altro gruppo.....ma non e' che mi piaccia molto, anche perche' i programmi che vado a fare sono generalmente complessi con gruppi che arrivano anche a 90 step e quindi il debug in caso di errori diventerebbe molto complicato.Se ci sono altre idee....io sono qui!
beppeconti Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Il grafcet l'avevo usato per la stesura di alcune specifiche software, è un bel metodo ma non sempre risulta conveniente usarlo, dipende dal tipo di automazione. Per la stesura delle specifiche avevo usato Word.Per i programmi a step uso l'istruzione "select case" di SCL Siemens che +o- è quello che ha accennato precedentemente LucioPro.In un DATOFASE memorizzi la fase come numero, per esempio 10,20,30,...,1000; in base al numero di fase esegui una routine, e alla fine della routine passi alla fase successiva impostando nel DATOFASE il numero corrispondente. Se vuoi sapere in che fase sei basta che ti leggi il contenuto del DATOFASE.Se vuoi eseguire più fasi contemporaneamente indicizzi il DATOFASE che quindi diventa DATOFASE(n).Ci sono anche altri metodi comunque, il limite è la fantasia.CIAO
ifachsoftware Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 mettere le mani in un programma dove manca un flow chart secondo me e' un impresa quasi impossibile anche se sono stato io il realizzatore.Parole sante. Per il problema di scatenare ad un certo punto due problemi diversi che poi devono ricongiungersi , nessuno di vieta in quel passo di scatenare 2 cicli grafcet differenti , e procedere al passo successivo per esempio alla terminazione dei 2 cicli grafcet 'paralleli'Ciao
rguaresc Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 Se il sistema che controlli e' complesso e deve fare operazioni indipendemti non conviene rappresentare ogni singolo stato con un passo. Il GRAFCET / SFC e' un linguaggio che si adatta al nostro modo di pensare "umano" soprattutto; di fronte a un problema complesso noi non riusciamo ad identificare tutti i singoli elementi e le loro relazioni, ma andiamo per strutture. Tu ad esempio descrivi"c'era un pick & place che prendeva la memory la metteva su un ruotatore che la ruotava di un angolo programmabile" E poi"un altro pick & place che la prendeva dal ruotatote e la metteva su un vassoio."Nella tua mente hai costruito due strutture congiunte da una E per analizzare e descrivere le lavorazioni, perche' cosi' puoi concentrarti a pensare all'una o all'altra, mentre pensare alle due lavorazioni nel loro complesso sarebbe piu' difficile.Lo standard SFC (EN61131-3) prevede le strutture di controllo "sequenza simultanea, divergenza" e "sequenza simultanea, convergenza". L'essenziale e' non fare salti a casaccio, ma per ogni sequenza avere un solo punto di ingresso e di uscita.
yupanqui Inserita: 16 marzo 2004 Autore Segnala Inserita: 16 marzo 2004 (modificato) x ifachsoftwareNon posso farlo perche' il mio gruppo setta quando parte il bit "gr01wrk" (gruppo1 in work)Se poi il grafcet si divide in 2 e su un ramo per esempio ho un allarme io resetto il bit del gruppo in work mentre magari dall'altra parte sto muovendo un cilindro o un motore.....L' end di tutti i gruppi in work negati mi fa aprire gli interblochhi delle porte e se sull'altro ramo ancora sto muovendo qualcosa l'operatore ci rimette un dito.... !Ma forse non ho ben capito quello che volevi dire....tony. Modificato: 16 marzo 2004 da silver
ifachsoftware Inserita: 16 marzo 2004 Segnala Inserita: 16 marzo 2004 (modificato) Non so come hai implementato il grafcet , ma se usi i set-reset che sono disponibili in tutti i PLC puoi tranquillamente lanciare piu' grafcet da uno unico e sincronizzarli tra di loro.Per chiarirti meglio la cosa prova a guardare questo esempio GrafcetCiao Modificato: 16 marzo 2004 da ifachsoftware
luciano Inserita: 17 marzo 2004 Segnala Inserita: 17 marzo 2004 CLAUDIO MONTI DICE :<In questo modo riesci ad integrare direttamente il tuo diagramma con il programma dle PLC, altrimenti puoi <usare programmi di disegno (es. SmartDraw) ma poi devi tradurre il diagramma in FASI e TRANSIZIONI cosi' <come gia' spiegato in diverse discussioni sul Grafcet. E' QUELLO CHE FACCIO IO ordinariamente ..lo uso persino sullo zelio della telemecanque...lo applico anche nel visual basic... nel c... e nell assembler..le regole sono sempre le stesse pero' bisogna conoscerle bene per quando riguarda il programma il programma per il flow chart anche io uso smartdrawciao
ifachsoftware Inserita: 18 marzo 2004 Segnala Inserita: 18 marzo 2004 Il Flow-Chart dovrebbe essere la regola per chi parte a fare un programma , purtroppo troppo spesso uno parte a fare il programma e si accorge di aver fatto un programma ingestibile quando aumenta troppo di complessita'.Il Grafcet secondo me e' una via di mezzo che permette di schematizzare un processo in maniera 'simil flow-chart' , generando un codice immediatamente traducibile a su qualsiasi plc che supporti anche solo il semplice ladder , col vantaggio che dando un'occhiata ai disegni del grafcet uno capisce in maniera semplice di come e' stata strutturata la cosa , in quanto che il grafcet permette di spezzattare bene in tutti i singoli problemi in altrettante subroutine.Ciao
yupanqui Inserita: 18 marzo 2004 Autore Segnala Inserita: 18 marzo 2004 Ragazzi io uso normalmente il plc della GE e quindi il flow chart devo farlo con un programma a parte che non c'entra nulla con i plc.Magari qualcuno puo' spiegarmi meglio quali sono le qualita' di questo smartdraw......???Comunque sia quando ho iniziato a lavorare nella mia ditta il programmatore che c'era prima non utilizzava i flow chart e adesso quando io devo fare delle modifiche sui suoi programmi mi viene da piangere Il suo modo di programmare non era diverso dal mio sempre a fasi con set e reset, ma non essendoci documentazione..... non si riesce a seguire il flusso logico e quindi fare delle modifiche risulta molto difficoltoso.Fatemi sapere qualcosa in piu' su questo smartdraw....Perche non sono molto soddisfatto del mio Edge Diagrammer..... (Il programma di flow chart che utilizzo attualmente)Grazie, Tony.
luciano Inserita: 18 marzo 2004 Segnala Inserita: 18 marzo 2004 smartdraw serve per disegnare un diagramma di flusso ne piu' ne meno.io normalmente lavoro con carta e matita per realizzare il mio flow chartsolo quanto ho finito il tutto riporto in bella copia con smartdraw
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