Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff BX9000 Dokumentation Seite 151

Busklemmen-controller für ethernet
Inhaltsverzeichnis

Werbung

Programmierung
FB_IpReceive
Der Baustein FB_IpReceice ermöglicht das Empfangen von UDP- oder TCP-Telegrammen. Welche der
beiden Verbindungen verwendet wird, wurde im FB_IpStartSession [} 147] festgelegt.
Daten die Empfangen werden, müssen in einer SPS-Variabel abgelegt werden. Dafür müssen Sie einen
Pointer auf pBuffAddr legen und die Größe der Variable in cbBuffLen eintragen. Mit einer positiven Flanke
von bValid wird angezeigt, dass Daten im Speicher liegen bzw. die Daten ihrer Variabel jetzt gültig sind. Mit
einer positiven Flanke von bClear ist der Baustein wieder bereit Daten zu empfangen, bzw. liegen noch
Daten im Puffer werden diese als nächstes in die Variabel kopiert.
Achten Sie besonders bei TCP darauf, wie viele Daten empfangen wurden bzw. wie viele Daten noch im
Puffer liegen. Bei TCP/IP werden die Daten als "Stream" abgelegt, d.h. es gibt hier kein Anfang und kein
Ende. Im Gegensatz dazu wird bei UDP immer der Inhalt eines UDP Frames in einen eigenen Puffer
abgelegt.
Es können 4 UDP-Telegramme gepuffert werden, weitere UDP Telegramme gehen verloren. cbReceive
zeigt Ihnen die Anzahl der Daten in Bytes an, die in Ihre Variabel kopiert wurden. Sind mehr Daten in Puffer
als ausgelesen wurden, steht die Anzahl, der noch verbleibenden Daten in cbBytesInStream.
sReceiveIPAddr gibt Ihnen die IP-Adresse des Teilnehmers an, der Daten zur Beckhoff-Steuerung
gesendet hat und die entsprechende Port Nummer iReceivePortNo. Beide Variablen werden mit bClear
wieder gelöscht. Sie können sReceiveIPAddr und iReceivePortNo dafür nutzen um Daten an den
Teilnehmer wieder zurück zu senden mit dem Baustein FB_IpSend [} 152].
Abb. 132: Funktionsbaustein FB_IPRECEIVE
INPUT
VAR_INPUT
   bClear           : BOOL;
   iSession     : WORD;
   sRemoteIPAddr    : STRING(15);
   iPortNo      : WORD;
   pBuffAddr    : DWORD;
   cbBuffLen    : WORD;
END_VAR
bClear: Eine steigende Flanke löscht den Speicher und der Baustein ist wieder bereit Daten zu empfangen.
iSession: wird mit iSession aus dem Baustein FB_StartSession [} 147] verbunden.
sRemoteIPAddr: kann als Filter verwendet werden um nur eine spezielle IP Adresse zuzulassen.
iPortNo: kann als Filter verwendet werden um nur einen speziellen Port zuzulassen.
pBuffAddr: Mit ADR wird hier der Pointer auf die Variable übergeben, wohin die Daten kopiert werden
sollen, die Empfangen wurden.
cbBuffLen: Größe der Variabel, kann mit SIZEOF ermittelt werden.
BX9000
Version: 2.1.0
151

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis