Max_1 Inserito: 12 ottobre 2002 Segnala Share Inserito: 12 ottobre 2002 Ciao a tutti,sono un principiante della programmazione, o meglio ho sempre messo mani al software di altri ma ora devo sviluppare personalmente.Devo affrontare delle applicazione sequenziali, macchine insomma, qualcuno ha degli esempi di programmi sequenziali da inviarmi, o delle indicazioni di dettaglio su cui iniziare?Aspetto con ansia una aiuto e oviamente un saluto a tutti, ciao.Mauri Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 14 ottobre 2002 Segnala Share Inserita: 14 ottobre 2002 Prova a cercare su Google Grafcet, vedrai che troverai un sacco di esempi, nel frattempo vedo se riesco a recuperare qualche link Ah, dimenticavo, se fai una ricerca in questo forum dovrebbero esserci già altre discussioni in cui dovrebbe esserci ciò che cerchi P.S. importante per tuttiQuando cercate qualche cosa o qualche aiuto, provate prima a fare una ricerca nei post del forum, vedrete che l'80% delle volte l'argomento è già stato trattato Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 14 ottobre 2002 Segnala Share Inserita: 14 ottobre 2002 Oltre a tecniche grafiche come ti è stato gia detto, Grafcet per progammazione se hai un ambiente che lo supporta o petric per l'analisi su carta, tecniche software, di solito io uso il gestore di salti ...di regola avrei una funzione che esegue un ciclo, un automa a stati finiti, per intenderci, ciascun stato sarà a sua volta un altro automa, e componendo fino ad arrivare all'azione ... ovviamente anche lo stato macchina sarà a sua volta un automa che si comporterà e attiverà sequenze a seconda dello stato manuale o automatico ...ciao Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 14 ottobre 2002 Segnala Share Inserita: 14 ottobre 2002 (modificato) ...qualche esempio? Modificato: 9 ottobre 2003 da NULL Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 14 ottobre 2002 Segnala Share Inserita: 14 ottobre 2002 Purtroppo non ti posso postare esempi concreti per alcuni motivi che evitiamo e facilmente comprensibili, dovuti a cause di forza maggiore,non dipendenti dalla mia volontà ma di chi mi da il pane quotidiano ... comunque il concetto potrebbe essere riassunto così :il gestore di passi io lo uso spesso, di regola dentro una FB (per siemens) o in una FC a seconda di cosa e come deve essere fatta, diciamo di usare una FC perchè la usiamo genericamente, si riserva su una DB opportunamente mappata un byte, quindiFC ......AUF DB[N_Db]L DBB0SPL NullSPA ST00SPA ST01SPA ST02...Null : L 0 T DBB0Inc: L DBB 0 inc 1 T DBB 0Att: BEAEnd:L 0 T DBB0 BEA// Qui inizieranno gli stati , per brevità immaginiamo che gli stati sono // appoggiati a dei Merker, ovviamente per fare le cose bene ci si // appoggerà a delle DB ...ST00: un M0.0 spb Att s M10.3 s A3.0 spa IncST01: ...ST08: u DB200.dbx3.3 spb F1 spa ENDF1: call FC1 spa AttIn questo modo si ha un automa, infatti ogni STxx è uno stato e attende una transizione per passare ad un altro stato, ad esempio, Se sono fermo attento tasto start e mi port in stato automatico.Se sono in stato automatico e cambio selettore, vado in stato inizio... una volta selezionato gli stati stessa cosa si fa per i movimenti ... dove si avranno sequenze, ciascuna gestita con il gestore di salti, ... Ovviamente, bisogna pensare bene la struttura per evitare poi guai ... Devo oltremodo, amettere che macchine ne ho fate poche, essendo passato a impianti di medie dimensioni, dove a una struttura a stati, si preferisce altre strutture, più lente e meno performanti sotto l'aspetto velocità, ma più semplici da manutenere in caso ampliamenti e soprattutto passaggio di knowhow ... almeno credo ... sto anchio ampliando il mio bagaglio ... ciaociao Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 15 ottobre 2002 Segnala Share Inserita: 15 ottobre 2002 il distributore di salti SPL puoi anche usarlo per saltare da un punto all'altro del programma eseguendo delle istruzioni e controlli ben precisi in base al valore di una variabile che tu gli dirai quanto varra' e lei te lo dira quando tu vorraiche solo quando qualcosa succede si devono fare certe cose, seno esegui quello cheavresti eseguito se non fosse successo quello che doveva succedere. esempio mw10 word fasi:mi alzo e vado verso la porta........mw10:=1 ; (awl l 10 ...T MW10)sto andando verso la porta? si ....mw10:=2 ; .....no ,mw10:=1cerco le chiavi : le trovo...............mw10:=4...non le trovo..............................mw10:=2devo infilarle nella serratura: tutto ok ??? mw20??? quanto vale?......vale mw20=23 allora le infilo e .....mw10:=5nel mio stupido esempio ti ho spiegato uno dei metodo che uso ,poi si possono personalizzare, parametrizzare , a seconda di quanto ti pagano, se avevi quel giorno piu fantasia dell'altro ecc.ciao e buon divertimento Link al commento Condividi su altri siti More sharing options...
Max_1 Inserita: 16 ottobre 2002 Autore Segnala Share Inserita: 16 ottobre 2002 Ciao ragazzi,devo ammettere che non avrei pensato ad una vostra risposta cosi celere, vi ringrazio ancora davvero.Devo però ammettere che non ho avuto indicazioni dettagliate come speravo, nel senso che ho capito come deve essere gestita una elaborazione su eventi.Eventi che, a loro volta, sono detrminati condizioni di passo, il punto è come agire nel dettaglio.Ad esempio ho un braccio pneumatico che deve fare quattro movimenti: alto-basso-destra-sinistra, e questi quattro movimenti sono "veri" se ho un feedback da un prossimity di fine movimento dell'asse, ed ancora, il braccio si deve muovere dopo che se ne è mosso un altro (movimento di un braccio terminato tramite bit di fine ciclo).Il tutto eseguito con un S7 313C + Mp 270 di SIEMENS.Per motivi particolari, devo fare in modo che ci sia il minor numero di istruzioni possibili in "pasto" alla CPU così da abbassare il più possibile il tempo di scansione del ciclo.Come agisco ???Ciao e grazie anticipate per l'aiuto Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 17 ottobre 2002 Segnala Share Inserita: 17 ottobre 2002 Ciao, se non erro la 313C ha la gestione di conteggi veloci, e ha se non erro SFB 47 che ti permette di gestire i conteggi veloci e costruirti sopra delle funzioni per comandare assi con encoder, vado a memoria perchè ho lavorato pochissimo con la 314C, l'ho usata solo per giocarci ?!?Il ciclo a passi ti permette di fare quello che vuoi, ogni ciclo macchina hai esecuzioni brevissime e particolareggiate, quindi poco codice eseguito ...problemi che incontrerai saranno come effettuare il cambio di stato, il preset movimenti ... e via dicendo ...ciao Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 17 ottobre 2002 Segnala Share Inserita: 17 ottobre 2002 se vuoi chiamami e appena posso passo a farti il software , mi dai le specifiche .......cioe dici che non siamo entrati nei dettagli non abbiamo specifiche , non conosciamo la macchina o automa che sia non sappiamo cosa stai facendo non sappiamo quanti bit stai usando non sappiamo niente le istruzioni sono quello che sono , se devi fare robot prenditi un controllonumerico o uno scara , i braccetti come dici tu si fanno a sequenza di passio a bit, o a word , o a mascheramenti ma sono sempre strumenti che si usano per arrivare allo stesso scopotutt'al piu ti posso consigliare questo :se "alza braccio" esempio q0.0 ti serve in piu di un passo durante il processo , ti conviene creare dei merker per ogni volta che devi alzarlo in circostanze diverse , dopodiche li metti tutti in OR pre generare l'uscitaciao Link al commento Condividi su altri siti More sharing options...
beppeconti Inserita: 17 ottobre 2002 Segnala Share Inserita: 17 ottobre 2002 Se puoi usare linguaggi evoluti un programma sequenziale si può fare semplicemente usando l'istruzione CASE...END CASE.Ogni Case corrisponde ad una fase della sequenza.Quando termini una fase incrementi il contatore usato dal CASE.Se devi saltare delle fasi basta scrivere nel contatore il numero di fase corrispondente.Questo metodo è molto leggibile ed ha il vantaggio che dal contatore vedi direttamente in che fase sei.Lo svantaggio è che probabilmente richiede piu istruzioni ( come compilato ) di una sequenza fatta con un linguaggio macchina.CIAO Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 17 ottobre 2002 Segnala Share Inserita: 17 ottobre 2002 mi sa che e' il contrario tutti i linguaggi evoluti una volta "esplosi" o compilati in linguaggio macchina sono piu incasinati e con istruzioni tortuoseprova a scrivere una sequenza in pascal e poi traducila in assembler o awl che sono piu bassi cioe vicini al linguaggio macchina e poi dimmi gia solo in scl tu scrivi tabella:=tabella[j] e in awl sara come minimo una ventina di righe tra puntatori ,scambi di accu TAK, e cagate varie lasciamo che lavorino le macchine , i compilatori al ns. posto ,li hanno creati apposta , il programmatore di plc deve garantire il processo ,l'impianto,la rete, il supervisore, usando linguaggi piu a lui vicini e semplici , perche poi del resto seconde me un linguaggio basic o scl o st o pascal nel contesto plc , sono piu semplici di awl o il , alla fine e' lo stesso , ma perche devo io ripetere routine di sistema quando lo fa il compilatore, per dire che sono bravo????io penso a produrre ed il tempo , che gia non basta mai, invece di buttarlo via a capire o mettere in piedi puntatori in awl che ogni volta e' un cinema lo spreco per migliorare ed ottimizzare l'impianto , poi lui compila e quello che va dentro nel plc mi interessa relativamente, l'unico linguaggio in lista di istruzioni che apprezzo di piu , proprio perche non e' un IL come awl o quali altri e' IL di telemecaniquecon assegnazioni variabili e processore matematico di alto livello l'informatica e' nata con il linguaggio macchina , poi la ripetizione dei comandi e' stata parametrizzata ed e' nato l'assembler, il cobol , il basicil pascal , il c, ilc++ sempre piu evoluti perche le necessita aumentano in grandezza e tutto cio che e' sempre piu piccolo viene inglobato in macro istruzioni anche l'hard disk e' sempre piu capiente , ma con dimensioni piu piccole dobbiamo crescere , conoscere e migliorare se vogliamo stare al gioco della tecnologia della quale tutti parliamo male , ma di cui tutti siamo dipendenti in maniera sempre piu consistente talvolta in discussioni del tipo quale linguaggio ti piace di piu ci si limita al pensier proprio di quale ci piace di piu perche non vogliamo conoscerespaventati da che cosa? da qualcosa che noi stessi abbiamo creato per la comodita di noi stessi e si critica perche non si conosce anche i microprocessori , con l'uscita di tecnologie avanzate sono rimpiazzati dai micro controllori e che nessuno mi dica che ' meglio programmare in assembler piuttosto che in basic , linguaggio cosi tanto criticato e vecchio ma tuttora in vigore ed evoluto poi senti dire che l'istruzione GOTO non lavora bene solo perche il compilatore di quel plc e' fatto male , ma poteva essere FORFU invece che GOTO e cosa cambiava che magari funzionava meglio eppure devo sentire anche ste stronzate , proprio oggi da un personaggio che programma plc da 20 anni ma facciamola finita e se vogliamo andare avanti diamoci da fare,studiamo, proviamo prima di dire questo linguaggio o quellose sono in africa parlo inglese o francese, se sono in uruguay parlo spagnolo e se sono in brasile parlo portoghese sono diversi modi di esprimer e le stesse cose indipendentemente da quanto potrebbero piacere o meno ciao a tutti Link al commento Condividi su altri siti More sharing options...
awl Inserita: 20 ottobre 2002 Segnala Share Inserita: 20 ottobre 2002 Nell esempio che hai fatto federico non ho capito delle cose, come avviene la successione delle fasi dell'automa perchè viene prima eseguito st00 poi st01....ecc ?, non ho capito bene cosa serve sapere il valore di dbb0 tato che mi sembra non venga mai confrontato. non ho poi capito il senso dell' ultima fase del programma ST08: u DB200.dbx3.3spb F1spa ENDF1: call FC1spa Att Link al commento Condividi su altri siti More sharing options...
awl Inserita: 20 ottobre 2002 Segnala Share Inserita: 20 ottobre 2002 pensandoci ho capito, in base al valore di dbb0, il comando SPL nel primo segmento determina se saltare a st00 ecc.... e dato che alla fine di ogni fase del ciclo dbb0 viene incrementato di uno i vari "salti" vengono eseguiti in sequenza. Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 21 ottobre 2002 Segnala Share Inserita: 21 ottobre 2002 walterword+Oct 17 2002, 09:54 PM-->CITAZIONE(walterword @ Oct 17 2002, 09:54 PM)Concordo Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 ottobre 2002 Segnala Share Inserita: 21 ottobre 2002 Quando, circa 25 anni fa, INTEL lanciò il primo compilatore PLM80 per il mitico 8080-8085, dava questa motivazione: "Un programmatore medio scrive circa 20 righe di programma al giorno (si intende che si calcola il tempo dell'analisi, della specificazione, debugging, documentazione, prove funzionali e quant'altro necessario per la certificazion), una riga di PLM80 corrisponde, mediamente, a 10 righe di assembler, pertanto la produttività di un programmatore è moltiplicata per dieci! Il PLM80 era un magnifico linguaggio ad alto livello, simile al Pascal ed al C, derivato da dal PL-11, che ti permetteva di avere il contatto diretto con la piattaforma HW. E' stato abbandonato nella sua versione PLM86 perchè soppiantato dal C, ma io lo rimpiango ancora.Questo per esemplificare qunato è più semplice ed efficace scrivere con linguaggi ad alto livello: magari potessimo usare il C per tutti i PLC, avremmo la portabilità totale indipendentemente dall'hardware (ecco perchè i produttori dei PLC tendono a non usarlo o a tenere nascosti gli eventuali compilatori).Al contrario usare l'assembler può sembrare più semplice perchè le operazioni sono uno a uno, ma gli errori sono moltiplicati per 10. Io, per esempio, che sono sempre distratto perchè mentre faccio una cosa ne penso altre dieci, sbaglio sempre i salti condizionati o mi dimentico dei registri che ho sporcato, poi per trovare l'errore sono lacrime, sudore e tanta m... da spalare. Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 21 ottobre 2002 Segnala Share Inserita: 21 ottobre 2002 Si AWL l'istruzione SPL determina in che punto saltare e quindi quale SPA attivare, ovviamente poi come giostrare le cose poi lo decidi, se è una sequenza allaora va bene il metodo che ho messo ovvimante non è l'unico se invece è un vero automa a sati finiti allora bisogna imporrre i salti all'interno dei stati ... ma qui dipende da cosa si vuole e come fare ...ciao Link al commento Condividi su altri siti More sharing options...
curob21 Inserita: 21 ottobre 2002 Segnala Share Inserita: 21 ottobre 2002 (modificato) Livio Orsini+Oct 21 2002, 12:41 PM-->CITAZIONE(Livio Orsini @ Oct 21 2002, 12:41 PM)Era bellissimo: il giusto compromesso tra LM e Linguaggi evolutiIo pero utilizzavo il PLM96 per 8096-196KB Dieci anni dopo di teoggi scrivo in C & Assembler sotto SH2-3(Hitachi) e ti assicuro che qualche volta lo rimpiango anche io. Modificato: 9 ottobre 2003 da NULL Link al commento Condividi su altri siti More sharing options...
awl Inserita: 26 ottobre 2002 Segnala Share Inserita: 26 ottobre 2002 Perchè per realizzare un automa vero bisogna imporrre i salti all'interno dei stati ? un automa non è una sequenza ? ESEMPIO......... Link al commento Condividi su altri siti More sharing options...
awl Inserita: 28 ottobre 2002 Segnala Share Inserita: 28 ottobre 2002 up Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 29 ottobre 2002 Segnala Share Inserita: 29 ottobre 2002 L'automa è una definizione generica ... i salti non sono l'unico modo, anzi un automa andrebbe fatto con una matrice di stait e una matrice di uscite ... ma questo esula ... dal discorso ...Siccome una macchina sequenziale è vista anche come un semplice automa e in questi casi è meglio non scomodare le matrici di transizione visto anche l'esigua potenza di calcolo di un PLC ... e visto che sono stati sequenziali ... risulta semplice usare salti ... Ovviamente non è la regola .... del resto essere generici si sbaglia ma andare nel detaglio non si può per ovvi motivi ...ciao Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 29 ottobre 2002 Segnala Share Inserita: 29 ottobre 2002 sto realizzando un sistema di sequenze che e' la fine del mondo praticamente mappo tutti i bit delle utenze , l'offset dei puntatori il tempo tra una sequenza e un'altra , ed in fine un comando esternoil tutto gestito da un file di excel che mi calcola tutte le DVx e che vado a caricare nel blocco dati del s7-200se devo fare qualche operazione di urgenza basta far puntare alla DVx che precedentemente mappata eseguira il tutto dimenticavo il tutto parametrizzato per piu di un richiamo se eventualmente volessi in fase di messo in servizio dover cambiare una sequenza o un tempo non dovro far altro che aprire il file di excel ,modificare , e copiare il valore espresso in doppio intero nel blocco dati , senza toccare minimamente il software , quindi messa in servizio solo con un pannellino non e' una figata ????certo ti devi spaccare un attimino la testa , e studiare gli strumenti che hai a disposizione , ruota word , puntatori shift ecc . ecc. si puo fare in tanti modi la sequenza studia , studia , e studia e invece di sprecare il tempo a chiedere quello che nessuno ti dira' , prova , prova ,studia , sbaglia, rifai , ristudia e riprovaciao Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 29 ottobre 2002 Segnala Share Inserita: 29 ottobre 2002 (modificato) Mauri+Oct 12 2002, 08:27 PM-->CITAZIONE(Mauri @ Oct 12 2002, 08:27 PM)Non penso che esista "il modo PIU' migliore", in ogni caso se non hai molta esperienza ti consiglierei di fare così:1.Prima di sapere cosa deve fare la macchina chiedere cosa NON DEVE FARE assolutamente la macchina.Il che vuol dire che in "serie" alle uscite dovrai programmare tutte le condizioni di sicurezza indipendentemente dal ciclo automatico o comandi manuali.In questo modo hai la sicurezza di non fare danni, al limite non va! (esempio lo stampo non si abbassa se il carrello non è indietro, oppure la coclea di dosaggio non parte se lo scarico della bilancia non è chiuso)2.Un uscita anche se comandata più volte nel ciclo deve essere programmata in un unico posto e non utilizzarla nei vari punti del programma.3.Per quanto riguarda la sequenza prima di iniziare con istruzioni "complesse" (complesse nel senso che in fase di debug potrebbe essere un problema non conoscere a fondo l'istruzione o la funzione utilizzata) utilizzerei dei normali merker con le sole istruzioni set-reset.Tipo passo 1 = set m1.0, passo 2 =set m1.1......fine sequenza reset m1.0,m1.1.....Questo sistema a mio avviso è valido anche se probabilmente richiede un impegno maggiore di memoria del PLC e un attenzione maggiore nel caso si debba cambiare o modificare il programma.Ciao Modificato: 9 ottobre 2003 da NULL Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 30 ottobre 2002 Segnala Share Inserita: 30 ottobre 2002 se al posto di settare o resettare merker usi una word ??tieni sotto mano meglio la sequenza , hai la possibilita di eseguire 65535casi o fasi risparmiando 65519 bit ad ogni passo la incrementi o la decrementi se torni indietro e poi fai i controlli a seconda di quanto vale ed in giro nel programma e' sempre lei , al posto di merker con tanti indirizzi diversi prova Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 30 ottobre 2002 Segnala Share Inserita: 30 ottobre 2002 Walter bellissima la tua idea, ... unico mio problema è che sono in un teem di "anziano" e non posso imporre la mia idea ... figurati che per introdurre le UDT ho dovuto sudare mille camice, per introdurrre i SPL sto ancora litigando ... per introdurre il simbolico ;-( ... behh ci sto lavorando ... ma in S5 si lavorava così male ?!? per fortuna che non lo conosco ... e per fortuna che ho incominciato subito con S7 300.Walte se ti è possibile senza troppi dettagli o a tua descrizione mi potresti spiegare meglio come realizzi la struttura e come ti giostri con exel ?!?Infatti sto cercando di imporre una struttura protetta e gestita a sequenze, parametrizzate su DB ... Quel che posso fare però è dare una struttura alle FB/FC che hanno aree mappate su DB, ma se ho capito bene quello che hai fatto e una stra.... fi...a ......ciao Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 30 ottobre 2002 Segnala Share Inserita: 30 ottobre 2002 Federico Milan+Oct 30 2002, 07:58 AM-->CITAZIONE(Federico Milan @ Oct 30 2002, 07:58 AM)Anch'io sono curioso di come fai... e soprattutto mi manca un passaggio: non ho ben capito come fai il passaggio da excel al tuo linguaggio di programmazione. Lo esporti come file di testo e lo reimporti nell'editor??? 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