FB_CIP_DATA_TABLE_RDWR

FB_CIP_DATA_TABLE_RDWR 1:

Das Lesen und Schreiben von Variablen von TwinCAT aus geschieht über einen Funktionsbaustein der Bestandteil der Tc2_EthernetIP ist.

Der Funktionsbaustein FB_CIP_DATA_TABLE_RDWR kann für das Lesen sowie für das Schreiben verwendet werden.

FB_CIP_DATA_TABLE_RDWR 2: Eingänge

VAR_INPUT
    sNetId               : T_AmsNetID;
    sIPv4Addr            : T_IPv4Addr;
    bExecute             : BOOL;
    bDataTableWrite      : BOOL;
    sSrcElementName      : WORD;
    sDstElementName      : WORD;
    nNumberOfElements    : POINTER TO BYTE;
    nLocalIndex          : WORD;
    nRemoteIndex         : DWORD;
    nSessionTimeoutMSec  : DWORD;
    nCmdTimeoutMSec      : DWORD;
    bRackComm            : BOOL;
    nPort                : BYTE;
    nSlot                : BYTE;
END_VAR

Name

Typ

Beschreibung

sNetId

T_AmsNetID

AMSNetId des TwinCAT EtherNet/IP™ Scanners über den der Befehl laufen soll

sIPv4Addr

T_IPv4Addr

IP-Adresse der Ziel-CPU.

bExecute

BOOL

Positive Flanke startet den Befehl.

bDataTableWrite

BOOL

Bei FALSE wird ein DataTableRead gemacht, bei TRUE ein DataTableWrite.

sSrcElementName

WORD

String für den Source-Namen.

sDstElementName

WORD

String für den Zielnamen.

nNumberOfElements

POINTER OF BYTE

Anzahl der Elemente

nLocalIndex

WORD

Bei ARRAYs ist der Start Index zu setzen ab welchem ARRAY-Index die Daten genommen werden sollen (lokales System).

nRemoteIndex

DWORD

Bei ARRAYs ist der Start Index zu setzen ab welchem ARRAY-Index die Daten genommen werden sollen (Remote System).

nSessionTimeoutMSec

DWORD

TimeOut für die Session, Default 30 sec.

nCmdTimeoutMSec

DWORD

TimeOut für das Kommando, Default 7,5 sec.

bRackComm

BOOL

TRUE wenn es sich um eine modulare CPU handelt, also eine CPU mit einem Rack Aufbau zum Beispiel eine CompactLogix .

nPort

BYTE

Portnummer der CPU (normalerweise 1).

nSlot

BYTE

Slot-Nummer wenn die CPU nicht auf Slot 0 steckt .

FB_CIP_DATA_TABLE_RDWR 3: Ausgänge

VAR_OUTPUT
  bBusy    : BOOL;
  bError   : BOOL;
  nErrId   : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen.

bError

BOOL

Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId

UDINT

Liefert bei einem gesetzten bError-Ausgang eine Fehlernummer.

Beispiel

FB_CIP_DATA_TABLE_RDWR 4:

Test-Code entfernen

Falls Sie bereits die Kommunikation von AB zu Beckhoff getestet haben, sollten Sie die Funktionsaufrufe zum DataTable Read/Write aus dem AB Projekt entfernen.

VAR
    FB_CIP_DATA_TABLE_RDWR: FB_CIP_DATA_TABLE_RDWR;
    SourceName: STRING := 'Test';
    DestName: STRING := 'ETHIP.Test';
    Error: STRING;
END_VAR
FB_CIP_DATA_TABLE_RDWR(
  sNetId:='5.18.71.214.4.1' ,
  sIPv4Addr:='192.168.1.220' ,
  bExecute:=TRUE ,
  bDataTableWrite:= ,
  sSrcElementName:=(SourceName) ,
  sDstElementName:=(DestName) ,
  nNumberOfElements:=1 ,
  nLocalIndex:= ,
  nRemoteIndex:= ,
  nSessionTimeoutMSec:= ,
  nCmdTimeoutMSec:= ,
  bRackComm:=TRUE ,
  nPort:= ,
  nSlot:= ,
  bBusy=> ,
  bError=> ,
  nErrId=> );
IF NOT FB_CIP_DATA_TABLE_RDWR.bBusy THEN
  FB_CIP_DATA_TABLE_RDWR(bExecute:=FALSE);
  Error:=F_GET_ETHERNETIP_ERROR_TEXT (FB_CIP_DATA_TABLE_RDWR.nErrId);
END_IF