Il blocco funzione esegue l’acquisizione degli ingressi digitali dai moduli periferici. Viene ritornato lo stato degli ingressi digitali dal modulo indicato in Address in base al comando di Mode definito.
Nota: Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address:=255 e Mode:=DI_MODE#DI_8_LL.
Approfondimenti
- In questo articolo informazioni sull’immagine di processo.
- In questo topic programma per gestione conteggio da ingresso digitale.
- In questo topic considerazioni sulla gestione degli I/O digitali.
Descrizione
Address (USINT) Occorre specificare l’indirizzo di modulo da cui eseguire l’acquisizione degli ingressi digitali (Range da 0 a 15). Il valore 0 indica il primo modulo di estensione, 1 il secondo e così di seguito. L’indirizzo 255 indica il modulo CPU.
Mode (DI_MODE) Occorre specificare il modo di acquisizione (Definizione).
Done (BOOL) Dato acquisito, viene attivato se acquisizione terminata.
Fault (BOOL) Errore di acquisizione, viene attivato in caso di errore nella sequenza di acquisizione.
Value (UDINT) Ritorna lo stato degli ingressi digitali acquisiti.

Esempi
Come utilizzare gli esempi.
Viene acquisito lo stato degli 8 ingressi bassi (Da Inp 0 a Inp 7) del modulo di espansione con indirizzo 0. Se dato valido il valore acquisito nel range da 0x00 a 0xFF è trasferito nella variabile InpValue.
LogicLab (Ptp116, ST_SysGetPhrDI
)
CODESYS (Ptp161, ST_SysGetPhrDI
)
La possibilità di accedere direttamente all’hardware permette di acquisire gli ingressi digitali in tempo reale senza dover passare dall’immagine di processo I/O. In questo modo possiamo acquisire anche ingressi che si attivano per tempi ridottissimi.
Nell’esempio viene acquisito 2000 volte al secondo l’ingresso collegato alla rotazione di una bobina di carta in svolgitura e ne viene calcolato il diametro. Per il calcolo del diametro si acquisiscono gli impulsi da un generatore cablato sul rullo di traino ed in base al numero di impulsi acquisiti ad ogni giro di bobina è possibile ricavarne il diametro.
Il programma deve essere eseguito nella task Fast di cui viene modificato il tempo di esecuzione standard portandolo da 1mS a 500uS.

LogicLab (Ptp116, ST_DiameterCalc
)
ST_DiameterCalc