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.)
NOTA: Questi parametri sono comuni a tutti i blocchi funzione PLCCommunication (eccetto ADDM).
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 |
---|---|---|
Execute |
BOOL |
La funzione è eseguita sul fronte di salita di questo ingresso. NOTA: quando xExecute è impostato a TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato. |
Abort |
BOOL |
Interrompe l'operazione in corso sul fronte di salita |
Addr |
ADDRESS |
Indirizzo del dispositivo esterno di destinazione (può essere l'uscita del blocco funzione ADDM) |
Timeout |
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 |
---|---|---|
Done |
BOOL |
Quando la funzione viene completata correttamente, Done è impostato a TRUE. |
Busy |
BOOL |
Mentre la funzione è in corso, Busy è impostato a TRUE. |
Aborted |
BOOL |
Quando la funzione viene interrotta con l'immissione del comando Abort, Aborted è impostato a TRUE. Quando la funzione viene interrotta, CommError contiene il codice Canceled - 16#02 (scambio interrotto da una richiesta dell'utente). |
Error |
BOOL |
Quando la funzione si interrompe per il rilevamento di un errore, Error è impostato a TRUE. Quando viene rilevato un errore, le relative informazioni sono contenute in CommError e OperError. |
CommError |
BYTE |
CommError contiene i codici di errore della comunicazione. |
OperError |
DWORD |
OperError contiene codici di errore delle operazioni. |
NOTA:
Quando l'uscita Busy viene reimpostata a 0, una (e solo una) di queste 3 uscite viene impostata a 1:
oDone
oError
oAborted
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.
|
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA |
Effettuare sempre la prima chiamata a un blocco funzione con l'ingresso Execute impostato a FALSE, in modo che possa rilevare un successivo fronte di salita. |
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature. |
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 a TRUE solo se Execute è già stato reimpostato a 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 a TRUE solo se Execute è già stato reimpostato a FALSE al momento della richiesta di interruzione.