Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff BX9000 Dokumentation Seite 160

Busklemmen-controller für ethernet
Inhaltsverzeichnis

Werbung

Programmierung
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
[} 162]).
nHandle: Handle, der mit den Bausteinen FB_MBGernericReq und FB_MBClose verbunden werden muss.
FB_MBGENERICREQ
Der Baustein FB_MBGENERICREQ ermöglicht das Senden und Empfangen beliebiger ModbusTCP
Funktionen. Mit steigender Flanke von bExecute wird der Baustein aktive, das bBusy wird gesetzt und er
sendet seine Daten, die im pReqBuff (Pointer auf die Daten die verschickt werden sollen) enthalten sind.
Die Länge der zu senden Daten entnimmt der Baustein der Variable cbReqLen. Die Variable nHandle muss
mit der Variable aus dem Baustein Fb_MBConnect nHandle verbunden werden. Die Antwort des
ModbusTCP-Servers (Slave) wird in dem pResBuff (Pointer auf die Empfangsdaten) abgelegt. Die Größe
der Variable sollte groß genug gewählt werden, damit alle Daten eines ModbusTCP Telegramms empfangen
werden. Empfängt der ModbusClient innerhalb der tTimeout Zeit keine Antwort, so wird das bBusy auf
FALSE gesetzt und das bError gesetzt. In der Variable nErrId findet man den Fehlercode. In cbResponse
ist die Anzahl der empfangenden Bytes enthalten. Diese können mit der Puffergröße der cdResLen
verglichen werden. Ist cbResponse größer als dResLen gehen Daten verloren und Buffer muss größer
gewählt werden.
Abb. 137: Funktionsbaustein FB_MBGENERICREQ
INPUT
VAR_INPUT
   nHandle      : UINT;
   pRecBuff     : DWORD;
   cbReqLen     : WORD;
   pResBuff     : DWORD;
   cbResLen     : WORD;
   bExecute     : BOOL;
   tTimeout     : TIME; 
END_VAR
nHandle: Handle, wird mit den Bausteinen Fb_MBConnect verbunden.
pReqBuff: Pointer auf die Daten, die versendet werden sollen.
cbReqLen: Länge der Daten die versendet werden sollen.
pResBuff: Pointer auf die Daten, die empfangen werden sollen. Die Variable muss groß genug angelegt
werden.
cbResLen: Länge der Daten die empfangen werden sollen. Die Länge muss groß genug sein.
bExecute: Eine steigende Flanke aktiviert den Baustein.
tTimeout: Zeit nach der abgebrochen werden soll.
160
Version: 2.1.0
BX9000

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis