antstan Posted April 6, 2005 Report Posted April 6, 2005 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??
rguaresc Posted April 6, 2005 Report Posted April 6, 2005 (edited) Quando hai creato il timer, per esempio "Timer_x" hai costruito anche il registro di preselezione "Timer_x.PREDa qualche parte con un'istruzione MOVE scrivi il tempo variabile in questo registro.E' un metodo usuale nei programmi Allen Bradley Edited April 6, 2005 by rguaresc
jumpier Posted April 7, 2005 Report Posted April 7, 2005 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 controllareCiao, Jumpier
antstan Posted April 7, 2005 Author Report Posted April 7, 2005 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!!!
Gianluca Caredda Posted April 7, 2005 Report Posted April 7, 2005 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.
antstan Posted April 7, 2005 Author Report Posted April 7, 2005 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......
Gianluca Caredda Posted April 7, 2005 Report Posted April 7, 2005 Cosa intendi per dichiarazione? E cosa devi gestire esattamente da PC?
antstan Posted April 7, 2005 Author Report Posted April 7, 2005 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à!!!!!!!!!!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now