Vai al contenuto
PLC Forum


I/o Compact Logix - Gestiti in modo asincrono rispetto alla scansione


franco1

Messaggi consigliati

Leggo, dalle caratteristiche del Compact Logix, che la gestione degli I/O avviene in modo asincrono, cioè, indipendentemente dalla scansione del codice ladder.

Su questa cosa, spulciando qua e la su internet, qualcuno afferma che è necessario creare delle subroutine di appoggio che servano a bloccare gli I/O per un'intera scansione.

Non riesco a capire: perchè si devono bloccare gli O per un'intera scansione?

Saluti.

Link al commento
Condividi su altri siti


Non so se questa info è vera.

Comunque a spanne, se gli in variano anche durante il ciclo e le variabili di In le richiami in diversi punti del codice perchè concorrono su più azioni, potresti avere dei problemi sulla gestione delle stesse.

Non so ad esempio:

In 1 deve gestire Rout 1 e Rout 2, dove Rout 2 è dipendente da Rout 1.

Se In 1 varia durante il ciclo potresti avere:

- Istante di processo Rout 1 - In 1 alto

- Istante di processo Rout 2 - In 1 basso

In tal caso potresti avere dei conflitti sulle azioni delle rout.

Non so se mi sono spiegato...

Link al commento
Condividi su altri siti

Antstan...grazie per la risposta.

Il meccanismo degli ingressi mi è chiaro ed è, effettivamente, come dici tu.

Non riesco a spiegarmi, invece, il meccanismo delle uscite: perchè è necessario mantenerle bloccate per un ciclo di scansione?

Link al commento
Condividi su altri siti

Non riesco a spiegarmi, invece, il meccanismo delle uscite: perchè è necessario mantenerle bloccate per un ciclo di scansione?

Bhè le uscite in un programma di controllo sono puntate una sola volta, non ha senso puntarle su più punti. A parte casi particolari che in questo istante non mi immagino e che comunque sconsiglio.

Alla fine non credo che per le uscite ci vogliano accorgimenti!!!

In ogni caso sei sicuro che il PLC lavori in questo modo di default? ad esmpio PLC come Omron CJ (Ottimo prodotto ma che secondo me è inferiore all'AB serie logix5000) hanno istruzioni particolari per gestire In e Out in modo asincrono...

Di più non so dirti.

Sicuramente quì nel forum ci sono persone molto più esperte di me...

Modificato: da antstan
Link al commento
Condividi su altri siti

Mi ha incuriosito questa storia, così sono andato a cercare nei manuali.

L'unica differenza è se le uscite sono distribuite o locali, potete vedere il flow chart nel manuale 1768-um001_-en-p.pdf disponibile su internet.

Inoltre indica di usare quando serve la funzione CPS:

"If you need I/O values used during logic execution to be from one moment in time, such as at the beginning of a ladder program, use the Synchronous Copy CPS) instruction to buffer I/O data."

Link al commento
Condividi su altri siti

Quindi, se non ho capito male, usando l'istruzione CPS la lettrura degli ingressi e la scrittura delle uscite vengono rese sincrone con il ciclo di scansione?

A presto.

Link al commento
Condividi su altri siti

  • 4 weeks later...

La famiglia Logix5000 ha come caratteristica di leggere gli ingressi continuamente ed in tempo reale (del processore e non del processo), quindi durante le scansione può avvenire che cambi lo stato degli ingressi ed uscite.

E' evidente che il tempo di aggiornamento varia se l'ingresso è in ControlNet (Locale) o se remoto ed è strettamente dipende dal NUT (Network Update Time settato).

NOTA la famiglia Logix5k è sempre in rete anche se sul bus locale.

Nello sviluppo del software è opportuno evitare di utilizzare come MEMORIA un ingresso, come fanno molti, dato che cambiano di stato durante le scansioni (es. Task a tempo o evento).

Tale particolarità non si verifica sulle uscite dato che di solito ne viene settata una sola (e dico di solito... ;) ).. ma il principio è lo stesso se settata più volte l'uscita viene sovrascritta dall'ultima istruzione che la richiama. (attenzione ai ladder richiamati su evento)

Per essere certi della lettura Sincrona di un singresso il dato va "prodotto" e richiamato attraverso l'istruzione CPS.

Diversa è la necessità di dover essere certi (!) che ad un punto del programma una uscita debba essere Attivata.

In questo caso si utilizza IMMEDIATE OUT -> IOT per creare un RPI request interval packet al fine di aggiornare l'uscita in moto sincrono.

Se i dati vengono settati come prodotti e consumati il processore li tratta come dati SINCRONI con evidente perdita di tempo sul processore (es caso MOTION)

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