Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Blocchi Organizzativi Di Schedulazione Orologio


Messaggi consigliati

Inserito:

Salve, qualcuno riesce a fare un esempio riguardo l'uso degli OB a tempo?

Se per esempio voglio che il software ogni xx tempo incrementi il valore di un'uscita analogica come devo fare? Supponendo di di utilizzare OB35, 100ms, devo inserirlo nel programma, come faccio ad andare a leggere ed accumulare il tempo per poi stabilire cosa fare ad un tempo X?

Se invece voglio che ogni xx secondi si attivi un uscita digitale?

Saluti


Inserita: (modificato)

sommando. ogni 100ms l'ob viene eseguito solo una volta.

ad ogni scansione sommi 1 ad una variabile. quando raggiunge il tuo valore prefissato esegui un codice che attiverà la tua uscita oppure altro. in fondo a questo codice dovrai poi resettare la variabile riportandola a zero.

nuova scansione e il ciclo ricomincia

l dbxx.dbwxx //contatore
l 1
+i
t dbxx.dbwxx //contatore
l 10 //o altro valore, 10 rappresenta 1sec
==I
spbn FUNZ
*** qui puoi richiamare un fc, oppure scrivere il tuo codice qui***
l 0
t dbxx.dbwxx //contatore
FUNZ: nop 0

nell'esempio sopra citato tutto quello che c'è dopo SPBN FUNZ verrà eseguito una sola volta ogni secondo

Modificato: da ken
Inserita:

Intanto grazie per la risposta, tutto chiaro.

Ma i 100ms sono esatti o il tempo di esecuzione ciclo va sommato? Il codice esempio, va scritto dentro l'Ob 35? Hai qualche esempio tipo una rampa lineare o di qualche altro tipo? Grazie intanto, saluti

Inserita:

Se, come è corretto, programmi il timer Hw di sistema a 100 ms e lo leghi all'interrupt dell'OB35 i 100 ms non dipendono dal tempo di ciclo proprio perchè l'interrupt interrompe il ciclo di programma.

Io consiglierei di scrivere solo le istruzioni necessarie al conteggio ed alla comparazione e richiamare una FB esterna.

Se non ricordo male il tempo lo si imposta nel configuratore Hw una tantum

Inserita:

Ciao Livio, grazie.

Per dirla tutta, perché si usano gli OB a tempo e non dei temporizzatori?

Inserita:

Sono due cose differenti. L'OB è lanciato da un interrupt su clock di sistema. E' molto preciso ed è indipendente dall'evolversi del programma.

Inserita:

i timer dipendono dalla scansione del programma perciò la sequenza (o il segmento) si attiverà solo quando la scansione arriva a quel punto di software. gli ob schedulati invece hanno priorità e vengono eseguiti ogni x tempo sia che la scansione sia in un punto sia che la scansione sia altrove.

ovvio che troppe schedulazioni contemporanee portano a ritardi, non è possibile eseguire due ob contemporaneamente.

  • 6 months later...
Inserita:

Ok, ho capito la differenza tra l'utilizzo di un OB e un timer.

Imposto un OB a tempo a "X" mS e ogni "X" tempo lo stesso OB sarà letto e ripetuto, scrivo la funzione che serve all'interno dell'OB e fin qui è chiaro, non mi è chiaro quali delle variabili appartenenti all'OB a tempo vanno impostate e/o utilizzate e come va fatto.

Grazie

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