EtherNet/IP – Attività ciclo bus
Informazioni generali
Generalmente, per ogni task IEC, i dati di input utilizzati vengono letti all'inizio di ogni task (1) e i dati di output scritti vengono trasferiti al driver I/O alla fine del task (3). L'implementazione nel driver I/O è decisiva per il trasferimento aggiuntivo dei dati I/O. È responsabile dell'intervallo di tempo e del momento in cui si verifica il trasferimento effettivo al sistema di bus corrispondente.
Il task ciclo bus del PLC può essere definito globalmente per tutti i bus di campo nelle impostazioni del PLC. Per alcuni bus di campo, tuttavia, è possibile modificarlo indipendentemente dall'impostazione globale. Il task con il tempo di ciclo più breve viene utilizzato come task del ciclo bus (impostazione: non specificato nelle impostazioni del PLC). I messaggi vengono normalmente inviati sul bus in questa attività.
Altri task copiano solo i dati I/O da un buffer interno che viene scambiato solo con l'hardware fisico nel task del ciclo bus.

(1) Leggere gli input dal buffer di input | (6) Buffer di uscita |
(2) Task IEC | (7) Copia i dati da/verso il bus |
(3) Scrittura degli output nel buffer di output | (9) Task ciclo bus, priorità 1, 1 ms |
(4) Ciclo bus | (10) Task ciclo bus, priorità 5 |
(5) Buffer di ingresso | (11) Task ciclo bus, priorità 10, interrotto dal task 5 |
Utilizzo delle attività
Il Distribuzione delle attività La scheda fornisce una panoramica dei canali I/O utilizzati, del task ciclo bus impostato e dell'utilizzo dei canali.
Avvertimento
Se un'uscita viene scritta in vari task, lo stato non è definito, poiché può essere sovrascritto in ogni caso.
Se gli stessi input vengono utilizzati in varie attività, è possibile che l'input venga modificato durante l'elaborazione di un'attività. Ciò accade quando l'attività viene interrotta da un'attività con priorità più alta e provoca la rilettura dell'immagine di processo. Soluzione: all'inizio dell'attività IEC, copiare le variabili di input in variabili e quindi lavorare solo con le variabili locali nel resto del codice.
Conclusione: l'utilizzo degli stessi input e output in più attività non ha alcun senso e in alcuni casi può portare a reazioni impreviste.