FB_ALY_ProductivityInterval_1Ch

Der Algorithmus Productivity Interval 1Ch berechnet die Produktivität des Prozesses während eines vorgegebenen Intervalls. Das Intervall kann durch die Eingänge tTimeStart und tTimeStop definiert werden. Bei der Ausführung werden die produzierten Teile berücksichtigt. Ein produziertes Element wird gezählt, wenn eine Flanke am Eingang anliegt. Als Ausgangswerte werden die geschätzte Produktivität des aktuellen Intervalls sowie die Produktivität des letzten vollständigen Intervalls bereitgestellt. Der Algorithmus kann mit dem Sollwert der produzierten Teile innerhalb eines vorgegebenen Intervalls konfiguriert werden.

Syntax

Definition:

FUNCTION_BLOCK FB_ALY_ProductivityInterval_1Ch
VAR_OUTPUT
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    bWithinInterval: BOOL;
    fbCurrentTimestamp: FB_ALY_DateTime;
    fbIntervalLength: FB_ALY_Timespan;
    fbElapsedTime: FB_ALY_Timespan;
    fbRemainingTime: FB_ALY_Timespan;
    nProducedInInterval: ULINT;
    nRemainingInInterval: ULINT;
    fCurrentProductivity: LREAL;
    fExpectedProductivity: LREAL;
    fLastFullPeriodProductivity: LREAL;
END_VAR

FB_ALY_ProductivityInterval_1Ch 1: Eingänge

Name

Typ

Beschreibung

bPersistent

BOOL

Ist der Wert TRUE, werden die internen Daten persistent gespeichert.

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

bWithinInterval

BOOL

Gibt an, ob sich die aktuelle Uhrzeit innerhalb des Intervalls befindet.

fbCurrentTimestamp

FB_ALY_DateTime

Aktueller Zeitstempel.

fbIntervalLength

FB_ALY_Timespan

Länge des Intervalls.

fbElapsedTime

FB_ALY_Timespan

Verstrichene Zeit innerhalb des Intervalls.

fbRemainingTime

FB_ALY_Timespan

Verbleibende Zeit innerhalb des Intervalls.

nProducedInInterval

ULINT

Produzierte Teile innerhalb des Intervalls.

nRemainingInInterval

ULINT

Verbleibende Teile innerhalb des Intervalls.

fCurrentProductivity

LREAL

Aktuelle Produktivität des Intervalls in Prozent. Berücksichtigt die Länge des Intervalls, die bereits verstrichene Zeit, die zu produzierenden Teile sowie die bereits produzierten Teile. Die Ausgabe erfolgt in Prozent.

fExpectedProductivity

LREAL

Geschätzte Produktivität des Intervalls in Prozent. Zur Ermittlung der möglichen produzierbaren Teile innerhalb der verbleibenden Zeit wird die Produktionszeit des letzten Teils verwendet.

fLastFullPeriodProductivity

LREAL

Produktivität des letzten komplett durchlaufenden Intervalls in Prozent. Wird nur berechnet, wenn das Intervall vollständig durchlaufen wurde.

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

ConfigureChannel()

Local

Kanalspezifische Konfiguration für den jeweiligen Algorithmus.

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.

FB_ALY_ProductivityInterval_1Ch 4: Eigenschaften

Name

Typ

Zugriff

Definitionsort

Initialwert

Beschreibung

fTolerance

LREAL

Get, Set

Lokal

0.0

Toleranzwert für die Vergleiche Equal / NotEqual

Beispiel

VAR
    fbProductivityInterval : FB_ALY_ProductivityInterval_1Ch;
    fbSystemTime : FB_ALY_GetSystemTime;
    stThreshold : ST_ALY_Threshold;
    nExpectedPieces : ULINT := 40;
    bConfigure : BOOL := TRUE;
    bPieceProduced : BOOL;
    tTimeStart : LTIME := LTIME#8H;
    tTimeStop : LTIME := LTIME#16H;
END_VAR
// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;
    
    stThreshold.eComparisonOperator := E_ALY_ComparisonOperator.Equals; 
    stThreshold.fThreshold := 1;
    
    fbProductivityInterval.ConfigureChannel(stThreshold);
    fbProductivityInterval.Configure(nExpectedPieces);
END_IF

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

// Call algorithm
fbProductivityInterval.SetChannelValue(bPieceProduced);
fbProductivityInterval.Call(tTimeStart, tTimeStop, fbSystemTime.tSystemTime);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics