FB_ALY_XyGateMonitor_2Ch

XY Gate Monitor 2Ch zählt die Anzahl der Schnittpunkte eines XY-Eingangs mit einem bestimmten Gate oder seiner Projektion (gerade Linie zwischen den Gate-Punkten) abhängig vom konfigurierten Gate Mode. Die Analyseperiode kann mit den Eingängen Start und Stop gestartet werden. Der Algorithmus ist richtungsempfindlich, d. h. es werden nur Schnittpunkte in der richtigen Richtung gezählt. Die Richtungsauslegung hängt von der Reihenfolge der Gate-Punkte (X1/Y1) und (X2/Y2) ab. Die möglichen Richtungen der Schnittpunkte sind nachstehend veranschaulicht.

Richtungen der Schnittpunkte:

Der blaue Pfeil stellt die Signalrichtung dar und die schwarzen Linien veranschaulichen das Gate mit seinen Gate-Punkten (X1/Y1) und (X2/Y2). Die Richtung der Schnittpunkte wird gezählt, wenn sich das Signal gegen den Uhrzeigersinn um den ersten Gate-Punkt (X1/Y1) dreht.

FB_ALY_XyGateMonitor_2Ch 1:

Syntax

Definition:

FUNCTION_BLOCK FB_ALY_XyGateMonitor_2Ch
VAR_OUTPUT 
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    bExecuting: BOOL;
    bGateIntersection: BOOL;
    bOutlierIntersection: BOOL;
    fPosIntersectionX: LREAL;
    fPosIntersectionY: LREAL;
    nCountGateIntersections: ULINT;
    nCountOutlierIntersections: ULINT;
    fbTimeLastIntersection: FB_ALY_DateTime;
    eClassification: E_ALY_Classification_2Cls;
END_VAR

FB_ALY_XyGateMonitor_2Ch 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.

bExecuting

BOOL

TRUE, wenn die Call()-Methode mit bStart:=TRUE aufgerufen wurde. FALSE, wenn die Call-Methode mit bStop:=TRUE aufgerufen wurde.

bGateIntersection

BOOL

TRUE, wenn ein Gate-Schnittpunkt erkannt wurde.

bOutlierIntersection

BOOL

TRUE, wenn eine Ausreißer-Schnittpunkt erkannt wurde.

fPosIntersectionX

LREAL

X-Koordinate des letzten Schnittpunkts.

fPosIntersectionY

LREAL

Y-Koordinate des letzten Schnittpunkts.

nCountGateIntersections

ULINT

Anzahl der erkannten Schnittpunkte.

nCountOutlierIntersections

ULINT

Anzahl der erkannten Ausreißer.

fbTimeLastIntersection

FB_ALY_DateTime

Zeitstempel des letzten Schnittpunkts.

eClassification

E_ALY_Classification_2Cls

Einstufungsergebnis. Abhängig vom konfigurierten Gate Mode.

FB_ALY_XyGateMonitor_2Ch 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
    fbXyGateMonitor : FB_ALY_XyGateMonitor_2Ch;
    fbSystemTime : FB_ALY_GetSystemTime;
    eGateMode : E_ALY_GateMode := E_ALY_GateMode.IntersectGate;
    stGatePos1 : ST_ALY_XyPosition := ( X:= 0.0, Y := 0.0);
    stGatePos2 : ST_ALY_XyPosition := ( X:= 0.0, Y := 4.0);
    bConfigure : BOOL := TRUE;
    fInputChX : LREAL;
    fInputChY : LREAL;
    bStart : BOOL;
    bStop : BOOL;
END_VAR
// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;

    fbXyGateMonitor.Configure(eGateMode, stGatePos1, stGatePos2);
END_IF

// Get current system time
fbSystemTime.Call();

// Call algorithm
fbXyGateMonitor.SetChannelValue(1, fInputChX);
fbXyGateMonitor.SetChannelValue(2, fInputChY);
fbXyGateMonitor.Call(bStart, bStop, fbSystemTime.tSystemTime);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics