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
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bPersistent | BOOL | Ist der Wert |
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 |
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. |
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. |
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 |