luigi69

Calcolo velocità con impulso anzichè tachimetrica

15 messaggi in questa discussione

luigi69   
luigi69

Buona serata , problema credo banale , volevo arrivare presso il "cliente" con un minimo di preparazione per evitare brutte figure .

 

In sostituzione di una tachimetrica, dovrei calcolare la velocità di una puleggia tramite la luce riflessa di una fotocellula laser , colorando a settori il fianco della puleggia .

Premesso che la fotocellula ha una lettura "veloce"  ( dal data sheet massimo 1000Hz ) , e viene collegata ad un ingresso dedicato al conteggio veloce , ed io cercherò un compromesso fra cosa riesco a fare leggere e a quante tacche riesco a colorare :

domanda : esiste un FC dedicato ?

Cercando qui come calcolo velocità e a memoria sfb48 non ottengo risultati....

Scusate la spiegazione un po generica..ma stile la lettura analogica  CALL FC 105    gli dichiaro l'ingresso come PEW , appoggio ret val e ucita in una  DB e sono contento..

 

Un blocchetto che "divida " gia lui il conteggio per l'unità di tempo per ottenere una velocità in giri al minuto

Mi pare ( vedo domani ) di stare in un range di 1500 giri minuto

 

Se dai calcoli risultasse critico questo valore , ovvero non riuscissi , sto misurando una trasmissione a cinghie multiple , e cercando di tralasciare lo scorrimento , potrei andare a misurare la puleggia con il numero di giri minore  §( 1000  )

 

 

Per completezza , avevo iniziato una discussione simile ad ottobre 2016 e avevo scambiato un paio di battute con Livio , il problema era simile ma con un prossimity  ( adesso fotocellula ma il concetto non cambia )

 

Grazie e buona serata

Condividi questa discussione


Link discussione
Condividi su altri siti
ken   
ken

Che tipo di ingresso x conteggio veloce? Se è su et200s si basta configurare la scheda come rilevatore di velocità.

Condividi questa discussione


Link discussione
Condividi su altri siti
Livio Orsini   
Livio Orsini

1500 rpm sono 35 rps ovvero 35 Hz se tu avessi un impulso al giro. Con il limite di frequenza della tua FC puoi fare 13 righe sulla tua puleggia  ed avere la sicurezza di non perdere nessuna transizione., purchè il settore nero ed il settore bianco siano simmetrici.

Poi, come ha scritto Ken dipende da cosa usi per interfacciare la FC.

Con quella frequenza massima devi comunque usare un contatore veloce.

Poi devi farti un interrupts a tempo con il timer di sistema (OB35) e leggere il contatore ad un tempo fisso.

Se fai ad esempio, un tempo di 100ms, è sufficiente che tu moltiplichi la differenza tra due letture per 600, per ottenere la velocità in rpm

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Grazie Ken   uso il primo ingresso di conteggio "pulse" di una CPU 313

Grazie Livio , avevo fatto appunto il ragionamento della frequenza massima raggiungibile per un compromesso fra la risoluzione della lettura e quanto effettivamente potevo spingermi in la

Probo a leggere l'. del OB35... spero di essere illuminato :)

Condividi questa discussione


Link discussione
Condividi su altri siti
Livio Orsini   
Livio Orsini

Devi programmare il tempo nella configurazione hw di sistema, poi scrivi il programma di lettura del contatore nell'OB35

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Ho cercato OB 35 e con l'. ci ho capito poco

 

Ma sono andato in configurazione hw e a quanto pare dovrebbe fare tutto la CPU perché ho trovato i settaggi dedicati a quell'ingresso

 

Quote

 

 

 

Misura di frequenza ci siamo , sul canale 0 ok

valutazione segnale come encoder ok  nel senso.. non mi serve una direzione avanti indietro ma solo il conteggio frequenza , senza valore di confronto  ok

ma scusate...dove va a scriverlo il valore ?

 

 

