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.

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
Ausgänge
Name | Typ | Beschreibung |
|---|---|---|
ipResultMessage | 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 |
bNewResult | BOOL | Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang |
bConfigured | BOOL | Zeigt |
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. |
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 |