Vai al contenuto
PLC Forum


S7-200+encoder - dilettante allo sbaraglio


g77

Messaggi consigliati

Ciao a tutti,

questo è il mio primo post nel forum che ormai frequento da un po' e pertanto colgo l'occasione per complimentarmi con tutti voi del forum sia per come è strutturato sia per i contenuti che trovo molto interessanti ed utili (tanto quanto i manuali della siemens). Mi occupo di vendita e riparazione di macchine lavorazione legno, non sono un esperto di plc (anzi mi ritengo un dilettante alle prime armi, autodidatta) ma da circa 6 mesi mi sono appassionato a questo mondo un pò per passione e un pò per professione. Ho iniziato con un logo! per cominciare a capire qualcosa dei plc e della loro programmazione e ritengo di aver ottenuto dei buoni risultati dato che dopo tanto studiare su manuali, plcforum, sito siemens, sono riuscito a montarlo su un macchinario non funzionante e a realizzare la mia prima applicazione di automazione(adesso la macchina è perfettamente funzionante).

Ora, affamato di curiosità e di sapere, ho acquistato un plc s7-200 (cpu 222 dc/dc/dc) completo di pannello td200, cavo di programmazione pc/ppi e microwin v4.0 sp6. Mi rendo subito conto delle differenze tra logo! e s7-200, mi sembra quasi di ricominciare da zero ( e meno male che s7-200 è un mini plc!).

