Questo blocco funzionale invia un messaggio esplicito.
Il tempo per eseguire l'operazione si può configurare da gestore protocollo.
È disponibile un valore di timeout per i messaggi connessi e un valore di timeout per i messaggi non connessi.
Questo blocco funzionale generico può essere utilizzato per funzioni non implementate nella libreria di messaggi esplici EtherNet/IP.
Per utilizzare il blocco funzione, occorre aggiungere almeno un dispositivo EtherNet/IP sotto il gestore protocollo. Vedere Aggiungere un dispositivo.
Per vedere la rappresentazione generale in linguaggio IL o ST, fare riferimento a Rappresentazione di funzioni e blocchi funzionali.
Questa tabella descrive le variabili di ingresso:
Ingresso |
Tipo |
Ereditato da |
Commento |
---|---|---|---|
i_xExecute |
BOOL |
BASE |
Valore predefinito: FALSE. Un fronte di salita dell'ingresso Execute avvia il blocco funzione. Il blocco funzione continua a essere eseguito e l'uscita Busy è impostata a TRUE. Un altro fronte di salita dell'ingresso Execute mentre il blocco funzione è in esecuzione viene ignorato.
|
i_xAbort |
BOOL |
BASE |
Valore predefinito: FALSE.
|
i_xMsgType |
BOOL |
- |
|
i_adTargetIP |
- |
Indirizzo IP della destinazione |
|
i_byService |
BYTE |
- |
Servizio da eseguire (per il codice servizio vedere sopra) |
i_dwClass |
DWORD |
- |
Classe di destinazione. Consultare Come trovare informazioni sugli oggetti nella documentazione del dispositivo. Deve essere 0xFFFFFFFF se la classe non deve fare parte della richiesta |
i_dwInstance |
DWORD |
- |
Istanza di destinazione. Consultare Come trovare informazioni sugli oggetti nella documentazione del dispositivo. Può essere 0 se la destinazione è un'istanza della classe. Deve essere 0xFFFFFFFF se l'istanza non deve fare parte della richiesta |
i_dwAttribute |
DWORD |
- |
Attributo di destinazione. Consultare Come trovare informazioni sugli oggetti nella documentazione del dispositivo. Deve essere 0xFFFFFFFF se l'attributo non deve fare parte della richiesta |
i_dwMember |
DWORD |
- |
Membro di destinazione. Consultare Come trovare informazioni sugli oggetti nella documentazione del dispositivo. Deve essere 0xFFFFFFFF se il membro non deve fare parte della richiesta |
i_abyRequestTag |
ARRAY OF [0…250] BYTE |
- |
Segmento simbolo esteso destinazione. Se non usato, i_wTagSize deve essere 0 |
i_wTagSize |
WORD |
- |
La dimensione effettiva del i_abyRequestTag |
i_abyRequestData |
ARRAY OF [0…999] BYTE |
- |
I dati che devono essere inviati alla destinazione. Se non usato, i_wDataSize deve essere 0 |
i_wDataSize |
WORD |
- |
La dimensione effettiva del i_abyRequestData |
Questa tabella descrive le variabili di uscita:
Uscita |
Tipo |
Ereditato da |
Commento |
---|---|---|---|
q_xDone |
BOOL |
BASE |
Valore predefinito: FALSE.
|
q_xBusy |
BOOL |
BASE |
Valore predefinito: FALSE.
|
q_xAborted |
BOOL |
BASE |
Valore predefinito: FALSE.
|
q_xError |
BOOL |
BASE |
Valore predefinito: FALSE.
|
q_byCommError |
BASE |
Codice errore di comunicazione |
|
q_dwOperError |
BASE |
Codice errore operazione |
|
q_abyResponseData |
ARRAY OF [0…999] BYTE |
- |
Dati della risposta in caso di successo |
q_wDataSize |
WORD |
- |
Dimensione dei dati di risposta in byte |
q_abyExtStatus |
ARRAY OF [0…499] BYTE |
- |
Dati di stato estesi in caso di risposta con errore |
q_wExtStatusSize |
WORD |
- |
Dimensione dei dati di stato estesi in parole da 16 bit |
q_wExtStatus |
WORD |
- |
Parola di stato estesa |
Questo è un esempio di chiamata di questa funzione:
MyEipDataExch(
i_xExecute:= Execute,
i_xAbort:= Abort,
q_xDone=> Done,
q_xBusy=> Busy,
q_xAborted=> Aborted,
q_xError=> Err,
q_byCommError=> CommError,
q_dwOperError=> OperError,
i_adTargetIp:= IpAddr,
i_xMsgType:= MsgType,
i_byService:= Service,
i_dwClass:= Class,
i_dwInstance:= Instance,
i_dwAttribute:= Attribute,
i_dwMember:= Member,
i_abyRequestTag:= RequestTag,
i_wTagSize:= TagSize,
i_abyRequestData:= RequestData,
i_wDataSize:= ReqDataSize,
q_abyResponseData=> ResponseData,
q_wDataSize=> ResDataSize,
q_abyExtStatus=> ExtStatusArray,
q_wExtStatusSize=> ExtStatusSize,
q_wExtStatus => ExtStatus);