Vai al contenuto
PLC Forum


Settare Memoria Con Contatori Veloci


enricojester1

Messaggi consigliati

enricojester1

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


Che contatori usi?

Dovrebbe essere previsto direttamente nella scheda il confronto con generazione di interrupt.

Link al commento
Condividi su altri siti

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

enricojester1

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

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

enricojester1

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

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

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