Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Encoder incrementale e PLC

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[1] Encoder incrementale e PLC

Messaggioda Foto UtenteLUCAP86 » 22 mar 2007, 17:03

Ciao a tutti

ho assolutamente bisogno di alcune informazioni sulla memorizzazione di alcune quote sulla base di segnali provenienti da un encoder incrementale installato direttamente sul motore. In poche parole come posso fare con un PLC Siemens, a fare si che i segnali provenienti da un encoder incrementale, vengano memorizzati nel momento in cui determinati sensori, si trovano nel punto desiderato?

Spero che qualcuno abbia la soluzione che fa per me, nel frattempo vi ringrazio e vi saluto tutti.

Ciao ciao
Avatar utente
Foto UtenteLUCAP86
0 3
 
Messaggi: 24
Iscritto il: 3 feb 2007, 0:27

0
voti

[2]

Messaggioda Foto UtenteSuper Rox » 22 mar 2007, 17:08

che tipo di PLC siemens è??????????????????????????????? :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:
Avatar utente
Foto UtenteSuper Rox
5 1 5
Frequentatore
Frequentatore
 
Messaggi: 247
Iscritto il: 24 nov 2006, 0:29
Località: Pordenone

0
voti

[3]

Messaggioda Foto UtenteLUCAP86 » 22 mar 2007, 18:16

Ciao;

Il Plc è u siemens S7-200 CPU 226......hai qualche suggerimento?
Avatar utente
Foto UtenteLUCAP86
0 3
 
Messaggi: 24
Iscritto il: 3 feb 2007, 0:27

0
voti

[4]

Messaggioda Foto UtenteSuper Rox » 22 mar 2007, 18:57

Purtroppo non molto ma provo a illuminarti lo stesso.... cerco qulche info poi ti faccio sapere....

Mattia
Avatar utente
Foto UtenteSuper Rox
5 1 5
Frequentatore
Frequentatore
 
Messaggi: 247
Iscritto il: 24 nov 2006, 0:29
Località: Pordenone

0
voti

[5] Re: Encoder incrementale e PLC

Messaggioda Foto Utentem_dalpra » 24 mar 2007, 16:00

LUCAP86 ha scritto:Ciao a tutti

ho assolutamente bisogno di alcune informazioni sulla memorizzazione di alcune quote sulla base di segnali provenienti da un encoder incrementale installato direttamente sul motore. In poche parole come posso fare con un PLC Siemens, a fare si che i segnali provenienti da un encoder incrementale, vengano memorizzati nel momento in cui determinati sensori, si trovano nel punto desiderato?



Tipicamente si deve collegare il segnale dell'encoder ad un determinato morsetto del PLC che contiene un contatore ad alta velocita'.
Questo contatore e' svincolato dalla velocita' del processore del PLC per non perdersi nessun impulso proveniente dall'encoder.
Nel programma poi, non conosco la specificita' Siemens, ma comunque ci sara' una funzione di contatore veloce che dovrai attivare.
Dovrai inoltre programmare un segnale proveniente da un finecorsa, che servira' per resettare il contatore (il punto zero).

Ora il contatore e' pronto per funzionare.
Naturalmente dovrai anche inserire delle soglie numeriche, ossia le quote dove vuoi che il motore si vada a posizionare, che dipendono sempre dalla funzione di controllo del contatore veloce.
Marco

Quel che ci dà la vera forza per affrontare con piacere la vita è il sentirsi utile agli altri. z.m.
Avatar utente
Foto Utentem_dalpra
37,5k 6 10 12
-EY Legend-
-EY Legend-
 
Messaggi: 1155
Iscritto il: 30 ago 2004, 11:04
Località: Mestre (Venezia)

0
voti

[6]

Messaggioda Foto UtenteLUCAP86 » 25 mar 2007, 22:59

Grazie mille ragazzi per le vostre risposte.
La procedura che mi descrivi Marco, per l'assegnazione di quote specifiche di posizionamento, deve essere fatta manualmente, nel senso che si devono inserire i parametri direttamente da computer all'interno del programma, oppure c'è la possibilità di fare una sorta di autoapprendimento delle quote?
Avatar utente
Foto UtenteLUCAP86
0 3
 
Messaggi: 24
Iscritto il: 3 feb 2007, 0:27

0
voti

[7]

Messaggioda Foto Utentem_dalpra » 26 mar 2007, 8:01

Eh!
Questo sta nella fantasia del programmatore.

Le quote possono arrivare, ad esempio :
1. Da un PC con un software di supervisione
2. Da un Pannello industriale (talvolta touch-screen)
3. Da una pulsantiera con due tasti Avanti-Indietro e con un tasto Memo, che congela nella memoria del PLC quella posizione.

Le soluzioni comunque sono "infinite" !!

Ciao
Marco

Quel che ci dà la vera forza per affrontare con piacere la vita è il sentirsi utile agli altri. z.m.
Avatar utente
Foto Utentem_dalpra
37,5k 6 10 12
-EY Legend-
-EY Legend-
 
Messaggi: 1155
Iscritto il: 30 ago 2004, 11:04
Località: Mestre (Venezia)

0
voti

[8]

