SEND_RECV_MSGSEND_RECV_MSG: Senden und/oder Empfangen benutzerdefi­nierter Nachrichten

Beschreibung der Funktion

Der Funktionsbaustein SEND_RECV_MSG sendet und empfängt benutzerdefinierte Nachrichten. Der Baustein sendet eine Nachricht über das ausgewählte Medium (z. B. eine serielle Leitung) und wartet dann auf eine Antwort. Es ist auch möglich, Nachrichten zu senden, ohne auf eine Antwort zu warten, oder ohne Senden einer Nachricht eine Nachricht zu empfangen.

Diese Funktion sollte mit einem ASCII-Manager verwendet werden. Die Verwendung mit einem Modbus-Manager ist ebenfalls möglich, wenn Sie einen Request senden möchten, der nicht in der Kommunikationsbibliothek implementiert ist. In diesem Fall müssen Sie den Request selbst erstellen.

Grafische Darstellung

G-RU-0010457.2.gif-high.gif

 

 

Beschreibung der SEND_RECV_MSG-spezifischen Parameter

Eingang

Typ

Kommentar

QuantityToSend

UINT

QuantityToSend ist die Anzahl der zu sendenden Bytes.

Steuerungsspezifische Beschränkung:

oM258/LMC058: 1050 Bytes

oM241/M251: 252 Bytes

BufferToSend

POINTER TO BYTE

BufferToSend ist die Adresse des Puffers (Byte-Array), in dem die zu sendende Nachricht gespeichert ist. Die Standardfunktion ADR muss zum Definieren des zugehörigen Zeigers verwendet werden. (siehe nachstehendes Beispiel). Bei 0 führt die Funktion nur einen Empfang durch.

SizeRecvBuffer

UINT

SizeRecvBuffer ist die verfügbare Größe des Empfangspuffers (in Byte).

Die Größe der empfangenen Daten (in Byte) ist in der internen Eigenschaft der Funktionsbausteininstanz (interne Variable) verfügbar: <Instanzname>.NbRecvBytes.

Steuerungsspezifische Beschränkung:

oM258/LMC058: 1050 Bytes

oM241/M251: 252 Bytes

BufferToRecv

POINTER TO BYTE

BufferToRecv ist die Adresse des Puffers (Array von SizeRecvBuffer-Bytes), in dem die empfangene Nachricht gespeichert wird. Die Standardfunktion ADR muss zum Definieren des zugehörigen Zeigers verwendet werden. (siehe nachstehendes Beispiel). Bei 0 führt die Funktion eine Nur-Senden-Operation durch.

Bei Nur-Senden-Operationen ist der Datenaustausch abgeschlossen (Busy wird auf 0 zurückgesetzt), wenn alle Daten (einschließlich eventueller Start- und Stoppzeichen) an die Verbindung gesendet wurden.

Bei einer Senden/Empfangen- oder Nur-Empfangen-Operation empfängt das System Zeichen bis zur Endbedingung. Wenn die Endbedingung erreicht wird, ist der Datenaustausch abgeschlossen (Busy wird auf 0 zurückgesetzt). Die empfangenen Zeichen werden dann bis Erreichen der Zeichenanzahl sizeRecvBuffer in den Empfangspuffer kopiert, die Größe der empfangenen Daten (in Byte) ist in der Eigenschaft der Funktionsbausteininstanz (interne Variable) verfügbar: <Instanzname>.NbRecvBytes. Der sizeRecvBuffer-Eingang stellt keine Endbedingung dar.

Die Eingangs- und Ausgangsparameter, die für alle Funktionsbausteine der PLCCommunication-Bibliothek gelten, werden an anderer Stelle beschrieben.

Die Start- und Endbedingungen für benutzerdefinierte Nachrichten werden im Konfigurationsdia­logfeld des ASCII-Managers konfiguriert:

G-SE-0001723.1.gif-high.gif

 

 

HINWEIS: Dieses Beispiel enthält keine Start- und Endzeichen. Die Endbedingung für den Frame-Empfang ist ein Timeout von 250 ms.

Beispiel

Diese POU ermöglicht die Nur-Senden-Operation für die benutzerdefinierte Nachricht „hello“ über die serielle Leitung 1:

G-SE-0002099.1.jpg

 

 

HINWEIS: Eine steigende Flanke an der Variablen Start startet die Konvertierung einer Adresse und den Versand der Nachricht.