Vai al contenuto
PLC Forum


Timer In Una Db - si può?


Andrea_unipd

Messaggi consigliati

salve

Come da titolo, è possibile in step7 creare un DB contenente una serie di Timer, in modo da non doverne dichiarare decine e decine nella lista dei simboli e rischiare di usare timer già usati in altri punti del programma per altri scopi??

se si può, una volta creato il DB, come si possono indirizzare i timer da una FC?

grazie

Link al commento
Condividi su altri siti


Certo che sì!

Usi sfb4 , sfb5 ecc ecc e li richiami col nome che vuoi nella dichiarazione STAT.

il tempo però è un TIME non un s5time. In questo modo non usi i timer della cpu.

Lo dichiari così (In un FB)

NOME TIPO DATI

pippo TON

Lo richiami così

CALL #pippo

IN:=

PT:=T#10H30M40S

Q :=

ET:=

Puoi usare l'uscita anche così: #pippo.Q

Se vai nelle biblioteche/librerie e cerchi sfb4, lo evidenzi e premi F1.....avrai più info :superlol:

Link al commento
Condividi su altri siti

grazie 1000

ora più difficile: usando i timer s5, io posso fare un indirizzamento indiretto in questo modo:

      L     150
      T     MW   166
      L     #Steam_Time_Set
      SV    T [MW 166]

in questo modo setto il timer T150 con un tempo pari al valore di #Steam_Time_Set.

Si può fare una roba del genere con SFB3?

Link al commento
Condividi su altri siti

Ma stai cercando di complicarti la vita perché devi fare qualcosa di particolare o solo per masochismo?

Se è per vera necessità se ne può discutere, ma tieni presente che quando utilizzi qualcosa con indirizzamento indiretto rendi la ricerca impossibile e, di conseguenza, più complicato il debug.

Inoltre aumenti le probabilità di utilizzare due volte lo stesso timer e non accorgertene.

Se utilizzi due volte, per esempio, il timer T150, basta un cross reference per trovare l'errore.

Se, invece, per errore scrivi due volte l'indirizzo 150, dovrai controllare tutte le istruzioni dove assegni l'indirizzo per venirne a capo.

Link al commento
Condividi su altri siti

Sono totalmente d'accordo con batta.

L'indirizzamento indiretto non è sicuramente la soluzione al problema di un doppio richiamo, ma probabilmente la causa.

Un corretto, ordinato e sensato uso dei simboli, auita moltissimo così come poter usare e poter fidarsi dei riferimenti incrociati.

Per quel che mi riguarda, ho problemi di ogni genere nello sviluppo, ma non sicuramente con la dichiarazioe dei simboli.... :superlol:

Link al commento
Condividi su altri siti

Il punto è che il codice è GIA' scritto utilizzando l'indirizzamento indiretto (e non l'ho fatto io) e fa largo uso , oltre che di timer , di bit di memoria merker, sparsi qua e là. Da qui in avanti mi troverò a doverlo riutilizzare (praticamente senza modificarlo) in altre commesse, in cui però dovrò di volta in volta controllare che non ci siano "sdoppiamenti" di bit merker e timer. Perciò la mia idea era trascrivere il codice così com'è in una FB con un suo DB di istanza in cui inserire tutti i dati utili, in modo tale da poter inserire il tutto nei nuovi progetti con il minimo sforzo. Di qui le mie domande.

Ad ogni modo ho abbandonato l'idea...

Link al commento
Condividi su altri siti

e allora caro Andrea....l'unico consiglio che posso darti è di armarti di Santa Pazienza e cogliere il lato positivo:

Hai un valido esempio di come rendere semplicemente le cose difficili.

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