Pagina 1 di 2

programma in AWl:come faccio???

MessaggioInviato: 26 ott 2005, 19:19
da papo
allora,
senza entrare troppo nel dettaglio dovrei progettare (al livello didattico)un magazzino automatico che sia gestito da un PLC opportunamente programmato.
Il processo si sviluppa in un nastro trasportatore che porta i pacchi in prossimità di un braccio
meccanico che poi assolverà proprio al compito di posizionare questi in
delle scaffalature .

Il linguaggio di programmazione che sto cercando
di usare per la stesura del codice è l'AWL e
il pacchetto software
impiegato è lo Step 7.

Come simulo un encoder assoluto o incrementale??
Infatti quando dovrò posare il pacco dovrò
dire al braccio meccanico ,di salire ad esempio di 30 cm e traslare di 120 cm ma come faccio ciò??
Come creo il codice AWL per dire al braccio di far ciò??

Poi un'altra cosa:
mio processo ci sarebbe un sensore che ad un dato istante,mentre il
pacco scorre sul nastro trasportatore,mi rileva le sue dimensioni di
base.
Dal punto di vista simulativo devo "inventarmi" il codice che simula questo sensore e il suo
funzionamento (almeno credo che si proceda così).

Dovendo implementare allora tale dispositivo avevo pensato di crearmi un insieme numerico che contiene le dimensioni di base dei pacchi che saranno via via incontrati.
Ad esempio pensavo di generare un insieme così fatto:

{ (30x50) , (70x40) , (37x45) }

in cui i pacchi possono avere SOLO le suscritte dimensioni di base(non mi interessa l'altezza del pacco).Ogni termine tra parentesi mi rappresenta quindi le dimensioni di un pacco che dovrò stoccare e quindi partiamo dal presupposto che potrò stoccare solo 3 tipologie di pacco.
Capisco che c'è la limitazione che i pacchi potranno avere solo quelle dimensioni ma non
mi interessa più di tanto.

Se supponiamo quindi che saranno caricate solo 3 tipologie di pacco,P1,P2,P3,allora
la funzione random dovrebbe passarmi ,al primo step, le dimensioni di
uno dei 3 pacchi(ad esempio(30x50)) ,poi al secondo step le dimensioni
di un altro dei 3 pacchi(che può essere casualmente delle stesse
dimensioni di quello di prima o diverso) e così via.Posso caricare ,ad
esempio,n pacchi ma questi ,possono avere solo le dimensioni
dell'insieme che le ho riportato:
{ (30x50) , (70x40) , (37x45) }

La funzione che dovrei creare dovrebbe quindi "estrarre" uno di
questi "set" di dimensioni di base e memorizzarli poi in una
opportuna lista.
Ebbene,mi sono fermato ancora prima infatti non ho trovato nella
documentazione relativa allo step 7 ,né tantomeno nella lista dei
comandi di AWL, alcuna funzione random .

Grazie anticipatamente

MessaggioInviato: 5 nov 2005, 19:09
da m_dalpra
Carissimo "PAPO",
le questioni che poni sono molteplici.
Da quello che sembra vuoi programmare un PLC che pero' non e' collegato a nulla e quindi il campo devi simularlo.

Personalmente non mi sono mai trovato in questa situazione paradossale quindi posso esprimere qualche idea.

Per gestire un encoder nel software di un PLC (qualunque sistema di programmazione usi ) si deve usare un contatore veloce o un contaimpulsi.
Il braccio quindi si ferma quando il numero di impulsi conteggiati supera la quota impostata.

Devi quindi generare una serie di impulsi con un timer per gestire in modo simulato questa situazione.

Costruisci ovviamente il programma reale, ed a parte in un'altra zona di memoria del PLC, il programma simulatore.

Spero di esserti stato d'aiuto.

Ciao
Marco

MessaggioInviato: 6 nov 2005, 10:46
da papo
m_dalpra ha scritto:Carissimo "PAPO",
le questioni che poni sono molteplici.
Da quello che sembra vuoi programmare un PLC che pero' non e' collegato a nulla e quindi il campo devi simularlo.

Personalmente non mi sono mai trovato in questa situazione paradossale quindi posso esprimere qualche idea.

Per gestire un encoder nel software di un PLC (qualunque sistema di programmazione usi ) si deve usare un contatore veloce o un contaimpulsi.
Il braccio quindi si ferma quando il numero di impulsi conteggiati supera la quota impostata.

Devi quindi generare una serie di impulsi con un timer per gestire in modo simulato questa situazione.

Costruisci ovviamente il programma reale, ed a parte in un'altra zona di memoria del PLC, il programma simulatore.

Spero di esserti stato d'aiuto.

Ciao
Marco


grazie per i consigli,
Ciao

MessaggioInviato: 8 nov 2005, 19:42
da m_dalpra
A proposito, per misurare un "corpo" su di un nastro trasportatore (cosa che ho fatto realmente) puoi procedere in questo modo.

a) Un rullo folle del nastro trasportatore ha calettato un encoder, che conta sempre quando il nastro si muove.

