FB_SoERead

FB_SoERead 1:

Mit dem Funktionsbaustein FB_SoERead kann ein Parameter eingelesen werden.  

VAR_INPUT

VAR_INPUT
    NetId       : T_AmsNetId := '';
    Idn         : WORD;
    Element     : BYTE; 
    pDstBuf     : DWORD;
    BufLen      : UDINT;
    Execute     : BOOL;
    Timeout     : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

NetId: Ist ein String, der die AMS-Netzwerkkennung des PCs enthält.

Idn: Parameternummer, auf das sich das FB_SoERead bezieht, "S_0_IDN + 33" für S-0-0033

Element: Gibt an, auf welchen Teil des Parameters zugegriffen werden soll, z.B. 16#40 ist der Wert (Value) des Parameters

    EC_SOE_ELEMENT_DATASTATE :BYTE :=16#01;
    EC_SOE_ELEMENT_NAME      :BYTE :=16#02;
    EC_SOE_ELEMENT_ATTRIBUTE :BYTE :=16#04;
    EC_SOE_ELEMENT_UNIT      :BYTE :=16#08;
    EC_SOE_ELEMENT_MIN       :BYTE :=16#10;
    EC_SOE_ELEMENT_MAX       :BYTE :=16#20;
    EC_SOE_ELEMENT_VALUE     :BYTE :=16#40;
    EC_SOE_ELEMENT_DEFAULT   :BYTE :=16#80;

pDstBuf: ADR() der Variablen, in die der Wert gelesen werden soll.

BufLen: SIZEOF() der Variablen, in die der Wert gelesen werden soll.

Execute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

Timeout: Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf.

VAR_IN_OUT

VAR_IN_OUT
    Axis : AXIS_REF;(* reference to NC axis *)
END_VAR

Axis: Achsstruktur (siehe TcMc2.lib).

VAR_OUTPUT

VAR_OUTPUT
    Busy            : BOOL;
    Error           : BOOL;
    AdsErrId        : UINT;
    SercosErrId     : UINT;
    Attribute       : DWORD;
END_VAR

Busy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

Error: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.

AdsErrId: Liefert bei gesetztem Error-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehles

SercosErrId: Liefert bei gesetztem Error-Ausgang den Sercos-Fehler des zuletzt ausgeführten Befehles

Attribute: Liefert das Attribut des Sercos-Parameters.

Beispiel

fbRead : FB_SoERead;
Read    : BOOL;
Idn     : WORD;
ReadValue : UINT;

(* NcAxis *)
Axis            : AXIS_REF;
IF Read THEN
    Idn := S_0_IDN + 33;
    fbRead(
        Axis    := Axis,
        Idn     := Idn,
        Element := 16#40,
        pDstBuf := ADR(ReadValue),
        BufLen  := SIZEOF(ReadValue),
        Execute := TRUE,
        Timeout := DEFAULT_ADS_TIMEOUT,
    );
    IF NOT fbRead.Busy THEN
        fbRead(Axis := Axis, Execute := FALSE);
        Read := FALSE;
    END_IF
END_IF