EipDataExch: Senden expliziter Nachrichten

Beschreibung des Funktionsbausteins

Dieser Funktionsbaustein sendet eine explizite Nachricht.

Wann die Operation ausgeführt wird, lässt sich über den Protokoll-Manager konfigurieren.

Es gibt einen Timeout-Wert für verbundene Nachrichten und einen für unverbundene Nachrichten.

Dieser generische Funktionsbaustein kann für Funktionen verwendet werden, die nicht in der EtherNet/IP-Explicit Messaging-Bibliothek implementiert sind.

Um den Funktionsbaustein verwenden zu können, müssen Sie mindestens ein EtherNet/IP-Gerät unter dem Protokoll-Manager hinzufügen. Siehe hierzu Hinzufügen eines Geräts.

Grafische Darstellung

Darstellung in AWL (IL) und ST

Sie finden eine allgemeine Darstellung in AWL (IL) oder ST im Kapitel Darstellung von Funktionen und Funktionsbausteinen.

Beschreibung der E/A-Variablen

In der folgenden Tabelle werden die Eingangsvariablen beschrieben:

Eingang

Typ

Übernommen aus

Kommentar

i_xExecute

BOOL

BASE

Standardwert: FALSE.

Eine steigende Flanke des Eingangs Execute startet den Funktionsbaustein. Der Funktionsbaustein setzt die Ausführung fort, und der Ausgang Busy wird auf TRUE gesetzt. Eine weitere steigende Flanke am Eingang Execute wird ignoriert, während der Funktionsbaustein ausgeführt wird.

  • FALSE: Wenn der Eingang Execute während der Ausführung des Funktionsbausteins auf FALSE gesetzt wird, wird der Ausgang Done oder Error für einen Zyklus auf TRUE gesetzt.

  • TRUE: Der Ausgang Done oder Error wird auf TRUE gesetzt, solange der Eingang Execute auf TRUE gesetzt ist.

i_xAbort

BOOL

BASE

Standardwert: FALSE.

  • FALSE: Die Ausführung wurde nicht abgebrochen.

  • TRUE: Die Ausführung wurde durch einen anderen Funktionsbaustein abgebrochen.

i_xMsgType

BOOL

-

  • FALSE: UCCM

  • TRUE: Verbundene Nachricht (Klasse 3)

i_adTargetIP

TCP_ADDR

-

IP-Adresse des Ziels

i_byService

BYTE

-

Auszuführender Dienst (Dienstcode siehe oben)

i_dwClass

DWORD

-

Zielklasse.

Siehe Finden von Objektinformationen in der Gerätedokumentation.

Muss 0xFFFFFFFF sein, wenn die Klasse kein Teil des Requests sein soll.

i_dwInstance

DWORD

-

Zielinstanz.

Siehe Finden von Objektinformationen in der Gerätedokumentation.

Kann 0 sein, wenn das Ziel eine Klasseninstanz ist. Muss 0xFFFFFFFF sein, wenn die Instanz kein Teil des Requests sein soll.

i_dwAttribute

DWORD

-

Zielattribut.

Siehe Finden von Objektinformationen in der Gerätedokumentation.

Muss 0xFFFFFFFF sein, wenn das Attribut kein Teil des Requests sein soll.

i_dwMember

DWORD

-

Zielmitglied.

Siehe Finden von Objektinformationen in der Gerätedokumentation.

Muss 0xFFFFFFFF sein, wenn das Mitglied kein Teil des Requests sein soll.

i_abyRequestTag

ARRAY OF [0…250] BYTE

-

Erweitertes Zielsymbol-Segment. Wenn nicht verwendet, muss i_wTagSize 0 sein.

i_wTagSize

WORD

-

Tatsächliche Größe von i_abyRequestTag.

i_abyRequestData

ARRAY OF [0…999] BYTE

-

Daten, die an das Ziel gesendet werden sollen. Wenn nicht verwendet, muss i_wDataSize 0 sein.

i_wDataSize

WORD

-

Tatsächliche Größe von i_abyRequestData.

In der folgenden Tabelle werden die Ausgangsvariablen beschrieben:

Ausgang

Typ

Übernommen aus

Kommentar

q_xDone

BOOL

BASE

Standardwert: FALSE.

  • FALSE: Die Ausführung wurde nicht gestartet oder es wurde ein Fehler erkannt.

  • TRUE: Ausführung ohne Fehler beendet.

q_xBusy

BOOL

BASE

Standardwert: FALSE.

  • FALSE: Der Funktionsbaustein wird nicht ausgeführt.

  • TRUE: Der Funktionsbaustein wird ausgeführt.

q_xAborted

BOOL

BASE

Standardwert: FALSE.

  • FALSE: Die Ausführung wurde nicht abgebrochen.

  • TRUE: Die Ausführung wurde durch den Eingang Abort abgebrochen.

q_xError

BOOL

BASE

Standardwert: FALSE.

  • FALSE: Die Ausführung des Funktionsbausteins läuft, es wurde kein Fehler erkannt.

  • TRUE: Bei der Ausführung des Funktionsbausteins ist ein Fehler aufgetreten.

q_byCommError

CommunicationErrorCodes

BASE

Kommunikationsfehlercode

q_dwOperError

OperationErrorCodes

BASE

Operationsfehlercode

q_abyResponseData

ARRAY OF [0…999] BYTE

-

Antwortdaten im Erfolgsfall

q_wDataSize

WORD

-

Größe der Antwortdaten in Byte

q_abyExtStatus

ARRAY OF [0…499] BYTE

-

Erweiterte Statusdaten im Fall einer Fehlerantwort

q_wExtStatusSize

WORD

-

Größe der erweiterten Statusdaten in 16-Bit-Wörtern

q_wExtStatus

WORD

-

Erweitertes Statuswort

Beispiel

Nachstehend ein Beispiel für einen Aufruf dieser Funktion:

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