b) Una fotocellula quando vede transitare il pacco azzera il contatore veloce di quell'encoder, che quindi inizia a contare da zero.

c) Quando la fotocellula si libera si imposta un bit del contatore veloce in modo che non esegua piu' il conteggio (talvolta chiamato HOLD).

d) A questo punto copi il valore di conteggio in un'altra zona di memoria del PLC dove fare le elaborazioni del caso (moltiplicare gli impulsi per il valore di conversione al fine di ottenere i centimetri).

Spero di averti dato qualche altra idea utile.

MessaggioInviato: 8 nov 2005, 21:40
da papo
m_dalpra ha scritto:A proposito, per misurare un "corpo" su di un nastro trasportatore (cosa che ho fatto realmente) puoi procedere in questo modo.

a) Un rullo folle del nastro trasportatore ha calettato un encoder, che conta sempre quando il nastro si muove.

b) Una fotocellula quando vede transitare il pacco azzera il contatore veloce di quell'encoder, che quindi inizia a contare da zero.

c) Quando la fotocellula si libera si imposta un bit del contatore veloce in modo che non esegua piu' il conteggio (talvolta chiamato HOLD).

d) A questo punto copi il valore di conteggio in un'altra zona di memoria del PLC dove fare le elaborazioni del caso (moltiplicare gli impulsi per il valore di conversione al fine di ottenere i centimetri).

Spero di averti dato qualche altra idea utile.


c2) Oppure un bit blocca


solo che devo prendere le DUE dimensioni di base e non solo la profondità

MessaggioInviato: 9 nov 2005, 15:00
da m_dalpra
Ummm....
Questo e' un problema piu' serio.
L'oggetto infatti e' in movimento.

Sicuramente esistono dei dispositivi "laser" che misurano distanze, e te ne serve una per parte.
In ogni caso non saprei come farli per comunicare con il PLC.

Potresti ipotizzare che ti inviano un segnale analogico 0-10Vdc.
A questo punto in una determinata Word degli ingressi ti troverai i valori delle misure effettuate da questi sensori.

Si potrebbero anche usare (con un costo inferiore) una decina di fotocellule a tasteggio diretto : il numero di fotocellule che viene oscurato determina quale pacco sta transitando.

Ricordati che dovrai sempre prendere il segnale di "Start Misurazione" dalla fotocellula che vede l'oggetto transitare sopra il nastro.

Attualmente per questi problemi, il sistema piu' in voga e' quello di Visione tramite una telecamera ed un apposito modulo da montare vicino al PLC.

MessaggioInviato: 9 nov 2005, 15:54
da papo
m_dalpra ha scritto:
Attualmente per questi problemi, il sistema piu' in voga e' quello di Visione tramite una telecamera ed un apposito modulo da montare vicino al PLC.



già...ho visto...

MessaggioInviato: 9 nov 2005, 17:12
da m_dalpra
Mi sembri un po' depresso....
:cry:

MessaggioInviato: 10 nov 2005, 12:10
da papo
m_dalpra ha scritto:Mi sembri un po' depresso....
:cry:


:oops:

no...non è questione di depressione è solo che devo finire tutto sto progetto prima di Aprile e sono ca**i.

MessaggioInviato: 10 nov 2005, 12:10
da papo
Già è un mese che ci combatto ogni giorno dalla mattina alla sera... :?