luciopro Inserito: 1 febbraio 2007 Segnala Inserito: 1 febbraio 2007 Salve ragazzi,ho qualche consiglio da chiedervi sul conteggio veloce integrato sulle CPU S7-300 C.Utilizzo, a seconda delle configurazioni, due o 4 encoder collegati ad una CPU. gli encoder sono 360 impulsi/giro incrementali. Tutti i canali sono configurati come "Conteggi Continui" ed è abilitato il funzioanmento del gate hardware per l'zzeramento con il canale zero dell'encoder.Primo problema: all'accensione il canale non effettua nessun conteggio fino a quando non arriva un impulso fisico sul canale Gate HW. Come posso fare per risolvere questo problema, in altre parole si può sbloccare il conteggio senza bisogno di attendere un fronte sul gate hardware??Seconda domanda: Interrupt.Supponiamo di volere lanciare un interrupt quando il valore di conteggio è pari a 180. Per ottenere questo, non dovrò fare altro che impostare il valore di confronto a 180 ed abilitare l'interrupt di processo.Non mi è chiaro tuttavia quale OB viene riciamata (sul manuale ho letto che sono OB di interrupt quelle da 40 a 47, ma non ho ben capito se sono assegnate di defalt a particolari eventi o posso selezionare io quale lanciare), e come identificare qual'è il canale di conteggio che l'ha lanciato.Se volessi ad esempio azzerare il valore del contatore, come dovrei comportarmi, è sufficiente resettare il gate software???Ultima domanda: per aggiornare il valore del conteggio devo lanciare sfb47. Di solito io la richiamo nel OB1 e non ci penso più. Tuttavia in questa applicazione devo realizzare una specie di asso elettrico, quindi ho bisogni di sapere il valore esatto dell'encoder ogni 30 msec. E' corretto per risolvere il mio problema fare girare SFB47 all'interno dell'OB35, in modo da avere l'aggiornamento del conteggio ad intervalli di tempo costanti???Grazie a tutti
cisio Inserita: 2 febbraio 2007 Segnala Inserita: 2 febbraio 2007 Premetto che non ho mai usato il contatore della 300C, ma ho usato spesso altre schede di conteggio della siemens:la funzione di gate (combinazione AND del gate HW e del gate SW) deve essere mantenuta a 1 perchè il contatore conti,gate=0= nessun conteggiogate=1= conteggio attivatopoi in config hw si stabilisce se ad ogni attivazione il conteggio parte dal valore di caricamento oppure da dove si era interrotto in precedenza.Ho dato un'occhiata al manuale e devo dire che non saprei dove collegare la tacca di zero dell'encoder, non credo che il gate hw sia fatto per quelloPerò tu dici che dopo che arriva un impulso il conteggio parte e va avanti senza problemi, è cosi? Hai provato a fare un altro giro di encoder, non è che si azzera ad ogni giro?ciao
luciopro Inserita: 2 febbraio 2007 Autore Segnala Inserita: 2 febbraio 2007 "la funzione di gate (combinazione AND del gate HW e del gate SW) deve essere mantenuta a 1 perchè il contatore conti,gate=0= nessun conteggiogate=1= conteggio attivatopoi in config hw si stabilisce se ad ogni attivazione il conteggio parte dal valore di caricamento oppure da dove si era interrotto in precedenza."Infatti collego lo zero dell'encoder interfacciato sul gate hardware, in modo da invertirne il segnale, abilito il gate hw in configurazione; ed ad ogni impulso mi azzera il conteggio.Se tolgo il gate software si interrompe il conteggio e poi riparte da dove era arrivato.Non capisco perchè all'accensione avendo sia il gate hw che quello software non mi abiliti il conteggio fino a quando non gli do un impulso sul gate hw..... Penso che sia un limite del conteggio a bordo..........non vorrei fare la porcata di inserire un relè che mi tagli il segnale del gate hardware all'accensione della macchina....ci deve essere un'altro mezzo...... grazie
cisio Inserita: 2 febbraio 2007 Segnala Inserita: 2 febbraio 2007 Ok, ma in configurazione puoi scegliere "annulla conteggio" invece che "interrompi conteggio": così facendo se togli e rimetti il gate sw dovrebbe ripartire da zero.In teoria si azzera sia con un impulso sul gate sw che sul gate hw.ciao
batta Inserita: 2 febbraio 2007 Segnala Inserita: 2 febbraio 2007 Primo problema: all'accensione il canale non effettua nessun conteggio fino a quando non arriva un impulso fisico sul canale Gate HW. Come posso fare per risolvere questo problema, in altre parole si può sbloccare il conteggio senza bisogno di attendere un fronte sul gate hardware??Ma tu hai bisogno di utilizzare il gate hardware? Se non ti serve puoi semplicemente configurare il contatore senza gate hardware.Non mi è chiaro tuttavia quale OB viene riciamata (sul manuale ho letto che sono OB di interrupt quelle da 40 a 47, ma non ho ben capito se sono assegnate di defalt a particolari eventi o posso selezionare io quale lanciare), e come identificare qual'è il canale di conteggio che l'ha lanciato.La disponibilità di OB da 40 a 47 dipende dal tipo di cpu. Nelle 31xC credo proprio che ci sia solo OB40.Dovrai quindi fare all'interno di OB40 un'analisi per capire da quale contatore è stato avviato e per quale motivo.Se volessi ad esempio azzerare il valore del contatore, come dovrei comportarmi, è sufficiente resettare il gate software???La seguente frase, con la risposta alla tua domanda, la trovi nell'aiuto in linea nelle maschere di parametrizzazione dei contatori:Nella casella di riepilogo a discesa "Funzione di gate", l'utente può scegliere se annullare o interrompere il conteggio con la chiusura del gate.Selezionando "Annulla conteggio", il conteggio ha inizio dopo la chiusura e il riavvio del gate partendo dal valore di caricamento. Selezionando "Interrompi conteggio", il conteggio prosegue dopo la chiusura e il riavvio del gate con l'ultimo valore attuale di conteggio.Ultima domanda: per aggiornare il valore del conteggio devo lanciare sfb47. Di solito io la richiamo nel OB1 e non ci penso più. Tuttavia in questa applicazione devo realizzare una specie di asso elettrico, quindi ho bisogni di sapere il valore esatto dell'encoder ogni 30 msec. E' corretto per risolvere il mio problema fare girare SFB47 all'interno dell'OB35, in modo da avere l'aggiornamento del conteggio ad intervalli di tempo costanti???E' corretto, ma se hai solo bisogno di conoscere il valore attuale di conteggio, puoi anche leggere direttamente il valore della DWORD PEDxxx. L'indirizzo dipende dalla configurazione hardware, e poi devi aggiungere un offset fisso, che però non ricordo. Visualizzando i valori di PED in una VAT, andando per tentativi, non dovresti impiegare molto per trovare gli indirizzi corretti. A dire il vero questo sistema lo uso spesso con i moduli FM350, ma non ho mai provato con i conteggi integrati nelle cpu. Credo però funzioni nello stesso modo.Quindi, se trovi gli indirizzi delle PED che ti interessano, e se devi solo leggere il valore attuale, io consiglierei di non utilizzare SFB47, che richiede tempi molto più lunghi di elaborazione rispetto alla semplice interrogazione di valori dalla periferia.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora