Vai al contenuto
PLC Forum


Velocità via a rulli


85paolo

Messaggi consigliati

Buonasera, vorrei un aiuto se è possibile...

Vorrei trovare la velocità di una via a rulli, conosco la distanza tra due fotocellule (1300mm).

Dovrei fare una foto dell'ora sul fronte di salita della prima fotocellula e la stessa cosa per l'altra. Se non mi sbaglia con il blocco SFC1 ma non ne sono certo.

Dopo aver trovato ora di passaggio si dovrebbe fare SPAZIO/TEMPO per trovare la velocità.

Qualcuno mi può aiutare? 

Link al commento
Condividi su altri siti


Se vuoi avere un minimo di precisione devi collegare le due fotocellule a 2 ingressi veloci legati ad interrupt. Nella funzione di servizio leggi l'orologio di sistema, la differenza ti da il tempo di percorrenza.

I dati mancanti sono: la velocità massima del tuo sistema e la precisione richiesta.

Link al commento
Condividi su altri siti

per me è meglio non usare l'orario di sistema, dovrai poi ricavare il tempo in minuti o secondi in variabili intere o virgola mobile mentre, ciò che leggi come ora di sistema, è in un formato date and time.

dipende sempre dalla precisione che devi avere ovvio. potresti incrementare una variabile in un ob schedulato, esempio, ob35 a 100ms. avresti così possibili errori di 2 decimi di secondo

Link al commento
Condividi su altri siti

Il metodo proposto da Ken è un po' più semplice, mentre quello proposto da Livio è concettualmente più corretto e sicuramente più preciso.

Tutto dipende dalle velocità in gioco, e dalla precisione che vuoi ottenere.

Link al commento
Condividi su altri siti

Dice bene Batta, dipende dalla precisione che vuoi ottenere.

Ob35 lo devi semplicemente caricare. di default verrà eseguito ogni 100ms. se vuoi puoi modificare questo tempo nella configurazione hw, clicchi sulla cpu, schedulazione orologio e modifichi il tempo.

 

poi, in quel blocco puoi editare il tuo programma in molti modi diversi. io per semplicità, fuori da ob35, in altro blocco, con un set/reset memorizzo abilitazione conteggio tempo, frutto delle tue fotocellule. in ob 35 poi, con questo bit alto, andrei ad incrementare una variabile. la variabile sarà il tempo.

 

se vuoi usare l'orologio di sistema, la variabile di data e ora è già disponibile nelle variabili locali di ob1. se leggi quel dato puoi anche non utilizzare sfc1

Link al commento
Condividi su altri siti

Se si utilizza il sistema con OB35, rilevando lo stato delle fotocellule all'interno dell'OB, non si deve leggere lo stato degli ingressi dall'immagine degli stessi, ma si deve fare una lettura immediata.

Mi spiego. Supponiamo che tu imposti OB35 a 10 ms e che il programma completo giri mediamente in 15 ms.

Se all'interno di OB35 interroghi lo stato, per esempio, di E0.0, leggi lo stato da quella che è l'immagine degli ingressi, che viene aggiornata, in questo esempio, ogni 15 ms.

Ecco che in OB35 ti ritrovi quindi con uno stato dell'ingresso non aggiornato.

Per risolvere, dovresti fare una lettura immediata di E0.0. Per farlo, devi leggere tutto il byte che contiene l'ingresso che ti interessa ma non con l'istruzione "L EB0" che andrebbe ancora a leggere l'immagine degli ingressi, ma con "L PEB0", che effettua una lettura immediata dello stato degli ingressi.

Link al commento
Condividi su altri siti

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