Vai al contenuto
PLC Forum


Encoder Con S7-200


piermrd

Messaggi consigliati

Sto facendo una modifica su una macchina e ho dovuto aggiungere un encoder incrementale con fase A e B.

Non essendo esperto di S7-200 ho utilizzato l'assistente istruzioni per preconfigurare un HSC per il mio encoder. Ho programmato il contatore HSC0 in modo 10 (clock fase A, clock fase B, reset esterno) i quali devono essere collegati su I0.0, I0.1, I0.2. Io immaginavo che collegando i miei segnali sugli ingressi indicati tutto dovesse funzionare ma mi è sorto un dubbio leggendo l'. il quale mi dice che per poter rilevare un evento di reset esterno è necessario programmare un interrupt assegnando ad una routine di interrrupt l'evento interrupt di reset esterno (evento 15). Ma che cosa vuol dire e che cos'è questo evento 15?

Link al commento
Condividi su altri siti


Evento 15 = HSC1 reset esterno.

Il contatore HSC0 non lo puoi programmare in modo 10, conta in una sola direzione.

Se lo vuoi bidirezionale devi programmare HSC1 in modo 10 ma collegare l'encoder agli ingressi I0.6, I0.7, I1.0, I1.1

Programmando un interrupt come evento 15 che significa reset del conteggio di HSC1, azzeri il conteggio.

Devi comunque leggere il capitolo 10.5 e 8.4 del manuale se non fai fatica a farlo funzionare.

Ciao

Link al commento
Condividi su altri siti

La mod. 10 con HSC0 è possibile, da quello che ho capito non ti serve l'avvio esterno e perciò ti allego un esempio che ho fatto usando un encord a 2000 passi (X4 = 8000 passi interpolati), simula una camma che si attiva e disattiva ai passi settati ogni giro.... l'unica pecca che quando si disalimenta la cpu, per il valore attuale di HC0 (se non serve tantissima precisione si puo' salvare il valore di HC0 in una variabile V, che quando si rialimenta ricarica la V come valore attuale sempre che la macchina non si sia mossa...!!)

Link al commento
Condividi su altri siti

Ciao è la prima volta che rispondo al forum, lo trovo molto interessante.

Per quanto riguarda il conteggio encoder con l'S7200, utilizzando HSC0 l'evento di interrup

per il reset esterno dal canale Z dell'encoder è il 28.

Prova ad utilizzare l'assistente istruzioni di microwin.

Collegando il canale Z all'ingresso I0.2 ad ogni giro dell'encoder il conteggio viene azzerato.

per controllare il valore del conteggio encoder è sufficiente leggere il valore di HSC0

Link al commento
Condividi su altri siti

Vi confermo che utilizzando HSC0 in modo 10 e senza ulteriori istruzioni il senso di rotazione funziona correttamente nel senso che il valore corrente che visualizzo cresce o decresce in base al senso di rotazione dell'encoder.

Riprovando ad utilizzare l'assistente istruzioni per generare il solito HSC0 in modo 10, l'assistente mi propone di generare un interrupt per l'evento di reset esterno. In effetti, alla fine della configurazione, l'assistente istruzioni mi genera una subroutine per l'inizializzazione dell'encoder ed un interrupt per la gestione dell'evento di reset esterno. All'interno dell'interrupt non compare però nessuna istruzione, quindi mi ritrovo a non capire cosa devo scrivere per attivare l'evento 15 (reset esterno).

P.S. per max.bocca: dove trovo l'esempio che mi hai allegato?

Link al commento
Condividi su altri siti

Scusate se ho scritto delle fesserie, non ho mai usato hsc0 per conteggio a due canali, quello che ho scritto l'ho comunque letto sul manuale di sistema al capitolo 10.5. (anche se era sera ed ero di fretta).

Ciao

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