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




Richiamo Di Un Ob - Come richiamare dall'OB 1 un altro OB


Messaggi consigliati

Inserito:

Salve a tutti e grazie in anticipo per le eventuali risposte.

La mia domanda è questa:

è possibile richiamare dall'OB 1 (l'OB principale di un progetto S7-300) un altro ORGANIZATION_BLOCK, magari utilizzando CALL, CC o UC?

Grazie a tutti.

Lock.


Inserita:

Gli Ob sono Blocchi gestiti autonomamente dal Firmware delle CPU s7

A differenza di alcuni ob che in S5 venuvano utilizzati come subrutine per effettuare operazioni complesse (regoolazioni Pid , copie di rom->ram , tabelle etc..) in s7 tutti gli ob vengono lanciati dal sistema operativo e non possono essere lanciati da utente. E' possibile solo condizionarne il lancio con parametrizzazioni (es. per ob a tempo deciderne il tempo tramite configurazione hw)

Inserita: (modificato)

Grazie Kenn: questo significa che tutti gli OB presenti in un progetto vengono lanciati ed eseguiti automaticamente, e dunque io sono sicuro che il codice presente in ognuno di essi sarà sicuramente eseguito?

Lock.

Modificato: da lock
Inserita:

No , non e' cosi'

Gli OB diciamo che sono blocchi condizionati dalla CPU , blocchi ad evento

prima scansione OB100

errore programmazione OB121

guasto schede OB85 / 86

a tempo OB35

ecc ecc

quindi vengono eseguiti solo se l'evento a cui sono legati ( dal firmware della cpu ) si verifica

solo l'OB1 e' eseguito ciclicamente

Ciao

Luca

Inserita:

Ciao :D

Comento che particolarmente Io, Ho fatto in S7 che cuando il OB101 é uguale al OB100, Io chiamo dentro del OB100 al OB101 per non programare tutto di nuovo... B)

Pure il S5 faccio lo propio con i OB 21 é il OB22.. Chiamo il OB 21 dentro d´l OB22 se sonno uguale la programazione interna.. :blink:

Ciao

Inserita:

Ciao,

sul manuale di programmazione siemens "BLOCCHI DI SISTEMA" è spiegato nel dettaglio il funzionamento di ogni OB. (anche se alcuni non sono poi così chiari...)

  • 3 months later...
Inserita:

parlando di OB di schedulazione orologio (OB32-35) vengono lanciati ad intervalli ciclici impostabili da configurazione Hardware.

Se dico poi giusto tramite SFC39 e 40 possono essere esclusi o inclusi (nel caso non voglio eseguirlo SFC39 per ricominciare ad eseguirlo SFC40).

Fin qui tutto chiaro.

La domanda è questa:

Non esiste un modo per fa eseguire OB35 in qualsiasi momento?

Mi spiego meglio. Devo campionare delle velocità di alcuni motori e utilizzo OB33. Lo lancio (da progetto poi i tempi potrei modificarli se il campionamneto non è come desidero) ogni 5 secondi.

Quando i motori si fermano voglio resettare alcune variabili.

Il reset avverrà però al massimo dopo 5 secondi (tutto dipende da quando è stato eseguito l'ultima volta, 5 sec sarà il tempo più lungo). SE io volessi resettare in un preciso istante cosa potrei fare oltre che inserire un reset delle varibili nella scansione ciclica?

Inserita:

Ken, se ho capito il tuo problema potresti fare cosi':

il tuo programma di campionamento delle velocita' lo scrivi in una FC che richiamerai da OB33;

questa FC poi la puoi richiamare anche da altre parti del programma (OB1) alle condizioni che

vuoi tu, ad esempio quando si fermano i motori.

Ciao Angelo

Inserita:

Si ci avevo pensato.

Volevo trovare anche un'altra soluzione per non caricare troppa roba.

Per ora è quello sto facendo.

Come ho forse detto prima ho preso anche in considerazione di fare 2 righe in un FC tal dei tali con un reset delle variabili dell'OB d'istanza dato che ho usato un FB per campionare (sono più campionamenti e ho bisogno di memorizzare variabili)

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