UDP/IP-Verbindung
UDP ist eine sehr einfache Ethernet-Verbindung. UDP-Daten werden versendet, ohne dass es einen Mechanismus gibt ob das Telegramm angekommen ist oder nicht. Für eine funktionierende UDP-Kommunikation muss die Port-Nummer auf beiden Seiten bekannt sein.
Der BX9000 sendet Daten an ein VB6-Programm, das diese Daten wieder zurück schickt.

Schritt 1: Vorbereitung der UDP Kommunikation
FB_IpStartSession
Der Baustein reserviert Resourcen auf der Steuerung für die UDP/IP Kommunikation. Mit bStart wird der Baustein aktiv. Solange der Baustein arbeitet ist das bBusy gesetzt. iDevice ist immer mit null zu belegen. iPort ist für die lokale UDP Port Nummer des BX9000. Die iMaxConnection gibt die Anzahl der maximal möglichen Verbindungen an, maximal ist dieser Wert 3. Der eSocketTyte ist auf "SOCK_DGRAM" zu stellen. eSocketProtocol muss auf "IPPROTO_UDP" stehen für die UDP Kommunikation. Der tTimeOut wird für die UDP Kommunikation nicht verwendet. Die iSession muss mit den folgenden Bausteinen FB_IpSend und FB_ipReceive verknüpft sein.
Schritt 2: Senden von UDP-Frames
FB_IpSend
Mit einer positiven Flanke von bStart wird ein UDP Frame abgeschickt. Die IP-Adresse wird mit sRemoteIPAddr beschrieben und die Ziel UDP Port Nummer mit iPortNo. Die Absender UDP Port Nummer wurde ja schon in den FB_IpStartSession konfiguriert. Wird das bBusy vom Baustein zurückgesetzt ist der Befehl ausgeführt worden.
Schritt 3: Empfangen von UDP-Frames
FB_IpReceive
Mit diesem Baustein empfängt man die Daten. Sobald der Baustein aufgerufen wird hört der Baustein ob UDP-Frames angekommen sind. Es werden bis zu 4 UDP-Frames gepuffert, weitere UDP-Frames werden verworfen. Mit sRemoteIPAddr kann man einen IP-Adressfilter parametrieren um nur von einem bestimmten Teilnehmer Daten zu empfangen. Will man alle UDP-Frames empfangen gibt man ein leer String an oder lässt diese Variabel offen. Hat man einen IP-Adressfilter parametriert kann man zusätzlich noch die Port Nummer rausfiltern. Dafür setzt man einfach in die Variabel iPortNo die entsprechende Portnummer ein. Will man auch hier alle UDP Daten empfangen dann lässt man die Variabel offen.
Werden Daten empfangen wird die Variabel bValid auf TRUE gesetzt. Die Daten sind jetzt gültig. Ist der Wert der Variabel cbBytesInStream ungleich Null, so ist die Variabel, die an den Baustein verknüpft worden ist zu klein gewählt worden und es befinden sich noch Daten im Puffer.
Ablauf des Beispielprogramms

Beispiel
Download VB6 Programm als TCP/IP Server, Zip File (Beispieldatei)
Download BX9000 TwinCAT Projekt als TCP/IP Client, prx File (Beispieldatei)