FB_CUSTOM_SERVICE

FB_CUSTOM_SERVICE 1:

Der Funktionsbaustein FB_CUSTOM_SERVICE ermöglicht es, nahezu beliebige CIP Dienste selber zu erstellen.

VAR_INPUT

VAR_INPUT
    sNetId               : T_AmsNetID;
    sIPv4Addr            : T_IPv4Addr;
    bExecute             : BOOL;
    nServiceCode         : BYTE
    nClass               : WORD;
    nInstance            : WORD;
    nAttribute           : WORD;
    pDst                 : POINTER TO BYTE;
    nMaxLen              : WORD;
    pSrc                 : POINTER TO BYTE;
    nSrcDataLen          : WORD;
    nSessionTimeoutMSec  : DWORD;
    nCmdTimeoutMSec      : DWORD;
    bRackComm            : BOOL;
    nPort                : BYTE;
    nSlot                : BYTE;
END_VAR

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

sIPv4Addr: IP Adresse des Ziel Teilnehmers

bExecute: Positive Flanke startet den Befehl

nServiceCode: Service Code des CIP Dienst

nClasss: Class Nummer des CIP Dienst

nInstance: Instance Nummer des CIP Dienst

nAttribut: Attribut Nummer des CIP Dienst

pDst: Pointer auf die Variable in die der Wert kopiert werden soll (ermitteln des Pointers mit ADR)

nMaxLen: Größe der Variable auf die der Pointer pDst zeigt (ermitteln mit SizeOf)

pSrc: Pointer auf die Variable die den Wert enthält für das Versenden des Dienstes (ermitteln des Pointers mit ADR)

nSrcDataLen: Größe der Variable auf die der Pointer pSrc zeigt (ermitteln mit SizeOf), bzw. Anzahl an Bytes die Verschickt werden sollen. In der Regel ist das die Größe der Variable.

nSessionTimeoutMSec: TimeOut für die Session, Default 30 sec

nCmdTimeoutMSec: TimeOut für das Kommando, Default 7,5 sec

bRackComm: TRUE wenn es sich um eine Modulare CPU handelt, also eine CPU mit einem Rack Aufbau zum Beispiel eine CompactLogix

nPort: Port Nummer der CPU (das TF6281 unterstützt aktuell nur Port 1)

nSlot: Slot Nummer wenn die CPU nicht auf Slot 0 steckt

VAR_OUTPUT

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

bBusy: 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: Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId: Liefert bei einem gesetzten bError-Ausgang eine Fehlernummer.

nDataLen: Liefert die Anzahl an gültigen Daten (Anzahl der Bytes) zurück