zanellatofabio Posted January 16, 2015 Report Share Posted January 16, 2015 Salve a tutti, perdonate l'intrusione nella sezione Allen Bradley ma sono alle prese con un plc come da titolo e ho un dubbio. Sono abituato a usare Siemens S7-300 e sò che il plc prima legge l'immagine di processo degli ingressi,poi elabora il programma, infine scrive l'immagine di processo delle uscite. Riferendomi ad una semplice gestione di un ingresso digitale questo si traduce praticamente che se un ingresso cambia di stato durante il tempo di esecuzione del programma, tale variazione non viene vista dal programma che considera l'immagine di processo degli ingressi letta in precedenza. Venendo al dunque : sul compactlogix mi sembra di ricordare che mi avevano spiegato che tale plc legge continuamente ( durante l'esecuzione del programma ) lo stato degli ingressi e quindi non si comporta come ho descritto prima sul SIemens. Mi potete confermare ciò oppure ricordo male io ? Se così è allora ho una seconda domanda : Assegando agli ingressi degli alias, detti alias hanno lo stesso la capacità durante l'esecuzione del programma di cogliere in quell'istante lo stato dell'ingresso associato oppure no ? Grazie 1000 in anticipo a chi mi potrà aiutare ! Buon lavoro a tutti Fabio Link to comment Share on other sites More sharing options...
bigalex Posted January 16, 2015 Report Share Posted January 16, 2015 (edited) Ciao Fabio. Nei controllori della serie Logix (quindi anche ConpactLogix) queste sono le linee guida di riferimento per il processo degli I/O e relativa elaborazione. Le informazioni sono estratte dal manuale della Rockwell (pag.61) e sono in inglese: Communicate with I/O In Logix5000 controllers, I/O values update at a period, requested packet interval (RPI), that you configure via Module Property dialog in the I/O configuration folder of the project. The values update asynchronously to the execution of logic. The module sends input values to the controller at the specified RPI. Because this transfer is asynchronous to the execution of logic, an I/O value in the controller can change in the middle of a scan. Buffer I/O DataIf you reference an I/O tag multiple times and the application could be impacted if the value changes during a program scan, you must copy the I/O value into a buffer tag prior to the first reference of that tag in your code. In your code, reference the buffer tag rather than the I/O tag. Guarda con attenzione le righe in grassetto. Poi le uscite sono aggiornate alla fine di ogni singolo task che le processa. Pertanto è necessario prestare la massima attenzione sia nella gestione dell'acquisizione degli ingressi sia delle uscite inquanto il classico schema di elaborazione Immagine ingressi ---> elaborazione programma ---> attivazione uscite non è valido. bigalex Edited January 16, 2015 by bigalex Link to comment Share on other sites More sharing options...
zanellatofabio Posted January 16, 2015 Author Report Share Posted January 16, 2015 Ok, grazie 1000 bigalex, sempre preciso e affidabile ! Era come ricordavo. Difatti nei programmi che di solito scrivo ( inpendentemente dalla marca del plc) io uso creare un blocco dove leggo gli ingressi fisici e li appoggio a delle tag ingresso , poi scrivo tutto il codice programma e alla fine in blocco leggo le tag uscite e le scrivo sulle uscite fisiche. Questo anche per agevolare la riusabilità del codice scritto per altri lavori. è una cosa che mi porto dietro da codesys..... Ma vale anche per Siemens e AB .... Mi resta ancora il dubbio della funzione degli alias degli ingressi in allen bradley come scritto al post 1 .... Ciao Link to comment Share on other sites More sharing options...
bigalex Posted January 17, 2015 Report Share Posted January 17, 2015 Ciao Fabio. Per quanto riguarda la tua domanda: Assegando agli ingressi degli alias, detti alias hanno lo stesso la capacità durante l'esecuzione del programma di cogliere in quell'istante lo stato dell'ingresso associato oppure no ? Direi che la risposta è "no" inquanto gli alias sono appunto degli alias della tag a cui si riferiscono e di cui condividono il valore/stato. La variazione del valore dell'alias è contemporanea alla variazione del valore del tag di riferimento. Lo scopo degli alias è per poter dare un nome maggiormente descrittivo a tag nativi di I/O che normalmente avrebbero una sintassi meno esplicita . Per una descrizione dettagliata degli alias tag ti rimando alla lettura di questo manuale Rockwell (pag.47) . Tieni presente che con una semplice ricerca con Google ci puoi arrivare anche tu (che è poi quello che ho fatto io). bigalex Link to comment Share on other sites More sharing options...
zanellatofabio Posted January 21, 2015 Author Report Share Posted January 21, 2015 Grazie ancora ! Bye Link to comment Share on other sites More sharing options...
gremodic Posted February 26, 2016 Report Share Posted February 26, 2016 si confermo che gli alias si aggiornano contemporaneamente agli ingressi/uscite Link to comment Share on other sites More sharing options...
Henon Posted July 7, 2016 Report Share Posted July 7, 2016 Usa sempre gli alias, e lascia stare la lettura e scrittura delle periferia associata agli I/O mediante copiatura su Tags. In Siemens si fa così ma devi imparare ad usare la tecnica corretta. Qui per ogni I/O ti crei una Tag Associata (Alias) come quando usavi fare nel Siemens con il Simbolico. Il vantaggio è che se usi queste tags su task più veloci o molto più lente, ti ritrovi il dato aggiornato alla situazione reale degli I/O nell'istante corretto di elaborazione. Altrimenti se fai un acrocchio di copiare queste tags dagli I/O in una task, ed usi queste tags in Task più veloce o a Evento rimani con i dati non aggiornati. Inoltre se hai tanti I/O fare una copia magari di migliaia tags può rallentare il ciclo della CPU. Puoi benissimo creare le tue tags, con il nome che più corrisponda all'azione Software, magari tralasciando Item della Macchina (se serve scrivi Item nel commento della tag) Poi se devi riutilizzare il software un altra volta, cambi solamente le associazioni. La restante altra parte del software non la devi più toccare. Inoltre vedi immediatamente che si tratta di un dato di I/O perchè gli alias hanno un colore differente. Nel CompactLogix a differenza del ControlLogix quando cambi Hardware le tags risultano non più valide (devi cambiare l'alias appunto) mentre per il ControLogix se non c'è questa corrispondenza prosegue senza incavolarsi. Per le tags usa dei nomi corti, altrimenti ti ritrovi un programma illegibile da visionare. Usa la notazione unghere per abbreviare il Nomi. Creati delle regole per organizzare la scrittura di queste tags. pultroppo quando si ha molta libertà nei nomi sorge un casino nel gestirli. Ecco un esempio: I_Shear_Up_Btn, O_JointR_Run Discrimino nel primi caretteri se è un Ingresso o uscita I,O (il tipo IA , OA Ingresso o Uscita Analogica) Discrimino nella seconda serie di caratteri Ubicazione, o la parte di macchina o controllo Discrimino nella ultima serie di caretteri, azione del comando o il suo Stato. Link to comment Share on other sites More sharing options...
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