Vai al contenuto
PLC Forum


Distributore di bevande


rox_0213

Messaggi consigliati

salve a tutti,

questo è la consegna di un progetto, una volta completata la macchina a stati va tradotta in ladder e SFC. 

il mio problema è prima di tutto il fatto di avere 3 prodotti; per quanto riguarda la macchina a stati ho risolto con 3 transizioni distinte che vanno a finire nello stesso stato successivo (e non saprei se questo è giusto) ma non so se invece il tutto va gestito con 3 macchine a stati differenti.

 

so che il tutto vi può risultare banale, ma sono alle prime armi e mi sta mettendo in difficoltà. a livello di teoria ci sono ma poi come sempre la pratica è un'altra storia.

vi ringrazio già adesso per chiunque mi aiuterà a capire :)

Immagine.png

Link al commento
Condividi su altri siti


La mia dimanda è chiara: è un esercizio od un lavoro ben preciso su di una macchina ben precisa?

 

Rispondere che è un progetto da consegnare, non è una risposta.

 

Non è questione di sezione corretta o meno è questione di capire meglio il problema.

Leggendo il tesrto ha proprio l'aria di un esercizio scolastico. Specialmente il riferimento della descrizione tramite macchina a stati finiti, mai vista una richiesta simile su di una specifica.;)

 

Quote

ma poi come sempre la pratica è un'altra storia.

 

Se non specifichi con quale dispositivo intendi poi realizzare l'automazione, si rimane sempre nella teoria.:)

 

Anche la sezione potrebbe non essere la più adatta.

 

Link al commento
Condividi su altri siti

Si scusa hai ragione! Comunque è un progetto che devo consegnare in università, quindi si si può considerare come un esercizio. Non so ancora con che dispositivo andremo avanti poi! 

Per il momento mi è richiesto questo con seguente implementazione in ladder e sfc. :)

A questo punto sono sicura di aver sbagliato sezione! ?

Link al commento
Condividi su altri siti

In teoria la sezione può anche essere corretta, essendo un argomento di automazione. Se fosse già previsto un tipo ben preciso di PLC, ad esempio, sarebbe più indicata la sezione specialistica.

Comunque se si ipotizza l'uso di linguaggi ladder e SFC è chiaro l'intento di realizzare l'automazione, almeno sulla carta, tramite PLC.

 

Per venire alla tua unica domanda iniziale.

Per conto mio ritengo logico che ci sia un'unica macchina a stati che descriva il tutto. A meno che si vogliano cosiderare la distribuzione delle 3 bevande come 3 automazioni differenti mettendo un blocco sulla scelta iniziale del prodotto, ovvero una volta selezionato un prodotto non se ne può selezionare un altro sino a che non sarà terminata la sequenza. Però questa soluzione non la trovo ne bella, e elegante e nemmono pratica.

 

 

Link al commento
Condividi su altri siti

Io ho provato così ma non sono sicura che non sia giusta. 

Non so se inserire un altro stato "annulla" perché secondo me va a coincidere con "inizio".

Moneta indica se vale 0 che non ho inserito monete

Importo indica se vale falso che non ho inserito l'importo corretto

Annulla indica se vale 1 che sto annullando la prenotazione

Libero indica se vale 1 che lo sportello è libero e il prodotto può essere fornito. 

 

In realtà anche su importo e moneta non sono sicura perché nel testo è specificato di non inserire un dispositivo conta monete! 

 

20170129_175506.jpg

Link al commento
Condividi su altri siti

Forse se ti scrivessi un semplice diagramma di flusso, poi potresti ricavarti anche la macchina a stati richiesta.

Link al commento
Condividi su altri siti

Scusate per la foto! ? comunque ho fatto il diagramma di flusso. Adesso lo metto.

Comunque anche li non so bene come mettere l'annullamento. 

 

Ps. Scusate per l'ignoranza galoppante ma è ancora poco tempo che ho a che fare con queste cose e sono un pò in difficoltà (come è lampante dalla "conversazione") e vi ringrazio infinitamente per l'aiuto. 

14857722353146204121.jpg

Link al commento
Condividi su altri siti

Io il controllo dello scarico libero lo farei subito, prima ancora di lasciar selezionare il prodotto, perchè se lo scarico è occupato non dovrebbe essere possibile fare alcuna altra operazione. Non c'è nemmeno bisogno di mettere un tempo di attesa.

Metterei una verifica sul prodotto effettivamente scaricato (scarico occupato) e ritornerei all'inizio ciclo, perchè è la logica della macchina che prevede sia sempre in attesa di un comando.

Link al commento
Condividi su altri siti

non vorrei spostarmi da quello che c'è scritto quindi lo vorrei implementare così com'è scritto.

 

