FB_NciFeedTablePreparation

FB_NciFeedTablePreparation 1:

Der Funktionsbaustein FB_NciFeedTablePreparation hängt einen Eintrag eines spezifischen Typs an die Feed-Tabelle (stFeedGroupTable). Ein angehängter Eintrag kann mehr als eine Zeile in der Tabelle erzeugen. Falls sich nicht genug freie Zeilen in der Tabelle befinden, wird ein Fehler zurückgeliefert und es wird kein Eintrag in der Tabelle hinzugefügt. Dann muss der Eintrag entweder einer anderen Tabelle hinzugefügt werden oder derselben, nachdem FB_NciFeedTable ausgeführt wurde. Dieser Funktionsbaustein kümmert sich um Modalfunktionen wie die tangentiale Nachführung. Es ist deshalb wichtig, immer dieselbe Instanz dieses Funktionsbausteins zu verwenden. Der Funktionsbaustein kann in einem SPS-Zyklus mehrfach aufgerufen werden.

FB_NciFeedTablePreparation 2: Eingänge

VAR_INPUT
    nEntryType       : E_NciEntryType;
    pEntry           : POINTER TO ST_NciGeoLine;
    bResetTable      : BOOL;
    bResetAll        : BOOL;
END_VAR

Name

Typ

Beschreibung

nEntryType

E_NciEntryType

Spezifiziert den Eintragstyp, z. B. Linie, Kreis, tangentiale Nachführung.

pEntry

POINTER TO ST_NciGeoLine

Pointer auf Eintragsstruktur – muss übereinstimmen mit nEntryType.

bResetTable

BOOL

Wenn bResetTable = TRUE, dann wird die Tabelle ‚stFeedGroupTable’ auf Null gesetzt und nFilledRows wird ebenfalls auf Null gesetzt. Wenn nErrorId = ErrNciFeedTableFull ist, wird dieser Fehler zurückgesetzt. Alle Modalflags (wie tangentiale Nachführung) bleiben konstant.

bResetAll

BOOL

Genau wie bResetTable. Daneben werden alle Modalflags auf ihren Standardwert gesetzt und alle Fehler-IDs zurückgesetzt.

FB_NciFeedTablePreparation 3:/FB_NciFeedTablePreparation 4: Ein-/Ausgänge

VAR_IN_OUT
    stFeedGroupTable : ST_NciFeedGroupTable;
END_VAR

Name

Typ

Beschreibung

stFeedGroupTable

ST_NciFeedGroupTable

Tabelle, die die Zeilen für den NC-Kernel enthält.

FB_NciFeedTablePreparation 5: Ausgänge

VAR_OUTPUT
    nFilledRows      : INT;
    bError           : BOOL;
    nErrorId         : UDINT;
END_VAR

Name

Typ

Beschreibung

nFilledRows

INT

Anzahl gefüllter Zeilen

bError

BOOL

Wird TRUE, wenn ein Fehler aufgetreten ist.

nErrorId

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.

FB_NciFeedTablePreparation 6:
  • Wenn bResetTable, bResetAll, oder bError TRUE ist, werden keine weiteren Einträge akzeptiert.
  • Der Fehlercode 0x4B72 zeigt an, dass die Tabelle voll ist, und der letzte Eintrag nicht akzeptiert wurde.

Beispiel:

stGeoLine.nDisplayIndex := 1;
stGeoLine.fEndPosX := 0;
stGeoLine.fEndPosY := 400;
stGeoLine.fEndPosZ := 100;
stGeoLine.fEndPosQ1 :=-90;
stGeoLine.fVelo := 1000; (*mm per sec*)

fbFeedTablePrep(
    nEntryType := E_NciEntryTypeGeoLine,
    pEntry := ADR(stGeoLine),
    bResetTable:= FALSE,
    stFeedGroupTable:= stNciFeedGroupTable,
    nFilledRows=> nFilledRows,
    bError => bError,
    nErrorId => nErrorId);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT V3.1.0

PC oder CX (x86 oder x64)

Tc2_PlcInterpolation