Nella programmazione delo SlimLine esiste la possibilità di eseguire programmi in una task definita Fast. I programmi inseriti in questa task sono eseguiti di default ogni millisecondo. Quindi è evidente che campionando 1000 volte al secondo è possibile acquisire segnali (Con duty cycle del 50%) che hanno frequenza di 500 Hz (500 impulsi/secondo).
Poi se servisse con la funzione SysSetTaskLpTime è possibile modificare il tempo predefinito di esecuzione della task Fast potendo scendere fino a 100uS. Naturalmente con tempi cosi veloci di esecuzione bisogna fare una considerazione sulla quantità di operazioni da eseguire per evitare di avere degli overlap di esecuzione.
Il tempo di acquisizione degli I/O del modulo CPU è di 8uS mentre per acquisire 8 ingressi su di un modulo di estensione sono necessari 257uS (Ecco lo screenshot del programma con rilievi). Il tempo del rilievo oscillografico è maggiore del tempo reale perchè viene aggiunto il tempo necessario a gestire il segnale DTR della porta seriale utilizzato per il rilievo (Topic).
Il tempo di acquisizione degli ingressi sul modulo di estensione passa a 295uS per acquisire 16 ingressi.
Per la tua esigenza dovrai poi gestire un counter per ogni ingresso, ti ho preparato un esempio con la gestione di 6 counters uno per ogni ingresso del modulo CPU compact. Come vedi dallo screenshot il tempo per gestire i 6 counters è di 14uS. Allego il progetto IOAcquisitionTimes per il download.