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.
Sie finden eine allgemeine Darstellung in AWL (IL) oder ST im Kapitel Darstellung von Funktionen und Funktionsbausteinen.
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.
|
i_xAbort |
BOOL |
BASE |
Standardwert: FALSE.
|
i_xMsgType |
BOOL |
- |
|
i_adTargetIP |
- |
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.
|
q_xBusy |
BOOL |
BASE |
Standardwert: FALSE.
|
q_xAborted |
BOOL |
BASE |
Standardwert: FALSE.
|
q_xError |
BOOL |
BASE |
Standardwert: FALSE.
|
q_byCommError |
BASE |
Kommunikationsfehlercode |
|
q_dwOperError |
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 |
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);