enricojester1 Inserito: 12 agosto 2014 Segnala Share Inserito: 12 agosto 2014 salve ragazzi allora ho impostato dei contatori veloci per poter leggere un conteggio tramite encoder con canali a e b tramite un move mi leggo la quota trasferita su un db in dint quello che vorrei fare è settare una memoria al raggiungimento di un dato conteggio ho provato quanto segue: tramite una operazione di confronto ..confronto che il db sia uguale a un valore che definisco io ma se l' encoder va veloce la memoria non viene settata neanche di striscio.. ho provato inserendo il tutto su 0b interrupt ma niente ho provato inserendo il tutto su ob cyclic interrupt impostandolo a 1 ms ma niente non so come fare.. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 12 agosto 2014 Segnala Share Inserita: 12 agosto 2014 Che contatori usi? Dovrebbe essere previsto direttamente nella scheda il confronto con generazione di interrupt. Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 12 agosto 2014 Segnala Share Inserita: 12 agosto 2014 Ciao, non l'ho mai usato, ma ho guardato sul manuale di sistema: Le istruzioni ATTACH e DETACH consentono di attivare e disattivare sottoprogrammi comandati da eventi. ............. Eventi di interrupt di processo La CPU supporta i seguenti eventi di interrupt di processo: ............ ● Eventi "valore attuale del contatore veloce (HSC) = valore di riferimento (CV = RV)" (HSC da 1 a 6) – Quando il valore attuale di conteggio passa da un valore adiacente al valore che coincide esattamente con quello di riferimento precedentemente definito viene generato un allarme CV = RV per un HSC. ● Eventi "cambiamento di direzione HSC" (HSC da 1 a 6) – Quando il sistema rileva che il conteggio dell'HSC cambia da crescente in decrescente o viceversa si verifica un evento "cambiamento di direzione". ● Eventi "reset esterno HSC" (HSC da 1 a 6) – Alcuni modi degli HSC consentono di assegnare un ingresso digitale come reset esterno che ha la funzione di azzerare il conteggio dell'HSC. Quando questo ingresso passa da OFF a ON si verifica un evento di reset esterno per l'HSC. Link al commento Condividi su altri siti More sharing options...
enricojester1 Inserita: 12 agosto 2014 Autore Segnala Share Inserita: 12 agosto 2014 grazie ragazzi per le risposte sto lavoroando su un s7 1200 cpu 1214c si ho settato i contatori veloci hsc_1 quindi non c' è nessun altro modo che usare attach e detach? Link al commento Condividi su altri siti More sharing options...
enricojester1 Inserita: 12 agosto 2014 Autore Segnala Share Inserita: 12 agosto 2014 niente non riesco usarli devo studiarmeli un bel po Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 12 agosto 2014 Segnala Share Inserita: 12 agosto 2014 Ciao, qui scegli il manuale di sistema per la tua CPU; al suo interno cerchi HSC: ne parla in più capitoli e, per fare quello che ti occorre, oltre a ciò che ti ho già postato, ne parla anche riguardo gli OB di interrupt di processo: Gli OB di interrupt di processo vengono eseguiti quando si verifica l'evento di processo rilevante, ad es. un fronte di salita e di discesa negli ingressi integrati o un evento HSC. Gli OB di interrupt di processo interrompono la normale esecuzione ciclica del programma in risposta al segnale proveniente da un evento di processo. Gli eventi possono essere definiti nelle proprietà della configurazione hardware. È consentito utilizzare un OB per ciascun evento di processo configurato. L'OB deve avere il numero 200 o un numero superiore. Mi spiace ma, non avendoli mai usati, non so come altro aiutarti ... Link al commento Condividi su altri siti More sharing options...
enricojester1 Inserita: 12 agosto 2014 Autore Segnala Share Inserita: 12 agosto 2014 macchè figurati troppo gentile anzi io uso gli hardware interrupt tipo ob 40 appunto per rilevare un fronte di salita o in discesa in maniera rapida , tramite i canali messi a disposizione sugli ingressi della cpu ho provato a usarli con la memoria ma mi viene settata solo se l' encoder gira lento. su attach imposto su ob_nr l' ob di interrupt che voglio avvenga l' evento ma su event come faccio a dirgli la quota che mi scatena l' eccitazione della memoria? sperando nella vostra pazienza..sennò grazie lo stesso Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 12 agosto 2014 Segnala Share Inserita: 12 agosto 2014 Io l'ho capita così, utilizzi un OB di interrupt di processo (si parte da OB200), definindo l'evento HSC di tuo interesse (esempio valore attuale del contatore veloce = valore di riferimento) utilizzi CTRL_HSC per settare tutti i tuoi valori utilizzi ATTACH a quel blocco OB, sempre definindo l'evento HSC di tuo interesse Gli interrupt hardware non credo vadano bene: mica devi leggere un fronte su un ingresso, o no ? Infine è l'evento stesso che viene creato perchè il valore del contatore HSC è uguale al valore di riferimento, probabilmente quando definisci l'HSC: Eventi "valore attuale del contatore veloce (HSC) = valore di riferimento (CV = RV)" (HSC da 1 a 6) – Quando il valore attuale di conteggio passa da un valore adiacente al valore che coincide esattamente con quello di riferimento precedentemente definito viene generato un allarme CV = RV per un HSC quindi quando il conteggio raggiunge il valore di riferimento, l'evento viene creato dalla CPU e, se hai impostato tutto correttamente, ti richiama il tuo OB in automatico; guarda anche l'istruzione CTRL_HSC che setta tutti questi valori e che, presumo, va richiamata prima di avviare il conteggio e l'istruzione ATTACH. Sono anche convinto che, se cerchi bene, in Siemens Support trovi anche un esempio ... Link al commento Condividi su altri siti More sharing options...
enricojester1 Inserita: 14 agosto 2014 Autore Segnala Share Inserita: 14 agosto 2014 grazie ci smanetto un po su invece di andare in spiaggia Link al commento Condividi su altri siti More sharing options...
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