Vai al contenuto
PLC Forum


Esecuzione OB10


Reverendo bit

Messaggi consigliati


Ciao, puoi eseguire il blocco OB10 (Time of day interrupt) anche senza usare le istruzioni SFC28 "SET_TINT" e SFC30 "ACT_TINT" (e tali funzioni le puoi usare anche in una function block e non necessariamente in OB1, ovviamente in tal caso devi essere sicuro che vengano richiamate). Se non usi tali istruzioni (SET_TINT e ACT_TINT) devi attivare il blocco OB10 da step7, per fare questo clicca tasto desto sulla cpu->properties->Interrupts->Time of day interrupts, dopo di chè spunta "Active" e su "Execution" scegli il tempo di interruzione.

Per ulteriori informazione puoi consultare questo manuale della Siemens a pag 22
http://www.itk.ntnu.no/**/TTK4175/Lab/Profibus/System and Standard Functions for S7-300 and S7-400.pdf dove puoi chiaramente vedere che hai tre possibilità per configurare un "time of day interrupt".

Link al commento
Condividi su altri siti

Ciao Android,

Il motivo della mia domanda è il seguente:

L'OB10 l'ho configurato nell'hw di Step7, attivando la spunta "attiva" dicendogli di eseguirlo giornalmente alle 23:59 a partire dal giorno successivo, e fino a qui non avevo fatto altro.

Dentro l'OB10 avevo inserito il seguente codice per monitorare la corretta esecuzione:

L MW10

L 1

+ I

T

MW10

Il fatto è che la MW10 puntualmente la trovavo a 0 quindi significa che il blocco non viene eseguito, allora per un test ho inserito l'scf30 in ob1 per attivarlo, e da quel momento in poi ho visto la MW10 che giornalmente si incrementa.

Domani provo a rimuovere l'sfc30 e lasciare solo i settaggi della hw config, e vedo che succede.

 

Saluti.

Link al commento
Condividi su altri siti

Prova ad usare l'istruzione "QRY_TINT" (SFC31) (pag 151 del manuale di prima), nell'output "STATUS" devi avere
bit0=0; bit1=0; bit2=1; bit4=1; (ossia 0000_0000_0001_0100),

se bit1=1 allora il "time-of-time interrupt" è disabilitato da "DIS_IRT".
se bit2=0 allora il "time-of-time interrupt" non è attivato

Non puoi provare ad eseguirlo ogni minuto? (intendo anche col simulatore se non è possibile nell'impianto)

Link al commento
Condividi su altri siti

Si posso provare anche con il simulatore.

comunque grazie per le dritte, domani tempo permettendo fare qualche test e poi ti farò sapere.

 

Grazie :thumb_yello:

Link al commento
Condividi su altri siti

Ciao Android,

Oggi ho verificato, lo stato del "time-of-time interrupt" tramite l'SFC31 e lo stato dell'output era esattamente come avevi descritto, 

nell'output "STATUS" devi avere
bit0=0; bit1=0; bit2=1; bit4=1; (ossia 0000_0000_0001_0100),

A questo punto ho cancellato sia il richiamo all'SFC30 ed all'SFC31, a questo punto non mi aspetto sorprese, domani mattina ti saprò dire.

Saluti

Reverendo.

Link al commento
Condividi su altri siti

Ciao Reverendo,

Dovrebbe funzionare :thumb_yello:, però a volte le sorprese sono sempre dietro l'angolo :smile:

PS: ovviamente devi aver verificato l'output "STATUS" di SFC31 quando SFC30 non era richiamato

Modificato: da android633
Link al commento
Condividi su altri siti

Ciao Android33,

 

Adesso funziona, ho apsettato qualche giorno per verificare che non si piantasse dopo il primo richiamo.

comunque si prima ho cancellato il richiamo di SFC30 e poi ho verificato.

Non so quale sia stato il problema, ma l'importante che funzioni. 

Grazie.

 

Reverendo.

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