Non mi lascia incollare la videata della pagina di configurazione che avevo fatto con print  scr

 

cerco di inviarla diversamente

 

Condividi questa discussione


Link discussione
Condividi su altri siti
batta   
batta

Non c'è molto da dire sull'OB35. È semplicemente un OB che viene lanciato a tempo. Se, nella configurazione hardware, imposti per OB35 un tempo di 100 ms, OB35 verrà eseguito ogni 100 ms, indipendentemente dal tempo di scansione del programma principale (OB1).
Nel tuo caso, come suggerito da Ken, non ti serve utilizzare OB35, perché è il contatore veloce stesso che ti dà direttamente la misura della frequenza.
L'unico calcolo che dovrai fare sarà quindi di dividere la frequenza misurata per il numero di impulsi giro e moltiplicare per 60, ed avrai la velocità in giri/minuto.

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Grazie Batta

 

 mi spiace di non avere pubblicato la schermata della configurazione HW..provvedero a fare foto..differente non mi carica  il copia incolla

Ma il discorso è...dove viene messo questo valore ? una DB....  una doppia word nei meandri della CPU

Leggendo la confg harware sembra tutto facile, e con F1 non si risolve nulla perchè non spiega oltre

Sto controllando il manuale di sistema software funzioni standard e di sistema ma non sto approdando a nulla.....

Correttamente come dici tu  dividere la frequenza ok...ma dove prendo il valore della frequenza, se utilizzo il primo canale di conteggio veloce  , quindi lo 0 ?

 

Condividi questa discussione


Link discussione
Condividi su altri siti
Livio Orsini   
Livio Orsini

Se vuoi usare il preconfezionato usa, ad esempio, il canale di conteggio 0 in modalità "Misura di frequenza".

Usa la SFB48 [FREQUENC] .

Nel menù di configurazione Hw scegli la modalità operativa ed il tempo di campionamento più adatto

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Buon pomeriggio

ho fatto alcune prove e mi sono ulterioremnte documentato andando a cercare altre discussioni sul forum inerenti SFB48 , ma purtroppo sembra tutto a posto ma in realtà non funziona....

Mi riprometto di caricare le schermate del Pc , se sarete cosi gentili da darmi ulteriori consigli

 

Per adesso Buon Ferragosto !

Condividi questa discussione


Link discussione
Condividi su altri siti
batta   
batta

Difficile capire dove sbagli senza informazioni.

Hai aperto il gate?

Sicuro che i cablaggi siano corretti?

Come hai configurato il modulo?

Come hai parametrizzato la funzione SFB48 - FREQUENC?

 

Fai un bel post con tutte le informazioni dettagliate, e non un post di due righe dove dici solo che non funziona.

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Buon giorno signori

Grazie batta , si , ho preparato le foto , le carico oggi , avevo scritto la vigilia di Ferragosto , mi sembrava una cosa......

Cablaggio sul primo canale , lo 0

Aperto il gate intendi....nella foto si vede che ho messo un merker fisso a 1 nel gate del blocco sfc48 , nel richiamo , intendi questo vero aprire il gate ?  via software, via HW collego l'ingresso al +24  ( primo ingresso collegato alla fotocellua , secondo ingresso lasciato libero perchè non mi importa la direzione, terzo ingresso collegato al +24 per abilitare il gate )

Allego anche al configurazione del modulo

SFB 48 , lo utilizzo in un segmento , gli ho associato un DB di istanza , scrivo in una DB il valore  ( ma appunto non lo vedo )

Ho provato anche ad aumentare e diminuire i limiti e il tempo di campionamento

 

Accetto consigli , lego e rileggo quello che vedete, anche in considerazion a due vecchie risposte sul sfb 48 ma qualche cosa mi sfugge .

 

Grazie per l'attenzione

Configuraz_ingresso.jpg

Elenco_blocchi.jpg

Misura_freq_ch0.jpg

Segmento_blocco.jpg

Condividi questa discussione


