Skip to main content

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.

_task_diagram_standard.png

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