Questa sezione descrive la gestione e le operazioni delle funzioni di comunicazione dei controller attraverso un esempio basato sul blocco funzione READ_VAR
. (Lo standard PLCopen definisce le regole per i blocchi funzione.)
I parametri comuni a tutti i blocchi funzione nella libreria PLCCommunication sono evidenziati in questo grafico:
Questi parametri sono condivisi da diversi blocchi funzione nella libreria PLCCommunication:
Ingresso |
Tipo |
Commento |
---|---|---|
|
BOOL |
La funzione è eseguita sul fronte di salita di questo ingresso.
NOTA: quando |
|
BOOL |
Interrompe l'operazione in corso sul fronte di salita |
|
ADDRESS |
Indirizzo del dispositivo esterno di destinazione (può essere l'uscita del blocco funzione ADDM) |
|
WORD |
Il timeout di scambio è un multiplo di 100 ms (0 per infinito)
NOTA: Il Timeout time è fissato a ≅1 s per HMI SCU e non può essere impostato per i blocchi funzione di comunicazione Modbus.
|
NOTA: l'esecuzione di un blocco funzione può richiedere diversi scambi. Il timeout si applica a ogni scambio tra il controller e il modem, in modo che la durata totale del blocco funzione non possa superare quella del timeout. |
Uscita |
Tipo |
Commento |
---|---|---|
|
BOOL |
|
|
BOOL |
|
|
BOOL |
|
|
BOOL |
|
|
BYTE |
|
|
DWORD |
|
Busy
viene reimpostata a 0, una (e solo una) di queste 3 uscite viene impostata a 1:
Done
Error
Aborted
I blocchi funzione richiedono un fronte di salita per poter essere inizializzati. Il blocco funzione deve prima riconoscere l'ingresso Execute
come falso per poter rilevare un successivo fronte di salita.
AVVERTIMENTO | |
---|---|
La funzione si avvia sul fronte di salita dell'ingresso Execute
. L'uscita Busy
viene quindi impostata a TRUE
. Questa figura mostra il comportamento del blocco funzione quando l'operazione viene completata automaticamente (con o senza errori rilevati):
Nota 1: durante un ciclo di task il bit Done
o Error
viene impostato su TRUE
solo se Execute
è già stato reimpostato su FALSE
al termine dell'operazione.
Questa figura mostra la funzione interrotta dall'applicazione. Il fronte di salita dell'ingresso Abort
annulla la funzione in corso. In questi casi, l'uscita interrotta viene impostata a 1 e CommError
contiene il codice Canceled - 16#02
(scambio interrotto da una richiesta dell'utente):
Nota 1: durante un ciclo di task il bit Abort
viene impostato su TRUE
solo se Execute
è già stato reimpostato su FALSE
al momento della richiesta di interruzione.