ieri pomeriggio ho rigurdato un pò di teoria e qualche esempio e alla fine ho realizzato queste tre macchine a stati: una per il processo principale, una per la scelta della bevanda e l'altra per l'avvio della sequenza.

 

potrebbe andare così?!

 

poi ho sempre un (tanti) problema con il fatto che le monete possono essere restituite; devo mettere una variabile apposita? (io ho usato Moneta per indicare se era stato introdotto o no denaro)

e inoltre anche il fatto che la bibita sia prelevata o meno, per tornare poi allo stato di attesa, io ho messo un ProdottoFornito che praticamente è la stessa cosa di Occupato come valori perchè quando lo scarico passa a occupato significa che il prodotto è stato fornito. ma come faccio? non so se così può andare sinceramente.

 

(il fatto che si resta nello stesso stato è implicito in questa rappresentazione, è quella che dobbiamo usare nel cartaceo da allegare al progetto per questo ho messo direttamente queste).

 

1.png

2.png

3.png

Link al commento
Condividi su altri siti

Quote

non vorrei spostarmi da quello che c'è scritto quindi lo vorrei implementare così com'è scritto.

 

Si vede che chi ha scritto il testo non ha idea di come si automatizzano le macchine.:lol:

 

E' un'operazione inutile e sbagliata far selezionare il prodotto ed inserire le monete se non si può scaricare. In un impianto reale il progettista verrebbe frustato sulla pubblica piazza.

Una macchina reale, se lo scarico non è libero, non permette alcuna operazione e si limita a segnalare l'impedimento. Idem per il prodotto non disponibile, non ne permetterebbe la selezione.

 

Mmmh, se questo è il modo di insegnare automazione..............

Link al commento
Condividi su altri siti

Livio, esercizi simili li facevano fare anche a me a scuola.

Non è questione di farti imparare l'automazione, ma farti imparare a programmare gestendo variabili messe lì apposta per incasinarti la logica.

Tante più variabili hai in gioco, tanto più logica viene richiesta allo studente (in teoria:superlol:), specie se sono condizioni "strane" che nella realtà difficilmente si replicano.

Di fatto, a rox viene prima fatta fare la gestione per erogare il prodotto e poi le fanno controllare se effettivamente si può fare, per complicarle un po la vita, quando bastava metterlo all'inizio della logica.

L'ulteriore stranezza è il fatto di poter resettare il ciclo dopo aver selezionato il prodotto ed aver inserito le monete, sarebbe voler dire che chi ha deciso la bevanda ci ha ripensato proprio dopo averla scelta e dopo averla anche pagata:superlol:.

L'esercizio è proprio questo alla fine.

 

Per quanto riguarda l'esercizio in sè..

Che succede se io metto le monete e lo scarico è occupato (quindi la macchina è in attesa di erogare) ed il professore "vigliacco" di turno abilita un altra selezione?

Dovrai interbloccare le selezioni al momento in cui l'utente paga, nel progetto ovviamente non ti viene detto di farlo, ma (parlo per esperienza personale), può capitare che il professore faccia davvero in modo di mettere in crisi il programma facendo azioni a cui tu, giustamente, non avevi pensato.

 

Fai bene a dividere il programma in funzioni separate.

Prima gestisci la selezione.

Poi gestisci le monete.

Alla fine gestisci lo scarico.

Link al commento
Condividi su altri siti

Quote

Non è questione di farti imparare l'automazione, ma farti imparare a programmare gestendo variabili messe lì apposta per incasinarti la logica.

 

Sei un po' troppo fiducioso nella competenza dei professori. In genere fanno così perchè sono avulsi dalla realtà e tendono a riciclare i soliti esercizi.

Anche ai miei tempi gli esercizi erano avulsi dalla relatà, solo che essendo io uno studente dei "corsi pomeridiani" che lavorava regolarmente, avevo molta più dimesticheza con i casi reali.

Un buon docente, come prima cosa, cerca di far capire al discente che i problemi devono essere semplificati al massimo, un problema complesso, va diviso in problemi semplici, che le soluzioni semplici sono in genere pià affidabili di quelle complicate.

La logica di programmazione non la si impara con complicazioni artificiose ed inutili, anzi.

Link al commento
Condividi su altri siti

Dovrei quindi aggiungere un'altra macchina a stati? Non va bene come ho fatto... perché pensavo che la parte dello scarico potevo metterla comunque su quella principale visto che ho un sensore che mi dice se lo scarico è o no occupato...

Link al commento
Condividi su altri siti

Alla fine se aggiungi una macchina a steti devi comunque farla comunicare con le altre, tanto vale integrare tutto in una sola macchina, vista anche la semplicità del problema.

 

per curiosità. dove studi? La mia curiosità è solo perchè conoscevo un professore che era un fanatico delle macchine a stati 8ma forse sarà finalmente andato in pensione:smile:)

Link al commento
Condividi su altri siti

  • 2 weeks later...

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