Vai al contenuto
PLC Forum


Dubbio Su Elaborazione Programma Su Compactlogix


zanellatofabio

Messaggi consigliati

zanellatofabio

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 al commento
Condividi su altri siti


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 Data
If 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 :blink:

Modificato: da bigalex
Link al commento
Condividi su altri siti

zanellatofabio

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 al commento
Condividi su altri siti

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 :blink:

Link al commento
Condividi su altri siti

  • 1 year later...
  • 4 months later...

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