Vai al contenuto
PLC Forum


Ton - Come cambiare il valore preset!


antstan

Messaggi consigliati

Salve!!!

Sto scrivendo del codice con Rs logix 5000....

Ho bisogno di cambiare il valore Preset all'istruzione TON mentre il controllore è in run. Ma è possibile che questa istruzione scritta in Ladder non me lo permette???

Praticamente mi acceta solo valori numerici DINT: non posso inserire un Tag dichiarato DINT??

Link al commento
Condividi su altri siti


Quando hai creato il timer, per esempio "Timer_x" hai costruito anche il registro di preselezione "Timer_x.PRE

Da qualche parte con un'istruzione MOVE scrivi il tempo variabile in questo registro.

E' un metodo usuale nei programmi Allen Bradley

Modificato: da rguaresc
Link al commento
Condividi su altri siti

Già, "rguaresc" ha ragione! E' del tutto similare al vecchio SLC500 o PLC5.

Un esempio che fa al caso tuo lo trovi sul manuale 1756.6.4.1. Io ne ho una vecchia ediz. del marzo 1999.

Prova a controllare

Ciao, Jumpier

Link al commento
Condividi su altri siti

Ciao!!

Quel manuale non lo trovo....

Comunque: Quando in ladder chiamo l'istruzione Ton devo obbligatoriamente inserire un valore!!!! Ora devo modificarlo attraverso l'istruzione Mov! naturalmente, credo, nel rung successivo. Giusto??

Ma una cosa non capisco in rslogix 5000: Quando dichiaro un Tag non posso inizianizzarlo ad un valore appropriato??? Devo per forza far riferimento all'istruzione S:fs???

Inoltre immaginiamo di avere 200 ingrassi digitali, tutti indipendenti tra loro, i quali vanno temporizzati. per esempio: Sul fronte di discesa devo incrementare un int se però nell'arco di 5 secondi ho un altro fronte questo non deve contarlo.... In tal caso avevo pensato di utilizzare una subroutine e richiamare 200 volte la routine nel main ma in tal caso non dovrei avere dei conflitti sulla variabile che richiama?? Mi spiego meglio:

Ho, ad esempio, definito un tag personalizzato il quale contiene una variabile timer, ne dichiaro tanti quanti sono gli ingressi. Attraverso jsr richiamo la routine e gli invio il tag nella routine: prendo il tag con l'istruzione sbr. Nella routine utilizzo un tag di appoggio, ed alla Fine restituisco il tag modificato.

Non posso ancora provare il codice a causa dell'hardware ma mi sembra che in questo modo ci possono essere dei conflitti sui tag in particolare sul timer... Che ne pensate??

Spero di essermi spiegato!!!

Link al commento
Condividi su altri siti

Gianluca Caredda

L'istruzione MOV può essere messa in qualunque punto del programma dove quel Timer è visibile (dappertutto se è una variabile globale, nel solo Program dove è stata creata se è una variabile locale).

I Tag non vengono dichiarati durante l'esecuzione del programma: vengono creati durante la scrittura del programma. Da RsLogix puoi impostare nel tag del timer un determinato valore di preset: questo verrà mantenuto nella memoria del PLC vita natural durante, per cui non c'è necessariamente bisogno di un'inizializzazione del valore di preset, a meno che tu non abbia particolari esigenze.

Per quanto riguarda l'esecuzione di routines con timer interni, io uso dei timer con indirizzamento indicizzato (dei vettori di timer che hanno come indice l'indice di avanzamento del loop for..next che richiama la routine).

Non so però se sia il tuo caso, perchè sei stato abbastanza vago nell'esposizione.

Link al commento
Condividi su altri siti

devo poter inizializzare il valore di preset perchè devo gestirlo da PC.

So che non devo sempre inizializzarlo :)

Mi chiedevo in realtà se posso ad esempio impostare le word di controllo direttamente alla dichiarazione senza chiamarmi il mov....

Comunque sembra che riesco a capire......

Link al commento
Condividi su altri siti

Ad esempio ho dei moduli seriali 1734-232asc su controlnet e devo impostarne le caratteristiche sul protocollo...

Da PC, dove risiede il mio hmi che scriverò in vb devo ad esempio poter modificare il tempo di ritardo di cui specificato precedentemente!!

Comunque il tuo suggerimento sul for mi sembra appropriato!!!! Così, proprio ora, ho dichiarato un array di elementi la cosa mi sembra molto più fattibile e veloce. tuttavia ora non posso impostare il preset del ton presente nella subroutine, se inserisco un mov nella sub forse risolvo il problema....

Forse ora sono un pò confuso, ma dovrò cominciare da qualche parte ;)

Comunque grazie per la disponibilità!!!!!!!!!!

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