Tanto per cominciare ho provato ad installare un encoder incrementale bidirezionale 12Vcc, 50 impulsi per giro, con 3 uscite (1-2-Z) giusto per imparare qualcosa sui contatori veloci (il mio obiettivo è quello di vedere il numero degli impulsi dell'encoder, girandolo a mano, nella tabella di stato e un giorno magari sul td200).

Decido di utilizzare il contatore hsc0 modo 7.

Collego l'encoder al plc inserendo l'uscita 1 a I0.0, la 2 a I0.1 e Z a I0.2.

In microwin apro l'assistente istruzioni hsc, scelgo hsc0 modo 7, digito

il nome del sottoprogramma=hsc_init (default)

vp=0

va=0

direzione iniziale di conteggio= in avanti

livello di attività dell'ingresso reset=alta

non programmo nessun evento di interrupt

ritorno nel blocco codice e nel main tramite sm0.1 richiamo il sottoprogramma hsc_init

carico nella cpu, vado in run, attivo lo stato del programma e non vedo nessun numerino che scorre, altrettanto nella tabella di stato dove ho inserito smd38 e smd42.

Non riesco a trovare l'errore/orrore, dove sbaglio?

Premetto che ho letto e riletto il manuale (un buon 50% di esso per me è arabo) e soprattutto tutti i post di questo forum (s7-200) dove c'è la parolina magica "encoder" (ricerca avanzata); ho letto con estrema attenzione un post del 23/12/2007 che tratta specificatamente di questo problema; l'encoder credo che funzioni perfettamente in quanto i led degli ingressi si illuminano e si spengono in sequenza, in base al senso di rotazione dell'encoder ed a ogni giro completo si accende il led corrispondente al reset (Z).

Ringraziando anticipatamente tutti coloro che mi aiuteranno e scusandomi per il testo piuttosto lungo, vi saluto.

Link al commento
Condividi su altri siti


Buongiorno a tutti,

credo di aver individuato il mio problema. Subito dopo aver postato sul forum ho pensato di misurare con il tester la corrente sugli ingressi del plc e così stamattina ho provato e ho letto 8,5 Vcc (il mio encoder è alimentato a 12Vcc). Ho aperto il manuale del s7-200 e nella tabella dei dati tecnici degli ingressi digitali leggo che:

Segnale logico 1 (min.) 15 V DC a 2,5 mA

Segnale logico 0 (max.) 5 V DC a 1 mA

In pratica, anche se vedo i led accendersi e spegnersi, il plc non legge i segnali di ingresso poichè 8,5 Vcc è minore del valore minimo di tensione per il segnale logico 1 che è appunto di 15 Vcc.

Vi chiedo se c'è qualcosa (tipo amplificatore) per risolvere questo problema, nel frattempo cercherò di trovare un'altro encoder a 24Vcc per provare.

Ciao a tutti.

Link al commento
Condividi su altri siti

Esistono, forse, in commercio dei traslatori di livello, dovresti provare a ricercare presso aziende di medie e piccole dimensioni, produttrici di elettronica industriale.

Alla fin fine, però, il costo consiglia di usare un encodere a 24v, si ottiene anche un lavoro più pulito e affidabile.

Link al commento
Condividi su altri siti

Grazie Livio per la tua risposta.

Nel pomeriggio rileggendo il capitolo del manuale riguardante i contatori veloci, noto che per leggere il valore attuale di hsc0 bisogna impostare nella tabella di stato il dato hc0. Nelle prove precedenti avevo provato ad impostarlo ma digitavo hsc0, sbagliando, infatti microwin mi segnalava errore. Riprovo il mio programma di esempio (hsc0 modo 7, senza eventi di interrupt) e finalmente nella tabella di stato alla voce hc0 vedo i numerini che scorrono quando giro a mano l'alberino dell'encoder ed addirittura vedo caricarsi il valore zero (reset) quando finisco un giro completo dell'alberino.

Allora mi chiedo (per meglio dire, vi chiedo), la considerazione che avevo fatto in precedenza riguardante il valore di tensione (8,5 V) inferiore al valore minimo necessario per assegnare "1" allo stato dell'ingresso (15 V), è giusta o sbagliata?

Infine, riuscendo a girare a mano e per gradi l'encoder e aiutandomi con i led degli ingressi, noto il seguente "movimento" del valore attuale del contatore, visualizzato in hc0 nella tabella di stato:

con hsc0 in modo 7

con I0.1 on e I0.0 off il valore di hc0 diminuisce

con I0.1 on e I0.0 on il valore di hc0 aumenta

con I0.1 off e I0.0 on il valore di hc0 aumenta più velocemente

con I0.1 off e I0.1 off il valore di hc0 si blocca

con hsc0 in modo 10

con I0.1 on e I0.0 off il valore di hc0 si blocca

con I0.1 on e I0.0 on il valore di hc0 aumenta

con I0.1 off e I0.0 on il valore di hc0 si blocca

con I0.1 off e I0.1 off il valore di hc0 si blocca

Vi chiedo se tale "movimento" è giusto o sbagliato.

Ciao a tutti.

Luigi

Link al commento
Condividi su altri siti

Con livelli di segnale così bassi quello che legge il PLC non è affidabile.

Non ricordo a memoria i vari modi operativi dei contatori. Il contatore può contare, secondo modo selezionato, in modo bidirezionale, in quadratura, in modo unidirezionale. Il conteggio avviene sul riconoscimento del fronte (modo unidirezionale o bidirezionale con ingresso di selezione direzione, o sulla quadratura dei due impulsi. La velocità di conteggio è esclusivamente legata alla frequenza degli impulsi, pertanto le tue osservazioni indicano che il conteggio non è corretto, probabilmente conti disturbi.

Link al commento
Condividi su altri siti

Buongiorno a tutti e grazie Livio per la risposta.

Sicuramente, come si era detto prima, è meglio provare il tutto con un encoder a 24 Vcc (e non a 12 Vcc), in modo da non avere livelli di segnali così bassi. Inoltre, stamattina, ho trovato in magazzino un vecchio encoder monodirezionale (con 3 cavi, 2 per l'alimentazione e 1 di uscita) e purtroppo su quello che rimane della targhetta leggo solamente "monodirezionale" ma non ho altri dati. Proverò comunque ad alimentarlo a 24Vcc e vedrò cosa succede (spero in giornata).

Infine a titolo di cronaca specifico che:

modo 7= contatore a 2 fasi con 2 ingressi di clock

modo 10= contatore con fasi A/B in quadratura.

Ciao a tutti.

Luigi

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