Reporting Collector Edge

Der Reporting Collector Edge sammelt die Daten der Eingangskanäle und sendet die Daten je nach Konfiguration nach einem Ereignis oder nach dem Befüllen des Buffers an den Reporting Server. Ein Ereignis wird ausgelöst, wenn das Signal des Eingangskanals die konfigurierte Flanke bei einer bestimmten Schwelle passiert.

Syntax

Definition:

FUNCTION_BLOCK FB_Rpt_CollectorEdge
VAR_OUTPUT 
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    fbTimeLastEvent: FB_ALY_DateTime;
    nBufferCount: UDINT;
END_VAR

Reporting Collector Edge 1: 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.

fbTimeLastEvent

FB_ALY_DateTime

Speichert den Zeitstempel der zuletzt versendeten Nachricht an den Reporting-Server.

nBufferCount

UDINT

Gibt die Anzahl an Elementen im Buffer an.

Reporting Collector Edge 2: Methoden

Name

Typ

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.

SetDisplayName()

Local

Methode zur Beschreibung des Eingangskanals.

SetEdgeValue()

Local

Methode zur Übergabe von Werten an den Edge-Channel des Algorithmus.

Reporting Collector Edge 3: Eigenschaften

Name

Typ

Zugriff

Definitionsort

Initialwert

Beschreibung

fTolerance

LREAL

Get, Set

Lokal

0.0

Toleranzwert für die Vergleiche Equal / NotEqual

Beispiel

VAR
    fbRpt_CollectorEdge: FB_Rpt_CollectorEdge(sNetID:='', nNumChannels:=3);
    fbSystemTime : FB_ALY_GetSystemTime;
    bEdge: BOOL;
    fDataInCh1: LREAL;
    fDataInCh2: LREAL;
    fDataInCh3: LREAL;

    stThresholdEdge: ST_ALY_Threshold;
    sReportName: STRING(255);
    fTolerance: LREAL;
    sDataKey: STRING(255);
    nBufferSize: UDINT;
    bIncludeTimestamps: BOOL;
    aChannelNames: ARRAY [1..3] OF STRING(255);
END_VAR
// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;

    sReportName:= 'Beckhoff Report Template';
    fTolerance:= 0;
    sDataKey:= 'DataKey101';
    nBufferSize:= 1;
    bIncludeTimestamps:= TRUE;
    aChannelNames[1]:= 'Min';
    aChannelNames[2]:= 'Max';
    aChannelNames[3]:= 'Avg';
    stThresholdEdge.eComparisonOperator := E_ALY_ComparisonOperator.Equals;
    stThresholdEdge.fThreshold := 1;

    fbRpt_CollectorEdge.Configure(
        sConfigId:= sReportName,
        sDataKey:= sDataKey,
        nBufferSize:= nBufferSize,
        bBufferOnEvent:= bBufferOnEvent,
        bIncludeTimestamps:= bIncludeTimestamps,
        stThresholdEdge:= stThresholdEdge);

    fbRpt_CollectorEdge.fTolerance:= fTolerance;
    fbRpt_CollectorEdge.SetDisplayName(nChannel:= 1, sDisplayName:= aChannelNames[1]);
    fbRpt_CollectorEdge.SetDisplayName(nChannel:= 2, sDisplayName:= aChannelNames[2]);
    fbRpt_CollectorEdge.SetDisplayName(nChannel:= 3, sDisplayName:= aChannelNames[3]);
END_IF

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

// Call algorithm
fbRpt_CollectorEdge.SetChannelValue(nChannel:= 1, Input:= fDataInCh1);
fbRpt_CollectorEdge.SetChannelValue(nChannel:= 2, Input:= fDataInCh2);
fbRpt_CollectorEdge.SetChannelValue(nChannel:= 3, Input:= fDataInCh3);

fbRpt_CollectorEdge.Call(fbSystemTime.tSystemTime);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics