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