Messaggioda Foto UtenteIvan_Iamoni » 26 mar 2007, 13:35

Penso di avere capito cosa vuole LUCAP86,
Acquisire "al volo" un valore di conteggio dell'encoder quando si attiva l'ingresso di un finecorsa.

Cominciamo......
LUCAP86 , Sei esperto di programmazione?

Supponiamo che la tua macchina +(PLC) gia' legga i valori di conteggio, quindi ci sia gia' correttamente configurato ed abilitato un contatore veloce HSC.... la sua routine di interrup ecc. ecc. sei gia' a buon punto.
A questo punto se hai solo bisogno di "catturare" tramite un segnale in ingresso il valore istantaneo devi usare una nuova routine di interrupt.

Prima cosa collega il tuo finecorsa all'ingresso I0.0
Poi nella SBR0 (sub. di inizializzazione) aggiungi questo network

LD SM0.0 // bit Always ON
ATCH INT_70, 0 //scatena evento 70 su fronte salita E0.0 (evento nr.0)

Ora devi creare un sottoprogramma di interrupt che si chiama INT70
Questo sottoprogramma, si attivera' se l'evento 0 e' vero indipendentemente dallo stato di esecuzione del programma (massima precisione di lettura posizione).

Nel nuovo INT70 inserisci questo nuovo network:

LD SM0.0 // bit Always ON
MOVD HC1, VD1000 //trasferisci valore reale istantaneo di HC1

Ho usato come esempio HC1 , cioe' il primo contatore della serie, tu ovviamente userai il tuo reale contatore ai cui ingressi e' collegato l'encoder.
Il valore letto "al volo" viene trasferito come doppia parola nella area di memoria da V1000 a V1003 compresa (risoluzione a 32bit) ed e' un numero intero con segno.

Poi fanne cio' che vuoi........
Ciao
Ivan
Avatar utente
Foto UtenteIvan_Iamoni
5.336 6 10 12
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 2330
Iscritto il: 22 ott 2006, 18:45

0
voti

[9]

Messaggioda Foto UtenteLUCAP86 » 26 mar 2007, 21:29

Grazie kamikaze, hai capito benissimo qual è il mio problema, l'operazione che mi hai descritto può essere utilizzata per momorizzare anche più di una posizione? sai io non sono un esperto di programmazione però ci devo diventare, purtroppo sono appena entrato nel mondo nel mondo del lavoro, per questi i consigli di una persona preparata come te e come gli altri che mi hanno risposto, sono per me importantissimi.
Avatar utente
Foto UtenteLUCAP86
0 3
 
Messaggi: 24
Iscritto il: 3 feb 2007, 0:27

0
voti

[10]

Messaggioda Foto UtenteIvan_Iamoni » 27 mar 2007, 8:28

Beh, effettivamente al fine dell'operazione che ti ho descritto sopra, tu hai un valore numerico intero contenuto nell'area VD1000 a tua completa disposizione.
Se poi desideri memorizzarlo devi prima decidere in quale modo.
Ad esempio il piu' semplice che mi viene in mente e' , a fine procedura di memorizzazione, alla fine dell INT70 setta una variabile (posizione letta)che userai per arrestare il motore, facendo in modo che non si verifichino piu' letture del finecorsa.
Poi, in una SBR esterna all'INT70 con questa variabile ed un ulteriore ingresso (ad esempio uno o piu' pulsanti di memorizzazione quota) sposta il contenuto di VD1000 in VD2000, 2004 , 2008 ecc. e resetta immediatamente la variabile di quota letta.
Codice: Seleziona tutto
ESEMPIO:

SBR1:Memorizzazione quote
SEGMENTO 1:
LD V100.0 //memoria di quota letta (il suo set si trovera' a fine INT71)
LPS
A E1.0 //pulsante di memorizzazione quota 1
MOVED  VD1000,  VD2000 //sposta in zona di memorizzazione 1
AENO
=      V100.1 //conferma meorizzazione avvenuta
LRD
A E1.1 //pulsante di memorizzazione quota 2
MOVED  VD1000,  VD2004 //sposta in zona di memorizzazione 2
AENO
=      V100.1 //conferma meorizzazione avvenuta
LRD
A E1.2 //pulsante di memorizzazione quota 3
MOVED  VD1000,  VD2008 //sposta in zona di memorizzazione 3
AENO
=      V100.1 //conferma meorizzazione avvenuta
LPP
A V100.1 //se la memorizzazione e' avvenuta
R V100.0, 1 //resetta memoria di quota letta
DTCH 0 //disabilta interrupt evento 0 (finecorsa memorizz. quote)

Con questo esempio, uscito dall'INT70 il programma arresta il motore con V100.0 poi con questa condizione vera alla pressione di uno dei tre tasti memorizzi la quota "catturata al volo" in tre aree diverse poi fatto cio' si resetta il V100.0 e diabiliti l'interrupt INT70 legato all'evento 0 , (da riabilitare previo la successiva fase di auto apprendimento).

Ciao
Ivan
Avatar utente
Foto UtenteIvan_Iamoni
5.336 6 10 12
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 2330
Iscritto il: 22 ott 2006, 18:45

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 122 ospiti