Vai al contenuto
PLC Forum


Frequenza Campionamento Sm321


thejolly

Messaggi consigliati

Ciao a tutti, è passato qualche tempo dalla prima volta che mi sono addentrato nel mondo dei plc e ho fatto la conoscenza di questo bel forum :rolleyes: ; da allora ho maturato esperienza a riguardo ma "so sempre di non sapere" ;) , infatti credo vivamente che chi si sente arrivato in questo settore non ha capito propio un c........ per quanto sia vasto ed in continua evoluzione!

da autodidatta :wallbash: mi sono procurato un pò di materiale ed ho creato il mio banco/studio/esperimenti, dalle mie parti si dice che: "la pratica rompe la grammatica"; questo:

6c6c671105db86d7eeea1e38dbe3300d.jpg

6c6c671105db86d7eeea1e38dbe3300d.jpg

DATI:

cpu 315-2dp

sm321 32DI

sm322 DO32

sm334 AI4/AO2

INV. 230V

Motore 2750 giri/min 50Hz

Astina in ferro calettata su albero motore (puleggia virtuale) lung.(raggio) 3cm

Proxy per rilevamento giri

Ora sto studiando/sperimentanto su step7 per creare una camma, per gestire il motore con l'analogica e fare dei posizionamenti virtuali e delle variazioni di velocità in base al raggiungimento quota, ma quando vado con l'online test l'ingresso m'incrementa nel modo corretto il contatore solo facendo facendo lavorare il mot a pochi Hz, se aumento non mi corrisponde.

considerando i seguenti calcoli mi dovrebbe funzionare oppure sto sbagliando qualcosa:

f=2750/min=2750/60=46Hz ---> T=1/2750=60/2750=0.022sec*1000=22ms >4,8ms ritardo sull'ingresso DI sm321 :senzasperanza:

quindi s'intende che io campiono un segnale ogni 22ms mentre l'ingresso lo campiona ogni 4,8ms dovrebbe farcela a leggere o dovrei usare OB35?

Inoltre come faccio a variare la velocità motore(con l'analogica sono apposto, già programmata/scaling) in base alla distanza dalla quato da raggiungere, nel senso di vel. alta a distanza maggiore dal punto e più mi avvicino più diminuisce :unsure: .

Link al commento
Condividi su altri siti


quindi s'intende che io campiono un segnale ogni 22ms mentre l'ingresso lo campiona ogni 4,8ms dovrebbe farcela a leggere

Secondo me a non farcela è il sensore.

Mi sembra di ricordare per per simili applicazioni ci vogliano sensori adeguati.

Comunque complimenti per il tuo banco/studio/esperimenti :thumb_yello:.

Modificato: da beppo
Link al commento
Condividi su altri siti

Ho cambiato il sensore inserendo uno con le seguenti caratteristiche:

tipo contatto nc

frequenza max di commutazione: 1000hz

Ritardi: alla disponibilità <= 25ms

all'azione <= 0.5ms

al rilascio <= 0.5ms

...devo dire che è migliorato e ancora di più quando ho trasferito il codice su ob1 eliminando ob35 :senzasperanza: , comunque quando vado sopra i 15hz velocità motore, non riesce a percepire più il segnale in ingresso(con fronte salita) dal proxy :wallbash: . forse bisogna tener conto altri parametri? tempo ciclo ecc..?

Link al commento
Condividi su altri siti

comunque quando vado sopra i 15hz velocità motore, non riesce a percepire più il segnale in ingresso(con fronte salita) dal proxy :wallbash: . forse bisogna tener conto altri parametri? tempo ciclo ecc..?

E' proprio l'ingresso Hw che non ce la fa. Dovresti usare una scheda con ingressi veloci, quelli per interrupt di processo.

Poi sarebbe meglio che tu legassi l'ingresso proprio ad un interrupt.

Gli ingressi normali vengono letti e copiati nella tabella immagine ad ogni fine ciclo. Quindi se vuoi leggere oltre i 15 Hz (66.6666 ms) è indispensabile, secondo il teorema di Shannon, che il tempo di aggiornamento della tabella sia inferiore a 33.33 ms. Se, ad esempio, leggi l'ingresso ogni 20 ms puoi acquisire segnali con frequenza <= 25 Hz.

Puoi anche velocizzare il sistema leggendo direttamente la periferia usando le istruzioni di lettura diretta degli ingressi (PExxx). Se leggi più volte all'interno del ciclo, puoi aumentare la frequnza del segnale.

Link al commento
Condividi su altri siti

Livio come già detto "so sempre di non sapere" ;)

quindi

Poi sarebbe meglio che tu legassi l'ingresso proprio ad un interrupt.

...intendi scrivendo il codice su ob35 con settaggi particolari?

Puoi anche velocizzare il sistema leggendo direttamente la periferia usando le istruzioni di lettura diretta degli ingressi (PExxx). Se leggi più volte all'interno del ciclo, puoi aumentare la frequnza del segnale.

...ma gli ingressi esempio pewXXX step7 non li assegna dalla configurazione hw alle periferiche analogiche ecc..? dove posso trovare istruzioni a riguardo per fare questo?

...so che esistono moduli di conteggio o per camme ma vorrei scoprire fin quanto posso spingermi con l'hw in possesso ;)

Modificato: da thejolly
Link al commento
Condividi su altri siti

Rispondo alla "spicciolata"

  1. I limiti dello Hw non li devi cercare speimentalemente, ma devi leggere cosa dice il manuale e considerare il caso pessimo. Se leggi il foglio tecnico della sceda di ingressi digitali, troverai il tempo minimo del filtro hw di ingresso. Un segnale che ha una durata in feriore non viene riconosciuto. Può capitare che, magari stai usando un ingresso il cui filtro è un poco più veloce, quindi in pratica puoi magari superare di poco quella freqeunza, però non lo puoi usare in un progetto, perchè non affidabile. Devi sempre considerare il caso pessimo.
  2. Se leggi il manuale dell step 7, o anche solo la guida in linea, vedrai che le istruzione per leggere e scrivere direttamente la periferia riguardano sia i segnali analogici che quelli digitali.
  3. Esistono schede di ingressi veloci. Questi ingressi possono essere accoppiati direttamente ad interrupt di processo. Non ricordo più i dettagli, perchè sono anni che non uso più step 7, però credo che uno degli interrupts di processo sia legato ad OB40; OB35, se non ricordo male, è legato al timer di sistema.

Comunque sui manuali queste notizie le trovi tutte, anche sulla guida in linea.

La tecnica del "proviamo e vediamo quello che succede" porta sempre ad un maggior dispendi di tempo ed a risultati incerti.

Uno studio approfondito dei manuali fa risparmiare tempo ed i risultati son sempre certi, come le madri. :smile:

Link al commento
Condividi su altri siti

Grazie a tutti per le risposte...

...altra domanda: ho inserito CALL sfc40 in ob1 con relativi parametri MODE=2 , OB_NR=40 , RET_VAL=MW100;

poi in ob40 ho inserito trasferimento dell'ingresso digitale di periferia PEBx(del proxy) ad un MB, poi MB con fronte di salita e merker d'appoggio, poi contatore ed uscite dati contatore su un DB.

...in online però vedo che ob40 non viene richiamato, perchè? :senzasperanza: forse per effettuare interrupt di processo ci vogliono per forza delle schede di ingresso parametrizzabili e con interrupt di processo? quindi non si può fare con delle normali sm321? :wallbash:

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