rilevare lunghezza step7300

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

Avatar utente
Foto Utentestent912
0 2
Messaggi: 4
Iscritto il: 19 ott 2008, 19:13
0
voti

[1] rilevare lunghezza step7300

Messaggioda Foto Utentestent912 » 8 nov 2010, 22:39

Salve a tutti,
volevo sapere se e' possibile creare una istruzione tipo "INC" (come Omron), che associata ad un clock
mi dia la possibilita' di rilevare la lunghezza di un oggetto che transita su un nastro traspotatore.
Ho provato con i vari Mov , Add_I pero' senza risultati.
PS: per i test uso plcsim e so programmare solo in ladder.
Grazie ciao

Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54
0
voti

[2] Re: rilevare lunghezza step7300

Messaggioda Foto UtenteCandy » 8 nov 2010, 23:03

Premesso che conosco poco Omron, ma molto meglio Step 7, immagino tu sia alla ricerca di qualcosa di poco ortodosso e, come tipico dei giapponesi, di semplice implementazione.

Ora, escludendo per un attimo il concetto di precisione, puoi procedere in questo modo:
1) Nella configurazione hardware della CPU, devi associare i merker di clock ad un byte dell'area M, appunto; ad esempio, a mio piacimento MB0. Ma puoi indicare il byte che desideri. (PEr ora ipotizziamo sempre MB0). Controlla prima coi riferimenti incrociati cosa è libero.
2) Trasmetti la configurazione alla tua CPU ed avrai, nel byte presenti, otto bit di clock diversi:
- M0.0 = 10 Hz = 0,1 s;
- M0.1 = 5 Hz = 0,2 s;
...
- M0.7 = 0,5 Hz = 2 s;

(Cerca sull'aiuto in linea e sui manuali tutti gli altri valori, che non ricordo a memoria).

Fatto questo, ti puoi creare i relativi bit impulsivi:

Codice: Seleziona tutto

     M0.0             M1.0             M2.0
|----| |----------------|P|-----------------()-|

A questo punto, M2.0 sarà solo impulsivo, con la frequenza del primo bit, il clock prescelto. (Io ho scelto il clock a 100 ms, che, se la CPU è svelta, è il più veloce a disposizione con questa tecnica).

Fatto questo, non ti resta che incrementare una variabile a tua scelta, per contare:

Codice: Seleziona tutto

    Ex.y         M2.0
|---| |----------| |----------[ADD_I]
...

Leggiti sull'aiuto in linea come parametrizzare ADD_I. (Che è facile).

Ora la tua variabile incrementa, con con il bit di controllo Ex.y ad 1, di una unità ogni 100 ms. Sarà tua cura azzerare la variabile finito il conteggio, ma prima dovrai salvare il valore contato:

Codice: Seleziona tutto

   Ex.y         M3.0
|---| |----------|N|------+----[MOVE] // leggiti l'help in linea per muovere dalla variabile di conteggio a quella di calcolo
                          |
                          |----[MOVE] // metti 0 nella variabile di conteggio

Se la precisione di misura ti è sufficiente: considera i ritardi di elaborazione e di rinfresco I/O, allora puoi già fare una discreta misura.

Se invece, misurare con clock di 100 ms è troppo poco, e molto impreciso, dovresti disporre di una CPU con ingressi veloci e, o lavorare con interrupt, programmando correttamente in OB35, oppure ....

Spiegaci meglio cosa hai a disposizione: CPU e schede I/O, e poi, se non ti basta la soluzione offerta, ragioneremo oltre.

P.S. in Step7, per serie 300 e 400, tutti i linguaggi base sono immediatamente convertibili, quasi al 100 %. PEr le prossime volte ti posterò il codice AWL, che ti convertirai poi da solo. (CTRL+1; CTRL+2; CTRL+3) dall'editor.

Avatar utente
Foto Utentestent912
0 2
Messaggi: 4
Iscritto il: 19 ott 2008, 19:13
0
voti

[3] Re: rilevare lunghezza step7300

Messaggioda Foto Utentestent912 » 9 nov 2010, 22:28

Ciao candy e grazie per la risposta,
ho provato a caricare i segmenti da te suggeriti ma purtroppo plcsim (l' unico sistema di destinazione che ho a disposizione) non riesce ad elaborarli .
Quando metto a 1 il bit di controllo Ex.y ,in serie al fronte di salita e al bit di impulso , succede questo in ADD_I :
MW10-in1=256
MW12-in2=0
MW20-out=256
il tutto rimbalza come se fosse continuamente settato e resettato nello stesso momento. Ho cambiato la frequenza di clock ma niente da fare.
Nel segmento successivo visualizzo:
Move
MW20 =0
MW22 =0
solo saltuariamente sposta 256 in MW22 (tramite Ex.y e N)
potrebbe essere una limitazione del simulatore? Oppure qualche settaggio che non ho preso in considerazione?

Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54
0
voti

[4] Re: rilevare lunghezza step7300

Messaggioda Foto UtenteCandy » 10 nov 2010, 9:48

Facciamo finta che, essendo tu di derivazione Omron, non conosca ancora bene Siemens, e per questo, ti puoi permettere taluni errori.
HwCfg.jpg
HwCfg.jpg (39.62 KiB) Visto 1876 volte
Program.jpg
Program.jpg (37.47 KiB) Visto 1877 volte


Lo verificato, anche con plcsim, e si comporta come ti avevo spiegato. Starà a te poi riscriverlo indirizzando le variabili alle risorse libere che disponi.

Avatar utente
Foto Utentestent912
0 2
Messaggi: 4
Iscritto il: 19 ott 2008, 19:13
0
voti

[5] Re: rilevare lunghezza step7300

Messaggioda Foto Utentestent912 » 11 nov 2010, 0:09

ohps............!!!
avevo in effetti tralasciato il "piccolo" particolare del settaggio di ADD_I
effettivamente sono alle prime esperienze con step7 , spero di migliorare con l' aiuto dei vostri preziosi
consigli.
Grazie a candy,
Saluti


Torna a “Automazione industriale ed azionamenti”