FB_ALY_XtsMovementAnalysis

Der XTS Movement Analysis berechnet die Position, die Geschwindigkeit, die Beschleunigung sowie den Ruck eines XTS-Movers. Dafür werden zur Glättung des Signals verschiedene Filterstufen verkettet. Um auch weitere, zugehörige Signale analysieren zu können, ermöglicht das Modul die Filterung von zwei weiteren Signalen mit den gleichen Filterstufen.

FB_ALY_XtsMovementAnalysis 1:

Syntax

Definition:

FUNCTION_BLOCK FB_ALY_XtsMovementAnalysis
VAR_OUTPUT
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    fPositionRaw: LREAL;
    fPositionFiltered: LREAL;
    fVelocityRaw: LREAL;
    fVelocityFiltered: LREAL;
    fAccelerationRaw: LREAL;
    fAccelerationFiltered: LREAL;
    fJerkRaw: LREAL;
    fExtSignal1Filtered: LREAL;
    fExtSignal2Filtered: LREAL;
END_VAR

FB_ALY_XtsMovementAnalysis 2: Ausgänge

Name

Typ

Beschreibung

ipResultMessage

I_TcMessage

Beinhaltet nähere Informationen zum aktuellen Rückgabewert. Für diesen speziellen Schnittstellenzeiger ist intern sichergestellt, dass er immer gültig/zugewiesen ist.

bError

BOOL

Der Ausgang ist TRUE, wenn ein Fehler auftritt.

bNewResult

BOOL

Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang TRUE.

bConfigured

BOOL

Zeigt TRUE an, wenn der Baustein erfolgreich konfiguriert ist.

fPositionRaw

LREAL

Position in mm.

fPositionFiltered

LREAL

Gefilterte Position in mm.

fVelocityRaw

LREAL

Geschwindigkeit in m/s.

fVelocityFiltered

LREAL

Gefilterte Geschwindigkeit in m/s.

fAccelerationRaw

LREAL

Beschleunigung in m/s².

fAccelerationFiltered

LREAL

Gefilterte Beschleunigung in m/s².

fJerkRaw

LREAL

Ruck in m/s³.

fJerkFiltered

LREAL

Gefilterter Ruck in m/s³.

fExtSignal1Filtered

LREAL

Externes Signal 1 mit denselben Filterstufen wie das Positionssignal.

fExtSignal2Filtered

LREAL

Externes Signal 2 mit denselben Filterstufen wie das Positionssignal.

FB_ALY_XtsMovementAnalysis 3: Methoden

Name

Definitionsort

Beschreibung

Call()

Local

Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration.

Configure()

Local

Allgemeine Konfiguration des Algorithmus mit seinen parametrisierten Bedingungen.

Reset()

Local

Setzt alle internen Zustände oder die bisher durchgeführten Berechnungen zurück.

SetChannelValue()

Local

Methode zur Übergabe von Werten an den Algorithmus.

Beispiel

VAR
    fbXtsMovementAnalysis : FB_ALY_XtsMovementAnalysis;
    fbSystemTime : FB_ALY_GetSystemTime;

    // Config
    bConfigure : BOOL := TRUE;
    nXtsLength : UDINT := 4000;
    fHardwarePosFactor : LREAL := 0.0001;
    fSampleRate : LREAL := 4000;
    aFilterOrder : ARRAY[1..4] OF UDINT := [2, 2, 2, 2];
    aFilterTimeConstant : ARRAY[1..4] OF LREAL := [0.05, 0.05, 0.05, 0.05];
    aUseFilterForExtSignal1 : ARRAY[1..4] OF BOOL := [TRUE, TRUE, FALSE, FALSE];
    aUseFilterForExtSignal2 : ARRAY[1..4] OF BOOL := [TRUE, TRUE, TRUE, FALSE];

    // Inputs
    nHardwarePosModulo AT%I* : UDINT;
    fExtSignal1 : LREAL;
    nExtSignal2 : UDINT;
END_VAR
// Get current system time
fbSystemTime.Call();

// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;
    fbXtsMovementAnalysis.Configure(nXtsLength, fHardwarePosFactor, fSampleRate, aFilterOrder, aFilterTimeConstant, aUseFilterForExtSignal1, aUseFilterForExtSignal2);
END_IF

// Call algorithm
fbXtsMovementAnalysis.SetChannelValue(1, nHardwarePosModulo);
fbXtsMovementAnalysis.SetChannelValue(2, fExtSignal1);
fbXtsMovementAnalysis.SetChannelValue(3, nExtSignal2);
fbXtsMovementAnalysis.Call(tTimestamp:=fbSystemTime.tSystemTime);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics