Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff BX9000 Dokumentation Seite 155

Busklemmen-controller für ethernet
Inhaltsverzeichnis

Werbung

Programmierung
TCP/IP Server
TCP/IP ist eine verbindungsorientierte Kommunikationsart, eigentlich eine peer-to-peer Verbindung. In
diesem Beispiel wird ihnen gezeigt wie eine Verbindung von außen auf die Beckhoff Steuerung aufgebaut
wird. Die benötigten Bausteine sind FB_IpStartSession, FB_IpReceive und optional FB_IpSend, FB_IpClose
und FB_IpEndSession.
Es empfiehlt sich eine Schrittkette zu programmieren, wie in dem Beispiel (siehe unten) angegeben ist.
Die Beckhoff Steuerung ist hier Server und die Gegenstelle ein TCP Client. Der Client ist ein VB6 Programm.
Schritt 1
FB_IpStartSession
Der Baustein reserviert Resourcen auf der Steuerung für die TCP/IP Kommunikation. Mit bStart wird der
Baustein aktive. Solange der Baustein arbeitet ist das bBusy gesetzt. iDevice ist immer mit null zu belegen.
iPort ist für die lokale TCP/IP Port Nummer. die iMaxConnection gibt die Anzahl der maximal möglichen
Verbindungen an, maximal ist dieser Wert 3.
INPUT
bStart: Eine steigende Flanke aktiviert den Baustein.
iDevice: immer "0"
eSocketType: bei TCP/IP ist "SOCK_STREAM" zu benutzen. Beachten Sie das die Daten als Byte Stream
abgelegt werden. Sie sollten möglichst die Länge der empfangenden Daten wissen oder ein Protokoll mit
einer Start und Endkennung damit Sie aus den Stream von Daten eindeutig den Anfang und das Ende
erkennen können.
eSocketProtocol: für TCP/IP ist "IPPROTO_TCP" zu benutzen
iPort: Empfangsport Nummer
iMaxConnection: Anzahl der maximal möglichen Verbindungen (max. ist 3)
tTimeout: Zeit nach der abgebrochen werden soll.
OUTPUT
bBusy: Dieser Ausgang bleibt solange auf TRUE, bis die Befehlsausführung abgeschlossen wurde.
bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler
aufgetreten ist. Der befehlsspezifische Fehlercode ist in iErrorId enthalten.
iErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls (siehe Tabelle).
iSession: Gibt die Session Nummer an alle IP Bausteine weiter, für die diese Verbindung angelegt wurde.
Schritt 2
FB_IpReceive
Daten die Empfangen werden, müssen in eine PLC Variable abgelegt werden. Dafür müssen Sie einen
Pointer auf pBuffAddr legen und die Größe der Variable in cbBuffLen. Mit einer positiven Flanke von bValid
wird angezeigt das Daten im Speicher liegen bzw. die Daten ihrer Variable jetzt gültig sind.
INPUT
bClear: Eine steigende Flanke löscht den Speicher und der Baustein ist wieder bereit Daten zu empfangen.
iSession: wird mit dem iSession aus dem Baustein FB_StartSession verbunden
sRemoteIPAddr: kann als Filter verwendet werden um nur eine spezielle IP Adresse
BX9000
Version: 2.1.0
155

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis