Vai al contenuto
PLC Forum


Temporizzatore Non Si Riavvia - passato come parametro ad una fc, non si riavvia alla seconda istanza


Messaggi consigliati

Inserito: (modificato)

ciao a tutti,

ho un problema con un temporizzatore con ritardo all'inserzione che deve segnalarmi se oltre un tempo t due il contatto e il contatto ausiliario sono ancora diversi

avvio questo temporizzatore due volte, in due istanze diverse di una stessa fc che vengono chiamate in momenti diversi dall'ob. inoltre per come ho strutturato l'ob sono sicuro che queste due fc NON vengano richiamate in uno stesso ciclo.

di seguito vi riporto la parte di ob1 in cui chiamo queste fc. il timer in questione è TimerEVB che viene passato all'fc come parametro IN.

voglio sottolineare che ho anche usato le funzioni FR e R per il temporizzaotre perchè stavo cercando di porre rimendio al mio pasticcio seguendo quello che dice il manuale, inizialmente non avevo fatto così. ma non sembra avere effetti. il temporizzatore non riparte quando viene chiamato la seconda volta.

________
[b]SEG5[/b]
________
      U     "Ca_valvolaB"
      O     "M_EVBoff"
      SPB   onA
      S     "M_l1"
      CALL  "valvole"
       IO     :=TRUE
       tempo  :="tempi".tempoEV
       crono  :="TimerEVB"
       CV     :="C_valvolaB"
       luce_em:="LG_vb"
       CaV    :="Ca_valvolaB"
      BEA 

_________
[b]SEG6[/b]
_________
onA:  R     "TimerEVB"
......

___________
[b]SEG20[/b]
___________
      UN    "Ca_valvolaB"
      SPB   ofVA
      CALL  "valvole"
       IO     :=FALSE
       tempo  :="tempi".tempoEV
       crono  :="TimerEVB"
       CV     :="C_valvolaB"
       luce_em:="LG_vb"
       CaV    :="Ca_valvolaB"
      BEA   

_______
[b]SEG21[/b]
________
ofVA: S     "M_EVAoff"
....


[b]
Qui invece l'fc[/b]

____
[b]seg2[/b]
____
      XN    #CV
      XN    #CaV
      FR    #crono

____
[b]seg3[/b]
____
      X     #CV
      X     #CaV
      L     #tempo
      SE    #crono

____
[b]seg4[/b]
____
      UN    #crono
      BEB

grazie mille a quanti risponderanno

Modificato: da NULL

Inserita:

Per avviarsi il timer deve vedere l'RLC passare da 0 a 1.

Se termini un richiamo all'FC con il timer che legge RLC = 1 e poi richiami l'altra FC e il timer legge ancora RLC = 1, il timer non si riavvia.

Piuttosto che lavorare con FR, io trovo più pratico semplicemente inserire istruzioni tipo:

CLR

SE Txxx

Ma non puoi usare due timer diversi?

Se non strettamente indispensabile io eviterei di richiamare lo stesso timer più volte.

Inserita:

grazie mille il tuo suggerimento mi è tornato utile.

ho spostato i merker all'interno dell'fc, in questo modo tutti i timer vedevano l'rlc passare a 0

ho comunque usare clr alla fine dell'ob per resettare i timer all'interno di ob1

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