Link discussione
Condividi su altri siti
batta   
batta

A prima vista sembra tutto ok.
Puoi anche togliere dalla configurazione hardware la spunta da "Gate HW", così non hai bisogno di cablare l'ingresso e devi solo comandare il gate software.

E, all'ingresso LADDR, puoi scrivere direttamente W#16#300 (768 in decimale), senza bisogno di appoggio sulla variabile DB2.DBW40.
A proposito di gate software, hai provato a mettere M1.0 OFF e poi di nuovo ON?
Sul manuale c'è scritto che il gate software si apre con un fronte di salita sull'ingresso SW_GATE, e non con lo stato alto dell'ingresso.

Se anche così non funziona, bisogna ricercare il problema nei cablaggi.

Hai portato alimentazione 24 Vdc ai morsetti 1 e 20 del connettore X2 (quello a destra guardando la cpu) e il segnale sul morsetto 2?
Il led corrispondente all'ingresso si accende con segnale alto?
 

Condividi questa discussione


Link discussione
Condividi su altri siti
luigi69   
luigi69

Grazie batta

 

si si  alimentazione scheda ok  anche perchè sto utilizzando i segnali successivi  ( E124.0 conteggio   gate E124.2   e sto utilizzando per altre cose  il 124,3...6...ecc

 

Si si  il led si accende

Provavo con la mano a tagliare il fascio della mia fotocellula..dovrei leggere una frequenza di qualche Hz.... e appunto vedo il led sfarfallare

si si  ho provato il discorso di appoggio diretto del numero del canale trasformato in esa che appunto vale 300

il primo canale CHO è corretto

Leggevo il tuo consiglio su mettere in off e poi on   quindi fargli "vedere" il fronte di salita

E' una prova che devo fare ,  non riesco a capire il perchè ma sarà una loro richiesta per attivare il conteggio

Scusami una riflessione...ma quindi , diciamo che alimento la CPU  il mio M1.0 va istantenamente su on   invece devo farlo cadere e poi tornare a livello logico 1    è corretto ? per fargli vedere il fornte di salita

 

Grazie ancora per i consigli , ad iunizio della nuova settimana torno sul posto e provo il discorso , vi farò sapere

Se altri avessero ulteriori consigli  ( amuleti preziosi che arrivano dall'oriente , immagini sacre,,, sto scherzando ! ) sono ben accetti

 

Per adesso un buon pomeriggio

 

Condividi questa discussione


Link discussione
Condividi su altri siti
batta   
batta
Quote

Scusami una riflessione...ma quindi , diciamo che alimento la CPU  il mio M1.0 va istantenamente su on   invece devo farlo cadere e poi tornare a livello logico 1    è corretto ? per fargli vedere il fornte di salita

Dipende da dove imposti ON il merker M1.0.

Se lo fai prima del richiamo di SFB48, la funzione vedrà il segnale alto ma, non avendo mai visto il segnale basso, non potrà rilevare il fronte.

Se il problema è questo, ti basta spostare il ramo dove imposti M1.0 alto dopo il richiamo di SFB48.

All'accensione (o nel passaggio da stop a run) M1.0 è basso. SFB48 legge lo stato basso. Subito dopo M1.0 viene impostato alto. Alla scansione successiva SFB48 vede lo stato alto. Rileva quindi un fronte positivo ed apre il gate.

Attenzione però che M1.0 di default è nell'area dei merker ritentivi, quindi non cade spegnendo la cpu o con la cpu in stop. Quindi, o modifichi l'area di ritenzione (di default da M0.0 a M15.7), o, meglio, cambi merker.

Condividi questa discussione


Link discussione
Condividi su altri siti

Registrati o accedi per inserire messaggi

Devi essere un utente registrato per lasciare un messaggio. La registrazione è GRATUITA.

Crea un account

Iscriviti alla nostra comunità. È facile!

Registra un nuovo account

Connettiti

Hai già un account? Connettiti qui

Connettiti adesso