EipDataExch: inviare un messaggio esplicito

Descrizione del blocco funzione

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.

Rappresentazione grafica

Rappresentazione IL e ST

Per vedere la rappresentazione generale in linguaggio IL o ST, fare riferimento a Rappresentazione di funzioni e blocchi funzionali.

Descrizione delle variabili di I/O

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.

  • FALSE: Se l'ingresso Execute è impostato a FALSE durante l'esecuzione del blocco funzione, l'uscita Done o Error viene impostata a TRUE per un ciclo.

  • TRUE: L'uscita Done o Error è impostata a TRUE finché l'ingresso Execute è impostato a TRUE

i_xAbort

BOOL

BASE

Valore predefinito: FALSE.

  • FALSE: l'esecuzione non è stata interrotta.

  • TRUE: l'esecuzione è stata interrotta da un altro blocco funzione.

i_xMsgType

BOOL

-

  • FALSE: UCCM

  • TRUE: messaggio connesso (classe 3)

i_adTargetIP

TCP_ADDR

-

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.

  • FALSE: l'esecuzione non è stata avviata o è stato rilevato un errore.

  • TRUE: esecuzione terminata senza errori rilevati.

q_xBusy

BOOL

BASE

Valore predefinito: FALSE.

  • FALSE: il blocco funzione non è in fase di esecuzione.

  • TRUE: il blocco funzione è in fase di esecuzione.

q_xAborted

BOOL

BASE

Valore predefinito: FALSE.

  • FALSE: l'esecuzione non è stata interrotta.

  • TRUE: l'esecuzione è stata interrotta da un ingresso Abort.

q_xError

BOOL

BASE

Valore predefinito: FALSE.

  • FALSE: esecuzione del blocco funzione in corso, nessun errore rilevato.

  • TRUE: è stato rilevato un errore nell'esecuzione del blocco funzione.

q_byCommError

CommunicationErrorCodes

BASE

Codice errore di comunicazione

q_dwOperError

OperationErrorCodes

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

Esempio

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);